windows-nt/Source/XPSP1/NT/public/internal/com/inc/iface.idl
2020-09-26 16:20:57 +08:00

78 lines
2.5 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Copyright (C) 1992, Microsoft Corporation.
//
// File: iface.idl
//
// Contents: Public definitions used for xmiting interfaces via RPC
//
// History: 28-Jan-93 Ricksa Created.
//
// Notes: These definitions are used for transmitting interfaces
// via RPC.
//
//----------------------------------------------------------------------------
[ uuid(5C0EB534-BF9F-101A-8818-02608C4D2359),
version(0.1),
pointer_default(unique)
]
interface XmitDefs
{
import "wtypes.idl";
#ifndef DO_NO_IMPORTS
import "obase.idl";
#endif
// These are only valid on a request (in a ORPCTHIS header).
const int ORPCF_INPUT_SYNC = ORPCF_RESERVED1;
const int ORPCF_ASYNC = ORPCF_RESERVED2;
const int ORPCF_DYNAMIC_CLOAKING = ORPCF_RESERVED3;
// These are only valid on a reply (in a ORPCTHAT header).
const int ORPCF_REJECTED = ORPCF_RESERVED1;
const int ORPCF_RETRY_LATER = ORPCF_RESERVED2;
typedef struct
{
DWORD dwFlags;
DWORD dwClientThread;
} LOCALTHIS;
typedef enum tagLOCALFLAG
{
LOCALF_NONE = 0x0,
// Parameters in buffer not marshalled NDR
LOCALF_NONNDR = 0x800
} LOCALFLAG;
// CALLCATEGORY is used internally and represents the categories of calls
// that can be made.
// DCOMWORK - Get rid of the unused internal types.
typedef enum tagCALLCATEGORY
{
CALLCAT_NOCALL = 0, // no call in progress
CALLCAT_SYNCHRONOUS = 1, // normal sychornous call
CALLCAT_ASYNC = 2, // asynchronous call
CALLCAT_INPUTSYNC = 3, // input-synchronous call
CALLCAT_INTERNALSYNC = 4, // internal ssync call
CALLCAT_INTERNALINPUTSYNC = 5, // internal inputssync call
CALLCAT_SCMCALL = 6 // important scm call
} CALLCATEGORY;
// wire representation of an entire interface. used for wrapping a
// marshalled interface in a stream representation CXmitRpcStream.
typedef struct tagInterfaceData
{
ULONG ulCntData; // size of data
[length_is(ulCntData)] BYTE abData[1024]; // data
} InterfaceData;
typedef [unique] InterfaceData * PInterfaceData;
#pragma midl_echo("#define IFD_SIZE(pIFD) (sizeof(InterfaceData) + pIFD->ulCntData - 1024)")
}