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