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