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

57 lines
1.8 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: host.idl
//
// Contents: Definition of private ORPC interface between apartments.
// Used to activate an inproc dll of one threading model from
// an apartment of a different threading model.
//
// History: 04-Mar-96 Rickhi Created
//
//--------------------------------------------------------------------------
//
// WIN64 07/01/98 v-thief
//
// This is a temporary implementation/port.
// We could use a mapping between DWORD dwPDE and pointers.
// This mapping API should be exposed by a common API. like rpc for example.
// However, for now I am going to try the polymorphic MIDL type: __int3264.
// Another point is that PDE or LFN were type as unsigned types, even if
// pointers ( signed types for Microsoft compilers ) were stored there.
// I respected this and use an "unsigned __int3264".
// For now also, I do not change the name of the first parameter but it
// should be changed to "hPDE" or something similar.
//
// Resolution of issue:
// This interface never goes out of process so making the first parameter ULONG64
// is fine since the RPC proxy will marshal the pointer-width value. NT Bug #232947
// showed up because of using a DCE proxy that truncated the dwPDE argument.
//
[ uuid(00000141-0000-0000-C000-000000000046),
pointer_default(unique),
object
]
interface IDLLHost : IUnknown
{
#ifndef DO_NO_IMPORTS
import "iface.idl";
import "unknwn.idl";
import "objidl.idl";
#endif
enum {DLLHOST_IS_DPE = 0x01,
DLLHOST_IS_PFN = 0x02 };
HRESULT DllGetClassObject(
[in] ULONG64 hDPE,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown **ppunk,
[in] DWORD dwFlags);
}