home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / comcat.idl < prev    next >
Text File  |  1998-04-25  |  9KB  |  270 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved.
  4. //
  5. //  Contents:   Component Categories Interfaces
  6. // 
  7. //----------------------------------------------------------------------------
  8.  
  9. cpp_quote("//=--------------------------------------------------------------------------=")
  10. cpp_quote("// ComCat.h")
  11. cpp_quote("//=--------------------------------------------------------------------------=")
  12. cpp_quote("// (C) Copyright 1995 - 1998 Microsoft Corporation.  All Rights Reserved.")
  13. cpp_quote("//")
  14. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  15. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  16. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  17. cpp_quote("// PARTICULAR PURPOSE.")
  18. cpp_quote("//=--------------------------------------------------------------------------=")
  19. cpp_quote("")
  20. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  21. cpp_quote("")
  22. cpp_quote("//=--------------------------------------------------------------------------=")
  23. cpp_quote("// OLE Componet Categories Interfaces.")
  24. cpp_quote("//=--------------------------------------------------------------------------=")
  25. cpp_quote("//")
  26.  
  27. #ifndef DO_NO_IMPORTS
  28. import "unknwn.idl";
  29. #endif
  30.  
  31. interface IEnumGUID;
  32. interface IEnumCATEGORYINFO;
  33. interface ICatRegister;
  34. interface ICatInformation;
  35. cpp_quote("EXTERN_C const CLSID CLSID_StdComponentCategoriesMgr;")
  36.  
  37. cpp_quote("")
  38. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  39. cpp_quote("//  Types")
  40.     typedef GUID CATID;
  41.     typedef REFGUID REFCATID;
  42. cpp_quote("#define IID_IEnumCLSID              IID_IEnumGUID")
  43. cpp_quote("#define IEnumCLSID                  IEnumGUID")
  44. cpp_quote("#define LPENUMCLSID                 LPENUMGUID")
  45. #define IEnumCLSID                      IEnumGUID
  46. cpp_quote("#define CATID_NULL                   GUID_NULL")
  47. cpp_quote("#define IsEqualCATID(rcatid1, rcatid2)       IsEqualGUID(rcatid1, rcatid2)")
  48. cpp_quote("#define IID_IEnumCATID       IID_IEnumGUID")
  49. cpp_quote("#define IEnumCATID           IEnumGUID")
  50. #define IEnumCATID                      IEnumGUID
  51.  
  52. cpp_quote("")
  53. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  54. cpp_quote("//  Category IDs (link to uuid3.lib)")
  55. cpp_quote("EXTERN_C const CATID CATID_Insertable;")
  56. cpp_quote("EXTERN_C const CATID CATID_Control;")
  57. cpp_quote("EXTERN_C const CATID CATID_Programmable;")
  58. cpp_quote("EXTERN_C const CATID CATID_IsShortcut;")
  59. cpp_quote("EXTERN_C const CATID CATID_NeverShowExt;")
  60. cpp_quote("EXTERN_C const CATID CATID_DocObject;")
  61. cpp_quote("EXTERN_C const CATID CATID_Printable;")
  62. cpp_quote("EXTERN_C const CATID CATID_RequiresDataPathHost;")
  63. cpp_quote("EXTERN_C const CATID CATID_PersistsToMoniker;")
  64. cpp_quote("EXTERN_C const CATID CATID_PersistsToStorage;")
  65. cpp_quote("EXTERN_C const CATID CATID_PersistsToStreamInit;")
  66. cpp_quote("EXTERN_C const CATID CATID_PersistsToStream;")
  67. cpp_quote("EXTERN_C const CATID CATID_PersistsToMemory;")
  68. cpp_quote("EXTERN_C const CATID CATID_PersistsToFile;")
  69. cpp_quote("EXTERN_C const CATID CATID_PersistsToPropertyBag;")
  70. cpp_quote("EXTERN_C const CATID CATID_InternetAware;")
  71.  
  72. cpp_quote("")
  73. cpp_quote("////////////////////////////////////////////////////////////////////////////")
  74. cpp_quote("//  Interface Definitions")
  75.  
  76. //+---------------------------------------------------------------------------
  77. //
  78. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  79. //
  80. //  Contents:    IEnumGUID interface definition
  81. //      
  82. //----------------------------------------------------------------------------
  83. cpp_quote("#ifndef _LPENUMGUID_DEFINED")
  84. cpp_quote("#define _LPENUMGUID_DEFINED")
  85. [
  86.     object,
  87.     uuid(0002E000-0000-0000-C000-000000000046),
  88.     pointer_default(unique)
  89. ]
  90. interface IEnumGUID : IUnknown
  91. {
  92.     typedef [unique] IEnumGUID *LPENUMGUID;
  93.  
  94.     HRESULT Next(
  95.     [in] ULONG celt,
  96.     [out, size_is(celt), length_is(*pceltFetched)] GUID *rgelt,
  97.     [out] ULONG *pceltFetched);
  98.  
  99.     HRESULT Skip(
  100.     [in] ULONG celt);
  101.  
  102.     HRESULT Reset();
  103.  
  104.     HRESULT Clone(
  105.     [out] IEnumGUID **ppenum);
  106. }
  107. cpp_quote("#endif")
  108.  
  109.  
  110. //+---------------------------------------------------------------------------
  111. //
  112. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  113. //
  114. //  Contents:    IEnumCATEGORYINFO definition
  115. //      
  116. //----------------------------------------------------------------------------
  117. cpp_quote("#ifndef _LPENUMCATEGORYINFO_DEFINED")
  118. cpp_quote("#define _LPENUMCATEGORYINFO_DEFINED")
  119. [
  120.     object,
  121.     uuid(0002E011-0000-0000-C000-000000000046),
  122.     pointer_default(unique)
  123. ]
  124. interface IEnumCATEGORYINFO : IUnknown
  125. {
  126.     typedef [unique] IEnumCATEGORYINFO *LPENUMCATEGORYINFO;
  127.  
  128. #define CATDESC_MAX 128
  129.  
  130.     typedef struct tagCATEGORYINFO {
  131.     CATID       catid;
  132.     LCID        lcid;
  133.     OLECHAR szDescription[CATDESC_MAX];
  134.     } CATEGORYINFO, *LPCATEGORYINFO;
  135.  
  136.     HRESULT Next(
  137.     [in] ULONG celt,
  138.     [out, size_is(celt), length_is(*pceltFetched)] CATEGORYINFO* rgelt,
  139.     [out] ULONG* pceltFetched);
  140.  
  141.     HRESULT Skip(
  142.     [in] ULONG celt);
  143.  
  144.     HRESULT Reset();
  145.  
  146.     HRESULT Clone(
  147.     [out] IEnumCATEGORYINFO** ppenum);
  148. }
  149. cpp_quote("#endif")
  150.  
  151.  
  152. //+---------------------------------------------------------------------------
  153. //
  154. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  155. //
  156. //  Contents:    ICatRegister definition
  157. //      
  158. //----------------------------------------------------------------------------
  159. cpp_quote("#ifndef _LPCATREGISTER_DEFINED")
  160. cpp_quote("#define _LPCATREGISTER_DEFINED")
  161. [
  162.     object, 
  163.     uuid(0002E012-0000-0000-C000-000000000046),
  164.     pointer_default(unique)
  165. ]
  166. interface ICatRegister : IUnknown
  167. {
  168.     typedef [unique] ICatRegister* LPCATREGISTER;
  169.  
  170.     HRESULT RegisterCategories(
  171.     [in] ULONG cCategories, 
  172.     [in, size_is(cCategories)] CATEGORYINFO rgCategoryInfo[]);
  173.  
  174.     HRESULT UnRegisterCategories(
  175.     [in] ULONG cCategories, 
  176.     [in, size_is(cCategories)] CATID rgcatid[]);
  177.  
  178.     HRESULT RegisterClassImplCategories(
  179.     [in] REFCLSID rclsid, 
  180.     [in] ULONG cCategories, 
  181.     [in, size_is(cCategories)] CATID rgcatid[]);
  182.  
  183.     HRESULT UnRegisterClassImplCategories(
  184.     [in] REFCLSID rclsid,
  185.     [in] ULONG cCategories, 
  186.     [in, size_is(cCategories)] CATID rgcatid[]);
  187.  
  188.     HRESULT RegisterClassReqCategories(
  189.     [in] REFCLSID rclsid, 
  190.     [in] ULONG cCategories, 
  191.     [in, size_is(cCategories)] CATID rgcatid[]);
  192.  
  193.     HRESULT UnRegisterClassReqCategories(
  194.     [in] REFCLSID rclsid,
  195.     [in] ULONG cCategories, 
  196.     [in, size_is(cCategories)] CATID rgcatid[]);
  197. }
  198. cpp_quote("#endif")
  199.  
  200.  
  201. //+---------------------------------------------------------------------------
  202. //
  203. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  204. //
  205. //  Contents:    ICatInformation definition
  206. //      
  207. //----------------------------------------------------------------------------
  208. cpp_quote("#ifndef _LPCATINFORMATION_DEFINED")
  209. cpp_quote("#define _LPCATINFORMATION_DEFINED")
  210. [
  211.     object, 
  212.     uuid(0002E013-0000-0000-C000-000000000046),
  213.     pointer_default(unique)
  214. ]
  215. interface ICatInformation : IUnknown
  216. {
  217.     typedef [unique] ICatInformation* LPCATINFORMATION; 
  218.  
  219.     HRESULT EnumCategories(
  220.     [in] LCID lcid, 
  221.     [out] IEnumCATEGORYINFO** ppenumCategoryInfo);
  222.  
  223.     HRESULT GetCategoryDesc(
  224.     [in] REFCATID rcatid, 
  225.     [in] LCID lcid, 
  226.     [out] LPWSTR* pszDesc);
  227.  
  228.     [local]
  229.     HRESULT EnumClassesOfCategories(
  230.     [in] ULONG cImplemented,
  231.     [in,size_is(cImplemented)] CATID rgcatidImpl[],
  232.     [in] ULONG cRequired,
  233.     [in,size_is(cRequired)] CATID rgcatidReq[],
  234.     [out] IEnumCLSID** ppenumClsid);
  235.  
  236.     [call_as(EnumClassesOfCategories)]
  237.     HRESULT RemoteEnumClassesOfCategories(
  238.     [in] ULONG cImplemented,
  239.     [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
  240.     [in] ULONG cRequired,
  241.     [in,unique,size_is(cRequired)] CATID rgcatidReq[],
  242.     [out] IEnumCLSID** ppenumClsid);
  243.  
  244.     [local]
  245.     HRESULT IsClassOfCategories(  
  246.     [in] REFCLSID rclsid, 
  247.     [in] ULONG cImplemented,
  248.     [in,size_is(cImplemented)] CATID rgcatidImpl[],
  249.     [in] ULONG cRequired,
  250.     [in,size_is(cRequired)] CATID rgcatidReq[]);
  251.  
  252.     [call_as(IsClassOfCategories)]
  253.     HRESULT RemoteIsClassOfCategories(  
  254.     [in] REFCLSID rclsid, 
  255.     [in] ULONG cImplemented,
  256.     [in,unique,size_is(cImplemented)] CATID rgcatidImpl[],
  257.     [in] ULONG cRequired,
  258.     [in,unique,size_is(cRequired)] CATID rgcatidReq[] );
  259.  
  260.     HRESULT EnumImplCategoriesOfClass(
  261.     [in] REFCLSID rclsid, 
  262.     [out] IEnumCATID** ppenumCatid);
  263.  
  264.     HRESULT EnumReqCategoriesOfClass(
  265.     [in] REFCLSID rclsid, 
  266.     [out] IEnumCATID** ppenumCatid);
  267. }
  268. cpp_quote("#endif")
  269.  
  270.