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 
13 import win32.windows, win32.ole2;
14 private import win32.basetyps, win32.cguid, win32.objbase, win32.unknwn,
15   win32.windef, win32.wtypes;
16 
17 alias IEnumGUID* LPENUMGUID;
18 
19 interface IEnumGUID : IUnknown {
20 	HRESULT Next(ULONG, GUID*, ULONG*);
21 	HRESULT Skip(ULONG);
22 	HRESULT Reset();
23 	HRESULT Clone(LPENUMGUID*);
24 }
25 
26 alias GUID CATID;
27 alias REFGUID REFCATID;
28 alias GUID_NULL CATID_NULL;
29 alias IsEqualGUID IsEqualCATID;
30 
31 struct CATEGORYINFO {
32 	CATID        catid;
33 	LCID         lcid;
34 	OLECHAR[128] szDescription;
35 }
36 alias CATEGORYINFO* LPCATEGORYINFO;
37 
38 alias IEnumGUID IEnumCATID;
39 alias LPENUMGUID LPENUMCATID;
40 alias IID_IEnumGUID IID_IEnumCATID;
41 
42 alias IEnumGUID IEnumCLSID;
43 alias LPENUMGUID LPENUMCLSID;
44 alias IID_IEnumGUID IID_IEnumCLSID;
45 
46 interface ICatInformation : IUnknown {
47 	HRESULT EnumCategories(LCID, LPENUMCATEGORYINFO*);
48 	HRESULT GetCategoryDesc(REFCATID, LCID, PWCHAR*);
49 	HRESULT EnumClassesOfCategories(ULONG, CATID*, ULONG, CATID*,
50 	  LPENUMCLSID*);
51 	HRESULT IsClassOfCategories(REFCLSID, ULONG, CATID*, ULONG, CATID*);
52 	HRESULT EnumImplCategoriesOfClass(REFCLSID, LPENUMCATID*);
53 	HRESULT EnumReqCategoriesOfClass(REFCLSID, LPENUMCATID*);
54 }
55 alias ICatInformation* LPCATINFORMATION;
56 
57 interface ICatRegister : IUnknown {
58 	HRESULT RegisterCategories(ULONG, CATEGORYINFO*);
59 	HRESULT UnRegisterCategories(ULONG, CATID*);
60 	HRESULT RegisterClassImplCategories(REFCLSID, ULONG, CATID*);
61 	HRESULT UnRegisterClassImplCategories(REFCLSID, ULONG, CATID*);
62 	HRESULT RegisterClassReqCategories(REFCLSID, ULONG, CATID*);
63 	HRESULT UnRegisterClassReqCategories(REFCLSID, ULONG, CATID*);
64 }
65 alias ICatRegister* LPCATREGISTER;
66 
67 interface IEnumCATEGORYINFO : IUnknown {
68 	HRESULT Next(ULONG, CATEGORYINFO*, ULONG*);
69 	HRESULT Skip(ULONG);
70 	HRESULT Reset();
71 	HRESULT Clone(LPENUMCATEGORYINFO*);
72 }
73 alias IEnumCATEGORYINFO* LPENUMCATEGORYINFO;