1 /***********************************************************************\
2 *                                comcat.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                           by Stewart Gordon                           *
8 *                                                                       *
9 *                       Placed into public domain                       *
10 \***********************************************************************/
11 module win32.comcat;
12 version(Windows):
13 
14 import win32.windows, win32.ole2;
15 private import win32.basetyps, win32.cguid, win32.objbase, win32.unknwn,
16   win32.windef, win32.wtypes;
17 
18 alias IEnumGUID LPENUMGUID;
19 
20 interface IEnumGUID : IUnknown {
21 	HRESULT Next(ULONG, GUID*, ULONG*);
22 	HRESULT Skip(ULONG);
23 	HRESULT Reset();
24 	HRESULT Clone(LPENUMGUID*);
25 }
26 
27 alias GUID CATID;
28 alias REFGUID REFCATID;
29 alias GUID_NULL CATID_NULL;
30 alias IsEqualGUID IsEqualCATID;
31 
32 struct CATEGORYINFO {
33 	CATID        catid;
34 	LCID         lcid;
35 	OLECHAR[128] szDescription;
36 }
37 alias CATEGORYINFO* LPCATEGORYINFO;
38 
39 alias IEnumGUID IEnumCATID;
40 alias LPENUMGUID LPENUMCATID;
41 alias IID_IEnumGUID IID_IEnumCATID;
42 
43 alias IEnumGUID IEnumCLSID;
44 alias LPENUMGUID LPENUMCLSID;
45 alias IID_IEnumGUID IID_IEnumCLSID;
46 
47 interface ICatInformation : IUnknown {
48 	HRESULT EnumCategories(LCID, LPENUMCATEGORYINFO*);
49 	HRESULT GetCategoryDesc(REFCATID, LCID, PWCHAR*);
50 	HRESULT EnumClassesOfCategories(ULONG, CATID*, ULONG, CATID*,
51 	  LPENUMCLSID*);
52 	HRESULT IsClassOfCategories(REFCLSID, ULONG, CATID*, ULONG, CATID*);
53 	HRESULT EnumImplCategoriesOfClass(REFCLSID, LPENUMCATID*);
54 	HRESULT EnumReqCategoriesOfClass(REFCLSID, LPENUMCATID*);
55 }
56 alias ICatInformation LPCATINFORMATION;
57 
58 interface ICatRegister : IUnknown {
59 	HRESULT RegisterCategories(ULONG, CATEGORYINFO*);
60 	HRESULT UnRegisterCategories(ULONG, CATID*);
61 	HRESULT RegisterClassImplCategories(REFCLSID, ULONG, CATID*);
62 	HRESULT UnRegisterClassImplCategories(REFCLSID, ULONG, CATID*);
63 	HRESULT RegisterClassReqCategories(REFCLSID, ULONG, CATID*);
64 	HRESULT UnRegisterClassReqCategories(REFCLSID, ULONG, CATID*);
65 }
66 alias ICatRegister LPCATREGISTER;
67 
68 interface IEnumCATEGORYINFO : IUnknown {
69 	HRESULT Next(ULONG, CATEGORYINFO*, ULONG*);
70 	HRESULT Skip(ULONG);
71 	HRESULT Reset();
72 	HRESULT Clone(LPENUMCATEGORYINFO*);
73 }
74 alias IEnumCATEGORYINFO LPENUMCATEGORYINFO;