mirror of
https://github.com/reactos/reactos.git
synced 2025-05-19 00:54:18 +00:00
- Add rpcasync.h from wine and include it.
- Add missing GetThreadId winapi function declaration. svn path=/trunk/; revision=31622
This commit is contained in:
parent
b5c759cceb
commit
68354a9baf
3 changed files with 193 additions and 0 deletions
|
@ -91,6 +91,9 @@ typedef long RPC_STATUS;
|
|||
#define RPCNSAPI
|
||||
#endif
|
||||
|
||||
#ifndef RPC_NO_WINDOWS_H
|
||||
#include <rpcasync.h>
|
||||
#endif
|
||||
|
||||
#ifdef __RPC_MAC__
|
||||
#include <setjmp.h>
|
||||
|
|
189
reactos/include/psdk/rpcasync.h
Normal file
189
reactos/include/psdk/rpcasync.h
Normal file
|
@ -0,0 +1,189 @@
|
|||
/*
|
||||
* 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
|
||||
|
||||
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
|
||||
|
||||
#endif
|
|
@ -1614,6 +1614,7 @@ DWORD WINAPI GetTickCount(VOID);
|
|||
#if (_WIN32_WINNT >= 0x0600)
|
||||
ULONGLONG WINAPI GetTickCount64(VOID);
|
||||
#endif
|
||||
DWORD WINAPI GetThreadId(HANDLE);
|
||||
DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
|
||||
BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD);
|
||||
BOOL WINAPI GetUserNameA (LPSTR,PDWORD);
|
||||
|
|
Loading…
Reference in a new issue