Piotr Caban : oleview: CreateCoclassHeader partially implemented.
Alexandre Julliard
julliard at winehq.org
Fri Apr 11 06:28:22 CDT 2008
Module: wine
Branch: master
Commit: aad4547d953bd5dd4f8424c11c3d402f9fc7a657
URL: http://source.winehq.org/git/wine.git/?a=commit;h=aad4547d953bd5dd4f8424c11c3d402f9fc7a657
Author: Piotr Caban <piotr.caban at gmail.com>
Date: Fri Apr 11 01:11:45 2008 +0200
oleview: CreateCoclassHeader partially implemented.
---
programs/oleview/main.h | 1 +
programs/oleview/typelib.c | 60 ++++++++++++++++++++++++++++++++++++-------
2 files changed, 51 insertions(+), 10 deletions(-)
diff --git a/programs/oleview/main.h b/programs/oleview/main.h
index c196883..a6f199a 100644
--- a/programs/oleview/main.h
+++ b/programs/oleview/main.h
@@ -37,6 +37,7 @@
#define MAX_WINDOW_WIDTH 30000
#define MIN_FUNC_ID 0x60000000
#define MIN_VAR_ID 0x40000000
+#define TAB_SIZE 4
#define STATUS_WINDOW 2000
#define TREE_WINDOW 2001
diff --git a/programs/oleview/typelib.c b/programs/oleview/typelib.c
index 7215980..626abea 100644
--- a/programs/oleview/typelib.c
+++ b/programs/oleview/typelib.c
@@ -634,7 +634,7 @@ static int EnumFuncs(ITypeInfo *pTypeInfo, TYPEATTR *pTypeAttr, HTREEITEM hParen
if(pFuncDesc->cParams != 1)
{
AddToTLDataStrW(tld, wszNewLine);
- AddSpaces(tld, 4);
+ AddSpaces(tld, TAB_SIZE);
}
bFirst = TRUE;
#define ENUM_PARAM_FLAG(x)\
@@ -808,7 +808,7 @@ static void EnumCoclassImplTypes(ITypeInfo *pTypeInfo,
continue;
}
- AddSpaces(pTLData, 4);
+ AddSpaces(pTLData, TAB_SIZE);
ITypeInfo_GetImplTypeFlags(pTypeInfo, i, &flags);
bFirst = TRUE;
#define ENUM_IMPLTYPEFLAG(x)\
@@ -943,12 +943,12 @@ static void CreateInterfaceInfo(ITypeInfo *pTypeInfo, int cImplTypes, WCHAR *wsz
AddToTLDataStrW(pTLData, wszNewLine);
if(pTypeAttr->typekind != TKIND_DISPATCH)
{
- AddSpaces(pTLData, 4);
+ AddSpaces(pTLData, TAB_SIZE);
AddToTLDataStrW(pTLData, wszOdl);
AddToTLDataStrW(pTLData, wszComa);
AddToTLDataStrW(pTLData, wszNewLine);
}
- AddSpaces(pTLData, 4);
+ AddSpaces(pTLData, TAB_SIZE);
AddToTLDataStrW(pTLData, wszUUID);
AddToTLDataStrW(pTLData, wszOpenBrackets2);
StringFromGUID2(&(pTypeAttr->guid), wszGuid, MAX_LOAD_STRING);
@@ -959,7 +959,7 @@ static void CreateInterfaceInfo(ITypeInfo *pTypeInfo, int cImplTypes, WCHAR *wsz
{
AddToTLDataStrW(pTLData, wszComa);
AddToTLDataStrW(pTLData, wszNewLine);
- AddSpaces(pTLData, 4);
+ AddSpaces(pTLData, TAB_SIZE);
AddToTLDataStrW(pTLData, wszHelpstring);
AddToTLDataStrW(pTLData, wszOpenBrackets2);
AddToTLDataStrW(pTLData, wszInvertedComa);
@@ -971,7 +971,7 @@ static void CreateInterfaceInfo(ITypeInfo *pTypeInfo, int cImplTypes, WCHAR *wsz
{
AddToTLDataStrW(pTLData, wszComa);
AddToTLDataStrW(pTLData, wszNewLine);
- AddSpaces(pTLData, 4);
+ AddSpaces(pTLData, TAB_SIZE);
AddToTLDataStrW(pTLData, wszHelpcontext);
AddToTLDataStrW(pTLData, wszOpenBrackets2);
wsprintfW(wszHelpContext, wszFormat, ulHelpContext);
@@ -985,7 +985,7 @@ static void CreateInterfaceInfo(ITypeInfo *pTypeInfo, int cImplTypes, WCHAR *wsz
{\
AddToTLDataStrW(pTLData, wszComa);\
AddToTLDataStrW(pTLData, wszNewLine);\
- AddSpaces(pTLData, 4);\
+ AddSpaces(pTLData, TAB_SIZE);\
AddToTLDataStrW(pTLData, wsz##x);\
}
ENUM_FLAGS(TYPEFLAG_FAPPOBJECT);
@@ -1078,9 +1078,49 @@ static void CreateTypedefHeader(ITypeInfo *pTypeInfo,
static void CreateCoclassHeader(ITypeInfo *pTypeInfo,
TYPEATTR *pTypeAttr, TYPELIB_DATA *pTLData)
{
+ WCHAR wszGuid[MAX_LOAD_STRING];
+ BSTR bstrHelpString;
+ const WCHAR wszNoncreatable[]
+ = { 'n','o','n','c','r','e','a','t','a','b','l','e','\0' };
+
AddToTLDataStrW(pTLData, wszOpenBrackets1);
AddToTLDataStrW(pTLData, wszNewLine);
+ AddSpaces(pTLData, TAB_SIZE);
+ AddToTLDataStrW(pTLData, wszUUID);
+ AddToTLDataStrW(pTLData, wszOpenBrackets2);
+ StringFromGUID2(&(pTypeAttr->guid), wszGuid, MAX_LOAD_STRING);
+ wszGuid[lstrlenW(wszGuid)-1] = '\0';
+ AddToTLDataStrW(pTLData, &wszGuid[1]);
+ AddToTLDataStrW(pTLData, wszCloseBrackets2);
+
+ if(SUCCEEDED(ITypeInfo_GetDocumentation(pTypeInfo, MEMBERID_NIL, NULL,
+ &bstrHelpString, NULL, NULL)))
+ {
+ if(SysStringLen(bstrHelpString))
+ {
+ AddToTLDataStrW(pTLData, wszComa);
+ AddToTLDataStrW(pTLData, wszNewLine);
+ AddSpaces(pTLData, TAB_SIZE);
+ AddToTLDataStrW(pTLData, wszHelpstring);
+ AddToTLDataStrW(pTLData, wszOpenBrackets1);
+ AddToTLDataStrW(pTLData, wszInvertedComa);
+ AddToTLDataStrW(pTLData, bstrHelpString);
+ AddToTLDataStrW(pTLData, wszInvertedComa);
+ AddToTLDataStrW(pTLData, wszCloseBrackets1);
+ }
+ SysFreeString(bstrHelpString);
+ }
+
+ if(!(pTypeAttr->wTypeFlags & TYPEFLAG_FCANCREATE))
+ {
+ AddToTLDataStrW(pTLData, wszComa);
+ AddToTLDataStrW(pTLData, wszNewLine);
+ AddSpaces(pTLData, TAB_SIZE);
+ AddToTLDataStrW(pTLData, wszNoncreatable);
+ }
+
+ AddToTLDataStrW(pTLData, wszNewLine);
AddToTLDataStrW(pTLData, wszCloseBrackets1);
AddToTLDataStrW(pTLData, wszNewLine);
}
@@ -1165,7 +1205,7 @@ static int PopulateTree(void)
AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW(tld, wszOpenBrackets1);
AddToTLDataStrW(tld, wszNewLine);
- AddSpaces(tld, 4);
+ AddSpaces(tld, TAB_SIZE);
AddToTLDataStrW(tld, wszUUID);
AddToTLDataStrW(tld, wszOpenBrackets2);
StringFromGUID2(&(pTLibAttr->guid), wszText, MAX_LOAD_STRING);
@@ -1174,12 +1214,12 @@ static int PopulateTree(void)
AddToTLDataStrW(tld, wszCloseBrackets2);
AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW(tld, wszNewLine);
- AddSpaces(tld, 4);
+ AddSpaces(tld, TAB_SIZE);
wsprintfW(wszText, wszFormat2, pTLibAttr->wMajorVerNum, pTLibAttr->wMinorVerNum);
AddToTLDataStrW(tld, wszText);
AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW(tld, wszNewLine);
- AddSpaces(tld, 4);
+ AddSpaces(tld, TAB_SIZE);
AddToTLDataStrW(tld, wszHelpstring);
AddToTLDataStrW(tld, wszOpenBrackets2);
AddToTLDataStrW(tld, wszInvertedComa);
More information about the wine-cvs
mailing list