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