2 * Copyright 2007 Robert Shearman for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 cpp_quote
("#define IROT_PROTSEQ {'n','c','a','l','r','p','c',0}")
22 cpp_quote
("#define IROT_ENDPOINT {'i','r','o','t',0}")
24 typedef struct tagMonikerComparisonData
{
26 [size_is(ulCntData
)] BYTE abData
[];
27 } MonikerComparisonData
;
30 uuid(7a98c254
-6808-11cf
-b73b
-00aa00b677a8
),
36 typedef struct tagInterfaceData
39 [size_is(ulCntData
)] BYTE abData
[];
42 typedef [unique] InterfaceData
*PInterfaceData
;
44 typedef struct tagInterfaceList
47 [size_is(size
)] PInterfaceData interfaces
[];
50 typedef [unique] InterfaceList
*PInterfaceList
;
52 typedef DWORD IrotCookie
;
54 typedef handle_t IrotHandle
;
55 typedef [context_handle] void *IrotContextHandle
;
59 [in] const MonikerComparisonData
*moniker_data
,
60 [in] const InterfaceData
*object,
61 [in] const InterfaceData
*moniker
,
62 [in] const FILETIME
*time
,
64 [out] IrotCookie
*cookie
,
65 [out] IrotContextHandle
*ctxt_handle
);
69 [in] IrotCookie cookie
,
70 [in, out] IrotContextHandle
*ctxt_handle
,
71 [out] PInterfaceData
*object,
72 [out] PInterfaceData
*moniker
);
74 HRESULT IrotIsRunning
(
76 [in] const MonikerComparisonData
*moniker_data
);
78 HRESULT IrotGetObject
(
80 [in] const MonikerComparisonData
*moniker_data
,
81 [out] PInterfaceData
*obj
,
82 [out] IrotCookie
*cookie
);
84 HRESULT IrotNoteChangeTime
(
86 [in] IrotCookie cookie
,
87 [in] const FILETIME
*time
);
89 HRESULT IrotGetTimeOfLastChange
(
91 [in] const MonikerComparisonData
*moniker_data
,
92 [out] FILETIME
*time
);
94 HRESULT IrotEnumRunning
(
96 [out] PInterfaceList
*list
);