6 Appendix A: Full IDL
For ease of implementation, the following full IDL is provided, where "ms-dtyp.idl" refers to the IDL found in [MS-DTYP] Appendix A. The syntax uses the IDL syntax extensions defined in [MS-RPCE]. For example, as noted in [MS-RPCE], a pointer_default declaration is not required and pointer_default(unique) is assumed.
-
import "ms-rpce.idl"; typedef [context_handle] void * CXH; typedef [context_handle] void * ACXH; // Special restricted types to prevent allocation of big buffers. typedef [range(0x0, 0x40000)] unsigned long BIG_RANGE_ULONG; typedef [range(0x0, 0x1008)] unsigned long SMALL_RANGE_ULONG; [ uuid (A4F1DB00-CA47-1067-B31F-00DD010662DA), version(0.81), pointer_default(unique)] interface emsmdb { long __stdcall Opnum0Reserved( ); long __stdcall EcDoDisconnect( [in, out, ref] CXH * pcxh ); long __stdcall Opnum2Reserved( ); long __stdcall Opnum3Reserved( ); long __stdcall EcRRegisterPushNotification( [in, out, ref] CXH * pcxh, [in] unsigned long iRpc, [in, size_is(cbContext)]unsigned char rgbContext[], [in] unsigned short cbContext, [in] unsigned long grbitAdviseBits, [in, size_is(cbCallbackAddress)] unsigned char rgbCallbackAddress[], [in] unsigned short cbCallbackAddress, [out] unsigned long *hNotification ); long __stdcall Opnum5Reserved( ); long __stdcall EcDummyRpc( [in] handle_t hBinding ); long __stdcall Opnum7Reserved( ); long __stdcall Opnum8Reserved( ); long __stdcall Opnum9Reserved( ); long __stdcall EcDoConnectEx( [in] handle_t hBinding, [out, ref] CXH * pcxh, [in, string] unsigned char * szUserDN, [in] unsigned long ulFlags, [in] unsigned long ulConMod, [in] unsigned long cbLimit, [in] unsigned long ulCpid, [in] unsigned long ulLcidString, [in] unsigned long ulLcidSort, [in] unsigned long ulIcxrLink, [in] unsigned short usFCanConvertCodePages, [out] unsigned long * pcmsPollsMax, [out] unsigned long * pcRetry, [out] unsigned long * pcmsRetryDelay, [out] unsigned short * picxr, [out, string] unsigned char **szDNPrefix, [out, string] unsigned char **szDisplayName, [in] unsigned short rgwClientVersion[3], [out] unsigned short rgwServerVersion[3], [out] unsigned short rgwBestVersion[3], [in, out] unsigned long * pulTimeStamp, [in, size_is(cbAuxIn)] unsigned char rgbAuxIn[], [in] unsigned long cbAuxIn, [out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] unsigned char rgbAuxOut[], [in, out] SMALL_RANGE_ULONG *pcbAuxOut ); long __stdcall EcDoRpcExt2( [in, out, ref] CXH * pcxh, [in, out] unsigned long *pulFlags, [in, size_is(cbIn)] unsigned char rgbIn[], [in] unsigned long cbIn, [out, length_is(*pcbOut), size_is(*pcbOut)] unsigned char rgbOut[], [in, out] BIG_RANGE_ULONG *pcbOut, [in, size_is(cbAuxIn)] unsigned char rgbAuxIn[], [in] unsigned long cbAuxIn, [out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] unsigned char rgbAuxOut[], [in, out] SMALL_RANGE_ULONG *pcbAuxOut, [out] unsigned long *pulTransTime ); long __stdcall Opnum12Reserved( ); long __stdcall Opnum13Reserved( ); long __stdcall EcDoAsyncConnectEx( [in] CXH cxh, [out, ref] ACXH * pacxh ); } [ uuid (5261574A-4572-206E-B268-6B199213B4E4), version(0.01), pointer_default(unique)] interface asyncemsmdb { long __stdcall EcDoAsyncWaitEx( [in] ACXH acxh, [in] unsigned long ulFlagsIn, [out] unsigned long *pulFlagsOut ); }
Show: