fusion: Add initial fusion.idl.
[wine] / include / fusion.idl
1 /*
2  * Copyright 2008 James Hawkins
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 import "objidl.idl";
20
21 interface IAssemblyCache;
22 interface IAssemblyCacheItem;
23 interface IAssemblyEnum;
24 interface IAssemblyName;
25
26 typedef enum
27 {
28     ASM_CACHE_ZAP       = 0x1,
29     ASM_CACHE_GAC       = 0x2,
30     ASM_CACHE_DOWNLOAD  = 0x4,
31     ASM_CACHE_ROOT      = 0x8
32 } ASM_CACHE_FLAGS;
33
34 typedef enum
35 {
36     peNone      = 0x00000000,
37     peMSIL      = 0x00000001,
38     peI386      = 0x00000002,
39     peIA64      = 0x00000003,
40     peAMD64     = 0x00000004,
41     peInvalid   = 0xffffffff
42 } PEKIND;
43
44 typedef enum _tagAssemblyComparisonResult
45 {
46     ACR_Unknown,
47     ACR_EquivalentFullMatch,
48     ACR_EquivalentWeakNamed,
49     ACR_EquivalentFXUnified,
50     ACR_EquivalentUnified,
51     ACR_NonEquivalentVersion,
52     ACR_NonEquivalent,
53     ACR_EquivalentPartialMatch,
54     ACR_EquivalentPartialWeakNamed,
55     ACR_EquivalentPartialUnified,
56     ACR_EquivalentPartialFXUnified,
57     ACR_NonEquivalentPartialVersion
58 } AssemblyComparisonResult;
59
60 [
61     local,
62     object,
63     uuid(e707dcde-d1cd-11d2-bab9-00c04f8eceae),
64     pointer_default(unique)
65 ]
66 interface IAssemblyCache : IUnknown
67 {
68
69 }
70
71 [
72     local,
73     object,
74     uuid(9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae),
75     pointer_default(unique)
76 ]
77 interface IAssemblyCacheItem : IUnknown
78 {
79
80 }
81
82 [
83     local,
84     object,
85     uuid(CD193BC0-B4BC-11d2-9833-00C04FC31D2E),
86     pointer_default(unique)
87 ]
88 interface IAssemblyName: IUnknown
89 {
90     typedef [unique] IAssemblyName *LPASSEMBLYNAME;
91 }
92
93 [
94     local,
95     object,
96     uuid(21b8916c-f28e-11d2-a473-00c04f8ef448),
97     pointer_default(unique)
98 ]
99 interface IAssemblyEnum : IUnknown
100 {
101
102 }
103
104 [
105     local,
106     object,
107     uuid(582dac66-e678-449f-aba6-6faaec8a9394),
108     pointer_default(unique)
109 ]
110 interface IInstallReferenceItem : IUnknown
111 {
112
113 }
114
115 [
116     local,
117     object,
118     uuid(56b1a988-7c0c-4aa2-8639-c3eb5a90226f),
119     pointer_default(unique)
120 ]
121 interface IInstallReferenceEnum : IUnknown
122 {
123
124 }
125
126 cpp_quote("HRESULT WINAPI ClearDownloadCache(void);")
127 cpp_quote("HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR,BOOL,LPCWSTR,BOOL,BOOL*,AssemblyComparisonResult*);")
128 cpp_quote("HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);")
129 cpp_quote("HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum**,IUnknown*,IAssemblyName*,DWORD,LPVOID);")
130 cpp_quote("HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME*,LPCWSTR,DWORD,LPVOID);")
131 cpp_quote("HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum**,IAssemblyName*,DWORD,LPVOID);")
132 cpp_quote("HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR,REFIID,IUnknown**);")
133 cpp_quote("HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS,LPWSTR,PDWORD);")