~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/rpcasync.h

Version: ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Copyright (C) 2007 Francois Gouget
  3  *
  4  * This library is free software; you can redistribute it and/or
  5  * modify it under the terms of the GNU Lesser General Public
  6  * License as published by the Free Software Foundation; either
  7  * version 2.1 of the License, or (at your option) any later version.
  8  *
  9  * This library is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  * Lesser General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU Lesser General Public
 15  * License along with this library; if not, write to the Free Software
 16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 #ifndef __WINE_RPCASYNC_H
 19 #define __WINE_RPCASYNC_H
 20 
 21 #ifdef RPC_NO_WINDOWS_H
 22 # include <windef.h>
 23 #endif
 24 
 25 #ifdef __RPC_WIN64__
 26 # include <pshpack8.h>
 27 #endif
 28 
 29 typedef struct tagRPC_ERROR_ENUM_HANDLE
 30 {
 31     ULONG Signature;
 32     void* CurrentPos;
 33     void* Head;
 34 } RPC_ERROR_ENUM_HANDLE;
 35 
 36 typedef enum tagExtendedErrorParamTypes
 37 {
 38     eeptAnsiString = 1,
 39     eeptUnicodeString,
 40     eeptLongVal,
 41     eeptShortVal,
 42     eeptPointerVal,
 43     eeptNone,
 44     eeptBinary
 45 } ExtendedErrorParamTypes;
 46 
 47 #define MaxNumberOfEEInfoParams 4
 48 #define RPC_EEINFO_VERSION      1
 49 
 50 typedef struct tagBinaryParam
 51 {
 52     void *Buffer;
 53     short Size;
 54 } BinaryParam;
 55 
 56 typedef struct tagRPC_EE_INFO_PARAM
 57 {
 58     ExtendedErrorParamTypes ParameterType;
 59     union
 60     {
 61         LPSTR AnsiString;
 62         LPWSTR UnicodeString;
 63         LONG LVal;
 64         short SVal;
 65         ULONGLONG PVal;
 66         BinaryParam BVal;
 67     } u;
 68 } RPC_EE_INFO_PARAM;
 69 
 70 #define EEInfoPreviousRecordsMissing    0x1
 71 #define EEInfoNextRecordsMissing        0x2
 72 #define EEInfoUseFileTime               0x4
 73 
 74 #define EEInfoGCCOM                     11
 75 #define EEInfoGCFRS                     12
 76 
 77 typedef struct tagRPC_EXTENDED_ERROR_INFO
 78 {
 79     ULONG Version;
 80     LPWSTR ComputerName;
 81     ULONG ProcessID;
 82     union
 83     {
 84         SYSTEMTIME SystemTime;
 85         FILETIME FileTime;
 86     } u;
 87     ULONG GeneratingComponent;
 88     ULONG Status;
 89     USHORT DetectionLocation;
 90     USHORT Flags;
 91     int NumberOfParameters;
 92     RPC_EE_INFO_PARAM Parameters[MaxNumberOfEEInfoParams];
 93 } RPC_EXTENDED_ERROR_INFO;
 94 
 95 #define RPC_ASYNC_VERSION_1_0   sizeof(RPC_ASYNC_STATE)
 96 
 97 typedef enum _RPC_NOTIFICATION_TYPES
 98 {
 99     RpcNotificationTypeNone,
100     RpcNotificationTypeEvent,
101     RpcNotificationTypeApc,
102     RpcNotificationTypeIoc,
103     RpcNotificationTypeHwnd,
104     RpcNotificationTypeCallback,
105 } RPC_NOTIFICATION_TYPES;
106 
107 typedef enum _RPC_ASYNC_EVENT
108 {
109     RpcCallComplete,
110     RpcSendComplete,
111     RpcReceiveComplete,
112     RpcClientDisconnect,
113     RpcClientCancel,
114 } RPC_ASYNC_EVENT;
115 
116 struct _RPC_ASYNC_STATE;
117 
118 typedef void RPC_ENTRY RPCNOTIFICATION_ROUTINE(struct _RPC_ASYNC_STATE *,void *,RPC_ASYNC_EVENT);
119 typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE;
120 
121 typedef union _RPC_ASYNC_NOTIFICATION_INFO
122 {
123     struct
124     {
125         PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
126         HANDLE hThread;
127     } APC;
128     struct
129     {
130         HANDLE hIOPort;
131         DWORD dwNumberOfBytesTransferred;
132         DWORD_PTR dwCompletionKey;
133         LPOVERLAPPED lpOverlapped;
134     } IOC;
135     struct
136     {
137         HWND hWnd;
138         UINT Msg;
139     } HWND;
140     HANDLE hEvent;
141     PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
142 } RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;
143 
144 #define RPC_C_NOTIFY_ON_SEND_COMPLETE   0x1
145 #define RPC_C_INFINITE_TIMEOUT          INFINITE
146 
147 typedef struct _RPC_ASYNC_STATE
148 {
149     unsigned int Size;
150     ULONG Signature;
151     LONG Lock;
152     ULONG Flags;
153     void *StubInfo;
154     void *UserInfo;
155     void *RuntimeInfo;
156     RPC_ASYNC_EVENT Event;
157     RPC_NOTIFICATION_TYPES NotificationType;
158     RPC_ASYNC_NOTIFICATION_INFO u;
159     LONG_PTR Reserved[4];
160 } RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;
161 
162 #define RpcAsyncGetCallHandle(async) (((PRPC_ASYNC_STATE)async)->RuntimeInfo)
163 
164 #ifdef __RPC_WIN64__
165 # include <poppack.h>
166 #endif
167 
168 #ifdef __cplusplus
169 extern "C" {
170 #endif
171 
172 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncInitializeHandle(PRPC_ASYNC_STATE,unsigned int);
173 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncRegisterInfo(PRPC_ASYNC_STATE);
174 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncGetCallStatus(PRPC_ASYNC_STATE);
175 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCompleteCall(PRPC_ASYNC_STATE,void *);
176 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
177 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCancelCall(PRPC_ASYNC_STATE,BOOL);
178 RPCRTAPI RPC_STATUS RPC_ENTRY RpcAsyncCleanupThread(DWORD);
179 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorStartEnumeration(RPC_ERROR_ENUM_HANDLE*);
180 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNextRecord(RPC_ERROR_ENUM_HANDLE*,BOOL,RPC_EXTENDED_ERROR_INFO*);
181 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorEndEnumeration(RPC_ERROR_ENUM_HANDLE*);
182 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorResetEnumeration(RPC_ERROR_ENUM_HANDLE*);
183 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorGetNumberOfRecords(RPC_ERROR_ENUM_HANDLE*,int*);
184 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorSaveErrorInfo(RPC_ERROR_ENUM_HANDLE*,PVOID*,SIZE_T*);
185 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorLoadErrorInfo(PVOID,SIZE_T,RPC_ERROR_ENUM_HANDLE*);
186 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorAddRecord(RPC_EXTENDED_ERROR_INFO*);
187 RPCRTAPI RPC_STATUS RPC_ENTRY RpcErrorClearInformation(void);
188 RPCRTAPI RPC_STATUS RPC_ENTRY RpcGetAuthorizationContextForClient(RPC_BINDING_HANDLE,BOOL,LPVOID,PLARGE_INTEGER,LUID,DWORD,PVOID,PVOID*);
189 RPCRTAPI RPC_STATUS RPC_ENTRY RpcFreeAuthorizationContext(PVOID*);
190 RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockExclusive(RPC_BINDING_HANDLE,PVOID);
191 RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsContextLockShared(RPC_BINDING_HANDLE,PVOID);
192 
193 RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncSetHandle(PRPC_MESSAGE,PRPC_ASYNC_STATE);
194 RPCRTAPI RPC_STATUS RPC_ENTRY I_RpcAsyncAbortCall(PRPC_ASYNC_STATE,ULONG);
195 RPCRTAPI int        RPC_ENTRY I_RpcExceptionFilter(ULONG);
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
201 #endif
202 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.