+++ /dev/null
-/*
- * 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
- */
-#ifndef __WINE_RPCASYNC_H
-#define __WINE_RPCASYNC_H
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4820)
-#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 __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
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#endif