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