Lines Matching defs:interface

35  * Macros to define a COM interface
39 * header file definitions to provide both a C interface and a C++ object oriented
40 * interface to COM interfaces. The type of interface is selected automatically
41 * depending on the language but it is always possible to get the C interface in C++
46 * - the header file only defines the interface, the actual fields are defined
47 * separately in the C file implementing the interface.
95 * pointer. Defining this macro here saves us the trouble of having to repeat the interface
99 * - The DECLARE_INTERFACE declares all the structures necessary for the interface. We have to
100 * explicitly use the interface name for macro expansion reasons again. It defines the list of
101 * methods that are inheritable from this interface. It must be written manually (rather than
103 * don't like). It must start with the methods definition of the parent interface so that
108 * to the interface methods in C. Unfortunately I don't see any way to avoid having to duplicate
112 * interface: reference count, pointer to other resources and miscellaneous fields. That's
115 * that the interface contains some specific fields.
151 * the user needs to know to use the interface. Of course the structure we will define to
152 * implement this interface will have more fields but the first one will match this pointer.
153 * - The code generated by DECLARE_INTERFACE defines both the structure representing the interface and
162 * interfaces and for code implementing a COM interface.
182 * Implementing a COM interface.
213 * - We first define what the interface really contains. This is the IDirect3DImpl structure. The
216 * methods to initialize the virtual table pointer of the returned interface objects.
217 * - Then we implement the interface methods. To match what has been declared in the header file
225 /* C++ interface */
236 #define interface struct
237 #define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface
238 #define DECLARE_INTERFACE_(iface,ibase) interface DECLSPEC_NOVTABLE iface : public ibase
239 #define DECLARE_INTERFACE_IID_(iface, ibase, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface : public ibase
246 /* C interface */
257 #define interface struct
267 typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; \
274 typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; \
288 typedef interface IRpcStubBuffer IRpcStubBuffer;
292 typedef interface IRpcChannelBuffer IRpcChannelBuffer;