xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/comcat.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
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 module core.sys.windows.comcat;
11 version (Windows):
12 @system:
13 
14 import core.sys.windows.ole2;
15 import core.sys.windows.basetyps, core.sys.windows.cguid, core.sys.windows.objbase, core.sys.windows.unknwn,
16   core.sys.windows.windef, core.sys.windows.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 = 0;
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;
75