sync oleaut32 to wine 1.1.14

sync rpcrt4 to wine 1.1.14 except UuidCreate in rpcrt4_main.c as it isn't compatible to our headers

svn path=/trunk/; revision=39450
This commit is contained in:
Christoph von Wittich 2009-02-07 07:52:12 +00:00
parent e751a0cbb0
commit 464363fadc
14 changed files with 158 additions and 84 deletions

View file

@ -510,7 +510,7 @@ ULONG WINAPI LHashValOfNameSysA( SYSKIND skind, LCID lcid, LPCSTR lpStr)
ULONG nHiWord, nLoWord = 0x0deadbee; ULONG nHiWord, nLoWord = 0x0deadbee;
const unsigned char *str = (const unsigned char *)lpStr, *pnLookup = NULL; const unsigned char *str = (const unsigned char *)lpStr, *pnLookup = NULL;
TRACE("(%d, %d, %s) %s\n", skind, lcid, debugstr_a(lpStr), TRACE("(%d, 0x%x, %s) %s\n", skind, lcid, debugstr_a(lpStr),
(skind == SYS_WIN16) ? "SYS_WIN16" : (skind == SYS_WIN32) ? "SYS_WIN32" : ""); (skind == SYS_WIN16) ? "SYS_WIN16" : (skind == SYS_WIN32) ? "SYS_WIN32" : "");
if (!str) if (!str)

View file

@ -710,17 +710,27 @@ static HRESULT WINAPI OLEPictureImpl_Render(IPicture *iface, HDC hdc,
case PICTYPE_METAFILE: case PICTYPE_METAFILE:
{ {
POINT prevOrg; POINT prevOrg, prevWndOrg;
SIZE prevExt; SIZE prevExt, prevWndExt;
int oldmode; int oldmode;
/* Render the WMF to the appropriate location by setting the
appropriate ratio between "device units" and "logical units" */
oldmode = SetMapMode(hdc, MM_ANISOTROPIC); oldmode = SetMapMode(hdc, MM_ANISOTROPIC);
/* For the "source rectangle" the y-axis must be inverted */
SetWindowOrgEx(hdc, xSrc, This->himetricHeight-ySrc, &prevWndOrg);
SetWindowExtEx(hdc, cxSrc, -cySrc, &prevWndExt);
/* For the "destination rectangle" no inversion is necessary */
SetViewportOrgEx(hdc, x, y, &prevOrg); SetViewportOrgEx(hdc, x, y, &prevOrg);
SetViewportExtEx(hdc, cx, cy, &prevExt); SetViewportExtEx(hdc, cx, cy, &prevExt);
if (!PlayMetaFile(hdc, This->desc.u.wmf.hmeta)) if (!PlayMetaFile(hdc, This->desc.u.wmf.hmeta))
ERR("PlayMetaFile failed!\n"); ERR("PlayMetaFile failed!\n");
/* We're done, restore the DC to the previous settings for converting
logical units to device units */
SetWindowExtEx(hdc, prevWndExt.cx, prevWndExt.cy, NULL);
SetWindowOrgEx(hdc, prevWndOrg.x, prevWndOrg.y, NULL);
SetViewportExtEx(hdc, prevExt.cx, prevExt.cy, NULL); SetViewportExtEx(hdc, prevExt.cx, prevExt.cy, NULL);
SetViewportOrgEx(hdc, prevOrg.x, prevOrg.y, NULL); SetViewportOrgEx(hdc, prevOrg.x, prevOrg.y, NULL);
SetMapMode(hdc, oldmode); SetMapMode(hdc, oldmode);

View file

@ -606,10 +606,15 @@ serialize_param(
marshal_state *buf) marshal_state *buf)
{ {
HRESULT hres = S_OK; HRESULT hres = S_OK;
VARTYPE vartype;
TRACE("(tdesc.vt %s)\n",debugstr_vt(tdesc->vt)); TRACE("(tdesc.vt %s)\n",debugstr_vt(tdesc->vt));
switch (tdesc->vt) { vartype = tdesc->vt;
if ((vartype & 0xf000) == VT_ARRAY)
vartype = VT_SAFEARRAY;
switch (vartype) {
case VT_EMPTY: /* nothing. empty variant for instance */ case VT_EMPTY: /* nothing. empty variant for instance */
return S_OK; return S_OK;
case VT_I8: case VT_I8:
@ -919,11 +924,16 @@ deserialize_param(
marshal_state *buf) marshal_state *buf)
{ {
HRESULT hres = S_OK; HRESULT hres = S_OK;
VARTYPE vartype;
TRACE("vt %s at %p\n",debugstr_vt(tdesc->vt),arg); TRACE("vt %s at %p\n",debugstr_vt(tdesc->vt),arg);
vartype = tdesc->vt;
if ((vartype & 0xf000) == VT_ARRAY)
vartype = VT_SAFEARRAY;
while (1) { while (1) {
switch (tdesc->vt) { switch (vartype) {
case VT_EMPTY: case VT_EMPTY:
if (debugout) TRACE_(olerelay)("<empty>\n"); if (debugout) TRACE_(olerelay)("<empty>\n");
return S_OK; return S_OK;

View file

@ -1887,7 +1887,7 @@ MSFT_DoFuncs(TLBContext* pcx,
(*pptfd)->funcdesc.callconv = (pFuncRec->FKCCIC) >> 8 & 0xF; (*pptfd)->funcdesc.callconv = (pFuncRec->FKCCIC) >> 8 & 0xF;
(*pptfd)->funcdesc.cParams = pFuncRec->nrargs ; (*pptfd)->funcdesc.cParams = pFuncRec->nrargs ;
(*pptfd)->funcdesc.cParamsOpt = pFuncRec->nroargs ; (*pptfd)->funcdesc.cParamsOpt = pFuncRec->nroargs ;
(*pptfd)->funcdesc.oVft = pFuncRec->VtableOffset ; (*pptfd)->funcdesc.oVft = (pFuncRec->VtableOffset * sizeof(void *))/4;
(*pptfd)->funcdesc.wFuncFlags = LOWORD(pFuncRec->Flags) ; (*pptfd)->funcdesc.wFuncFlags = LOWORD(pFuncRec->Flags) ;
MSFT_GetTdesc(pcx, MSFT_GetTdesc(pcx,
@ -2146,7 +2146,7 @@ static ITypeInfoImpl * MSFT_DoTypeInfo(
ptiRet->TypeAttr.wMajorVerNum=LOWORD(tiBase.version); ptiRet->TypeAttr.wMajorVerNum=LOWORD(tiBase.version);
ptiRet->TypeAttr.wMinorVerNum=HIWORD(tiBase.version); ptiRet->TypeAttr.wMinorVerNum=HIWORD(tiBase.version);
ptiRet->TypeAttr.cImplTypes=tiBase.cImplTypes; ptiRet->TypeAttr.cImplTypes=tiBase.cImplTypes;
ptiRet->TypeAttr.cbSizeVft=tiBase.cbSizeVft; /* FIXME: this is only the non inherited part */ ptiRet->TypeAttr.cbSizeVft=(tiBase.cbSizeVft * sizeof(void *))/4; /* FIXME: this is only the non inherited part */
if(ptiRet->TypeAttr.typekind == TKIND_ALIAS) if(ptiRet->TypeAttr.typekind == TKIND_ALIAS)
MSFT_GetTdesc(pcx, tiBase.datatype1, MSFT_GetTdesc(pcx, tiBase.datatype1,
&ptiRet->TypeAttr.tdescAlias, ptiRet); &ptiRet->TypeAttr.tdescAlias, ptiRet);
@ -3908,7 +3908,7 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
(*ppTypeInfoImpl)->TypeAttr.cbAlignment = pTITail->cbAlignment; (*ppTypeInfoImpl)->TypeAttr.cbAlignment = pTITail->cbAlignment;
(*ppTypeInfoImpl)->TypeAttr.cbSizeInstance = pTITail->cbSizeInstance; (*ppTypeInfoImpl)->TypeAttr.cbSizeInstance = pTITail->cbSizeInstance;
(*ppTypeInfoImpl)->TypeAttr.cbSizeVft = pTITail->cbSizeVft; (*ppTypeInfoImpl)->TypeAttr.cbSizeVft = (pTITail->cbSizeVft * sizeof(void *))/4;
switch(pTIHeader->typekind) { switch(pTIHeader->typekind) {
case TKIND_ENUM: case TKIND_ENUM:
@ -4981,9 +4981,9 @@ static HRESULT WINAPI ITypeInfo_fnGetTypeAttr( ITypeInfo2 *iface,
&This->TypeAttr.tdescAlias, (void *)(*ppTypeAttr + 1)); &This->TypeAttr.tdescAlias, (void *)(*ppTypeAttr + 1));
if((*ppTypeAttr)->typekind == TKIND_DISPATCH) { if((*ppTypeAttr)->typekind == TKIND_DISPATCH) {
(*ppTypeAttr)->cFuncs = (*ppTypeAttr)->cbSizeVft / 4; /* This should include all the inherited /* This should include all the inherited funcs */
funcs */ (*ppTypeAttr)->cFuncs = (*ppTypeAttr)->cbSizeVft / sizeof(void *);
(*ppTypeAttr)->cbSizeVft = 28; /* This is always the size of IDispatch's vtbl */ (*ppTypeAttr)->cbSizeVft = 7 * sizeof(void *); /* This is always the size of IDispatch's vtbl */
(*ppTypeAttr)->wTypeFlags &= ~TYPEFLAG_FOLEAUTOMATION; (*ppTypeAttr)->wTypeFlags &= ~TYPEFLAG_FOLEAUTOMATION;
} }
return S_OK; return S_OK;

View file

@ -122,6 +122,13 @@ static unsigned char *WINAPI NdrContextHandleMarshall(PMIDL_STUB_MESSAGE, unsign
static void WINAPI NdrContextHandleBufferSize(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING); static void WINAPI NdrContextHandleBufferSize(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING);
static unsigned char *WINAPI NdrContextHandleUnmarshall(PMIDL_STUB_MESSAGE, unsigned char **, PFORMAT_STRING, unsigned char); static unsigned char *WINAPI NdrContextHandleUnmarshall(PMIDL_STUB_MESSAGE, unsigned char **, PFORMAT_STRING, unsigned char);
static unsigned char *WINAPI NdrRangeMarshall(PMIDL_STUB_MESSAGE,unsigned char *, PFORMAT_STRING);
static void WINAPI NdrRangeBufferSize(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING);
static ULONG WINAPI NdrRangeMemorySize(PMIDL_STUB_MESSAGE, PFORMAT_STRING);
static void WINAPI NdrRangeFree(PMIDL_STUB_MESSAGE, unsigned char *, PFORMAT_STRING);
static ULONG WINAPI NdrByteCountPointerMemorySize(PMIDL_STUB_MESSAGE, PFORMAT_STRING);
const NDR_MARSHALL NdrMarshaller[NDR_TABLE_SIZE] = { const NDR_MARSHALL NdrMarshaller[NDR_TABLE_SIZE] = {
0, 0,
NdrBaseTypeMarshall, NdrBaseTypeMarshall, NdrBaseTypeMarshall, NdrBaseTypeMarshall, NdrBaseTypeMarshall, NdrBaseTypeMarshall,
@ -3141,11 +3148,9 @@ static unsigned long ComplexStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,
} }
case RPC_FC_ALIGNM4: case RPC_FC_ALIGNM4:
ALIGN_LENGTH(size, 4); ALIGN_LENGTH(size, 4);
ALIGN_POINTER(pStubMsg->Buffer, 4);
break; break;
case RPC_FC_ALIGNM8: case RPC_FC_ALIGNM8:
ALIGN_LENGTH(size, 8); ALIGN_LENGTH(size, 8);
ALIGN_POINTER(pStubMsg->Buffer, 8);
break; break;
case RPC_FC_STRUCTPAD1: case RPC_FC_STRUCTPAD1:
case RPC_FC_STRUCTPAD2: case RPC_FC_STRUCTPAD2:
@ -4330,6 +4335,56 @@ void WINAPI NdrUserMarshalFree(PMIDL_STUB_MESSAGE pStubMsg,
&umcb.Flags, pMemory); &umcb.Flags, pMemory);
} }
/***********************************************************************
* NdrGetUserMarshalInfo [RPCRT4.@]
*/
RPC_STATUS RPC_ENTRY NdrGetUserMarshalInfo(ULONG *flags, ULONG level, NDR_USER_MARSHAL_INFO *umi)
{
USER_MARSHAL_CB *umcb = CONTAINING_RECORD(flags, USER_MARSHAL_CB, Flags);
TRACE("(%p,%u,%p)\n", flags, level, umi);
if (level != 1)
return RPC_S_INVALID_ARG;
memset(&umi->Level1, 0, sizeof(umi->Level1));
umi->InformationLevel = level;
if (umcb->Signature != USER_MARSHAL_CB_SIGNATURE)
return RPC_S_INVALID_ARG;
umi->Level1.pfnAllocate = umcb->pStubMsg->pfnAllocate;
umi->Level1.pfnFree = umcb->pStubMsg->pfnFree;
umi->Level1.pRpcChannelBuffer = umcb->pStubMsg->pRpcChannelBuffer;
switch (umcb->CBType)
{
case USER_MARSHAL_CB_MARSHALL:
case USER_MARSHAL_CB_UNMARSHALL:
{
RPC_MESSAGE *msg = umcb->pStubMsg->RpcMsg;
unsigned char *buffer_start = msg->Buffer;
unsigned char *buffer_end =
(unsigned char *)msg->Buffer + msg->BufferLength;
if (umcb->pStubMsg->Buffer < buffer_start ||
umcb->pStubMsg->Buffer > buffer_end)
return ERROR_INVALID_USER_BUFFER;
umi->Level1.Buffer = umcb->pStubMsg->Buffer;
umi->Level1.BufferSize = buffer_end - umcb->pStubMsg->Buffer;
break;
}
case USER_MARSHAL_CB_BUFFER_SIZE:
case USER_MARSHAL_CB_FREE:
break;
default:
WARN("unrecognised CBType %d\n", umcb->CBType);
}
return RPC_S_OK;
}
/*********************************************************************** /***********************************************************************
* NdrClearOutParameters [RPCRT4.@] * NdrClearOutParameters [RPCRT4.@]
*/ */
@ -6002,10 +6057,10 @@ void WINAPI NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE pStubMsg,
} }
/*********************************************************************** /***********************************************************************
* NdrByteCountPointerMemorySize [RPCRT4.@] * NdrByteCountPointerMemorySize [internal]
*/ */
ULONG WINAPI NdrByteCountPointerMemorySize(PMIDL_STUB_MESSAGE pStubMsg, static ULONG WINAPI NdrByteCountPointerMemorySize(PMIDL_STUB_MESSAGE pStubMsg,
PFORMAT_STRING pFormat) PFORMAT_STRING pFormat)
{ {
FIXME("stub\n"); FIXME("stub\n");
return 0; return 0;
@ -6077,7 +6132,7 @@ void WINAPI NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE pStubMsg,
/*********************************************************************** /***********************************************************************
* NdrRangeMarshall [internal] * NdrRangeMarshall [internal]
*/ */
unsigned char *WINAPI NdrRangeMarshall( static unsigned char *WINAPI NdrRangeMarshall(
PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *pMemory, unsigned char *pMemory,
PFORMAT_STRING pFormat) PFORMAT_STRING pFormat)
@ -6100,7 +6155,7 @@ unsigned char *WINAPI NdrRangeMarshall(
} }
/*********************************************************************** /***********************************************************************
* NdrRangeUnmarshall * NdrRangeUnmarshall [RPCRT4.@]
*/ */
unsigned char *WINAPI NdrRangeUnmarshall( unsigned char *WINAPI NdrRangeUnmarshall(
PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_MESSAGE pStubMsg,
@ -6200,7 +6255,7 @@ unsigned char *WINAPI NdrRangeUnmarshall(
/*********************************************************************** /***********************************************************************
* NdrRangeBufferSize [internal] * NdrRangeBufferSize [internal]
*/ */
void WINAPI NdrRangeBufferSize( static void WINAPI NdrRangeBufferSize(
PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *pMemory, unsigned char *pMemory,
PFORMAT_STRING pFormat) PFORMAT_STRING pFormat)
@ -6223,7 +6278,7 @@ void WINAPI NdrRangeBufferSize(
/*********************************************************************** /***********************************************************************
* NdrRangeMemorySize [internal] * NdrRangeMemorySize [internal]
*/ */
ULONG WINAPI NdrRangeMemorySize( static ULONG WINAPI NdrRangeMemorySize(
PMIDL_STUB_MESSAGE pStubMsg, PMIDL_STUB_MESSAGE pStubMsg,
PFORMAT_STRING pFormat) PFORMAT_STRING pFormat)
{ {
@ -6244,7 +6299,7 @@ ULONG WINAPI NdrRangeMemorySize(
/*********************************************************************** /***********************************************************************
* NdrRangeFree [internal] * NdrRangeFree [internal]
*/ */
void WINAPI NdrRangeFree(PMIDL_STUB_MESSAGE pStubMsg, static void WINAPI NdrRangeFree(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *pMemory, unsigned char *pMemory,
PFORMAT_STRING pFormat) PFORMAT_STRING pFormat)
{ {

View file

@ -583,12 +583,7 @@ LONG_PTR WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pForma
TRACE("pStubDesc %p, pFormat %p, ...\n", pStubDesc, pFormat); TRACE("pStubDesc %p, pFormat %p, ...\n", pStubDesc, pFormat);
/* Later NDR language versions probably won't be backwards compatible */ TRACE("NDR Version: 0x%x\n", pStubDesc->Version);
if (pStubDesc->Version > 0x50002)
{
FIXME("Incompatible stub description version: 0x%x\n", pStubDesc->Version);
RpcRaiseException(RPC_X_WRONG_STUB_VERSION);
}
if (pProcHeader->Oi_flags & RPC_FC_PROC_OIF_RPCFLAGS) if (pProcHeader->Oi_flags & RPC_FC_PROC_OIF_RPCFLAGS)
{ {
@ -1293,12 +1288,7 @@ LONG WINAPI NdrStubCall2(
pFormat = pServerInfo->ProcString + pServerInfo->FmtStringOffset[pRpcMsg->ProcNum]; pFormat = pServerInfo->ProcString + pServerInfo->FmtStringOffset[pRpcMsg->ProcNum];
pProcHeader = (const NDR_PROC_HEADER *)&pFormat[0]; pProcHeader = (const NDR_PROC_HEADER *)&pFormat[0];
/* Later NDR language versions probably won't be backwards compatible */ TRACE("NDR Version: 0x%x\n", pStubDesc->Version);
if (pStubDesc->Version > 0x50002)
{
FIXME("Incompatible stub description version: 0x%x\n", pStubDesc->Version);
RpcRaiseException(RPC_X_WRONG_STUB_VERSION);
}
/* create the full pointer translation tables, if requested */ /* create the full pointer translation tables, if requested */
if (pProcHeader->Oi_flags & RPC_FC_PROC_OIF_FULLPTR) if (pProcHeader->Oi_flags & RPC_FC_PROC_OIF_FULLPTR)

View file

@ -139,7 +139,6 @@ RPC_STATUS RPCRT4_CreateConnection(RpcConnection** Connection, BOOL server, LPCS
RPC_STATUS RPCRT4_DestroyConnection(RpcConnection* Connection); RPC_STATUS RPCRT4_DestroyConnection(RpcConnection* Connection);
RPC_STATUS RPCRT4_OpenClientConnection(RpcConnection* Connection); RPC_STATUS RPCRT4_OpenClientConnection(RpcConnection* Connection);
RPC_STATUS RPCRT4_CloseConnection(RpcConnection* Connection); RPC_STATUS RPCRT4_CloseConnection(RpcConnection* Connection);
RPC_STATUS RPCRT4_SpawnConnection(RpcConnection** Connection, RpcConnection* OldConnection);
RPC_STATUS RPCRT4_ResolveBinding(RpcBinding* Binding, LPCSTR Endpoint); RPC_STATUS RPCRT4_ResolveBinding(RpcBinding* Binding, LPCSTR Endpoint);
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, const UUID* ObjectUuid); RPC_STATUS RPCRT4_SetBindingObject(RpcBinding* Binding, const UUID* ObjectUuid);

View file

@ -321,7 +321,7 @@ NCA_STATUS RPC2NCA_STATUS(RPC_STATUS status)
} }
} }
RPC_STATUS NCA2RPC_STATUS(NCA_STATUS status) static RPC_STATUS NCA2RPC_STATUS(NCA_STATUS status)
{ {
switch (status) switch (status)
{ {
@ -687,7 +687,7 @@ RPC_STATUS RPCRT4_Send(RpcConnection *Connection, RpcPktHdr *Header,
} }
/* validates version and frag_len fields */ /* validates version and frag_len fields */
RPC_STATUS RPCRT4_ValidateCommonHeader(const RpcPktCommonHdr *hdr) static RPC_STATUS RPCRT4_ValidateCommonHeader(const RpcPktCommonHdr *hdr)
{ {
DWORD hdr_length; DWORD hdr_length;
@ -720,7 +720,7 @@ RPC_STATUS RPCRT4_ValidateCommonHeader(const RpcPktCommonHdr *hdr)
* *
* Receive a fragment from a connection. * Receive a fragment from a connection.
*/ */
RPC_STATUS RPCRT4_receive_fragment(RpcConnection *Connection, RpcPktHdr **Header, void **Payload) static RPC_STATUS RPCRT4_receive_fragment(RpcConnection *Connection, RpcPktHdr **Header, void **Payload)
{ {
RPC_STATUS status; RPC_STATUS status;
DWORD hdr_length; DWORD hdr_length;

View file

@ -35,7 +35,6 @@ RPC_STATUS RPCRT4_Send(RpcConnection *Connection, RpcPktHdr *Header, void *Buffe
RPC_STATUS RPCRT4_Receive(RpcConnection *Connection, RpcPktHdr **Header, PRPC_MESSAGE pMsg); RPC_STATUS RPCRT4_Receive(RpcConnection *Connection, RpcPktHdr **Header, PRPC_MESSAGE pMsg);
RPC_STATUS RPCRT4_ReceiveWithAuth(RpcConnection *Connection, RpcPktHdr **Header, PRPC_MESSAGE pMsg, unsigned char **auth_data_out, unsigned long *auth_length_out); RPC_STATUS RPCRT4_ReceiveWithAuth(RpcConnection *Connection, RpcPktHdr **Header, PRPC_MESSAGE pMsg, unsigned char **auth_data_out, unsigned long *auth_length_out);
NCA_STATUS RPC2NCA_STATUS(RPC_STATUS status); NCA_STATUS RPC2NCA_STATUS(RPC_STATUS status);
RPC_STATUS NCA2RPC_STATUS(NCA_STATUS status);
RPC_STATUS RPCRT4_AuthorizeConnection(RpcConnection* conn, BYTE *challenge, ULONG count); RPC_STATUS RPCRT4_AuthorizeConnection(RpcConnection* conn, BYTE *challenge, ULONG count);
#endif #endif

View file

@ -95,6 +95,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(rpc); WINE_DEFAULT_DEBUG_CHANNEL(rpc);
static RPC_STATUS RPCRT4_SpawnConnection(RpcConnection** Connection, RpcConnection* OldConnection);
/**** ncacn_np support ****/ /**** ncacn_np support ****/
typedef struct _RpcConnection_np typedef struct _RpcConnection_np
@ -1563,8 +1565,7 @@ RPC_STATUS RPCRT4_CreateConnection(RpcConnection** Connection, BOOL server,
return RPC_S_OK; return RPC_S_OK;
} }
static RPC_STATUS RPCRT4_SpawnConnection(RpcConnection** Connection, RpcConnection* OldConnection)
RPC_STATUS RPCRT4_SpawnConnection(RpcConnection** Connection, RpcConnection* OldConnection)
{ {
RPC_STATUS err; RPC_STATUS err;

View file

@ -203,7 +203,7 @@
@ stub NdrGetSimpleTypeBufferSize # wxp @ stub NdrGetSimpleTypeBufferSize # wxp
@ stub NdrGetSimpleTypeMemorySize # wxp @ stub NdrGetSimpleTypeMemorySize # wxp
@ stub NdrGetTypeFlags # wxp @ stub NdrGetTypeFlags # wxp
@ stub NdrGetUserMarshallInfo @ stdcall NdrGetUserMarshalInfo(ptr long ptr)
@ stub NdrHardStructBufferSize #(ptr ptr ptr) @ stub NdrHardStructBufferSize #(ptr ptr ptr)
@ stub NdrHardStructFree #(ptr ptr ptr) @ stub NdrHardStructFree #(ptr ptr ptr)
@ stub NdrHardStructMarshall #(ptr ptr ptr) @ stub NdrHardStructMarshall #(ptr ptr ptr)

View file

@ -54,14 +54,14 @@ typedef RPC_BINDING_HANDLE handle_t;
typedef struct _RPC_BINDING_VECTOR typedef struct _RPC_BINDING_VECTOR
{ {
unsigned long Count; ULONG Count;
RPC_BINDING_HANDLE BindingH[1]; RPC_BINDING_HANDLE BindingH[1];
} RPC_BINDING_VECTOR; } RPC_BINDING_VECTOR;
#define rpc_binding_vector_t RPC_BINDING_VECTOR #define rpc_binding_vector_t RPC_BINDING_VECTOR
typedef struct _UUID_VECTOR typedef struct _UUID_VECTOR
{ {
unsigned long Count; ULONG Count;
UUID *Uuid[1]; UUID *Uuid[1];
} UUID_VECTOR; } UUID_VECTOR;
#define uuid_vector_t UUID_VECTOR #define uuid_vector_t UUID_VECTOR
@ -75,14 +75,14 @@ typedef struct _RPC_IF_ID
typedef struct typedef struct
{ {
unsigned long Count; ULONG Count;
RPC_IF_ID *IfId[1]; RPC_IF_ID *IfId[1];
} RPC_IF_ID_VECTOR; } RPC_IF_ID_VECTOR;
typedef struct typedef struct
{ {
unsigned int Count; unsigned int Count;
unsigned long Stats[1]; ULONG Stats[1];
} RPC_STATS_VECTOR; } RPC_STATS_VECTOR;
typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE; typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE;
@ -195,66 +195,66 @@ typedef void (__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)();
typedef struct _RPC_POLICY typedef struct _RPC_POLICY
{ {
unsigned int Length; unsigned int Length;
unsigned long EndpointFlags; ULONG EndpointFlags;
unsigned long NICFlags; ULONG NICFlags;
} RPC_POLICY, *PRPC_POLICY; } RPC_POLICY, *PRPC_POLICY;
typedef struct _SEC_WINNT_AUTH_IDENTITY_W typedef struct _SEC_WINNT_AUTH_IDENTITY_W
{ {
unsigned short* User; unsigned short* User;
unsigned long UserLength; ULONG UserLength;
unsigned short* Domain; unsigned short* Domain;
unsigned long DomainLength; ULONG DomainLength;
unsigned short* Password; unsigned short* Password;
unsigned long PasswordLength; ULONG PasswordLength;
unsigned long Flags; ULONG Flags;
} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; } SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W;
typedef struct _SEC_WINNT_AUTH_IDENTITY_A typedef struct _SEC_WINNT_AUTH_IDENTITY_A
{ {
unsigned char* User; unsigned char* User;
unsigned long UserLength; ULONG UserLength;
unsigned char* Domain; unsigned char* Domain;
unsigned long DomainLength; ULONG DomainLength;
unsigned char* Password; unsigned char* Password;
unsigned long PasswordLength; ULONG PasswordLength;
unsigned long Flags; ULONG Flags;
} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W
{ {
SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
unsigned long Flags; ULONG Flags;
unsigned long AuthenticationTarget; ULONG AuthenticationTarget;
unsigned long NumberOfAuthnSchemes; ULONG NumberOfAuthnSchemes;
unsigned long *AuthnSchemes; ULONG *AuthnSchemes;
unsigned short *ServerCertificateSubject; unsigned short *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W; } RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A
{ {
SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
unsigned long Flags; ULONG Flags;
unsigned long AuthenticationTarget; ULONG AuthenticationTarget;
unsigned long NumberOfAuthnSchemes; ULONG NumberOfAuthnSchemes;
unsigned long *AuthnSchemes; ULONG *AuthnSchemes;
unsigned char *ServerCertificateSubject; unsigned char *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A; } RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;
typedef struct _RPC_SECURITY_QOS { typedef struct _RPC_SECURITY_QOS {
unsigned long Version; ULONG Version;
unsigned long Capabilities; ULONG Capabilities;
unsigned long IdentityTracking; ULONG IdentityTracking;
unsigned long ImpersonationType; ULONG ImpersonationType;
} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS; } RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
typedef struct _RPC_SECURITY_QOS_V2_W typedef struct _RPC_SECURITY_QOS_V2_W
{ {
unsigned long Version; ULONG Version;
unsigned long Capabilities; ULONG Capabilities;
unsigned long IdentityTracking; ULONG IdentityTracking;
unsigned long ImpersonationType; ULONG ImpersonationType;
unsigned long AdditionalSecurityInfoType; ULONG AdditionalSecurityInfoType;
union union
{ {
RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
@ -263,11 +263,11 @@ typedef struct _RPC_SECURITY_QOS_V2_W
typedef struct _RPC_SECURITY_QOS_V2_A typedef struct _RPC_SECURITY_QOS_V2_A
{ {
unsigned long Version; ULONG Version;
unsigned long Capabilities; ULONG Capabilities;
unsigned long IdentityTracking; ULONG IdentityTracking;
unsigned long ImpersonationType; ULONG ImpersonationType;
unsigned long AdditionalSecurityInfoType; ULONG AdditionalSecurityInfoType;
union union
{ {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;

View file

@ -36,7 +36,7 @@ typedef struct _RPC_SYNTAX_IDENTIFIER {
typedef struct _RPC_MESSAGE typedef struct _RPC_MESSAGE
{ {
RPC_BINDING_HANDLE Handle; RPC_BINDING_HANDLE Handle;
unsigned long DataRepresentation; ULONG DataRepresentation;
void* Buffer; void* Buffer;
unsigned int BufferLength; unsigned int BufferLength;
unsigned int ProcNum; unsigned int ProcNum;
@ -45,7 +45,7 @@ typedef struct _RPC_MESSAGE
void* ReservedForRuntime; void* ReservedForRuntime;
RPC_MGR_EPV* ManagerEpv; RPC_MGR_EPV* ManagerEpv;
void* ImportContext; void* ImportContext;
unsigned long RpcFlags; ULONG RpcFlags;
} RPC_MESSAGE, *PRPC_MESSAGE; } RPC_MESSAGE, *PRPC_MESSAGE;
/* or'ed with ProcNum */ /* or'ed with ProcNum */
@ -202,13 +202,13 @@ RPCRTAPI RPC_STATUS RPC_ENTRY
typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, void* hSyncEvent); typedef RPC_STATUS (*RPC_BLOCKING_FN)(void* hWnd, void* Context, void* hSyncEvent);
RPCRTAPI RPC_STATUS RPC_ENTRY RPCRTAPI RPC_STATUS RPC_ENTRY
I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn, unsigned long ServerTid ); I_RpcBindingSetAsync( RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn, ULONG ServerTid );
RPCRTAPI RPC_STATUS RPC_ENTRY RPCRTAPI RPC_STATUS RPC_ENTRY
I_RpcSetThreadParams( int fClientFree, void* Context, void* hWndClient ); I_RpcSetThreadParams( int fClientFree, void* Context, void* hWndClient );
RPCRTAPI UINT RPC_ENTRY RPCRTAPI UINT RPC_ENTRY
I_RpcWindowProc( void* hWnd, unsigned int Message, unsigned int wParam, unsigned long lParam ); I_RpcWindowProc( void* hWnd, unsigned int Message, unsigned int wParam, ULONG lParam );
#endif #endif

View file

@ -144,7 +144,7 @@ struct NDR_ALLOC_ALL_NODES_CONTEXT;
struct NDR_POINTER_QUEUE_STATE; struct NDR_POINTER_QUEUE_STATE;
typedef unsigned char *RPC_BUFPTR; typedef unsigned char *RPC_BUFPTR;
typedef unsigned long RPC_LENGTH; typedef ULONG RPC_LENGTH;
typedef void (__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE *); typedef void (__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE *);
typedef const unsigned char *PFORMAT_STRING; typedef const unsigned char *PFORMAT_STRING;
@ -562,6 +562,18 @@ RPCRTAPI void RPC_ENTRY
RPCRTAPI void RPC_ENTRY RPCRTAPI void RPC_ENTRY
NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar ); NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned char FormatChar );
RPCRTAPI unsigned char* RPC_ENTRY
NdrByteCountPointerMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
RPCRTAPI unsigned char* RPC_ENTRY
NdrByteCountPointerUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc );
RPCRTAPI void RPC_ENTRY
NdrByteCountPointerBufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
RPCRTAPI void RPC_ENTRY
NdrByteCountPointerFree( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
RPCRTAPI unsigned char* RPC_ENTRY
NdrRangeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory, PFORMAT_STRING pFormat, unsigned char fMustAlloc );
/* while MS declares each prototype separately, I prefer to use macros for this kind of thing instead */ /* while MS declares each prototype separately, I prefer to use macros for this kind of thing instead */
#define SIMPLE_TYPE_MARSHAL(type) \ #define SIMPLE_TYPE_MARSHAL(type) \
RPCRTAPI unsigned char* RPC_ENTRY \ RPCRTAPI unsigned char* RPC_ENTRY \
@ -590,11 +602,9 @@ TYPE_MARSHAL(VaryingArray)
TYPE_MARSHAL(ComplexArray) TYPE_MARSHAL(ComplexArray)
TYPE_MARSHAL(EncapsulatedUnion) TYPE_MARSHAL(EncapsulatedUnion)
TYPE_MARSHAL(NonEncapsulatedUnion) TYPE_MARSHAL(NonEncapsulatedUnion)
TYPE_MARSHAL(ByteCountPointer)
TYPE_MARSHAL(XmitOrRepAs) TYPE_MARSHAL(XmitOrRepAs)
TYPE_MARSHAL(UserMarshal) TYPE_MARSHAL(UserMarshal)
TYPE_MARSHAL(InterfacePointer) TYPE_MARSHAL(InterfacePointer)
TYPE_MARSHAL(Range)
SIMPLE_TYPE_MARSHAL(ConformantString) SIMPLE_TYPE_MARSHAL(ConformantString)
SIMPLE_TYPE_MARSHAL(NonConformantString) SIMPLE_TYPE_MARSHAL(NonConformantString)