Michael Stefaniuc : include: Drop outdated comment about COM interface implementations.
Alexandre Julliard
julliard at winehq.org
Mon Jun 11 15:08:06 CDT 2012
Module: wine
Branch: master
Commit: 4e959365484ebf3f0e1efb4bf9f55c22091e82a8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4e959365484ebf3f0e1efb4bf9f55c22091e82a8
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Sat Jun 9 01:13:42 2012 +0200
include: Drop outdated comment about COM interface implementations.
---
include/objbase.h | 43 +------------------------------------------
1 files changed, 1 insertions(+), 42 deletions(-)
diff --git a/include/objbase.h b/include/objbase.h
index 52c6b56..c366a28 100644
--- a/include/objbase.h
+++ b/include/objbase.h
@@ -41,7 +41,7 @@
* virtual methods in C++ and a structure with a table of pointer to functions in C.
* Unfortunately the layout of the virtual table is compiler specific, the layout of
* g++ virtual tables is not the same as that of an egcs virtual table which is not the
- * same as that generated by Visual C+. There are workarounds to make the virtual tables
+ * same as that generated by Visual C++. There are workarounds to make the virtual tables
* compatible via padding but unfortunately the one which is imposed to the WINE emulator
* by the Windows binaries, i.e. the Visual C++ one, is the most compact of all.
*
@@ -168,47 +168,6 @@
* - Of course in C++ we use inheritance so that we don't have to duplicate the method definitions.
* - Finally there is no IDirect3D_Xxx macro. These are not needed in C++ unless the CINTERFACE
* macro is defined in which case we would not be here.
- *
- *
- * Implementing a COM interface.
- *
- * This continues the above example. This example assumes that the implementation is in C.
- *
- * typedef struct IDirect3DImpl {
- * void* lpVtbl;
- * // ...
- *
- * } IDirect3DImpl;
- *
- * static IDirect3DVtbl d3dvt;
- *
- * // implement the IDirect3D methods here
- *
- * int IDirect3D_QueryInterface(IDirect3D* me)
- * {
- * IDirect3DImpl *This = (IDirect3DImpl *)me;
- * // ...
- * }
- *
- * // ...
- *
- * static IDirect3DVtbl d3dvt = {
- * IDirect3D_QueryInterface,
- * IDirect3D_Add,
- * IDirect3D_Add2,
- * IDirect3D_Initialize,
- * IDirect3D_SetWidth
- * };
- *
- * Comments:
- * - We first define what the interface really contains. This is the IDirect3DImpl structure. The
- * first field must of course be the virtual table pointer. Everything else is free.
- * - Then we predeclare our static virtual table variable, we will need its address in some
- * methods to initialize the virtual table pointer of the returned interface objects.
- * - Then we implement the interface methods. To match what has been declared in the header file
- * they must take a pointer to an IDirect3D structure and we must cast it to an IDirect3DImpl so
- * that we can manipulate the fields.
- * - Finally we initialize the virtual table.
*/
#if defined(__cplusplus) && !defined(CINTERFACE)
More information about the wine-cvs
mailing list