1 
2 
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4 
5 
6  /* File created by MIDL compiler version 7.00.0499 */
7 /* Compiler settings for shtypes.idl:
8     Oicf, W1, Zp8, env=Win32 (32b run)
9     protocol : dce , ms_ext, c_ext, robust
10     error checks: allocation ref bounds_check enum stub_data
11     VC __declspec() decoration level:
12          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
13          DECLSPEC_UUID(), MIDL_INTERFACE()
14 */
15 //@@MIDL_FILE_HEADING(  )
16 
17 #pragma warning( disable: 4049 )  /* more than 64k source lines */
18 
19 
20 /* verify that the <rpcndr.h> version is high enough to compile this file*/
21 #ifndef __REQUIRED_RPCNDR_H_VERSION__
22 #define __REQUIRED_RPCNDR_H_VERSION__ 500
23 #endif
24 
25 /* verify that the <rpcsal.h> version is high enough to compile this file*/
26 #ifndef __REQUIRED_RPCSAL_H_VERSION__
27 #define __REQUIRED_RPCSAL_H_VERSION__ 100
28 #endif
29 
30 #include "rpc.h"
31 #include "rpcndr.h"
32 
33 #ifndef __RPCNDR_H_VERSION__
34 #error this stub requires an updated version of <rpcndr.h>
35 #endif // __RPCNDR_H_VERSION__
36 
37 
38 #ifndef __shtypes_h__
39 #define __shtypes_h__
40 
41 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
42 #pragma once
43 #endif
44 
45 /* Forward Declarations */
46 
47 /* header files for imported files */
48 #include "wtypes.h"
49 
50 #ifdef __cplusplus
51 extern "C"{
52 #endif
53 
54 
55 /* interface __MIDL_itf_shtypes_0000_0000 */
56 /* [local] */
57 
58 //+-------------------------------------------------------------------------
59 //
60 //  Microsoft Windows
61 //  Copyright (c) Microsoft Corporation. All rights reserved.
62 //
63 //--------------------------------------------------------------------------
64 //===========================================================================
65 //
66 // Object identifiers in the explorer's name space (ItemID and IDList)
67 //
68 //  All the items that the user can browse with the explorer (such as files,
69 // directories, servers, work-groups, etc.) has an identifier which is unique
70 // among items within the parent folder. Those identifiers are called item
71 // IDs (SHITEMID). Since all its parent folders have their own item IDs,
72 // any items can be uniquely identified by a list of item IDs, which is called
73 // an ID list (ITEMIDLIST).
74 //
75 //  ID lists are almost always allocated by the task allocator (see some
76 // description below as well as OLE 2.0 SDK) and may be passed across
77 // some of shell interfaces (such as IShellFolder). Each item ID in an ID list
78 // is only meaningful to its parent folder (which has generated it), and all
79 // the clients must treat it as an opaque binary data except the first two
80 // bytes, which indicates the size of the item ID.
81 //
82 //  When a shell extension -- which implements the IShellFolder interace --
83 // generates an item ID, it may put any information in it, not only the data
84 // with that it needs to identifies the item, but also some additional
85 // information, which would help implementing some other functions efficiently.
86 // For example, the shell's IShellFolder implementation of file system items
87 // stores the primary (long) name of a file or a directory as the item
88 // identifier, but it also stores its alternative (short) name, size and date
89 // etc.
90 //
91 //  When an ID list is passed to one of shell APIs (such as SHGetPathFromIDList),
92 // it is always an absolute path -- relative from the root of the name space,
93 // which is the desktop folder. When an ID list is passed to one of IShellFolder
94 // member function, it is always a relative path from the folder (unless it
95 // is explicitly specified).
96 //
97 //===========================================================================
98 //
99 // SHITEMID -- Item ID  (mkid)
100 //     USHORT      cb;             // Size of the ID (including cb itself)
101 //     BYTE        abID[];         // The item ID (variable length)
102 //
103 #include <pshpack1.h>
104 typedef struct _SHITEMID
105     {
106     USHORT cb;
107     BYTE abID[ 1 ];
108     } 	SHITEMID;
109 
110 #include <poppack.h>
111 #if defined(_M_IX86)
112 #define __unaligned
113 #endif // __unaligned
114 typedef SHITEMID __unaligned *LPSHITEMID;
115 
116 typedef const SHITEMID __unaligned *LPCSHITEMID;
117 
118 //
119 // ITEMIDLIST -- List if item IDs (combined with 0-terminator)
120 //
121 #include <pshpack1.h>
122 typedef struct _ITEMIDLIST
123     {
124     SHITEMID mkid;
125     } 	ITEMIDLIST;
126 
127 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
128 typedef struct _ITEMIDLIST_RELATIVE : ITEMIDLIST {} ITEMIDLIST_RELATIVE;
129 typedef struct _ITEMID_CHILD : ITEMIDLIST_RELATIVE {} ITEMID_CHILD;
130 typedef struct _ITEMIDLIST_ABSOLUTE : ITEMIDLIST_RELATIVE {} ITEMIDLIST_ABSOLUTE;
131 #else // !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus))
132 typedef ITEMIDLIST ITEMIDLIST_RELATIVE;
133 
134 typedef ITEMIDLIST ITEMID_CHILD;
135 
136 typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE;
137 
138 #endif // defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
139 #include <poppack.h>
140 typedef /* [unique] */  __RPC_unique_pointer BYTE_BLOB *wirePIDL;
141 
142 typedef /* [wire_marshal] */ ITEMIDLIST __unaligned *LPITEMIDLIST;
143 
144 typedef /* [wire_marshal] */ const ITEMIDLIST __unaligned *LPCITEMIDLIST;
145 
146 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
147 typedef /* [wire_marshal] */ ITEMIDLIST_ABSOLUTE *PIDLIST_ABSOLUTE;
148 
149 typedef /* [wire_marshal] */ const ITEMIDLIST_ABSOLUTE *PCIDLIST_ABSOLUTE;
150 
151 typedef /* [wire_marshal] */ const ITEMIDLIST_ABSOLUTE __unaligned *PCUIDLIST_ABSOLUTE;
152 
153 typedef /* [wire_marshal] */ ITEMIDLIST_RELATIVE *PIDLIST_RELATIVE;
154 
155 typedef /* [wire_marshal] */ const ITEMIDLIST_RELATIVE *PCIDLIST_RELATIVE;
156 
157 typedef /* [wire_marshal] */ ITEMIDLIST_RELATIVE __unaligned *PUIDLIST_RELATIVE;
158 
159 typedef /* [wire_marshal] */ const ITEMIDLIST_RELATIVE __unaligned *PCUIDLIST_RELATIVE;
160 
161 typedef /* [wire_marshal] */ ITEMID_CHILD *PITEMID_CHILD;
162 
163 typedef /* [wire_marshal] */ const ITEMID_CHILD *PCITEMID_CHILD;
164 
165 typedef /* [wire_marshal] */ ITEMID_CHILD __unaligned *PUITEMID_CHILD;
166 
167 typedef /* [wire_marshal] */ const ITEMID_CHILD __unaligned *PCUITEMID_CHILD;
168 
169 typedef const PCUITEMID_CHILD *PCUITEMID_CHILD_ARRAY;
170 
171 typedef const PCUIDLIST_RELATIVE *PCUIDLIST_RELATIVE_ARRAY;
172 
173 typedef const PCIDLIST_ABSOLUTE *PCIDLIST_ABSOLUTE_ARRAY;
174 
175 typedef const PCUIDLIST_ABSOLUTE *PCUIDLIST_ABSOLUTE_ARRAY;
176 
177 #else // !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus))
178 #define PIDLIST_ABSOLUTE         LPITEMIDLIST
179 #define PCIDLIST_ABSOLUTE        LPCITEMIDLIST
180 #define PCUIDLIST_ABSOLUTE       LPCITEMIDLIST
181 #define PIDLIST_RELATIVE         LPITEMIDLIST
182 #define PCIDLIST_RELATIVE        LPCITEMIDLIST
183 #define PUIDLIST_RELATIVE        LPITEMIDLIST
184 #define PCUIDLIST_RELATIVE       LPCITEMIDLIST
185 #define PITEMID_CHILD            LPITEMIDLIST
186 #define PCITEMID_CHILD           LPCITEMIDLIST
187 #define PUITEMID_CHILD           LPITEMIDLIST
188 #define PCUITEMID_CHILD          LPCITEMIDLIST
189 #define PCUITEMID_CHILD_ARRAY    LPCITEMIDLIST *
190 #define PCUIDLIST_RELATIVE_ARRAY LPCITEMIDLIST *
191 #define PCIDLIST_ABSOLUTE_ARRAY  LPCITEMIDLIST *
192 #define PCUIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *
193 #endif // defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
194 #ifdef MIDL_PASS
195 typedef struct _WIN32_FIND_DATAA
196     {
197     DWORD dwFileAttributes;
198     FILETIME ftCreationTime;
199     FILETIME ftLastAccessTime;
200     FILETIME ftLastWriteTime;
201     DWORD nFileSizeHigh;
202     DWORD nFileSizeLow;
203     DWORD dwReserved0;
204     DWORD dwReserved1;
205     CHAR cFileName[ 260 ];
206     CHAR cAlternateFileName[ 14 ];
207     } 	WIN32_FIND_DATAA;
208 
209 typedef struct _WIN32_FIND_DATAA *PWIN32_FIND_DATAA;
210 
211 typedef struct _WIN32_FIND_DATAA *LPWIN32_FIND_DATAA;
212 
213 typedef struct _WIN32_FIND_DATAW
214     {
215     DWORD dwFileAttributes;
216     FILETIME ftCreationTime;
217     FILETIME ftLastAccessTime;
218     FILETIME ftLastWriteTime;
219     DWORD nFileSizeHigh;
220     DWORD nFileSizeLow;
221     DWORD dwReserved0;
222     DWORD dwReserved1;
223     WCHAR cFileName[ 260 ];
224     WCHAR cAlternateFileName[ 14 ];
225     } 	WIN32_FIND_DATAW;
226 
227 typedef struct _WIN32_FIND_DATAW *PWIN32_FIND_DATAW;
228 
229 typedef struct _WIN32_FIND_DATAW *LPWIN32_FIND_DATAW;
230 
231 #endif // MIDL_PASS
232 //-------------------------------------------------------------------------
233 //
234 // struct STRRET
235 //
236 // structure for returning strings from IShellFolder member functions
237 //
238 //-------------------------------------------------------------------------
239 //
240 //  uType indicate which union member to use
241 //    STRRET_WSTR    Use STRRET.pOleStr     must be freed by caller of GetDisplayNameOf
242 //    STRRET_OFFSET  Use STRRET.uOffset     Offset into SHITEMID for ANSI string
243 //    STRRET_CSTR    Use STRRET.cStr        ANSI Buffer
244 //
245 typedef /* [v1_enum] */
246 enum tagSTRRET_TYPE
247     {	STRRET_WSTR	= 0,
248 	STRRET_OFFSET	= 0x1,
249 	STRRET_CSTR	= 0x2
250     } 	STRRET_TYPE;
251 
252 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
253 #pragma warning(push)
254 #pragma warning(disable:4201) /* nonstandard extension used : nameless struct/union */
255 #pragma once
256 #endif
257 #include <pshpack8.h>
258 typedef struct _STRRET
259     {
260     UINT uType;
261     union
262         {
263         LPWSTR pOleStr;
264         UINT uOffset;
265         char cStr[ 260 ];
266         } 	DUMMYUNIONNAME;
267     } 	STRRET;
268 
269 #include <poppack.h>
270 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
271 #pragma warning(pop)
272 #endif
273 typedef STRRET *LPSTRRET;
274 
275 //-------------------------------------------------------------------------
276 //
277 // struct SHELLDETAILS
278 //
279 // structure for returning strings from IShellDetails
280 //
281 //-------------------------------------------------------------------------
282 //
283 //  fmt;            // LVCFMT_* value (header only)
284 //  cxChar;         // Number of 'average' characters (header only)
285 //  str;            // String information
286 //
287 #include <pshpack1.h>
288 typedef struct _SHELLDETAILS
289     {
290     int fmt;
291     int cxChar;
292     STRRET str;
293     } 	SHELLDETAILS;
294 
295 typedef struct _SHELLDETAILS *LPSHELLDETAILS;
296 
297 #include <poppack.h>
298 
299 #if (_WIN32_IE >= _WIN32_IE_IE60SP2)
300 typedef /* [v1_enum] */
301 enum tagPERCEIVED
302     {	PERCEIVED_TYPE_FIRST	= -3,
303 	PERCEIVED_TYPE_CUSTOM	= -3,
304 	PERCEIVED_TYPE_UNSPECIFIED	= -2,
305 	PERCEIVED_TYPE_FOLDER	= -1,
306 	PERCEIVED_TYPE_UNKNOWN	= 0,
307 	PERCEIVED_TYPE_TEXT	= 1,
308 	PERCEIVED_TYPE_IMAGE	= 2,
309 	PERCEIVED_TYPE_AUDIO	= 3,
310 	PERCEIVED_TYPE_VIDEO	= 4,
311 	PERCEIVED_TYPE_COMPRESSED	= 5,
312 	PERCEIVED_TYPE_DOCUMENT	= 6,
313 	PERCEIVED_TYPE_SYSTEM	= 7,
314 	PERCEIVED_TYPE_APPLICATION	= 8,
315 	PERCEIVED_TYPE_GAMEMEDIA	= 9,
316 	PERCEIVED_TYPE_CONTACTS	= 10,
317 	PERCEIVED_TYPE_LAST	= 10
318     } 	PERCEIVED;
319 
320 #define PERCEIVEDFLAG_UNDEFINED     0x0000
321 #define PERCEIVEDFLAG_SOFTCODED     0x0001
322 #define PERCEIVEDFLAG_HARDCODED     0x0002
323 #define PERCEIVEDFLAG_NATIVESUPPORT 0x0004
324 #define PERCEIVEDFLAG_GDIPLUS       0x0010
325 #define PERCEIVEDFLAG_WMSDK         0x0020
326 #define PERCEIVEDFLAG_ZIPFOLDER     0x0040
327 typedef DWORD PERCEIVEDFLAG;
328 
329 #endif  // _WIN32_IE_IE60SP2
330 
331 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
332 typedef struct _COMDLG_FILTERSPEC
333     {
334     LPCWSTR pszName;
335     LPCWSTR pszSpec;
336     } 	COMDLG_FILTERSPEC;
337 
338 typedef struct tagMACHINE_ID
339     {
340     char szName[ 16 ];
341     } 	MACHINE_ID;
342 
343 typedef struct tagDOMAIN_RELATIVE_OBJECTID
344     {
345     GUID guidVolume;
346     GUID guidObject;
347     } 	DOMAIN_RELATIVE_OBJECTID;
348 
349 typedef GUID KNOWNFOLDERID;
350 
351 #if 0
352 typedef KNOWNFOLDERID *REFKNOWNFOLDERID;
353 
354 #endif // 0
355 #ifdef __cplusplus
356 #define REFKNOWNFOLDERID const KNOWNFOLDERID &
357 #else // !__cplusplus
358 #define REFKNOWNFOLDERID const KNOWNFOLDERID * __MIDL_CONST
359 #endif // __cplusplus
360 #endif  // NTDDI_LONGHORN
361 typedef GUID FOLDERTYPEID;
362 
363 #if 0
364 typedef FOLDERTYPEID *REFFOLDERTYPEID;
365 
366 #endif // 0
367 #ifdef __cplusplus
368 #define REFFOLDERTYPEID const FOLDERTYPEID &
369 #else // !__cplusplus
370 #define REFFOLDERTYPEID const FOLDERTYPEID * __MIDL_CONST
371 #endif // __cplusplus
372 typedef GUID TASKOWNERID;
373 
374 #if 0
375 typedef TASKOWNERID *REFTASKOWNERID;
376 
377 #endif // 0
378 #ifdef __cplusplus
379 #define REFTASKOWNERID const TASKOWNERID &
380 #else // !__cplusplus
381 #define REFTASKOWNERID const TASKOWNERID * __MIDL_CONST
382 #endif // __cplusplus
383 #ifndef LF_FACESIZE
384 typedef struct tagLOGFONTA
385     {
386     LONG lfHeight;
387     LONG lfWidth;
388     LONG lfEscapement;
389     LONG lfOrientation;
390     LONG lfWeight;
391     BYTE lfItalic;
392     BYTE lfUnderline;
393     BYTE lfStrikeOut;
394     BYTE lfCharSet;
395     BYTE lfOutPrecision;
396     BYTE lfClipPrecision;
397     BYTE lfQuality;
398     BYTE lfPitchAndFamily;
399     CHAR lfFaceName[ 32 ];
400     } 	LOGFONTA;
401 
402 typedef struct tagLOGFONTW
403     {
404     LONG lfHeight;
405     LONG lfWidth;
406     LONG lfEscapement;
407     LONG lfOrientation;
408     LONG lfWeight;
409     BYTE lfItalic;
410     BYTE lfUnderline;
411     BYTE lfStrikeOut;
412     BYTE lfCharSet;
413     BYTE lfOutPrecision;
414     BYTE lfClipPrecision;
415     BYTE lfQuality;
416     BYTE lfPitchAndFamily;
417     WCHAR lfFaceName[ 32 ];
418     } 	LOGFONTW;
419 
420 typedef LOGFONTA LOGFONT;
421 
422 #endif // LF_FACESIZE
423 typedef /* [v1_enum] */
424 enum tagSHCOLSTATE
425     {	SHCOLSTATE_TYPE_STR	= 0x1,
426 	SHCOLSTATE_TYPE_INT	= 0x2,
427 	SHCOLSTATE_TYPE_DATE	= 0x3,
428 	SHCOLSTATE_TYPEMASK	= 0xf,
429 	SHCOLSTATE_ONBYDEFAULT	= 0x10,
430 	SHCOLSTATE_SLOW	= 0x20,
431 	SHCOLSTATE_EXTENDED	= 0x40,
432 	SHCOLSTATE_SECONDARYUI	= 0x80,
433 	SHCOLSTATE_HIDDEN	= 0x100,
434 	SHCOLSTATE_PREFER_VARCMP	= 0x200,
435 	SHCOLSTATE_PREFER_FMTCMP	= 0x400,
436 	SHCOLSTATE_NOSORTBYFOLDERNESS	= 0x800,
437 	SHCOLSTATE_VIEWONLY	= 0x10000,
438 	SHCOLSTATE_BATCHREAD	= 0x20000,
439 	SHCOLSTATE_NO_GROUPBY	= 0x40000,
440 	SHCOLSTATE_FIXED_WIDTH	= 0x1000,
441 	SHCOLSTATE_NODPISCALE	= 0x2000,
442 	SHCOLSTATE_FIXED_RATIO	= 0x4000,
443 	SHCOLSTATE_DISPLAYMASK	= 0xf000
444     } 	SHCOLSTATE;
445 
446 typedef DWORD SHCOLSTATEF;
447 
448 typedef PROPERTYKEY SHCOLUMNID;
449 
450 typedef const SHCOLUMNID *LPCSHCOLUMNID;
451 
452 
453 
454 extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_0000_v0_0_c_ifspec;
455 extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_0000_v0_0_s_ifspec;
456 
457 /* Additional Prototypes for ALL interfaces */
458 
459 /* end of Additional Prototypes */
460 
461 #ifdef __cplusplus
462 }
463 #endif
464 
465 #endif
466 
467 
468 
469