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