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