ShTypes.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:6k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for shtypes.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __shtypes_h__
  20. #define __shtypes_h__
  21. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  22. #pragma once
  23. #endif
  24. /* Forward Declarations */ 
  25. /* header files for imported files */
  26. #include "wtypes.h"
  27. #ifdef __cplusplus
  28. extern "C"{
  29. #endif 
  30. void * __RPC_USER MIDL_user_allocate(size_t);
  31. void __RPC_USER MIDL_user_free( void * ); 
  32. /* interface __MIDL_itf_shtypes_0000 */
  33. /* [local] */ 
  34. //+-------------------------------------------------------------------------
  35. //
  36. //  Microsoft Windows
  37. //  Copyright (c) Microsoft Corporation. All rights reserved.
  38. //
  39. //--------------------------------------------------------------------------
  40. //===========================================================================
  41. //
  42. // Object identifiers in the explorer's name space (ItemID and IDList)
  43. //
  44. //  All the items that the user can browse with the explorer (such as files,
  45. // directories, servers, work-groups, etc.) has an identifier which is unique
  46. // among items within the parent folder. Those identifiers are called item
  47. // IDs (SHITEMID). Since all its parent folders have their own item IDs,
  48. // any items can be uniquely identified by a list of item IDs, which is called
  49. // an ID list (ITEMIDLIST).
  50. //
  51. //  ID lists are almost always allocated by the task allocator (see some
  52. // description below as well as OLE 2.0 SDK) and may be passed across
  53. // some of shell interfaces (such as IShellFolder). Each item ID in an ID list
  54. // is only meaningful to its parent folder (which has generated it), and all
  55. // the clients must treat it as an opaque binary data except the first two
  56. // bytes, which indicates the size of the item ID.
  57. //
  58. //  When a shell extension -- which implements the IShellFolder interace --
  59. // generates an item ID, it may put any information in it, not only the data
  60. // with that it needs to identifies the item, but also some additional
  61. // information, which would help implementing some other functions efficiently.
  62. // For example, the shell's IShellFolder implementation of file system items
  63. // stores the primary (long) name of a file or a directory as the item
  64. // identifier, but it also stores its alternative (short) name, size and date
  65. // etc.
  66. //
  67. //  When an ID list is passed to one of shell APIs (such as SHGetPathFromIDList),
  68. // it is always an absolute path -- relative from the root of the name space,
  69. // which is the desktop folder. When an ID list is passed to one of IShellFolder
  70. // member function, it is always a relative path from the folder (unless it
  71. // is explicitly specified).
  72. //
  73. //===========================================================================
  74. //
  75. // SHITEMID -- Item ID  (mkid)
  76. //     USHORT      cb;             // Size of the ID (including cb itself)
  77. //     BYTE        abID[];         // The item ID (variable length)
  78. //
  79. #include <pshpack1.h>
  80. typedef struct _SHITEMID
  81.     {
  82.     USHORT cb;
  83.     BYTE abID[ 1 ];
  84.     }  SHITEMID;
  85. #include <poppack.h>
  86. #if defined(_M_IX86)
  87. #define __unaligned
  88. #endif // __unaligned
  89. typedef SHITEMID __unaligned *LPSHITEMID;
  90. typedef const SHITEMID __unaligned *LPCSHITEMID;
  91. //
  92. // ITEMIDLIST -- List if item IDs (combined with 0-terminator)
  93. //
  94. #include <pshpack1.h>
  95. typedef struct _ITEMIDLIST
  96.     {
  97.     SHITEMID mkid;
  98.     }  ITEMIDLIST;
  99. #include <poppack.h>
  100. typedef /* [unique] */ BYTE_BLOB *wirePIDL;
  101. typedef /* [wire_marshal] */ ITEMIDLIST __unaligned *LPITEMIDLIST;
  102. typedef /* [wire_marshal] */ const ITEMIDLIST __unaligned *LPCITEMIDLIST;
  103. typedef struct _WINBASE_DEFINED_STRUCT
  104.     {
  105.     int dummy;
  106.     }  WINBASE_DEFINED_STRUCT;
  107. #ifdef WINBASE_DEFINED_MIDL
  108. typedef WINBASE_DEFINED_STRUCT WIN32_FIND_DATAA;
  109. typedef WINBASE_DEFINED_STRUCT WIN32_FIND_DATAW;
  110. #endif // WINBASE_DEFINED_MIDL
  111. //-------------------------------------------------------------------------
  112. //
  113. // struct STRRET
  114. //
  115. // structure for returning strings from IShellFolder member functions
  116. //
  117. //-------------------------------------------------------------------------
  118. //
  119. //  uType indicate which union member to use 
  120. //    STRRET_WSTR    Use STRRET.pOleStr     must be freed by caller of GetDisplayNameOf
  121. //    STRRET_OFFSET  Use STRRET.uOffset     Offset into SHITEMID for ANSI string 
  122. //    STRRET_CSTR    Use STRRET.cStr        ANSI Buffer
  123. //
  124. typedef /* [v1_enum] */ 
  125. enum tagSTRRET_TYPE
  126.     { STRRET_WSTR = 0,
  127. STRRET_OFFSET = 0x1,
  128. STRRET_CSTR = 0x2
  129.     }  STRRET_TYPE;
  130. #include <pshpack8.h>
  131. typedef struct _STRRET
  132.     {
  133.     UINT uType;
  134.     /* [switch_is][switch_type] */ union 
  135.         {
  136.         /* [case()][string] */ LPWSTR pOleStr;
  137.         /* [case()] */ UINT uOffset;
  138.         /* [case()] */ char cStr[ 260 ];
  139.         }  DUMMYUNIONNAME;
  140.     }  STRRET;
  141. #include <poppack.h>
  142. typedef STRRET *LPSTRRET;
  143. //-------------------------------------------------------------------------
  144. //
  145. // struct SHELLDETAILS
  146. //
  147. // structure for returning strings from IShellDetails
  148. //
  149. //-------------------------------------------------------------------------
  150. //
  151. //  fmt;            // LVCFMT_* value (header only)
  152. //  cxChar;         // Number of 'average' characters (header only)
  153. //  str;            // String information
  154. //
  155. #include <pshpack1.h>
  156. typedef struct _SHELLDETAILS
  157.     {
  158.     int fmt;
  159.     int cxChar;
  160.     STRRET str;
  161.     }  SHELLDETAILS;
  162. typedef struct _SHELLDETAILS *LPSHELLDETAILS;
  163. #include <poppack.h>
  164. extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_v0_0_c_ifspec;
  165. extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_v0_0_s_ifspec;
  166. /* Additional Prototypes for ALL interfaces */
  167. /* end of Additional Prototypes */
  168. #ifdef __cplusplus
  169. }
  170. #endif
  171. #endif