N o v e m b e r 1 4 t h W e d n e s d a y

B o t h   c l i p b o a r d   a n d   d r a g   a n d   d r o p   o p e r a t i o n s   h a v e   t w o   s i d e s :   t h e   s o u r c e   a n d   t a r g e t ,   t h e   d a t a   p r o v i d e r   a n d   t h e   d a t a   r e c e i v e r .  
T h e s e   w h i c h   m a y   b e   i n   t h e   s a m e   a p p l i c a t i o n   a n d   e v e n   t h e   s a m e   w i n d o w   w h e n ,   f o r   e x a m p l e ,   y o u   d r a g   s o m e   t e x t   f r o m   o n e   p o s i t i o n   t o
a n o t h e r   i n   a   w o r d   p r o c e s s o r .   L e t   u s   d e s c r i b e   w h a t   e a c h   o f   t h e m   s h o u l d   d o .

T h e   d a t a   p r o v i d e r   ( s o u r c e )   d u t i e s

     T h e   d a t a   p r o v i d e r   i s   r e s p o n s i b l e   f o r   c r e a t i n g   a   w x D a t a O b j e c t   c o n t a i n i n g   t h e   d a t a   t o   b e   t r a n s f e r r e d .   T h e n   i t   s h o u l d   e i t h e r   p a s s
i t   t o   t h e   c l i p b o a r d   u s i n g   S e t D a t a   f u n c t i o n   o r   t o   w x D r o p S o u r c e   a n d   c a l l   D o D r a g D r o p   f u n c t i o n .

     T h e   o n l y   ( b u t   i m p o r t a n t )   d i f f e r e n c e   i s   t h a t   t h e   o b j e c t   f o r   t h e   c l i p b o a r d   t r a n s f e r   m u s t   a l w a y s   b e   c r e a t e d   o n   t h e   h e a p   ( i . e .   u s i n g
n e w )   a n d   i t   w i l l   b e   f r e e d   b y   t h e   c l i p b o a r d   w h e n   i t   i s   n o   l o n g e r   n e e d e d   ( i n d e e d ,   i t   i s   n o t   k n o w n   i n   a d v a n c e   w h e n ,   i f   e v e r ,   t h e   d a t a
w i l l   b e   p a s t e d   f r o m   t h e   c l i p b o a r d ) .   O n   t h e   o t h e r   h a n d ,   t h e   o b j e c t   f o r   d r a g   a n d   d r o p   o p e r a t i o n   m u s t   o n l y   e x i s t   w h i l e   D o D r a g D r o p
e x e c u t e s   a n d   m a y   b e   s a f e l y   d e l e t e d   a f t e r w a r d s   a n d   s o   c a n   b e   c r e a t e d   e i t h e r   o n   h e a p   o r   o n   s t a c k   ( i . e .   a s   a   l o c a l   v a r i a b l e ) .

     A n o t h e r   s m a l l   d i f f e r e n c e   i s   t h a t   i n   t h e   c a s e   o f   c l i p b o a r d   o p e r a t i o n ,   t h e   a p p l i c a t i o n   u s u a l l y   k n o w s   i n   a d v a n c e   w h e t h e r   i t   c o p i e s   o r
c u t s   ( i . e .   c o p i e s   a n d   d e l e t e s )   d a t a   -   i n   f a c t ,   t h i s   u s u a l l y   d e p e n d s   o n   w h i c h   m e n u   i t e m   t h e   u s e r   c h o s e .   B u t   f o r   d r a g   a n d   d r o p   i t   c a n
o n l y   k n o w   i t   a f t e r   D o D r a g D r o p   r e t u r n s   ( f r o m   i t s   r e t u r n   v a l u e ) .


T h e   d a t a   r e c e i v e r   ( t a r g e t )   d u t i e s

     T o   r e c e i v e   ( p a s t e   i n   u s u a l   t e r m i n o l o g y )   d a t a   f r o m   t h e   c l i p b o a r d ,   y o u   s h o u l d   c r e a t e   a   w x D a t a O b j e c t   d e r i v e d   c l a s s   w h i c h   s u p p o r t s
t h e   d a t a   f o r m a t s   y o u   n e e d   a n d   p a s s   i t   a s   a r g u m e n t   t o   w x C l i p b o a r d : : G e t D a t a .   I f   i t   r e t u r n s   f a l s e ,   n o   d a t a   i n   ( a n y   o f )   t h e   s u p p o r t e d  
f o r m a t ( s )   i s   a v a i l a b l e .   I f   i t   r e t u r n s   t r u e ,   t h e   d a t a   h a s   b e e n   s u c c e s s f u l l y   t r a n s f e r r e d   t o   w x D a t a O b j e c t .

     F o r   d r a g   a n d   d r o p   c a s e ,   t h e   w x D r o p T a r g e t : : O n D a t a   v i r t u a l   f u n c t i o n   w i l l   b e   c a l l e d   w h e n   a   d a t a   o b j e c t   i s   d r o p p e d ,   f r o m   w h i c h   t h e
d a t a   i t s e l f   m a y   b e   r e q u e s t e d   b y   c a l l i n g   w x D r o p T a r g e t : : G e t D a t a   m e t h o d   w h i c h   f i l l s   t h e   d a t a   o b j e c t .


N o v e m b e r   1 5 t h   T h u r s d a y   ( AS N g 0AS”Nåe 0(gÜfåe ÿ

     w x W i d g e t s '   D D E - l i k e   p r o t o c o l   i s   a   h i g h - l e v e l   p r o t o c o l   b a s e d   o n   W i n d o w s   D D E .   T h e r e   a r e   t w o   i m p l e m e n t a t i o n s   o f   t h i s   D D E - l i k e   p r o t o c o l :
o n e   u s i n g   r e a l   D D E   r u n n i n g   o n   W i n d o w s   o n l y ,   a n d   a n o t h e r   u s i n g   T C P / I P   ( s o c k e t s )   t h a t   r u n s   o n   m o s t   p l a t f o r m s .

     N o t i c e   t h a t   b y   i n c l u d i n g   < w x / i p c . h >   y o u   m a y   d e f i n e   c o n v e n i e n t   s y n o n y m s   f o r   t h e   I P C   c l a s s e s :   w x S e r v e r   f o r   e i t h e r   w x D D E S e r v e r   o r   w x T C P S e r v e r
d e p e n d i n g   o n   w h e t h e r   D D E - b a s e d   o r   s o c k e t - b a s e d   i m p l e m e n t a t i o n   i s   u s e d   a n d   t h e   s a m e   t h i n g   f o r   w x C l i e n t   a n d   w x C o n n e c t i o n .

     B y   d e f a u l t ,   t h e   D D E   i m p l e m e n t a t i o n   i s   u s e d   u n d e r   W i n d o w s .   D D E   w o r k s   w i t h i n   o n e   c o m p u t e r   o n l y .   I f   y o u   w a n t   t o   u s e   I P C   b e t w e e n   d i f f e r e n t
w o r k s t a t i o n s   y o u   s h o u l d   d e f i n e   w x U S E _ D D E _ F O R _ I P C   a s   0   b e f o r e   i n c l u d i n g   t h i s   h e a d e r   - -   t h i s   w i l l   f o r c e   u s i n g   T C P / I P   i m p l e m e n t a t i o n   e v e n
u n d e r   W i n d o w s .

     T h e   f o l l o w i n g   d e s c r i p t i o n   r e f e r s   t o   w x . . .   b u t   r e m e m b e r   t h a t   t h e   e q u i v a l e n t   w x T C P . . .   a n d   w x D D E . . .   c l a s s e s   c a n   b e   u s e d   i n   m u c h   t h e   s a m e   w a y .

     T h r e e   c l a s s e s   a r e   c e n t r a l   t o   t h e   D D E - l i k e   A P I :

     1 .   w x C l i e n t .   T h i s   r e p r e s e n t s   t h e   c l i e n t   a p p l i c a t i o n ,   a n d   i s   u s e d   o n l y   w i t h i n   a   c l i e n t   p r o g r a m .  
     2 .   w x S e r v e r .   T h i s   r e p r e s e n t s   t h e   s e r v e r   a p p l i c a t i o n ,   a n d   i s   u s e d   o n l y   w i t h i n   a   s e r v e r   p r o g r a m .  
     3 .   w x C o n n e c t i o n .   T h i s   r e p r e s e n t s   t h e   c o n n e c t i o n   f r o m   t h e   c l i e n t   t o   t h e   s e r v e r   -   b o t h   t h e   c l i e n t   a n d   t h e   s e r v e r   u s e   a n   i n s t a n c e   o f   t h i s   c l a s s ,
           o n e   p e r   c o n n e c t i o n .   M o s t   D D E   t r a n s a c t i o n s   o p e r a t e   o n   t h i s   o b j e c t .  

     M e s s a g e s   b e t w e e n   a p p l i c a t i o n s   a r e   u s u a l l y   i d e n t i f i e d   b y   t h r e e   v a r i a b l e s :   c o n n e c t i o n   o b j e c t ,   t o p i c   n a m e   a n d   i t e m   n a m e .   A   d a t a   s t r i n g   i s
a   f o u r t h   e l e m e n t   o f   s o m e   m e s s a g e s .   T o   c r e a t e   a   c o n n e c t i o n   ( a   c o n v e r s a t i o n   i n   W i n d o w s   p a r l a n c e ) ,   t h e   c l i e n t   a p p l i c a t i o n   u s e s   w x C l i e n t : : M a k e C o n n e c t i o n
t o   s e n d   a   m e s s a g e   t o   t h e   s e r v e r   o b j e c t ,   w i t h   a   s t r i n g   s e r v i c e   n a m e   t o   i d e n t i f y   t h e   s e r v e r   a n d   a   t o p i c   n a m e   t o   i d e n t i f y   t h e   t o p i c   f o r   t h e   d u r a t i o n   o f
t h e   c o n n e c t i o n .   U n d e r   U n i x ,   t h e   s e r v i c e   n a m e   m a y   b e   e i t h e r   a n   i n t e g e r   p o r t   i d e n t i f i e r   i n   w h i c h   c a s e   a n   I n t e r n e t   d o m a i n   s o c k e t   w i l l   b e   u s e d   f o r   t h e
c o m m u n i c a t i o n s   o r   a   v a l i d   f i l e   n a m e   ( w h i c h   s h o u l d n ' t   e x i s t   a n d   w i l l   b e   d e l e t e d   a f t e r w a r d s )   i n   w h i c h   c a s e   a   U n i x   d o m a i n   s o c k e t   i s   c r e a t e d .

     T h e   s e r v e r   t h e n   r e s p o n d s   a n d   e i t h e r   v e t o e s   t h e   c o n n e c t i o n   o r   a l l o w s   i t .   I f   a l l o w e d ,   b o t h   t h e   s e r v e r   a n d   c l i e n t   o b j e c t s   c r e a t e   w x C o n n e c t i o n   o b j e c t s
w h i c h   p e r s i s t   u n t i l   t h e   c o n n e c t i o n   i s   c l o s e d .   T h e   c o n n e c t i o n   o b j e c t   i s   t h e n   u s e d   f o r   s e n d i n g   a n d   r e c e i v i n g   s u b s e q u e n t   m e s s a g e s   b e t w e e n   c l i e n t   a n d   s e r v e r
-   o v e r r i d i n g   v i r t u a l   f u n c t i o n s   i n   y o u r   c l a s s   d e r i v e d   f r o m   w x C o n n e c t i o n   a l l o w s   y o u   t o   h a n d l e   t h e   D D E   m e s s a g e s .

     T o   c r e a t e   a   w o r k i n g   s e r v e r ,   t h e   p r o g r a m m e r   m u s t :

     1 .   D e r i v e   a   c l a s s   f r o m   w x C o n n e c t i o n ,   p r o v i d i n g   h a n d l e r s   f o r   v a r i o u s   m e s s a g e s   s e n t   t o   t h e   s e r v e r   s i d e   o f   a   w x C o n n e c t i o n   ( e . g .   O n E x e c u t e ,   O n R e q u e s t ,   O n P o k e ) .
           O n l y   t h e   h a n d l e r s   a c t u a l l y   r e q u i r e d   b y   t h e   a p p l i c a t i o n   n e e d   t o   b e   o v e r r i d d e n .  

     2 .   D e r i v e   a   c l a s s   f r o m   w x S e r v e r ,   o v e r r i d i n g   O n A c c e p t C o n n e c t i o n   t o   a c c e p t   o r   r e j e c t   a   c o n n e c t i o n   o n   t h e   b a s i s   o f   t h e   t o p i c   a r g u m e n t .   T h i s   m e m b e r   m u s t   c r e a t e
           a n d   r e t u r n   a n   i n s t a n c e   o f   t h e   d e r i v e d   c o n n e c t i o n   c l a s s   i f   t h e   c o n n e c t i o n   i s   a c c e p t e d .  

     3 .   C r e a t e   a n   i n s t a n c e   o f   y o u r   s e r v e r   o b j e c t   a n d   c a l l   C r e a t e   t o   a c t i v a t e   i t ,   g i v i n g   i t   a   s e r v i c e   n a m e .  

     T o   c r e a t e   a   w o r k i n g   c l i e n t ,   t h e   p r o g r a m m e r   m u s t :

     1 .   D e r i v e   a   c l a s s   f r o m   w x C o n n e c t i o n ,   p r o v i d i n g   h a n d l e r s   f o r   v a r i o u s   m e s s a g e s   s e n t   t o   t h e   c l i e n t   s i d e   o f   a   w x C o n n e c t i o n   ( e . g .   O n A d v i s e ) .   O n l y   t h e   h a n d l e r s
         a c t u a l l y   r e q u i r e d   b y   t h e   a p p l i c a t i o n   n e e d   t o   b e   o v e r r i d d e n .  

     2 .   D e r i v e   a   c l a s s   f r o m   w x C l i e n t ,   o v e r r i d i n g   O n M a k e C o n n e c t i o n   t o   c r e a t e   a n d   r e t u r n   a n   i n s t a n c e   o f   t h e   d e r i v e d   c o n n e c t i o n   c l a s s .  

     3 .   C r e a t e   a n   i n s t a n c e   o f   y o u r   c l i e n t   o b j e c t .  

     W h e n   a p p r o p r i a t e ,   c r e a t e   a   n e w   c o n n e c t i o n   u s i n g   w x C l i e n t : : M a k e C o n n e c t i o n ,   w i t h   a r g u m e n t s   h o s t   n a m e   ( p r o c e s s e d   i n   U n i x   o n l y ,   u s e   ' l o c a l h o s t '   f o r   l o c a l   c o m p u t e r ) ,
s e r v i c e   n a m e ,   a n d   t o p i c   n a m e   f o r   t h i s   c o n n e c t i o n .   T h e   c l i e n t   o b j e c t   w i l l   c a l l   O n M a k e C o n n e c t i o n   t o   c r e a t e   a   c o n n e c t i o n   o b j e c t   o f   t h e   d e r i v e d   c l a s s   i f   t h e   c o n n e c t i o n
i s   s u c c e s s f u l .   U s e   t h e   w x C o n n e c t i o n   m e m b e r   f u n c t i o n s   t o   s e n d   m e s s a g e s   t o   t h e   s e r v e r .   
 
 
 

你可能感兴趣的:(N o v e m b e r 1 4 t h W e d n e s d a y)