6.1 Appendix A.1: IRPCAsyncNotify.IDL
This IDL uses definitions from the IRPCRemoteObject interface (section 6.2) and RPC extensions defined in [MS-RPCE].
-
import "ms-pan_irpcremoteobject.idl"; [ uuid(0b6edbfa-4a24-4fc6-8a23-942b1eca65d1), version(1.0), pointer_default(unique) ] interface IRPCAsyncNotify { // [MS-PAN] enumerations typedef [v1_enum] enum { kBiDirectional = 0, kUniDirectional = 1, } PrintAsyncNotifyConversationStyle; typedef [v1_enum] enum { kPerUser = 0, kAllUsers = 1, } PrintAsyncNotifyUserFilter; // [MS-PAN] data types typedef GUID PrintAsyncNotificationType; typedef [context_handle] void* PNOTIFYOBJECT; // [MS-PAN] methods HRESULT IRPCAsyncNotify_RegisterClient( [in] PRPCREMOTEOBJECT pRegistrationObj, [in,string,unique] const wchar_t* pName, [in] PrintAsyncNotificationType* pInNotificationType, [in] PrintAsyncNotifyUserFilter NotifyFilter, [in] PrintAsyncNotifyConversationStyle conversationStyle, [out, string] wchar_t** ppRmtServerReferral ); HRESULT IRPCAsyncNotify_UnregisterClient( [in] PRPCREMOTEOBJECT pRegistrationObj ); void Opnum2NotUsedOnWire(void); HRESULT IRPCAsyncNotify_GetNewChannel( [in] PRPCREMOTEOBJECT pRemoteObj, [out] unsigned long* pNoOfChannels, [out,size_is( , *pNoOfChannels)] PNOTIFYOBJECT** ppChannelCtxt ); HRESULT IRPCAsyncNotify_GetNotificationSendResponse( [in, out] PNOTIFYOBJECT* pChannel, [in, unique] PrintAsyncNotificationType* pInNotificationType, [in] unsigned long InSize, [in, size_is(InSize), unique] byte* pInNotificationData, [out] PrintAsyncNotificationType** ppOutNotificationType, [out] unsigned long* pOutSize, [out, size_is( , *pOutSize)] byte** ppOutNotificationData ); HRESULT IRPCAsyncNotify_GetNotification( [in] PRPCREMOTEOBJECT pRemoteObj, [out] PrintAsyncNotificationType** ppOutNotificationType, [out] unsigned long* pOutSize, [out, size_is( , *pOutSize)] byte** ppOutNotificationData ); HRESULT IRPCAsyncNotify_CloseChannel( [in, out] PNOTIFYOBJECT* pChannel, [in] PrintAsyncNotificationType* pInNotificationType, [in] unsigned long InSize, [in, size_is(InSize), unique] byte* pReason ); }