[ uuid(2F5F6520-CA46-1067-B319-00DD010662DA), version(1.0), #ifdef __midl ms_union, #endif // __midl pointer_default(unique) ] interface tapsrv { typedef [context_handle] void * PCONTEXT_HANDLE_TYPE; long ClientAttach( [out] PCONTEXT_HANDLE_TYPE *pphContext, [in] long lProcessID, [out] long *phAsyncEventsEvent, [in, string] wchar_t *pszDomainUser, [in, string] wchar_t *pszMachine ); void ClientRequest( [in] PCONTEXT_HANDLE_TYPE phContext, [in, out, length_is(*plUsedSize), size_is(lNeededSize)] unsigned char* pBuffer, [in] long lNeededSize, [in, out] long *plUsedSize ); void ClientDetach( [in, out] PCONTEXT_HANDLE_TYPE *pphContext ); }