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;