//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1996. // // File: odeath.idl // //+------------------------------------------------------------------------- //+------------------------------------------------------------------------- // // Interface: IRemUnknown2 // // Synopsys: This is a local interface used to convert strong references // to weak references and vice versa. It is needed for the // container/link/embedding aspects of OLE. // // Notes: Weak references are not permitted remotely. // //+------------------------------------------------------------------------- [ object, uuid(0000013C-0000-0000-C000-000000000046) ] interface IRemUnknown2 : IRemUnknown { #ifndef DO_NO_IMPORTS import "remunk.idl"; #endif const unsigned long IRUF_CONVERTTOWEAK = 0x01;// make refs weak const unsigned long IRUF_CONVERTTOSTRONG = 0x02;// make refs strong const unsigned long IRUF_DISCONNECTIFLASTSTRONG = 0x04;// disconnect the // object if last strong ref HRESULT RemChangeRef ( [in] unsigned long flags, [in] unsigned short cInterfaceRefs, [in, size_is(cInterfaceRefs)] REMINTERFACEREF InterfaceRefs[] ); } //+------------------------------------------------------------------------- // // Interface: IRundown // // Synopsys: This is the local OID rundown interface. The object exporter // calls it to notify the server which OIDs are no longer being // pinged. // // Notes: This inherits from IRemUnknown and IRemUnknown2 so that we // can use the same IPID for all three interfaces. This is // strictly a local decision and does not affect remote protocol. // //+------------------------------------------------------------------------- [ uuid(00000134-0000-0000-C000-000000000046) #ifndef RAW , object #endif ] interface IRundown #ifndef RAW : IRemUnknown2 #endif { #ifndef DO_NO_IMPORTS import "iface.idl"; import "obase.idl"; import "remunk.idl"; #endif #include "comhndl.h" COM_DEFINES(IOSCM) #ifdef RAW // Define the functions in IRemUnknown2 HRESULT DummyRemQuery( handle_t handle ); HRESULT DummyRemAddRef( handle_t handle ); HRESULT DummyRemRelease( handle_t handle ); HRESULT DummyRemChangeRef( handle_t handle ); error_status_t RawRundownOid #else HRESULT RundownOid #endif ( COM_HANDLE [in] ULONG cOid, [in, size_is(cOid)] OID aOid[], [out, size_is(cOid)] unsigned char afOkToRundown[] ); }