]> git.saurik.com Git - apple/mdnsresponder.git/blob - mDNSWindows/DLLX/DLLX.idl
mDNSResponder-214.3.tar.gz
[apple/mdnsresponder.git] / mDNSWindows / DLLX / DLLX.idl
1 /* -*- Mode: C; tab-width: 4 -*-
2 *
3 * Copyright (c) 2009 Apple Computer, Inc. All rights reserved.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16
17 Change History (most recent first):
18
19 $Log: DLLX.idl,v $
20 Revision 1.1 2009/05/26 04:43:54 herscher
21 <rdar://problem/3948252> COM component that can be used with any .NET language and VB.
22
23
24 */
25
26 // This file will be processed by the MIDL tool to
27 // produce the type library (DLLComponent.tlb) and marshalling code.
28
29 typedef [ uuid(4085DD59-D0E1-4efe-B6EE-DDBF7631B9C0) ]
30 enum DNSSDFlags
31 {
32 kDNSSDFlagsMoreComing = 0x0001,
33 kDNSSDFlagsDefault = 0x0004,
34 kDNSSDFlagsNoAutoRename = 0x0008,
35 kDNSSDFlagsShared = 0x0010,
36 kDNSSDFlagsUnique = 0x0020,
37 kDNSSDFlagsBrowseDomains = 0x0040,
38 kDNSSDFlagsRegistrationDomains = 0x0080,
39 kDNSSDFlagsLongLivedQuery = 0x0100,
40 kDNSSDFlagsAllowRemoteQuery = 0x0200,
41 kDNSSDFlagsForceMulticast = 0x0400,
42 kDNSSDFlagsForce = 0x0800,
43 kDNSSDFlagsReturnIntermediates = 0x1000,
44 kDNSSDFlagsNonBrowsable = 0x2000
45 } DNSSDFlags;
46
47
48 typedef [ uuid(30CDF335-CA52-4b17-AFF2-E83C64C450D4) ]
49 enum DNSSDAddressFamily
50 {
51 kDNSSDAddressFamily_IPv4 = 0x1,
52 kDNSSDAddressFamily_IPv6 = 0x2
53 } DNSSDAddressFamily;
54
55
56 typedef [ uuid(98FB4702-7374-4b16-A8DB-AD35BFB8364D) ]
57 enum DNSSDProtocol
58 {
59 kDNSSDProtocol_UDP = 0x10,
60 kDNSSDProtocol_TCP = 0x20
61 } DNSSDProtocol;
62
63
64 typedef [ uuid(72BF3EC3-19BC-47e5-8D95-3B73FF37D893) ]
65 enum DNSSDRRClass
66 {
67 kDNSSDClass_IN = 1
68 } DNSSDRRClass;
69
70
71 typedef [ uuid(08E362DF-5468-4c9a-AC66-FD4747B917BD) ]
72 enum DNSSDRRType
73 {
74 kDNSSDType_A = 1,
75 kDNSSDType_NS = 2,
76 kDNSSDType_MD = 3,
77 kDNSSDType_MF = 4,
78 kDNSSDType_CNAME = 5,
79 kDNSSDType_SOA = 6,
80 kDNSSDType_MB = 7,
81 kDNSSDType_MG = 8,
82 kDNSSDType_MR = 9,
83 kDNSSDType_NULL = 10,
84 kDNSSDType_WKS = 11,
85 kDNSSDType_PTR = 12,
86 kDNSSDType_HINFO = 13,
87 kDNSSDType_MINFO = 14,
88 kDNSSDType_MX = 15,
89 kDNSSDType_TXT = 16,
90 kDNSSDType_RP = 17,
91 kDNSSDType_AFSDB = 18,
92 kDNSSDType_X25 = 19,
93 kDNSSDType_ISDN = 20,
94 kDNSSDType_RT = 21,
95 kDNSSDType_NSAP = 22,
96 kDNSSDType_NSAP_PTR = 23,
97 kDNSSDType_SIG = 24,
98 kDNSSDType_KEY = 25,
99 kDNSSDType_PX = 26,
100 kDNSSDType_GPOS = 27,
101 kDNSSDType_AAAA = 28,
102 kDNSSDType_LOC = 29,
103 kDNSSDType_NXT = 30,
104 kDNSSDType_EID = 31,
105 kDNSSDType_NIMLOC = 32,
106 kDNSSDType_SRV = 33,
107 kDNSSDType_ATMA = 34,
108 kDNSSDType_NAPTR = 35,
109 kDNSSDType_KX = 36,
110 kDNSSDType_CERT = 37,
111 kDNSSDType_A6 = 38,
112 kDNSSDType_DNAME = 39,
113 kDNSSDType_SINK = 40,
114 kDNSSDType_OPT = 41,
115 kDNSSDType_APL = 42,
116 kDNSSDType_DS = 43,
117 kDNSSDType_SSHFP = 44,
118 kDNSSDType_IPSECKEY = 45,
119 kDNSSDType_RRSIG = 46,
120 kDNSSDType_NSEC = 47,
121 kDNSSDType_DNSKEY = 48,
122 kDNSSDType_DHCID = 49,
123 kDNSSDType_NSEC3 = 50,
124 kDNSSDType_NSEC3PARAM= 51,
125 kDNSSDType_HIP = 55,
126 kDNSSDType_SPF = 99,
127 kDNSSDType_UINFO = 100,
128 kDNSSDType_UID = 101,
129 kDNSSDType_GID = 102,
130 kDNSSDType_UNSPEC = 103,
131 kDNSSDType_TKEY = 249,
132 kDNSSDType_TSIG = 250,
133 kDNSSDType_IXFR = 251,
134 kDNSSDType_AXFR = 252,
135 kDNSSDType_MAILB = 253,
136 kDNSSDType_MAILA = 254,
137 kDNSSDType_ANY = 255
138 } DNSSDRRType;
139
140
141 typedef [ uuid(3B0059E7-5297-4301-9AAB-1522F31EC8A7) ]
142 enum DNSSDError
143 {
144 kDNSSDError_NoError = 0,
145 kDNSSDError_Unknown = -65537,
146 kDNSSDError_NoSuchName = -65538,
147 kDNSSDError_NoMemory = -65539,
148 kDNSSDError_BadParam = -65540,
149 kDNSSDError_BadReference = -65541,
150 kDNSSDError_BadState = -65542,
151 kDNSSDError_BadFlags = -65543,
152 kDNSSDError_Unsupported = -65544,
153 kDNSSDError_NotInitialized = -65545,
154 kDNSSDError_AlreadyRegistered = -65547,
155 kDNSSDError_NameConflict = -65548,
156 kDNSSDError_Invalid = -65549,
157 kDNSSDError_Firewall = -65550,
158 kDNSSDError_Incompatible = -65551,
159 kDNSSDError_BadInterfaceIndex = -65552,
160 kDNSSDError_Refused = -65553,
161 kDNSSDError_NoSuchRecord = -65554,
162 kDNSSDError_NoAuth = -65555,
163 kDNSSDError_NoSuchKey = -65556,
164 kDNSSDError_NATTraversal = -65557,
165 kDNSSDError_DoubleNAT = -65558,
166 kDNSSDError_BadTime = -65559,
167 kDNSSDError_BadSig = -65560,
168 kDNSSDError_BadKey = -65561,
169 kDNSSDError_Transient = -65562,
170 kDNSSDError_ServiceNotRunning = -65563, /* Background daemon not running */
171 kDNSSDError_NATPortMappingUnsupported = -65564, /* NAT doesn't support NAT-PMP or UPnP */
172 kDNSSDError_NATPortMappingDisabled = -65565, /* NAT supports NAT-PMP or UPnP but it's disabled by the administrator */
173 kDNSSDError_NoRouter = -65566, /* No router currently configured (probably no network connectivity) */
174 kDNSSDError_PollingMode = -65567
175 } DNSSDError;
176
177 import "oaidl.idl";
178 import "ocidl.idl";
179
180
181 [
182 object,
183 uuid(8FA0889C-5973-4FC9-970B-EC15C925D0CE),
184 dual,
185 nonextensible,
186 helpstring("ITXTRecord Interface"),
187 pointer_default(unique)
188 ]
189 interface ITXTRecord : IDispatch{
190 [id(1), helpstring("method SetValue")] HRESULT SetValue([in] BSTR key, [in] VARIANT value);
191 [id(2), helpstring("method RemoveValue")] HRESULT RemoveValue([in] BSTR key);
192 [id(3), helpstring("method ContainsKey")] HRESULT ContainsKey([in] BSTR key, [out,retval] VARIANT_BOOL* retval);
193 [id(4), helpstring("method GetValueForKey")] HRESULT GetValueForKey([in] BSTR key, [out,retval] VARIANT* value);
194 [id(5), helpstring("method GetCount")] HRESULT GetCount([out,retval] ULONG* count);
195 [id(6), helpstring("method GetKeyAtIndex")] HRESULT GetKeyAtIndex([in] ULONG index, [out,retval] BSTR* retval);
196 [id(7), helpstring("method GetValueAtIndex")] HRESULT GetValueAtIndex([in] ULONG index, [out,retval] VARIANT* retval);
197 };
198 [
199 object,
200 uuid(9CE603A0-3365-4DA0-86D1-3F780ECBA110),
201 dual,
202 nonextensible,
203 helpstring("IDNSSDRecord Interface"),
204 pointer_default(unique)
205 ]
206 interface IDNSSDRecord : IDispatch{
207 [id(1), helpstring("method Update")] HRESULT Update([in] DNSSDFlags flags, [in] VARIANT rdata, [in] ULONG ttl);
208 [id(2), helpstring("method Remove")] HRESULT Remove([in] DNSSDFlags flags);
209 };
210 [
211 object,
212 uuid(7FD72324-63E1-45AD-B337-4D525BD98DAD),
213 dual,
214 nonextensible,
215 helpstring("IDNSSDEventManager Interface"),
216 pointer_default(unique)
217 ]
218 interface IDNSSDEventManager : IDispatch{
219 };
220 [
221 object,
222 uuid(29DE265F-8402-474F-833A-D4653B23458F),
223 dual,
224 nonextensible,
225 helpstring("IDNSSDService Interface"),
226 pointer_default(unique)
227 ]
228 interface IDNSSDService : IDispatch{
229 [id(1), helpstring("method EnumerateDomains")] HRESULT EnumerateDomains([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
230 [id(2), helpstring("method Browse"), local] HRESULT Browse([in] DNSSDFlags flags, [in] ULONG interfaceIndex, [in] BSTR regtype, [in] BSTR domain, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** sdref);
231 [id(3), helpstring("method Resolve")] HRESULT Resolve([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR serviceName, [in] BSTR regType, [in] BSTR domain, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
232 [id(4), helpstring("method Register")] HRESULT Register([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR name, [in] BSTR regType, [in] BSTR domain, [in] BSTR host, [in] USHORT port, [in] ITXTRecord* record, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
233 [id(5), helpstring("method QueryRecord")] HRESULT QueryRecord([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR fullname, [in] DNSSDRRType rrtype, [in] DNSSDRRClass rrclass, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
234 [id(6), helpstring("method RegisterRecord")] HRESULT RegisterRecord([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR fullname, [in] DNSSDRRType rrtype, [in] DNSSDRRClass rrclass, [in] VARIANT rdata, [in] ULONG ttl, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDRecord** record);
235 [id(7), helpstring("method AddRecord")] HRESULT AddRecord([in] DNSSDFlags flags, [in] DNSSDRRType rrtype, [in] VARIANT rdata, [in] ULONG ttl, [out,retval] IDNSSDRecord** record);
236 [id(8), helpstring("method ReconfirmRecord")] HRESULT ReconfirmRecord([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR fullname, [in] DNSSDRRType rrtype, [in] DNSSDRRClass rrclass, [in] VARIANT rdata);
237 [id(9), helpstring("method GetProperty")] HRESULT GetProperty([in] BSTR prop, [in,out] VARIANT * value );
238 [id(10), helpstring("method GetAddrInfo")] HRESULT GetAddrInfo([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] DNSSDAddressFamily addressFamily, [in] BSTR hostname, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
239 [id(11), helpstring("method NATPortMappingCreate")] HRESULT NATPortMappingCreate([in] DNSSDFlags flags, [in] ULONG ifIndex, [in] DNSSDAddressFamily addressFamily, [in] DNSSDProtocol protocol, [in] USHORT internalPort, [in] USHORT externalPort, [in] ULONG ttl, [in] IDNSSDEventManager* eventManager, [out,retval] IDNSSDService** service);
240 [id(12), helpstring("method Stop"), local] HRESULT Stop(void);
241 };
242 [
243 uuid(18FBED6D-F2B7-4EC8-A4A4-46282E635308),
244 version(1.0),
245 helpstring("Apple Bonjour Library 1.0")
246 ]
247 library Bonjour
248 {
249 importlib("stdole2.tlb");
250 [
251 uuid(21AE8D7F-D5FE-45cf-B632-CFA2C2C6B498),
252 helpstring("_IDNSSDEvents Interface")
253 ]
254 dispinterface _IDNSSDEvents
255 {
256 properties:
257 methods:
258 [id(1), helpstring("method DomainFound")] void DomainFound([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR domain);
259 [id(2), helpstring("method DomainLost")] void DomainLost([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR domain);
260 [id(3), helpstring("method ServiceFound")] void ServiceFound([in] IDNSSDService* browser, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR serviceName, [in] BSTR regType, [in] BSTR domain);
261 [id(4), helpstring("method ServiceLost")] void ServiceLost([in] IDNSSDService* browser, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR serviceName, [in] BSTR regType, [in] BSTR domain);
262 [id(5), helpstring("method ServiceResolved")] void ServiceResolved([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR fullName, [in] BSTR hostName, [in] USHORT port, [in] ITXTRecord* record);
263 [id(6), helpstring("method ServiceRegistered")] void ServiceRegistered([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] BSTR name, [in] BSTR regType, [in] BSTR domain);
264 [id(7), helpstring("method QueryRecordAnswered")] void QueryRecordAnswered([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR fullName, [in] DNSSDRRType rrtype, [in] DNSSDRRClass rrclass, [in] VARIANT rdata, [in] ULONG ttl);
265 [id(8), helpstring("method RecordRegistered")] void RecordRegistered([in] IDNSSDRecord* record, [in] DNSSDFlags flags);
266 [id(9), helpstring("method AddressFound")] void AddressFound([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] BSTR hostname, [in] DNSSDAddressFamily addressFamily, [in] BSTR address, [in] ULONG ttl);
267 [id(10), helpstring("method MappingCreated")] void MappingCreated([in] IDNSSDService* service, [in] DNSSDFlags flags, [in] ULONG ifIndex, [in] ULONG externalAddress, [in] DNSSDAddressFamily addressFamily, [in] DNSSDProtocol protocol, [in] USHORT internalPort, [in] USHORT externalPort, [in] ULONG ttl);
268 [id(11), helpstring("method OperationFailed")] void OperationFailed([in] IDNSSDService* service, [in] DNSSDError error);
269 };
270 [
271 uuid(24CD4DE9-FF84-4701-9DC1-9B69E0D1090A),
272 helpstring("DNSSDService Class")
273 ]
274 coclass DNSSDService
275 {
276 [default] interface IDNSSDService;
277 };
278 [
279 uuid(AFEE063C-05BA-4248-A26E-168477F49734),
280 helpstring("TXTRecord Class")
281 ]
282 coclass TXTRecord
283 {
284 [default] interface ITXTRecord;
285 };
286 [
287 uuid(5E93C5A9-7516-4259-A67B-41A656F6E01C),
288 helpstring("DNSSDRecord Class")
289 ]
290 coclass DNSSDRecord
291 {
292 [default] interface IDNSSDRecord;
293 };
294 [
295 uuid(BEEB932A-8D4A-4619-AEFE-A836F988B221),
296 helpstring("DNSSDEventManager Class")
297 ]
298 coclass DNSSDEventManager
299 {
300 [default] interface IDNSSDEventManager;
301 [default, source] dispinterface _IDNSSDEvents;
302 };
303 enum DNSSDFlags;
304 enum DNSSDAddressFamily;
305 enum DNSSDProtocol;
306 enum DNSSDRRClass;
307 enum DNSSDRRType;
308 enum DNSSDError;
309 };