98 lines
2.6 KiB
Plaintext
98 lines
2.6 KiB
Plaintext
/*
|
|
* Copyright 2007 Robert Shearman for CodeWeavers
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
import "wtypes.idl";
|
|
|
|
cpp_quote("#define IROT_PROTSEQ {'n','c','a','l','r','p','c',0}")
|
|
cpp_quote("#define IROT_ENDPOINT {'i','r','o','t',0}")
|
|
|
|
typedef struct tagMonikerComparisonData {
|
|
ULONG ulCntData;
|
|
[size_is(ulCntData)] BYTE abData[];
|
|
} MonikerComparisonData;
|
|
|
|
[
|
|
uuid(7a98c254-6808-11cf-b73b-00aa00b677a8),
|
|
version(0.2),
|
|
strict_context_handle
|
|
]
|
|
interface Irot
|
|
{
|
|
typedef struct tagInterfaceData
|
|
{
|
|
ULONG ulCntData;
|
|
[size_is(ulCntData)] BYTE abData[];
|
|
} InterfaceData;
|
|
|
|
typedef [unique] InterfaceData *PInterfaceData;
|
|
|
|
typedef struct tagInterfaceList
|
|
{
|
|
ULONG size;
|
|
[size_is(size)] PInterfaceData interfaces[];
|
|
} InterfaceList;
|
|
|
|
typedef [unique] InterfaceList *PInterfaceList;
|
|
|
|
typedef DWORD IrotCookie;
|
|
|
|
typedef handle_t IrotHandle;
|
|
typedef [context_handle] void *IrotContextHandle;
|
|
|
|
HRESULT IrotRegister(
|
|
[in] IrotHandle h,
|
|
[in] const MonikerComparisonData *moniker_data,
|
|
[in] const InterfaceData *object,
|
|
[in] const InterfaceData *moniker,
|
|
[in] const FILETIME *time,
|
|
[in] DWORD grfFlags,
|
|
[out] IrotCookie *cookie,
|
|
[out] IrotContextHandle *ctxt_handle);
|
|
|
|
HRESULT IrotRevoke(
|
|
[in] IrotHandle h,
|
|
[in] IrotCookie cookie,
|
|
[in, out] IrotContextHandle *ctxt_handle,
|
|
[out] PInterfaceData *object,
|
|
[out] PInterfaceData *moniker);
|
|
|
|
HRESULT IrotIsRunning(
|
|
[in] IrotHandle h,
|
|
[in] const MonikerComparisonData *moniker_data);
|
|
|
|
HRESULT IrotGetObject(
|
|
[in] IrotHandle h,
|
|
[in] const MonikerComparisonData *moniker_data,
|
|
[out] PInterfaceData *obj,
|
|
[out] IrotCookie *cookie);
|
|
|
|
HRESULT IrotNoteChangeTime(
|
|
[in] IrotHandle h,
|
|
[in] IrotCookie cookie,
|
|
[in] const FILETIME *time);
|
|
|
|
HRESULT IrotGetTimeOfLastChange(
|
|
[in] IrotHandle h,
|
|
[in] const MonikerComparisonData *moniker_data,
|
|
[out] FILETIME *time);
|
|
|
|
HRESULT IrotEnumRunning(
|
|
[in] IrotHandle h,
|
|
[out] PInterfaceList *list);
|
|
}
|