Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendcom.idl
Go to the documentation of this file.
00001 /* 00002 * Copyright 2003 Ove Kåven, TransGaming Technologies 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 /* see the official DCOM specification 00020 * (there's a copy at http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm) */ 00021 00022 import "unknwn.idl"; 00023 00024 #ifdef __WIDL__ 00025 [ 00026 threading(both), 00027 uuid(00000320-0000-0000-c000-000000000046) 00028 ] 00029 coclass PSFactoryBuffer { interface IFactoryBuffer; } 00030 #endif 00031 00032 [ 00033 uuid(99fcfe60-5260-101b-bbcb-00aa0021347a), 00034 pointer_default(unique) 00035 ] 00036 interface ObjectRpcBaseTypes 00037 { 00038 typedef unsigned hyper ID; 00039 typedef ID MID; 00040 typedef ID OXID; 00041 typedef ID OID; 00042 typedef ID SETID; 00043 typedef GUID IPID; 00044 typedef GUID CID; 00045 typedef REFGUID REFIPID; 00046 00047 const unsigned short COM_MINOR_VERSION_1 = 1; 00048 const unsigned short COM_MINOR_VERSION_2 = 2; 00049 00050 const unsigned short COM_MAJOR_VERSION = 5; 00051 const unsigned short COM_MINOR_VERSION = 3; 00052 00053 typedef struct tagCOMVERSION { 00054 unsigned short MajorVersion; 00055 unsigned short MinorVersion; 00056 } COMVERSION; 00057 00058 const unsigned long ORPCF_NULL = 0; 00059 const unsigned long ORPCF_LOCAL = 1; 00060 const unsigned long ORPCF_RESERVED1 = 2; 00061 const unsigned long ORPCF_RESERVED2 = 4; 00062 const unsigned long ORPCF_RESERVED3 = 8; 00063 const unsigned long ORPCF_RESERVED4 = 16; 00064 00065 typedef struct tagORPC_EXTENT { 00066 GUID id; 00067 unsigned long size; 00068 [size_is((size+7)&~7)] byte data[]; 00069 } ORPC_EXTENT; 00070 00071 typedef struct tagORPC_EXTENT_ARRAY { 00072 unsigned long size; 00073 unsigned long reserved; 00074 [size_is((size+1)&~1,), unique] ORPC_EXTENT **extent; 00075 } ORPC_EXTENT_ARRAY; 00076 00077 typedef struct tagORPCTHIS { 00078 COMVERSION version; 00079 unsigned long flags; 00080 unsigned long reserved1; 00081 CID cid; 00082 [unique] ORPC_EXTENT_ARRAY *extensions; 00083 } ORPCTHIS; 00084 00085 typedef struct tagORPCTHAT { 00086 unsigned long flags; 00087 [unique] ORPC_EXTENT_ARRAY *extensions; 00088 } ORPCTHAT; 00089 00090 const unsigned short NCADG_IP_UDP = 0x08; 00091 const unsigned short NCACN_IP_TCP = 0x07; 00092 const unsigned short NCADG_IPX = 0x0E; 00093 const unsigned short NCACN_SPX = 0x0C; 00094 const unsigned short NCACN_NB_NB = 0x12; 00095 const unsigned short NCACN_NB_IPX = 0x0D; 00096 const unsigned short NCACN_DNET_NSP = 0x04; 00097 const unsigned short NCACN_HTTP = 0x1F; 00098 00099 typedef struct tagSTRINGBINDING { 00100 unsigned short wTowerId; 00101 [string] WCHAR aNetworkAddr[]; 00102 } STRINGBINDING; 00103 00104 const unsigned short COM_C_AUTHZ_NONE = 0xffff; 00105 00106 typedef struct tagSECURITYBINDING { 00107 unsigned short wAuthnSvc; 00108 unsigned short wAuthzSvc; 00109 [string] WCHAR aPrincName[]; 00110 } SECURITYBINDING; 00111 00112 typedef struct tagDUALSTRINGARRAY { 00113 unsigned short wNumEntries; 00114 unsigned short wSecurityOffset; 00115 [size_is(wNumEntries)] unsigned short aStringArray[]; 00116 } DUALSTRINGARRAY; 00117 00118 typedef struct tagOXID_INFO { 00119 DWORD dwTid; 00120 DWORD dwPid; 00121 IPID ipidRemUnknown; 00122 DWORD dwAuthnHint; 00123 DUALSTRINGARRAY *psa; 00124 } OXID_INFO; 00125 00126 const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */ 00127 const unsigned long OBJREF_STANDARD = 0x1; 00128 const unsigned long OBJREF_HANDLER = 0x2; 00129 const unsigned long OBJREF_CUSTOM = 0x4; 00130 const unsigned long SORF_OXRES1 = 0x1; 00131 const unsigned long SORF_OXRES2 = 0x20; 00132 const unsigned long SORF_OXRES3 = 0x40; 00133 const unsigned long SORF_OXRES4 = 0x80; 00134 const unsigned long SORF_OXRES5 = 0x100; 00135 const unsigned long SORF_OXRES6 = 0x200; 00136 const unsigned long SORF_OXRES7 = 0x400; 00137 const unsigned long SORF_OXRES8 = 0x800; 00138 const unsigned long SORF_NULL = 0x0; 00139 const unsigned long SORF_NOPING = 0x1000; 00140 00141 typedef struct tagSTDOBJREF { 00142 unsigned long flags; 00143 unsigned long cPublicRefs; 00144 OXID oxid; 00145 OID oid; 00146 IPID ipid; 00147 } STDOBJREF; 00148 00149 typedef struct tagOBJREF { 00150 unsigned long signature; 00151 unsigned long flags; 00152 GUID iid; 00153 [switch_is(flags)] union { 00154 [case(OBJREF_STANDARD)] struct OR_STANDARD { 00155 STDOBJREF std; 00156 DUALSTRINGARRAY saResAddr; 00157 } u_standard; 00158 [case(OBJREF_HANDLER)] struct OR_HANDLER { 00159 STDOBJREF std; 00160 CLSID clsid; 00161 DUALSTRINGARRAY saResAddr; 00162 } u_handler; 00163 [case(OBJREF_CUSTOM)] struct OR_CUSTOM { 00164 CLSID clsid; 00165 unsigned long cbExtension; 00166 ULONG size; 00167 [size_is(size), ref] byte *pData; 00168 } u_custom; 00169 } u_objref; 00170 } OBJREF; 00171 00172 typedef struct tagMInterfacePointer { 00173 ULONG ulCntData; 00174 [size_is(ulCntData)] BYTE abData[]; 00175 } MInterfacePointer; 00176 00177 typedef [unique] MInterfacePointer *PMInterfacePointer; 00178 00179 } /* interface ObjectRpcBaseTypes */ 00180 00181 [ 00182 object, 00183 uuid(00000131-0000-0000-C000-000000000046) 00184 ] 00185 interface IRemUnknown : IUnknown 00186 { 00187 typedef [unique] IRemUnknown *LPREMUNKNOWN; 00188 00189 typedef struct tagREMQIRESULT { 00190 HRESULT hResult; 00191 STDOBJREF std; 00192 } REMQIRESULT; 00193 00194 typedef struct tagREMINTERFACEREF { 00195 IPID ipid; 00196 unsigned long cPublicRefs; 00197 unsigned long cPrivateRefs; 00198 } REMINTERFACEREF; 00199 00200 HRESULT RemQueryInterface( 00201 [in] REFIPID ripid, 00202 [in] ULONG cRefs, 00203 [in] unsigned short cIids, 00204 [in, size_is(cIids)] IID *iids, 00205 [out, size_is(,cIids)] REMQIRESULT **ppQIResults); 00206 00207 HRESULT RemAddRef( 00208 [in] unsigned short cInterfaceRefs, 00209 [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs, 00210 [out, size_is(cInterfaceRefs)] HRESULT *pResults); 00211 00212 HRESULT RemRelease( 00213 [in] unsigned short cInterfaceRefs, 00214 [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs); 00215 } 00216 00217 [ 00218 object, 00219 uuid(00000142-0000-0000-C000-000000000046) 00220 ] 00221 interface IRemUnknown2 : IRemUnknown 00222 { 00223 typedef [unique] IRemUnknown2 *LPREMUNKNOWN2; 00224 00225 HRESULT RemQueryInterface2( 00226 [in] REFIPID ripid, 00227 [in] unsigned short cIids, 00228 [in, size_is(cIids)] IID *iids, 00229 [out, size_is(cIids)] HRESULT *phr, 00230 [out, size_is(cIids)] MInterfacePointer **ppMIF); 00231 } 00232 00233 [ 00234 uuid(99fcfec4-5260-101b-bbcb-00aa0021347a), 00235 pointer_default(unique) 00236 ] 00237 interface IOXIDResolver 00238 { 00239 [idempotent] error_status_t ResolveOxid( 00240 [in] handle_t hRpc, 00241 [in] OXID *pOxid, 00242 [in] unsigned short cRequestedProtseqs, 00243 [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[], 00244 [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings, 00245 [out, ref] IPID *pipidRemUnknown, 00246 [out, ref] DWORD *pAuthnHint); 00247 00248 [idempotent] error_status_t SimplePing( 00249 [in] handle_t hRpc, 00250 [in] SETID *pSetId); 00251 00252 [idempotent] error_status_t ComplexPing( 00253 [in] handle_t hRpc, 00254 [in, out] SETID *pSetId, 00255 [in] unsigned short SequenceNum, 00256 [in] unsigned short cAddToSet, 00257 [in] unsigned short cDelFromSet, 00258 [in, unique, size_is(cAddToSet)] OID AddToSet[], 00259 [in, unique, size_is(cDelFromSet)] OID DelFromSet[], 00260 [out] unsigned short *pPingBackoffFactor); 00261 00262 [idempotent] error_status_t ServerAlive( 00263 [in] handle_t hRpc); 00264 00265 [idempotent] error_status_t ResolveOxid2( 00266 [in] handle_t hRpc, 00267 [in] OXID *pOxid, 00268 [in] unsigned short cRequestedProtseqs, 00269 [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[], 00270 [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings, 00271 [out, ref] IPID *pipidRemUnknown, 00272 [out, ref] DWORD *pAuthnHint, 00273 [out, ref] COMVERSION *pComVersion); 00274 } 00275 00276 [ 00277 uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57), 00278 pointer_default(unique) 00279 ] 00280 interface IRemoteActivation 00281 { 00282 const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff; 00283 00284 HRESULT RemoteActivation( 00285 [in] handle_t hRpc, 00286 [in] ORPCTHIS *ORPCthis, 00287 [out] ORPCTHAT *ORPCthat, 00288 [in] GUID *Clsid, 00289 [in, string, unique] WCHAR *pwszObjectName, 00290 [in, unique] MInterfacePointer *pObjectStorage, 00291 [in] DWORD ClientImpLevel, 00292 [in] DWORD Mode, 00293 [in] DWORD Interfaces, 00294 [in, unique, size_is(Interfaces)] IID *pIIDs, 00295 [in] unsigned short cRequestedProtseqs, 00296 [in, size_is(cRequestedProtseqs)] unsigned short RequestedProtseqs[], 00297 [out] OXID *pOxid, 00298 [out] DUALSTRINGARRAY **ppdsaOxidBindings, 00299 [out] IPID *pipidRemUnknown, 00300 [out] DWORD *pAuthnHint, 00301 [out] COMVERSION *pServerVersion, 00302 [out] HRESULT *phr, 00303 [out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData, 00304 [out,size_is(Interfaces)] HRESULT *pResults); 00305 } Generated on Sun May 27 2012 04:25:36 for ReactOS by
1.7.6.1
|