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