57 lines
1.8 KiB
Plaintext
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);
|
|
}
|