3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2007 Francois Gouget
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __WINE_RPCASYNC_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __WINE_RPCASYNC_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef RPC_NO_WINDOWS_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# include <windef.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __RPC_WIN64__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# include <pshpack8.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagRPC_ERROR_ENUM_HANDLE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG Signature;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void* CurrentPos;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void* Head;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_ERROR_ENUM_HANDLE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum tagExtendedErrorParamTypes
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptAnsiString = 1,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptUnicodeString,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptLongVal,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptShortVal,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptPointerVal,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptNone,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync eeptBinary
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} ExtendedErrorParamTypes;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MaxNumberOfEEInfoParams 4
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RPC_EEINFO_VERSION 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagBinaryParam
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void *Buffer;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync short Size;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} BinaryParam;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagRPC_EE_INFO_PARAM
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ExtendedErrorParamTypes ParameterType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync union
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPSTR AnsiString;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPWSTR UnicodeString;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG LVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync short SVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONGLONG PVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BinaryParam BVal;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } u;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_EE_INFO_PARAM;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define EEInfoPreviousRecordsMissing 0x1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define EEInfoNextRecordsMissing 0x2
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define EEInfoUseFileTime 0x4
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define EEInfoGCCOM 11
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define EEInfoGCFRS 12
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagRPC_EXTENDED_ERROR_INFO
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG Version;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPWSTR ComputerName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG ProcessID;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync union
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SYSTEMTIME SystemTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FILETIME FileTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } u;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG GeneratingComponent;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG Status;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT DetectionLocation;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT Flags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync int NumberOfParameters;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_EXTENDED_ERROR_INFO;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RPC_ASYNC_VERSION_1_0 sizeof(RPC_ASYNC_STATE)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum _RPC_NOTIFICATION_TYPES
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeNone,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeEvent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeApc,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeIoc,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeHwnd,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcNotificationTypeCallback,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_NOTIFICATION_TYPES;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef enum _RPC_ASYNC_EVENT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcCallComplete,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcSendComplete,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcReceiveComplete,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcClientDisconnect,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RpcClientCancel,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_ASYNC_EVENT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncstruct _RPC_ASYNC_STATE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *,void *,RPC_ASYNC_EVENT);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef union _RPC_ASYNC_NOTIFICATION_INFO
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE hThread;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } APC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE hIOPort;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwNumberOfBytesTransferred;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD_PTR dwCompletionKey;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LPOVERLAPPED lpOverlapped;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } IOC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync struct
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HWND hWnd;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Msg;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync } HWND;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HANDLE hEvent;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RPC_C_NOTIFY_ON_SEND_COMPLETE 0x1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RPC_C_INFINITE_TIMEOUT INFINITE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _RPC_ASYNC_STATE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync unsigned int Size;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG Signature;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG Lock;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ULONG Flags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void *StubInfo;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void *UserInfo;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void *RuntimeInfo;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RPC_ASYNC_EVENT Event;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RPC_NOTIFICATION_TYPES NotificationType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync RPC_ASYNC_NOTIFICATION_INFO u;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG_PTR Reserved[4];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define RpcAsyncGetCallHandle(async) (((PRPC_ASYNC_STATE)async)->RuntimeInfo)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __RPC_WIN64__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# include <poppack.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncextern "C" {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle(PRPC_ASYNC_STATE,unsigned int);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo(PRPC_ASYNC_STATE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus(PRPC_ASYNC_STATE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall(PRPC_ASYNC_STATE,void *);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall(PRPC_ASYNC_STATE,BOOL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread(DWORD);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration(RPC_ERROR_ENUM_HANDLE*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord(RPC_ERROR_ENUM_HANDLE*,BOOL,RPC_EXTENDED_ERROR_INFO*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration(RPC_ERROR_ENUM_HANDLE*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration(RPC_ERROR_ENUM_HANDLE*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords(RPC_ERROR_ENUM_HANDLE*,int*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo(RPC_ERROR_ENUM_HANDLE*,PVOID*,SIZE_T*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo(PVOID,SIZE_T,RPC_ERROR_ENUM_HANDLE*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord(RPC_EXTENDED_ERROR_INFO*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorClearInformation(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient(RPC_BINDING_HANDLE,BOOL,LPVOID,PLARGE_INTEGER,LUID,DWORD,PVOID,PVOID*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext(PVOID*);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive(RPC_BINDING_HANDLE,PVOID);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared(RPC_BINDING_HANDLE,PVOID);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle(PRPC_MESSAGE,PRPC_ASYNC_STATE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRPCRTAPI int RPC_ENTRY I_RpcExceptionFilter(ULONG);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif