HostFolder.cpp

Go to the documentation of this file.
00001 ÿþ/ /   H o s t F o l d e r . c p p   :   I m p l e m e n t a t i o n   o f   C H o s t F o l d e r 
00002  
00003  
00004  
00005  # i n c l u d e   " s t d a f x . h " 
00006  
00007  # i n c l u d e   " r e m o t e l i m i t s . h " 
00008  
00009  # i n c l u d e   " H o s t F o l d e r . h " 
00010  
00011  # i n c l u d e   " H o s t C o n t e x t M e n u . h " 
00012  
00013  # i n c l u d e   " R e m o t e F o l d e r . h " 
00014  
00015  # i n c l u d e   " C o n n C o p y P o l i c y . h " 
00016  
00017  
00018  
00019  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00020  
00021    *   C H o s t F o l d e r : : G e t C l a s s I D ( )   :   I P e r s i s t 
00022  
00023    *   R e t r i e v e s   t h e   c l a s s   i d e n t i f i e r   ( C L S I D )   o f   t h e   o b j e c t 
00024  
00025    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00026  
00027  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t C l a s s I D (   C L S I D *   p C l s i d   ) 
00028  
00029  { 
00030  
00031          A T L T R A C E ( " C H o s t F o l d e r : : G e t C l a s s I D   c a l l e d \ n " ) ; 
00032  
00033  
00034  
00035          A T L A S S E R T (   p C l s i d   ) ; 
00036  
00037          i f   ( p C l s i d   = =   N U L L ) 
00038  
00039                  r e t u r n   E _ P O I N T E R ; 
00040  
00041  
00042  
00043          * p C l s i d   =   _ _ u u i d o f ( C H o s t F o l d e r ) ; 
00044  
00045          r e t u r n   S _ O K ; 
00046  
00047  } 
00048  
00049  
00050  
00051  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00052  
00053    *   C H o s t F o l d e r : : I n i t i a l i z e ( )   :   I P e r s i s t F o l d e r 
00054  
00055    *   A s s i g n s   a   f u l l y   q u a l i f i e d   P I D L   t o   t h e   n e w   o b j e c t   w h i c h   w e   s t o r e   f o r   l a t e r 
00056  
00057    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00058  
00059  S T D M E T H O D I M P   C H o s t F o l d e r : : I n i t i a l i z e (   P C I D L I S T _ A B S O L U T E   p i d l   ) 
00060  
00061  { 
00062  
00063          A T L T R A C E ( " C H o s t F o l d e r : : I n i t i a l i z e   c a l l e d \ n " ) ; 
00064  
00065  
00066  
00067          A T L A S S E R T (   p i d l   ! =   N U L L   ) ; 
00068  
00069          m _ p i d l   =   m _ P i d l M a n a g e r . C o p y (   p i d l   ) ; 
00070  
00071          A T L A S S E R T (   m _ p i d l   ) ; 
00072  
00073          r e t u r n   S _ O K ; 
00074  
00075  } 
00076  
00077  
00078  
00079  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00080  
00081    *   C H o s t F o l d e r : : G e t C u r F o l d e r ( )   :   I P e r s i s t F o l d e r 2 
00082  
00083    *   R e t r i e v e s   t h e   f u l l y   q u a l i f i e d   P I D L   o f   t h e   f o l d e r . 
00084  
00085    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00086  
00087  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t C u r F o l d e r (   _ _ d e r e f _ o u t   P I D L I S T _ A B S O L U T E   * p p i d l   ) 
00088  
00089  { 
00090  
00091          A T L T R A C E ( " C H o s t F o l d e r : : G e t C u r F o l d e r   c a l l e d \ n " ) ; 
00092  
00093  
00094  
00095          A T L A S S E R T (   m _ p i d l   ) ; 
00096  
00097          i f   ( m _ p i d l   = =   N U L L ) 
00098  
00099                  r e t u r n   S _ F A L S E ; 
00100  
00101                  / /   T O D O :   S h o u l d   p p i d l   b e   s e t   t o   N U L L ? 
00102  
00103  
00104  
00105          / /   M a k e   a   c o p y   o f   t h e   P I D L   t h a t   w a s   p a s s e d   t o   S w i s h   i n   I n i t i a l i z e ( p i d l ) 
00106  
00107          * p p i d l   =   m _ P i d l M a n a g e r . C o p y (   m _ p i d l   ) ; 
00108  
00109          A T L A S S E R T (   * p p i d l   ) ; 
00110  
00111          i f   ( ! * p p i d l ) 
00112  
00113                  r e t u r n   E _ O U T O F M E M O R Y ; 
00114  
00115          
00116  
00117          r e t u r n   S _ O K ; 
00118  
00119  } 
00120  
00121  
00122  
00123  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00124  
00125    *   C H o s t F o l d e r : : B i n d T o O b j e c t   :   I S h e l l F o l d e r 
00126  
00127    *   S u b f o l d e r   o f   r o o t   f o l d e r   o p e n e d :   C r e a t e   a n d   i n i t i a l i z e   n e w   C R e m o t e F o l d e r   
00128  
00129    *   C O M   o b j e c t   t o   r e p r e s e n t   s u b f o l d e r   a n d   r e t u r n   i t s   I S h e l l F o l d e r   i n t e r f a c e . 
00130  
00131    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00132  
00133  S T D M E T H O D I M P   C H o s t F o l d e r : : B i n d T o O b j e c t (   _ _ i n   P C U I D L I S T _ R E L A T I V E   p i d l , 
00134  
00135                                                                                  _ _ i n _ o p t   I B i n d C t x   * p b c , 
00136  
00137                                                                                  _ _ i n   R E F I I D   r i i d , 
00138  
00139                                                                                  _ _ o u t   v o i d * *   p p v O u t   ) 
00140  
00141  { 
00142  
00143          A T L T R A C E ( " C H o s t F o l d e r : : B i n d T o O b j e c t   c a l l e d \ n " ) ; 
00144  
00145          ( v o i d ) p b c ; 
00146  
00147          * p p v O u t   =   N U L L ; 
00148  
00149          H R E S U L T   h r ; 
00150  
00151  
00152  
00153          / /   W e   c a n   a s s u m e   a l l   c h i l d r e n   o f   p i d l   a r e   f o r   R e m o t e F o l d e r   
00154  
00155          / /   o b j e c t s   ( R E M O T E P I D L s )   a s   w e   h a v e   n o   j u n c t i o n   p o i n t s   e t c .   
00156  
00157          / /   C h e c k   t h a t   t h e   f i r s t   i t e m   i n   t h e   p i d l   i s   a   H O S T P I D L   a s   
00158  
00159          / /   t h i s   i s   r e p r e s e n t s   t h e   r o o t   f o l d e r   t h a t   w e   a r e   b i n d i n g   t o . 
00160  
00161          h r   =   m _ P i d l M a n a g e r . I s V a l i d (   p i d l   ) ; 
00162  
00163          i f   ( F A I L E D ( h r ) ) 
00164  
00165                  r e t u r n   h r ; 
00166  
00167  
00168  
00169          / /   C r e a t e   C O M   o b j e c t   t o   b i n d   t o   P I D L 
00170  
00171          C C o m O b j e c t < C R e m o t e F o l d e r >   * p R e m o t e F o l d e r ; 
00172  
00173          h r   =   C C o m O b j e c t < C R e m o t e F o l d e r > : : C r e a t e I n s t a n c e (   & p R e m o t e F o l d e r   ) ; 
00174  
00175          i f   ( F A I L E D ( h r ) ) 
00176  
00177                  r e t u r n   h r ; 
00178  
00179  
00180  
00181          p R e m o t e F o l d e r - > A d d R e f ( ) ; 
00182  
00183  
00184  
00185          / /   I n i t i a l i z e   C O M   o b j e c t   f r o m   P I D L 
00186  
00187          P I D L I S T _ A B S O L U T E   p i d l B i n d   =   I L C o m b i n e (   m _ p i d l ,   p i d l   ) ;     
00188  
00189          h r   =   p i d l B i n d   ?   S _ O K   :   E _ O U T O F M E M O R Y ; 
00190  
00191          i f   ( S U C C E E D E D ( h r ) ) 
00192  
00193          { 
00194  
00195                  / /   I n i t i a l i s e   a n d   r e t r i e v e   r e q u e s t e d   i n t e r f a c e 
00196  
00197                  h r   =   p R e m o t e F o l d e r - > I n i t i a l i z e (   p i d l B i n d   ) ; 
00198  
00199                  i f   ( S U C C E E D E D ( h r ) ) 
00200  
00201                          h r   =   p R e m o t e F o l d e r - > Q u e r y I n t e r f a c e (   r i i d ,   p p v O u t   ) ; 
00202  
00203                  
00204  
00205                  I L F r e e (   p i d l B i n d   ) ; 
00206  
00207          } 
00208  
00209  
00210  
00211          p R e m o t e F o l d e r - > R e l e a s e ( ) ; 
00212  
00213  
00214  
00215          / *   T O D O :   N o t   s u r e   i f   I   h a v e   d o n e   t h i s   p r o p e r l y   w i t h   Q u e r y I n t e r f a c e 
00216  
00217            *   F r o m   M S :   I m p l e m e n t a t i o n s   o f   B i n d T o O b j e c t   c a n   o p t i m i z e   a n y   c a l l   t o   
00218  
00219            *   i t   b y     q u i c k l y   f a i l i n g   f o r   I I D   v a l u e s   t h a t   i t   d o e s   n o t   s u p p o r t .   F o r   
00220  
00221            *   e x a m p l e ,   i f   t h e   S h e l l   f o l d e r   o b j e c t   o f   t h e   s u b i t e m   d o e s   n o t   s u p p o r t   
00222  
00223            *   I R e m o t e C o m p u t e r ,   t h e   i m p l e m e n t a t i o n   s h o u l d   r e t u r n   E _ N O I N T E R F A C E   
00224  
00225            *   i m m e d i a t e l y   i n s t e a d   o f   n e e d l e s s l y   c r e a t i n g   t h e   S h e l l   f o l d e r   o b j e c t   
00226  
00227            *   f o r   t h e   s u b i t e m   a n d   t h e n   f i n d i n g   t h a t   I R e m o t e C o m p u t e r   w a s   n o t   
00228  
00229            *   s u p p o r t e d   a f t e r   a l l .   
00230  
00231            *   h t t p : / / m s d n 2 . m i c r o s o f t . c o m / e n - u s / l i b r a r y / m s 6 3 2 9 5 4 . a s p x 
00232  
00233            * / 
00234  
00235  
00236  
00237          r e t u r n   h r ; 
00238  
00239  } 
00240  
00241  
00242  
00243  / /   E n u m O b j e c t s ( )   c r e a t e s   a   C O M   o b j e c t   t h a t   i m p l e m e n t s   I E n u m I D L i s t . 
00244  
00245  S T D M E T H O D I M P   C H o s t F o l d e r : : E n u m O b j e c t s ( 
00246  
00247          _ _ i n _ o p t   H W N D   h w n d O w n e r ,   
00248  
00249          _ _ i n   S H C O N T F   d w F l a g s , 
00250  
00251          _ _ d e r e f _ o u t _ o p t   L P E N U M I D L I S T *   p p E n u m I D L i s t   ) 
00252  
00253  { 
00254  
00255          A T L T R A C E ( " C H o s t F o l d e r : : E n u m O b j e c t s   c a l l e d \ n " ) ; 
00256  
00257          A T L A S S E R T ( m _ p i d l ) ;   / /   C h e c k   t h i s   o b j e c t   h a s   b e e n   i n i t i a l i s e d 
00258  
00259          ( v o i d ) h w n d O w n e r ;   / /   N o   u s e r   i n p u t   r e q u i r e d 
00260  
00261  
00262  
00263          / /   T h i s   f o l d e r   o n l y   h a s   f o l d e r s 
00264  
00265          i f   ( ! ( d w F l a g s   &   S H C O N T F _ F O L D E R S ) ) 
00266  
00267                  r e t u r n   S _ F A L S E ; 
00268  
00269  
00270  
00271          H R E S U L T   h r ; 
00272  
00273          P I T E M I D _ C H I L D   p D a t a T e m p ;   / /   N o t   s i m p l y   H O S T P I D L ,   h a s   t e r m i n a t o r 
00274  
00275  
00276  
00277          i f   (   N U L L   = =   p p E n u m I D L i s t   ) 
00278  
00279                  r e t u r n   E _ P O I N T E R ; 
00280  
00281  
00282  
00283          * p p E n u m I D L i s t   =   N U L L ; 
00284  
00285  
00286  
00287          m _ v e c C o n n D a t a . c l e a r ( ) ; 
00288  
00289  
00290  
00291          m _ P i d l M a n a g e r . C r e a t e (   L " E x a m p l e   H o s t   1 " ,   L " u s e r 1 " ,   L " h o s t 1 . e x a m p l e . c o m " ,   
00292  
00293                                                      L " / h o m e / u s e r 1 " ,   2 2 ,   & p D a t a T e m p   ) ; 
00294  
00295          m _ v e c C o n n D a t a . p u s h _ b a c k ( * ( m _ P i d l M a n a g e r . V a l i d a t e ( p D a t a T e m p ) ) ) ; 
00296  
00297          m _ P i d l M a n a g e r . D e l e t e ( p D a t a T e m p ) ; 
00298  
00299  
00300  
00301          m _ P i d l M a n a g e r . C r e a t e (   L " C a f é ,   p r i x   7 ¬ " ,   L " u s e r 2 " ,   L " h o s t 2 . e x a m p l e . c o m " ,   
00302  
00303                                                      L " / h o m e / u s e r 2 " ,   2 2 ,   & p D a t a T e m p   ) ; 
00304  
00305          m _ v e c C o n n D a t a . p u s h _ b a c k ( * ( m _ P i d l M a n a g e r . V a l i d a t e ( p D a t a T e m p ) ) ) ; 
00306  
00307          m _ P i d l M a n a g e r . D e l e t e ( p D a t a T e m p ) ; 
00308  
00309  
00310  
00311          m _ P i d l M a n a g e r . C r e a t e (   L " 'D91(J)" ,   L " 4J/'" ,   L " h o s t 3 . e x a m p l e . c o m " ,   
00312  
00313                                                      L " / h o m e / 4J/'" ,   2 2 2 2 ,   & p D a t a T e m p ) ; 
00314  
00315          m _ v e c C o n n D a t a . p u s h _ b a c k ( * ( m _ P i d l M a n a g e r . V a l i d a t e ( p D a t a T e m p ) ) ) ; 
00316  
00317          m _ P i d l M a n a g e r . D e l e t e ( p D a t a T e m p ) ; 
00318  
00319  
00320  
00321          / /   C r e a t e   a n   e n u m e r a t o r   w i t h   C C o m E n u m O n S T L < >   a n d   o u r   c o p y   p o l i c y   c l a s s . 
00322  
00323          C C o m O b j e c t < C E n u m I D L i s t I m p l > *   p E n u m ; 
00324  
00325          h r   =   C C o m O b j e c t < C E n u m I D L i s t I m p l > : : C r e a t e I n s t a n c e   (   & p E n u m   ) ; 
00326  
00327          i f   (   F A I L E D ( h r )   ) 
00328  
00329                  r e t u r n   h r ; 
00330  
00331  
00332  
00333          / /   A d d R e f ( )   t h e   o b j e c t   w h i l e   w e ' r e   u s i n g   i t . 
00334  
00335  
00336  
00337          p E n u m - > A d d R e f ( ) ; 
00338  
00339  
00340  
00341          / /   I n i t   t h e   e n u m e r a t o r .     I n i t ( )   w i l l   A d d R e f ( )   o u r   I U n k n o w n   ( o b t a i n e d   w i t h 
00342  
00343          / /   G e t U n k n o w n ( ) )   s o   t h i s   o b j e c t   w i l l   s t a y   a l i v e   a s   l o n g   a s   t h e   e n u m e r a t o r   
00344  
00345          / /   n e e d s   a c c e s s   t o   t h e   v e c t o r   m _ v e c D r i v e L t r s . 
00346  
00347  
00348  
00349          h r   =   p E n u m - > I n i t   (   G e t U n k n o w n ( ) ,   m _ v e c C o n n D a t a   ) ; 
00350  
00351  
00352  
00353          / /   R e t u r n   a n   I E n u m I D L i s t   i n t e r f a c e   t o   t h e   c a l l e r . 
00354  
00355  
00356  
00357          i f   (   S U C C E E D E D ( h r )   ) 
00358  
00359                  h r   =   p E n u m - > Q u e r y I n t e r f a c e   (   I I D _ I E n u m I D L i s t ,   ( v o i d * * )   p p E n u m I D L i s t   ) ; 
00360  
00361  
00362  
00363          p E n u m - > R e l e a s e ( ) ; 
00364  
00365  
00366  
00367          r e t u r n   h r ; 
00368  
00369  } 
00370  
00371  
00372  
00373  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00374  
00375    *   C H o s t F o l d e r : : C r e a t e V i e w O b j e c t   :   I S h e l l F o l d e r 
00376  
00377    *   R e t u r n s   t h e   r e q u e s t e d   C O M   i n t e r f a c e   f o r   a s p e c t s   o f   t h e   f o l d e r ' s   
00378  
00379    *   f u n c t i o n a l i t y ,   p r i m a r i l y   t h e   S h e l l V i e w   o b j e c t   b u t   a l s o   c o n t e x t   m e n u s   e t c . 
00380  
00381    *   C o n t r a s t e d   w i t h   G e t U I O b j e c t O f   w h i c h   p e r f o r m s   a   s i m i l a r   f u n c t i o n   b u t 
00382  
00383    *   f o r   t h e   o b j e c t s   c o n t a i n t e d   * w i t h i n *   t h e   f o l d e r . 
00384  
00385    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00386  
00387  S T D M E T H O D I M P   C H o s t F o l d e r : : C r e a t e V i e w O b j e c t (   _ _ i n _ o p t   H W N D   h w n d O w n e r ,   
00388  
00389                                                                                            _ _ i n   R E F I I D   r i i d ,   
00390  
00391                                                                                            _ _ d e r e f _ o u t   v o i d   * * p p v O u t   ) 
00392  
00393  { 
00394  
00395          A T L T R A C E ( " C H o s t F o l d e r : : C r e a t e V i e w O b j e c t   c a l l e d \ n " ) ; 
00396  
00397          ( v o i d ) h w n d O w n e r ;   / /   N o t   a   c u s t o m   f o l d e r   v i e w .     N o   p a r e n t   w i n d o w   n e e d e d 
00398  
00399          
00400  
00401          * p p v O u t   =   N U L L ; 
00402  
00403  
00404  
00405          H R E S U L T   h r   =   E _ N O I N T E R F A C E ; 
00406  
00407  
00408  
00409          i f   ( r i i d   = =   I I D _ I S h e l l V i e w ) 
00410  
00411          { 
00412  
00413                  A T L T R A C E ( " \ t \ t R e q u e s t :   I I D _ I S h e l l V i e w \ n " ) ; 
00414  
00415                  S F V _ C R E A T E   s f v D a t a   =   {   s i z e o f ( s f v D a t a ) ,   0   } ; 
00416  
00417  
00418  
00419                  h r   =   Q u e r y I n t e r f a c e (   I I D _ P P V _ A R G S ( & s f v D a t a . p s h f )   ) ; 
00420  
00421                  i f   ( S U C C E E D E D ( h r ) ) 
00422  
00423                  { 
00424  
00425                          s f v D a t a . p s v O u t e r   =   N U L L ; 
00426  
00427                          s f v D a t a . p s f v c b   =   N U L L ;   
00428  
00429                          h r   =   S H C r e a t e S h e l l F o l d e r V i e w (   & s f v D a t a ,   ( I S h e l l V i e w * * ) p p v O u t   ) ; 
00430  
00431                          s f v D a t a . p s h f - > R e l e a s e ( ) ; 
00432  
00433                  } 
00434  
00435          } 
00436  
00437          e l s e   i f   ( r i i d   = =   I I D _ I S h e l l D e t a i l s ) 
00438  
00439          { 
00440  
00441                  A T L T R A C E ( " \ t \ t R e q u e s t :   I I D _ I S h e l l D e t a i l s \ n " ) ; 
00442  
00443                  r e t u r n   Q u e r y I n t e r f a c e ( r i i d ,   p p v O u t ) ; 
00444  
00445          } 
00446  
00447          
00448  
00449          A T L T R A C E ( " \ t \ t R e q u e s t :   < u n k n o w n > \ n " ) ; 
00450  
00451  
00452  
00453          r e t u r n   h r ; 
00454  
00455  } 
00456  
00457  
00458  
00459  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00460  
00461    *   C H o s t F o l d e r : : G e t U I O b j e c t O f   :   I S h e l l F o l d e r 
00462  
00463    *   R e t r i e v e   a n   o p t i o n a l   i n t e r f a c e   s u p p o r t e d   b y   o b j e c t s   i n   t h e   f o l d e r . 
00464  
00465    *   T h i s   m e t h o d   i s   c a l l e d   w h e n   t h e   s h e l l   i s   r e q u e s t i n g   e x t r a   i n f o r m a t i o n 
00466  
00467    *   a b o u t   a n   o b j e c t   s u c h   a s   i t s   i c o n ,   c o n t e x t   m e n u ,   t h u m b n a i l   i m a g e   e t c . 
00468  
00469    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00470  
00471  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t U I O b j e c t O f (   H W N D   h w n d O w n e r ,   U I N T   c P i d l , 
00472  
00473          _ _ i n _ e c o u n t _ o p t ( c P i d l )   P C U I T E M I D _ C H I L D _ A R R A Y   a P i d l ,   R E F I I D   r i i d , 
00474  
00475          _ _ r e s e r v e d   L P U I N T   p u R e s e r v e d ,   _ _ o u t   v o i d * *   p p v R e t u r n   ) 
00476  
00477  { 
00478  
00479          A T L T R A C E ( " C H o s t F o l d e r : : G e t U I O b j e c t O f   c a l l e d \ n " ) ; 
00480  
00481          ( v o i d ) h w n d O w n e r ;   / /   N o   u s e r   i n p u t   r e q u i r e d 
00482  
00483          ( v o i d ) p u R e s e r v e d ; 
00484  
00485  
00486  
00487          * p p v R e t u r n   =   N U L L ; 
00488  
00489          
00490  
00491          / * 
00492  
00493          I C o n t e x t M e n u         T h e   c i d l   p a r a m e t e r   c a n   b e   g r e a t e r   t h a n   o r   e q u a l   t o   o n e . 
00494  
00495          I C o n t e x t M e n u 2       T h e   c i d l   p a r a m e t e r   c a n   b e   g r e a t e r   t h a n   o r   e q u a l   t o   o n e . 
00496  
00497          I D a t a O b j e c t           T h e   c i d l   p a r a m e t e r   c a n   b e   g r e a t e r   t h a n   o r   e q u a l   t o   o n e . 
00498  
00499          I D r o p T a r g e t           T h e   c i d l   p a r a m e t e r   c a n   o n l y   b e   o n e . 
00500  
00501          I E x t r a c t I c o n         T h e   c i d l   p a r a m e t e r   c a n   o n l y   b e   o n e . 
00502  
00503          I Q u e r y I n f o             T h e   c i d l   p a r a m e t e r   c a n   o n l y   b e   o n e . 
00504  
00505          * / 
00506  
00507  
00508  
00509          i f   ( r i i d   = =   I I D _ I E x t r a c t I c o n W ) 
00510  
00511          { 
00512  
00513                  A T L T R A C E ( " \ t \ t R e q u e s t :   I I D _ I E x t r a c t I c o n W \ n " ) ; 
00514  
00515                  A T L A S S E R T (   c P i d l   = =   1   ) ;   / /   O n l y   o n e   f i l e   ' s e l e c t e d ' 
00516  
00517  
00518  
00519                  r e t u r n   Q u e r y I n t e r f a c e ( r i i d ,   p p v R e t u r n ) ; 
00520  
00521          } 
00522  
00523          e l s e   i f   ( r i i d   = =   I I D _ I Q u e r y A s s o c i a t i o n s ) 
00524  
00525          { 
00526  
00527                  A T L T R A C E ( " \ t \ t R e q u e s t :   I I D _ I Q u e r y A s s o c i a t i o n s \ n " ) ; 
00528  
00529                  A T L A S S E R T (   c P i d l   = =   1   ) ;   / /   O n l y   o n e   f i l e   ' s e l e c t e d ' 
00530  
00531  
00532  
00533                  H R E S U L T   h r   =   A s s o c C r e a t e (   C L S I D _ Q u e r y A s s o c i a t i o n s ,   
00534  
00535                                                                      I I D _ I Q u e r y A s s o c i a t i o n s , 
00536  
00537                                                                      p p v R e t u r n ) ; 
00538  
00539                  i f   ( S U C C E E D E D ( h r ) )   
00540  
00541                  { 
00542  
00543                          / /   G e t   C L S I D   i n   { D W O R D - W O R D - W O R D - W O R D - W O R D . D W O R D }   f o r m 
00544  
00545                          L P O L E S T R   p s z ; 
00546  
00547                          S t r i n g F r o m C L S I D ( _ _ u u i d o f ( C H o s t F o l d e r ) ,   & p s z ) ; 
00548  
00549  
00550  
00551                          / /   I n i t i a l i s e   d e f a u l t   a s s o c   p r o v i d e r   t o   u s e   S w i s h   C L S I D   k e y   f o r   d a t a 
00552  
00553                          r e i n t e r p r e t _ c a s t < I Q u e r y A s s o c i a t i o n s * > ( * p p v R e t u r n ) - > I n i t ( 
00554  
00555                                  A S S O C F _ I N I T _ D E F A U L T T O S T A R ,   p s z ,   N U L L ,   N U L L ) ; 
00556  
00557  
00558  
00559                          C o T a s k M e m F r e e (   p s z   ) ; 
00560  
00561                  } 
00562  
00563                  r e t u r n   h r ; 
00564  
00565          } 
00566  
00567          e l s e   i f   ( r i i d   = =   I I D _ I C o n t e x t M e n u ) 
00568  
00569          { 
00570  
00571                  A T L T R A C E ( " \ t \ t R e q u e s t :   I I D _ I C o n t e x t M e n u \ n " ) ; 
00572  
00573                  A T L A S S E R T (   c P i d l   ) ;   / /   A t   l e a s t   o n e   i t e m   s e l e c t e d 
00574  
00575  
00576  
00577                  H R E S U L T   h r ; 
00578  
00579                  C C o m O b j e c t < C H o s t C o n t e x t M e n u >   * p M e n u ; 
00580  
00581  
00582  
00583                  / /   C r e a t e   I C o n t e x t M e n u   i n t e r f a c e   f o r   f i r s t   R e m o t e F o l d e r   P I D L   i n   a r r a y 
00584  
00585                  h r   =   C C o m O b j e c t < C H o s t C o n t e x t M e n u > : : C r e a t e I n s t a n c e (   & p M e n u   ) ; 
00586  
00587                  i f   ( F A I L E D ( h r ) ) 
00588  
00589                          r e t u r n   h r ; 
00590  
00591  
00592  
00593                  p M e n u - > A d d R e f ( ) ; 
00594  
00595  
00596  
00597                  / /   R e t r i e v e   r e q u e s t e d   i n t e r f a c e 
00598  
00599                  h r   =   p M e n u - > Q u e r y I n t e r f a c e (   r i i d ,   p p v R e t u r n   ) ; 
00600  
00601                  i f   ( F A I L E D ( h r ) ) 
00602  
00603                  { 
00604  
00605                          p M e n u - > R e l e a s e ( ) ; 
00606  
00607                          r e t u r n   E _ N O I N T E R F A C E ; 
00608  
00609                  } 
00610  
00611  
00612  
00613                  / /   I n i t i a l i s e   t h e   c o n t e x t   m e n u   o b j e c t   b y   p a s s i n g   i t   t h e   a b s o l u t e   P I D L 
00614  
00615                  / /   o f   t h e   h o s t   c o n n e c t i o n   o b j e c t   t h a t   i t   b e l o n g s   t o .     U s i n g   t h i s 
00616  
00617                  / /   t h e   m e n u   c a n   i n v o k e   S h e l l E x e c u t e E x   o n   t h e   r e m o t e   f o l d e r   i f   ' C o n n e c t ' 
00618  
00619                  / /   i s   c h o s e n . 
00620  
00621                  P I D L I S T _ A B S O L U T E   p i d l T o H o s t   =   I L C o m b i n e ( m _ p i d l ,   a P i d l [ 0 ] ) ; 
00622  
00623                  h r   =   p M e n u - > I n i t i a l i z e (   p i d l T o H o s t   ) ; 
00624  
00625                  i f   ( F A I L E D ( h r ) ) 
00626  
00627                          p M e n u - > R e l e a s e ( ) ; 
00628  
00629                  I L F r e e (   p i d l T o H o s t   ) ; 
00630  
00631  
00632  
00633                  r e t u r n   h r ; 
00634  
00635          } 
00636  
00637  
00638  
00639          r e t u r n   E _ N O I N T E R F A C E ; 
00640  
00641  } 
00642  
00643  
00644  
00645  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00646  
00647    *   C H o s t F o l d e r : : G e t D i s p l a y N a m e O f   :   I S h e l l F o l d e r 
00648  
00649    *   R e t r i e v e s   t h e   d i s p l a y   n a m e   f o r   t h e   s p e c i f i e d   f i l e   o b j e c t   o r   s u b f o l d e r . 
00650  
00651    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00652  
00653  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t D i s p l a y N a m e O f (   _ _ i n   P C U I T E M I D _ C H I L D   p i d l ,   
00654  
00655                                                                                            _ _ i n   S H G D N F   u F l a g s ,   
00656  
00657                                                                                            _ _ o u t   S T R R E T   * p N a m e   ) 
00658  
00659  { 
00660  
00661          A T L T R A C E ( " C H o s t F o l d e r : : G e t D i s p l a y N a m e O f   c a l l e d \ n " ) ; 
00662  
00663  
00664  
00665          C S t r i n g   s t r N a m e ; 
00666  
00667  
00668  
00669          i f   ( u F l a g s   &   S H G D N _ F O R P A R S I N G ) 
00670  
00671          { 
00672  
00673                  / /   W e   d o   n o t   c a r e   i f   t h e   n a m e   i s   r e l a t i v e   t o   t h e   f o l d e r   o r   t h e 
00674  
00675                  / /   d e s k t o p   f o r   t h e   p a r s i n g   n a m e   -   a l w a y s   r e t u r n   c a n o n i c a l   s t r i n g : 
00676  
00677                  / /           s f t p : / / u s e r n a m e @ h o s t n a m e : p o r t / p a t h 
00678  
00679  
00680  
00681                  / /   T O D O :     i f   ! S H G D N _ I N F O L D E R   t h e   p i d l   m a y   n o t   b e   s i n g l e - l e v e l 
00682  
00683                  / /   s o   w e   s h o u l d   a l w a y s   s e e k   t o   t h e   l a s t   p i d l   b e f o r e   e x t r a c t i n g   i n f o 
00684  
00685  
00686  
00687                  s t r N a m e   =   _ G e t L o n g N a m e F r o m P I D L ( p i d l ,   t r u e ) ; 
00688  
00689          } 
00690  
00691          e l s e   i f ( u F l a g s   &   S H G D N _ F O R A D D R E S S B A R ) 
00692  
00693          { 
00694  
00695                  / /   W e   d o   n o t   c a r e   i f   t h e   n a m e   i s   r e l a t i v e   t o   t h e   f o l d e r   o r   t h e 
00696  
00697                  / /   d e s k t o p   f o r   t h e   p a r s i n g   n a m e   -   a l w a y s   r e t u r n   c a n o n i c a l   s t r i n g : 
00698  
00699                  / /           s f t p : / / u s e r n a m e @ h o s t n a m e : p o r t / p a t h 
00700  
00701                  / /   u n l e s s   t h e   p o r t   i s   t h e   d e f a u l t   p o r t   i n   w h i c h   c a s e   i t   i s   o m m i t t e d : 
00702  
00703                  / /           s f t p : / / u s e r n a m e @ h o s t n a m e / p a t h 
00704  
00705  
00706  
00707                  s t r N a m e   =   _ G e t L o n g N a m e F r o m P I D L ( p i d l ,   f a l s e ) ; 
00708  
00709          } 
00710  
00711          e l s e 
00712  
00713          { 
00714  
00715                  / /   W e   d o   n o t   c a r e   i f   t h e   n a m e   i s   r e l a t i v e   t o   t h e   f o l d e r   o r   t h e 
00716  
00717                  / /   d e s k t o p   f o r   t h e   p a r s i n g   n a m e   -   a l w a y s   r e t u r n   t h e   l a b e l : 
00718  
00719                  A T L A S S E R T ( u F l a g s   = =   S H G D N _ N O R M A L   | |   u F l a g s   = =   S H G D N _ I N F O L D E R   | | 
00720  
00721                          ( u F l a g s   &   S H G D N _ F O R E D I T I N G ) ) ; 
00722  
00723  
00724  
00725                  s t r N a m e   =   _ G e t L a b e l F r o m P I D L ( p i d l ) ; 
00726  
00727          } 
00728  
00729  
00730  
00731          / /   S t o r e   i n   a   S T R R E T   a n d   r e t u r n 
00732  
00733          p N a m e - > u T y p e   =   S T R R E T _ W S T R ; 
00734  
00735  
00736  
00737          r e t u r n   S H S t r D u p W (   s t r N a m e ,   & p N a m e - > p O l e S t r   ) ; 
00738  
00739  } 
00740  
00741  
00742  
00743  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00744  
00745    *   C H o s t F o l d e r : : G e t A t t r i b u t e s O f   :   I S h e l l F o l d e r 
00746  
00747    *   R e t u r n s   t h e   a t t r i b u t e s   f o r   t h e   i t e m s   w h o s e   P I D L s   a r e   p a s s e d   i n . 
00748  
00749    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00750  
00751  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t A t t r i b u t e s O f ( 
00752  
00753          U I N T   c I d l , 
00754  
00755          _ _ i n _ e c o u n t _ o p t (   c I d l   )   P C U I T E M I D _ C H I L D _ A R R A Y   a P i d l , 
00756  
00757          _ _ i n o u t   S F G A O F   * p d w A t t r i b s   ) 
00758  
00759  { 
00760  
00761          A T L T R A C E ( " C H o s t F o l d e r : : G e t A t t r i b u t e s O f   c a l l e d \ n " ) ; 
00762  
00763          ( v o i d ) a P i d l ;   / /   A l l   i t e m s   a r e   f o l d e r s .   N o   n e e d   t o   c h e c k   P I D L . 
00764  
00765          ( v o i d ) c I d l ; 
00766  
00767  
00768  
00769          D W O R D   d w A t t r i b s   =   0 ; 
00770  
00771          d w A t t r i b s   | =   S F G A O _ F O L D E R ; 
00772  
00773          d w A t t r i b s   | =   S F G A O _ H A S S U B F O L D E R ; 
00774  
00775          * p d w A t t r i b s   & =   d w A t t r i b s ; 
00776  
00777  
00778  
00779          r e t u r n   S _ O K ; 
00780  
00781  } 
00782  
00783  
00784  
00785  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00786  
00787    *   C H o s t F o l d e r : : C o m p a r e I D s   :   I S h e l l F o l d e r 
00788  
00789    *   D e t e r m i n e s   t h e   r e l a t i v e   o r d e r   o f   t w o   f i l e   o b j e c t s   o r   f o l d e r s . 
00790  
00791    *   G i v e n   t h e i r   i t e m   i d e n t i f i e r   l i s t s ,   t h e   t w o   o b j e c t s   a r e   c o m p a r e d   a n d   a 
00792  
00793    *   r e s u l t   c o d e   i s   r e t u r n e d . 
00794  
00795    *       N e g a t i v e :   p i d l 1   <   p i d l 2 
00796  
00797    *       P o s i t i v e :   p i d l 1   >   p i d l 2 
00798  
00799    *       Z e r o :           p i d l 1   = =   p i d l 2 
00800  
00801    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00802  
00803  S T D M E T H O D I M P   C H o s t F o l d e r : : C o m p a r e I D s (   L P A R A M   l P a r a m ,   L P C I T E M I D L I S T   p i d l 1 , 
00804  
00805                                                                                L P C I T E M I D L I S T   p i d l 2   ) 
00806  
00807  { 
00808  
00809          A T L T R A C E ( " C H o s t F o l d e r : : C o m p a r e I D s   c a l l e d \ n " ) ; 
00810  
00811          ( v o i d ) l P a r a m ;   / /   U s e   d e f a u l t   s o r t i n g   r u l e   a l w a y s 
00812  
00813  
00814  
00815          A T L A S S E R T ( p i d l 1   ! =   N U L L ) ;   A T L A S S E R T ( p i d l 2   ! =   N U L L ) ; 
00816  
00817  
00818  
00819          / /   R o u g h   g u e s t i m a t e :   c o u n t r y - c o d e   +   . 
00820  
00821          A T L A S S E R T ( m _ P i d l M a n a g e r . G e t H o s t ( p i d l 1 ) . G e t L e n g t h ( )   >   3   ) ; 
00822  
00823          A T L A S S E R T ( m _ P i d l M a n a g e r . G e t H o s t ( p i d l 2 ) . G e t L e n g t h ( )   >   3   ) ; 
00824  
00825  
00826  
00827          / /   T O D O :   T h i s   i s   n o t   e n o u g h .   M u s t   o n l y   r e t u r n   Z e r o   ( = = )   i f   A L L 
00828  
00829          / /               f i e l d s   a r e   e q u a l 
00830  
00831          r e t u r n   M A K E _ H R E S U L T ( S E V E R I T Y _ S U C C E S S ,   0 ,   
00832  
00833                  ( u n s i g n e d   s h o r t ) w c s c m p ( m _ P i d l M a n a g e r . G e t H o s t ( p i d l 1 ) ,   
00834  
00835                                                                m _ P i d l M a n a g e r . G e t H o s t ( p i d l 2 ) ) ) ; 
00836  
00837  } 
00838  
00839  
00840  
00841  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00842  
00843    *   C H o s t F o l d e r : : E n u m S e a r c h e s   :   I S h e l l F o l d e r 2 
00844  
00845    *   R e t u r n s   p o i n t e r   t o   i n t e r f a c e   a l l o w i n g   c l i e n t   t o   e n u m e r a t e   s e a r c h   o b j e c t s . 
00846  
00847    *   W e   d o   n o t   s u p p o r t   s e a r c h   o b j e c t s . 
00848  
00849    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00850  
00851  S T D M E T H O D I M P   C H o s t F o l d e r : : E n u m S e a r c h e s (   I E n u m E x t r a S e a r c h   * * p p E n u m   ) 
00852  
00853  { 
00854  
00855          A T L T R A C E ( " C H o s t F o l d e r : : E n u m S e a r c h e s   c a l l e d \ n " ) ; 
00856  
00857          ( v o i d ) p p E n u m ; 
00858  
00859          r e t u r n   E _ N O I N T E R F A C E ; 
00860  
00861  } 
00862  
00863  
00864  
00865  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00866  
00867    *   C H o s t F o l d e r : : G e t D e f a u l t C o l u m n   :   I S h e l l F o l d e r 2 
00868  
00869    *   G e t s   t h e   d e f a u l t   s o r t i n g   a n d   d i s p l a y   c o l u m n s . 
00870  
00871    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00872  
00873  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t D e f a u l t C o l u m n (   D W O R D   d w R e s e r v e d ,   
00874  
00875                                                                                          _ _ o u t   U L O N G   * p S o r t ,   
00876  
00877                                                                                          _ _ o u t   U L O N G   * p D i s p l a y   ) 
00878  
00879  { 
00880  
00881          A T L T R A C E ( " C H o s t F o l d e r : : G e t D e f a u l t C o l u m n   c a l l e d \ n " ) ; 
00882  
00883          ( v o i d ) d w R e s e r v e d ; 
00884  
00885  
00886  
00887          / /   S o r t   a n d   d i s p l a y   b y   t h e   l a b e l   ( f r i e n d l y   d i s p l a y   n a m e ) 
00888  
00889          * p S o r t   =   0 ; 
00890  
00891          * p D i s p l a y   =   0 ; 
00892  
00893  
00894  
00895          r e t u r n   S _ O K ; 
00896  
00897  } 
00898  
00899  
00900  
00901  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
00902  
00903    *   C H o s t F o l d e r : : G e t D e f a u l t C o l u m n S t a t e   :   I S h e l l F o l d e r 2 
00904  
00905    *   R e t u r n s   t h e   d e f a u l t   s t a t e   f o r   t h e   c o l u m n   s p e c i f i e d   b y   i n d e x . 
00906  
00907    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
00908  
00909  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t D e f a u l t C o l u m n S t a t e (   _ _ i n   U I N T   i C o l u m n ,   
00910  
00911                                                                                                    _ _ o u t   S H C O L S T A T E F   * p c s F l a g s   ) 
00912  
00913  { 
00914  
00915          A T L T R A C E ( " C H o s t F o l d e r : : G e t D e f a u l t C o l u m n S t a t e   c a l l e d \ n " ) ; 
00916  
00917  
00918  
00919          s w i t c h   ( i C o l u m n ) 
00920  
00921          { 
00922  
00923          c a s e   0 :   / /   D i s p l a y   n a m e   ( L a b e l ) 
00924  
00925          c a s e   1 :   / /   H o s t n a m e 
00926  
00927          c a s e   2 :   / /   U s e r n a m e 
00928  
00929          c a s e   4 :   / /   R e m o t e   f i l e s y s t e m   p a t h 
00930  
00931                  * p c s F l a g s   =   S H C O L S T A T E _ T Y P E _ S T R   |   S H C O L S T A T E _ O N B Y D E F A U L T ;   b r e a k ; 
00932  
00933          c a s e   3 :   / /   S F T P   p o r t 
00934  
00935                  * p c s F l a g s   =   S H C O L S T A T E _ T Y P E _ I N T   |   S H C O L S T A T E _ O N B Y D E F A U L T ;   b r e a k ; 
00936  
00937          c a s e   5 :   / /   T y p e 
00938  
00939                  * p c s F l a g s   =   S H C O L S T A T E _ T Y P E _ S T R   |   S H C O L S T A T E _ S E C O N D A R Y U I ;   b r e a k ; 
00940  
00941          d e f a u l t : 
00942  
00943                  r e t u r n   E _ F A I L ; 
00944  
00945          } 
00946  
00947  
00948  
00949          r e t u r n   S _ O K ; 
00950  
00951  } 
00952  
00953  
00954  
00955  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t D e t a i l s E x (   _ _ i n   P C U I T E M I D _ C H I L D   p i d l ,   
00956  
00957                                                                                    _ _ i n   c o n s t   S H C O L U M N I D   * p s c i d , 
00958  
00959                                                                                    _ _ o u t   V A R I A N T   * p v   ) 
00960  
00961  { 
00962  
00963          A T L T R A C E ( " C H o s t F o l d e r : : G e t D e t a i l s E x   c a l l e d \ n " ) ; 
00964  
00965  
00966  
00967          / /   I f   p i d l :   R e q u e s t   i s   f o r   a n   i t e m   d e t a i l .     R e t r i e v e   f r o m   p i d l   a n d 
00968  
00969          / /                     r e t u r n   s t r i n g 
00970  
00971          / /   E l s e :         R e q u e s t   i s   f o r   a   c o l u m n   h e a d i n g .     R e t u r n   h e a d i n g   a s   B S T R 
00972  
00973  
00974  
00975          / /   D i s p l a y   n a m e   ( L a b e l ) 
00976  
00977          i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ I t e m N a m e D i s p l a y ) ) 
00978  
00979          { 
00980  
00981                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ I t e m N a m e D i s p l a y \ n " ) ; 
00982  
00983                  
00984  
00985                  r e t u r n   p i d l   ? 
00986  
00987                          _ F i l l D e t a i l s V a r i a n t (   m _ P i d l M a n a g e r . G e t L a b e l ( p i d l ) ,   p v   )   : 
00988  
00989                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " N a m e " ) ,   p v   ) ; 
00990  
00991          } 
00992  
00993          / /   H o s t n a m e 
00994  
00995          e l s e   i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ C o m p u t e r N a m e ) ) 
00996  
00997          { 
00998  
00999                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ C o m p u t e r N a m e \ n " ) ; 
01000  
01001  
01002  
01003                  r e t u r n   p i d l   ? 
01004  
01005                          _ F i l l D e t a i l s V a r i a n t (   m _ P i d l M a n a g e r . G e t H o s t ( p i d l ) ,   p v   )   : 
01006  
01007                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " H o s t " ) ,   p v   ) ; 
01008  
01009          } 
01010  
01011          / /   U s e r n a m e 
01012  
01013          e l s e   i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ S w i s h H o s t U s e r ) ) 
01014  
01015          { 
01016  
01017                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ S w i s h H o s t U s e r \ n " ) ; 
01018  
01019                  
01020  
01021                  r e t u r n   p i d l   ? 
01022  
01023                          _ F i l l D e t a i l s V a r i a n t (   m _ P i d l M a n a g e r . G e t U s e r ( p i d l ) ,   p v   )   : 
01024  
01025                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " U s e r n a m e " ) ,   p v   ) ; 
01026  
01027          } 
01028  
01029          / /   S F T P   p o r t 
01030  
01031          e l s e   i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ S w i s h H o s t P o r t ) ) 
01032  
01033          { 
01034  
01035                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ S w i s h H o s t P o r t \ n " ) ; 
01036  
01037                  
01038  
01039                  r e t u r n   p i d l   ? 
01040  
01041                          _ F i l l D e t a i l s V a r i a n t (   m _ P i d l M a n a g e r . G e t P o r t S t r ( p i d l ) ,   p v   )   : 
01042  
01043                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " P o r t " ) ,   p v   ) ; 
01044  
01045          } 
01046  
01047          / /   R e m o t e   f i l e s y s t e m   p a t h 
01048  
01049          e l s e   i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ I t e m P a t h D i s p l a y ) ) 
01050  
01051          { 
01052  
01053                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ I t e m P a t h D i s p l a y \ n " ) ; 
01054  
01055  
01056  
01057                  r e t u r n   p i d l   ? 
01058  
01059                          _ F i l l D e t a i l s V a r i a n t (   m _ P i d l M a n a g e r . G e t P a t h ( p i d l ) ,   p v   )   : 
01060  
01061                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " R e m o t e   P a t h " ) ,   p v   ) ; 
01062  
01063          } 
01064  
01065          / /   T y p e :   a l w a y s   ' N e t w o r k   D r i v e ' 
01066  
01067          e l s e   i f   ( I s E q u a l P r o p e r t y K e y ( * p s c i d ,   P K E Y _ I t e m T y p e ) ) 
01068  
01069          { 
01070  
01071                  A T L T R A C E ( " \ t \ t R e q u e s t :   P K E Y _ I t e m T y p e \ n " ) ; 
01072  
01073  
01074  
01075                  r e t u r n   p i d l   ? 
01076  
01077                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " N e t w o r k   D r i v e " ) ,   p v   )   : 
01078  
01079                          _ F i l l D e t a i l s V a r i a n t (   _ T ( " T y p e " ) ,   p v   ) ; 
01080  
01081          } 
01082  
01083  
01084  
01085          A T L T R A C E ( " \ t \ t R e q u e s t :   < u n k n o w n > \ n " ) ; 
01086  
01087  
01088  
01089          / /   A s s e r t   u n l e s s   r e q u e s t   i s   o n e   o f   t h e   s u p p o r t e d   p r o p e r t i e s 
01090  
01091          / /   T O D O :   S y s t e m . F i n d D a t a   t i g g e r s   t h i s 
01092  
01093          / /   U N R E A C H A B L E ; 
01094  
01095  
01096  
01097          r e t u r n   E _ F A I L ; 
01098  
01099  } 
01100  
01101  
01102  
01103  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01104  
01105    *   C H o s t F o l d e r : : G e t D e f a u l t C o l u m n S t a t e   :   I S h e l l F o l d e r 2 
01106  
01107    *   C o n v e r t   c o l u m n   t o   a p p r o p r i a t e   p r o p e r t y   s e t   I D   ( F M T I D )   a n d   p r o p e r t y   I D   ( P I D ) . 
01108  
01109    *   I M P O R T A N T :     T h i s   f u n c t i o n   d e f i n e s   w h i c h   d e t a i l s   a r e   s u p p o r t e d   a s 
01110  
01111    *   G e t D e t a i l s O f ( )   j u s t   f o r w a r d s   t h e   c o l u m n I D   h e r e .     T h e   f i r s t   c o l u m n   t h a t   w e 
01112  
01113    *   r e t u r n   E _ F A I L   f o r   m a r k s   t h e   e n d   o f   t h e   s u p p o r t e d   d e t a i l s . 
01114  
01115    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01116  
01117  S T D M E T H O D I M P   C H o s t F o l d e r : : M a p C o l u m n T o S C I D (   _ _ i n   U I N T   i C o l u m n ,   
01118  
01119                                                                                          _ _ o u t   P R O P E R T Y K E Y   * p s c i d   ) 
01120  
01121  { 
01122  
01123          A T L T R A C E ( " C H o s t F o l d e r : : M a p C o l u m n T o S C I D   c a l l e d \ n " ) ; 
01124  
01125  
01126  
01127          s w i t c h   ( i C o l u m n ) 
01128  
01129          { 
01130  
01131          c a s e   0 :   / /   D i s p l a y   n a m e   ( L a b e l ) 
01132  
01133                  * p s c i d   =   P K E Y _ I t e m N a m e D i s p l a y ;   b r e a k ; 
01134  
01135          c a s e   1 :   / /   H o s t n a m e 
01136  
01137                  * p s c i d   =   P K E Y _ C o m p u t e r N a m e ;   b r e a k ; 
01138  
01139          c a s e   2 :   / /   U s e r n a m e 
01140  
01141                  * p s c i d   =   P K E Y _ S w i s h H o s t U s e r ;   b r e a k ; 
01142  
01143          c a s e   3 :   / /   S F T P   p o r t 
01144  
01145                  * p s c i d =   P K E Y _ S w i s h H o s t P o r t ;   b r e a k ; 
01146  
01147          c a s e   4 :   / /   R e m o t e   f i l e s y s t e m   p a t h 
01148  
01149                  * p s c i d   =   P K E Y _ I t e m P a t h D i s p l a y ;   b r e a k ; 
01150  
01151          c a s e   5 :   / /   T y p e :   a l w a y s   ' N e t w o r k   D r i v e ' 
01152  
01153                  * p s c i d   =   P K E Y _ I t e m T y p e ;   b r e a k ; 
01154  
01155          d e f a u l t : 
01156  
01157                  r e t u r n   E _ F A I L ; 
01158  
01159          } 
01160  
01161  
01162  
01163          r e t u r n   S _ O K ; 
01164  
01165  } 
01166  
01167  
01168  
01169  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01170  
01171    *   C H o s t F o l d e r : : C o m p a r e I D s   :   I E x t r a c t I c o n 
01172  
01173    *   E x t r a c t   a n   i c o n   b i t m a p   g i v e n   t h e   i n f o r m a t i o n   p a s s e d . 
01174  
01175    *   W e   r e t u r n   S _ F A L S E   t o   t e l l   t h e   s h e l l   t o   e x t r a c t   t h e   i c o n s   i t s e l f . 
01176  
01177    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01178  
01179  S T D M E T H O D I M P   C H o s t F o l d e r : : E x t r a c t (   L P C T S T R ,   U I N T ,   H I C O N   * ,   H I C O N   * ,   U I N T   ) 
01180  
01181  { 
01182  
01183          A T L T R A C E ( " C H o s t F o l d e r : : E x t r a c t   c a l l e d \ n " ) ; 
01184  
01185          r e t u r n   S _ F A L S E ; 
01186  
01187  } 
01188  
01189  
01190  
01191  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01192  
01193    *   C H o s t F o l d e r : : C o m p a r e I D s   :   I E x t r a c t I c o n 
01194  
01195    *   R e t r i e v e   t h e   l o c a t i o n   o f   t h e   a p p r o p r i a t e   i c o n . 
01196  
01197    *   W e   s e t   a l l   S F T P   h o s t s   t o   h a v e   t h e   i c o n   f r o m   s h e l l 3 2 . d l l . 
01198  
01199    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01200  
01201  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t I c o n L o c a t i o n ( 
01202  
01203          _ _ i n   U I N T   u F l a g s ,   _ _ o u t _ e c o u n t ( c c h M a x )   L P T S T R   s z I c o n F i l e ,   
01204  
01205          _ _ i n   U I N T   c c h M a x ,   _ _ o u t   i n t   * p i I n d e x ,   _ _ o u t   U I N T   * p w F l a g s   ) 
01206  
01207  { 
01208  
01209          A T L T R A C E ( " C H o s t F o l d e r : : G e t I c o n L o c a t i o n   c a l l e d \ n " ) ; 
01210  
01211          ( v o i d ) u F l a g s ;   / /   t y p e   o f   u s e   i s   i g n o r e d   f o r   h o s t   f o l d e r 
01212  
01213  
01214  
01215          / /   S e t   h o s t   t o   h a v e   t h e   I C S   h o s t   i c o n 
01216  
01217          S t r i n g C c h C o p y ( s z I c o n F i l e ,   c c h M a x ,   _ T ( " C : \ \ W I N D O W S \ \ s y s t e m 3 2 \ \ s h e l l 3 2 . d l l " ) ) ; 
01218  
01219          * p i I n d e x   =   1 7 ; 
01220  
01221          * p w F l a g s   =   G I L _ D O N T C A C H E ; 
01222  
01223  
01224  
01225          r e t u r n   S _ O K ; 
01226  
01227  } 
01228  
01229  
01230  
01231  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01232  
01233    *   C H o s t F o l d e r : : G e t D e t a i l s O f   :   I S h e l l D e t a i l s 
01234  
01235    *   R e t u r n s   d e t a i l e d   i n f o r m a t i o n   o n   t h e   i t e m s   i n   a   f o l d e r . 
01236  
01237    *   T h i s   f u n c t i o n   o p e r a t e s   i n   t w o   d i s t i n c t l y   d i f f e r e n t   w a y s : 
01238  
01239    *   I f   p i d l   i s   N U L L : 
01240  
01241    *           R e t r i e v e s   t h e   i n f o r m a t i o n   o n   t h e   v i e w   c o l u m n s ,   i . e . ,   t h e   n a m e s   o f 
01242  
01243    *           t h e   c o l u m n s   t h e m s e l v e s .     T h e   i n d e x   o f   t h e   d e s i r e d   c o l u m n   i s   g i v e n 
01244  
01245    *           i n   i C o l u m n .     I f   t h i s   c o l u m n   d o e s   n o t   e x i s t   w e   r e t u r n   E _ F A I L . 
01246  
01247    *   I f   p i d l   i s   n o t   N U L L : 
01248  
01249    *           R e t r i e v e s   t h e   s p e c i f i c   i t e m   i n f o r m a t i o n   f o r   t h e   g i v e n   p i d l   a n d   t h e 
01250  
01251    *           r e q u e s t e d   c o l u m n . 
01252  
01253    *   T h e   i n f o r m a t i o n   i s   r e t u r n e d   i n   t h e   S H E L L D E T A I L S   s t r u c t u r e . 
01254  
01255    * 
01256  
01257    *   M o s t   o f   t h e   w o r k   i s   d e l e g a t e d   t o   G e t D e t a i l s E x   b y   c o n v e r t i n g   t h e   c o l u m n 
01258  
01259    *   i n d e x   t o   a   P K E Y   w i t h   M a p C o l u m n T o S C I D .     T h i s   f u n c t i o n   a l s o   n o w   d e t e r m i n e s 
01260  
01261    *   w h a t   t h e   i n d e x   o f   t h e   l a s t   s u p p o r t e d   d e t a i l   i s . 
01262  
01263    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01264  
01265  S T D M E T H O D I M P   C H o s t F o l d e r : : G e t D e t a i l s O f (   _ _ i n _ o p t   P C U I T E M I D _ C H I L D   p i d l ,   
01266  
01267                                                                                    _ _ i n   U I N T   i C o l u m n ,   
01268  
01269                                                                                    _ _ o u t   L P S H E L L D E T A I L S   p D e t a i l s   ) 
01270  
01271  { 
01272  
01273          A T L T R A C E ( " C H o s t F o l d e r : : G e t D e t a i l s O f   c a l l e d ,   i C o l u m n = % u \ n " ,   i C o l u m n ) ; 
01274  
01275  
01276  
01277          P R O P E R T Y K E Y   p k e y ; 
01278  
01279  
01280  
01281          / /   L o o k u p   P K E Y   a n d   u s e   i t   t o   c a l l   G e t D e t a i l s E x 
01282  
01283          H R E S U L T   h r   =   M a p C o l u m n T o S C I D ( i C o l u m n ,   & p k e y ) ; 
01284  
01285          i f   ( S U C C E E D E D ( h r ) ) 
01286  
01287          { 
01288  
01289                  C S t r i n g   s t r S r c ; 
01290  
01291                  V A R I A N T   p v ; 
01292  
01293  
01294  
01295                  / /   G e t   d e t a i l s   a n d   c o n v e r t   V A R I A N T   r e s u l t   t o   S H E L L D E T A I L S   f o r   r e t u r n 
01296  
01297                  h r   =   G e t D e t a i l s E x ( p i d l ,   & p k e y ,   & p v ) ; 
01298  
01299                  i f   ( S U C C E E D E D ( h r ) ) 
01300  
01301                  { 
01302  
01303                          A T L A S S E R T ( p v . v t   = =   V T _ B S T R ) ; 
01304  
01305                          s t r S r c   =   p v . b s t r V a l ; 
01306  
01307                          : : S y s F r e e S t r i n g ( p v . b s t r V a l ) ; 
01308  
01309  
01310  
01311                          p D e t a i l s - > s t r . u T y p e   =   S T R R E T _ W S T R ; 
01312  
01313                          S H S t r D u p ( s t r S r c ,   & p D e t a i l s - > s t r . p O l e S t r ) ; 
01314  
01315                  } 
01316  
01317  
01318  
01319                  V a r i a n t C l e a r (   & p v   ) ; 
01320  
01321  
01322  
01323                  i f ( ! p i d l )   / /   H e a d e r   r e q u e s t e d 
01324  
01325                  { 
01326  
01327                          p D e t a i l s - > f m t   =   L V C F M T _ L E F T ; 
01328  
01329                          p D e t a i l s - > c x C h a r   =   s t r S r c . G e t L e n g t h ( ) ; 
01330  
01331                  } 
01332  
01333          } 
01334  
01335  
01336  
01337          r e t u r n   h r ; 
01338  
01339  } 
01340  
01341  
01342  
01343  S T D M E T H O D I M P   C H o s t F o l d e r : : C o l u m n C l i c k (   U I N T   i C o l u m n   ) 
01344  
01345  { 
01346  
01347          A T L T R A C E ( " C H o s t F o l d e r : : C o l u m n C l i c k   c a l l e d \ n " ) ; 
01348  
01349          ( v o i d ) i C o l u m n ; 
01350  
01351          r e t u r n   S _ F A L S E ; 
01352  
01353  } 
01354  
01355  
01356  
01357  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01358  
01359  / *   - - -   P r i v a t e   f u n c t i o n s   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01360  
01361  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01362  
01363  
01364  
01365  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01366  
01367    *   C H o s t F o l d e r : : _ G e t L o n g N a m e F r o m P I D L 
01368  
01369    *   R e t r i e v e   t h e   l o n g   n a m e   o f   t h e   h o s t   c o n n e c t i o n   f r o m   t h e   g i v e n   P I D L . 
01370  
01371    *   T h e   l o n g   n a m e   i s   e i t h e r   t h e   c a n o n i c a l   f o r m   i f   f C a n o n i c a l   i s   s e t : 
01372  
01373    *           s f t p : / / u s e r n a m e @ h o s t n a m e : p o r t / p a t h 
01374  
01375    *   o r ,   i f   n o t   s e t   a n d   i f   t h e   p o r t   i s   t h e   d e f a u l t   p o r t   t h e   r e d u c e d   f o r m : 
01376  
01377    *           s f t p : / / u s e r n a m e @ h o s t n a m e / p a t h 
01378  
01379    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01380  
01381  C S t r i n g   C H o s t F o l d e r : : _ G e t L o n g N a m e F r o m P I D L (   P C U I T E M I D _ C H I L D   p i d l ,   
01382  
01383                                                                                        B O O L   f C a n o n i c a l   ) 
01384  
01385  { 
01386  
01387          A T L T R A C E ( " C H o s t F o l d e r : : _ G e t L o n g N a m e F r o m P I D L   c a l l e d \ n " ) ; 
01388  
01389  
01390  
01391          C S t r i n g   s t r N a m e ; 
01392  
01393          A T L A S S E R T ( S U C C E E D E D ( m _ P i d l M a n a g e r . I s V a l i d ( p i d l ) ) ) ; 
01394  
01395  
01396  
01397          / /   C o n s t r u c t   s t r i n g   f r o m   i n f o   i n   P I D L 
01398  
01399          s t r N a m e   =   _ T ( " s f t p : / / " ) ; 
01400  
01401          s t r N a m e   + =   m _ P i d l M a n a g e r . G e t U s e r ( p i d l ) ; 
01402  
01403          s t r N a m e   + =   _ T ( " @ " ) ; 
01404  
01405          s t r N a m e   + =   m _ P i d l M a n a g e r . G e t H o s t ( p i d l ) ; 
01406  
01407          i f   ( f C a n o n i c a l   | |   ( m _ P i d l M a n a g e r . G e t P o r t ( p i d l )   ! =   S F T P _ D E F A U L T _ P O R T ) ) 
01408  
01409          { 
01410  
01411                  s t r N a m e   + =   _ T ( " : " ) ; 
01412  
01413                  s t r N a m e . A p p e n d F o r m a t (   _ T ( " % u " ) ,   m _ P i d l M a n a g e r . G e t P o r t ( p i d l )   ) ; 
01414  
01415          } 
01416  
01417          s t r N a m e   + =   _ T ( " / " ) ; 
01418  
01419          s t r N a m e   + =   m _ P i d l M a n a g e r . G e t P a t h ( p i d l ) ; 
01420  
01421  
01422  
01423          A T L A S S E R T (   s t r N a m e . G e t L e n g t h ( )   < =   M A X _ C A N O N I C A L _ L E N   ) ; 
01424  
01425  
01426  
01427          r e t u r n   s t r N a m e ; 
01428  
01429  } 
01430  
01431  
01432  
01433  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01434  
01435    *   C H o s t F o l d e r : : _ G e t L a b e l F r o m P I D L 
01436  
01437    *   R e t r i e v e   t h e   u s e r - a s s i g n e d   l a b e l   o f   t h e   h o s t   c o n n e c t i o n   f r o m   t h e   g i v e n   P I D L . 
01438  
01439    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01440  
01441  C S t r i n g   C H o s t F o l d e r : : _ G e t L a b e l F r o m P I D L (   P C U I T E M I D _ C H I L D   p i d l   ) 
01442  
01443  { 
01444  
01445          A T L T R A C E ( " C H o s t F o l d e r : : _ G e t L a b e l F r o m P I D L   c a l l e d \ n " ) ; 
01446  
01447  
01448  
01449          C S t r i n g   s t r N a m e ; 
01450  
01451          A T L A S S E R T ( S U C C E E D E D ( m _ P i d l M a n a g e r . I s V a l i d ( p i d l ) ) ) ; 
01452  
01453  
01454  
01455          / /   C o n s t r u c t   s t r i n g   f r o m   i n f o   i n   P I D L 
01456  
01457          s t r N a m e   =   m _ P i d l M a n a g e r . G e t L a b e l ( p i d l ) ; 
01458  
01459  
01460  
01461          A T L A S S E R T (   s t r N a m e . G e t L e n g t h ( )   < =   M A X _ L A B E L _ L E N   ) ; 
01462  
01463  
01464  
01465          r e t u r n   s t r N a m e ; 
01466  
01467  } 
01468  
01469  
01470  
01471  / * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
01472  
01473    *   C H o s t F o l d e r : : _ F i l l D e t a i l s V a r i a n t 
01474  
01475    *   I n i t i a l i s e   t h e   V A R I A N T   w h o s e   p o i n t e r   i s   p a s s e d   a n d   f i l l   w i t h   s t r i n g   d a t a . 
01476  
01477    *   T h e   s t r i n g   d a t a   c a n   b e   p a s s e d   i n   a s   a   w c h a r   a r r a y   o r   a   C S t r i n g .     W e   a l l o c a t e 
01478  
01479    *   a   n e w   B S T R   a n d   s t o r e   i t   i n   t h e   V A R I A N T . 
01480  
01481    * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * / 
01482  
01483  H R E S U L T   C H o s t F o l d e r : : _ F i l l D e t a i l s V a r i a n t (   _ _ i n   P C W S T R   s z D e t a i l , 
01484  
01485                                                                                        _ _ o u t   V A R I A N T   * p v   ) 
01486  
01487  { 
01488  
01489          A T L T R A C E ( " C H o s t F o l d e r : : _ F i l l D e t a i l s V a r i a n t   c a l l e d \ n " ) ; 
01490  
01491  
01492  
01493          V a r i a n t I n i t (   p v   ) ; 
01494  
01495          p v - > v t   =   V T _ B S T R ; 
01496  
01497          p v - > b s t r V a l   =   : : S y s A l l o c S t r i n g (   s z D e t a i l   ) ; 
01498  
01499  
01500  
01501          r e t u r n   p v - > b s t r V a l   ?   S _ O K   :   E _ O U T O F M E M O R Y ; 
01502  
01503  } 
01504  
01505  
01506  
01507  / /   C H o s t F o l d e r 
01508  
01509  
01510  
01511  

Generated on Mon Nov 12 22:43:53 2007 for Swish by  doxygen 1.5.3