oleview: Remove many casts.

This commit is contained in:
Mike McCormack 2007-01-26 23:48:42 +09:00 committed by Alexandre Julliard
parent 702adb37a2
commit b858b78990
1 changed files with 155 additions and 163 deletions

View File

@ -257,7 +257,7 @@ void AddToTLDataStrWithTabsW(TYPELIB_DATA *pTLData, WCHAR *wszSource)
} }
} }
LPARAM InitializeTLData(void) static TYPELIB_DATA *InitializeTLData(void)
{ {
TYPELIB_DATA *pTLData; TYPELIB_DATA *pTLData;
@ -267,7 +267,7 @@ LPARAM InitializeTLData(void)
pTLData->idl = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)); pTLData->idl = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR));
pTLData->idl[0] = '\0'; pTLData->idl[0] = '\0';
return (LPARAM)pTLData; return pTLData;
} }
void AddSpaces(TYPELIB_DATA *pTLData, int tabSize) void AddSpaces(TYPELIB_DATA *pTLData, int tabSize)
@ -381,29 +381,33 @@ int EnumVars(ITypeInfo *pTypeInfo, int cVars, HTREEITEM hParent)
for(i=0; i<cVars; i++) for(i=0; i<cVars; i++)
{ {
TYPELIB_DATA *tld;
if(FAILED(ITypeInfo_GetVarDesc(pTypeInfo, i, &pVarDesc))) continue; if(FAILED(ITypeInfo_GetVarDesc(pTypeInfo, i, &pVarDesc))) continue;
if(FAILED(ITypeInfo_GetDocumentation(pTypeInfo, pVarDesc->memid, &bstrName, if(FAILED(ITypeInfo_GetDocumentation(pTypeInfo, pVarDesc->memid, &bstrName,
NULL, NULL, NULL))) continue; NULL, NULL, NULL))) continue;
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
U(tvis).item.lParam = (LPARAM) tld;
if(pVarDesc->memid < MIN_VAR_ID) if(pVarDesc->memid < MIN_VAR_ID)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszId); AddToTLDataStrW(tld, wszOpenBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets2); AddToTLDataStrW(tld, wszId);
AddToTLDataStrW(tld, wszOpenBrackets2);
wsprintfW(wszText, wszFormat, pVarDesc->memid); wsprintfW(wszText, wszFormat, pVarDesc->memid);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets2); AddToTLDataStrW(tld, wszCloseBrackets2);
if(pVarDesc->wVarFlags & VARFLAG_FREADONLY) if(pVarDesc->wVarFlags & VARFLAG_FREADONLY)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszReadOnly); AddToTLDataStrW(tld, wszReadOnly);
} }
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets1); AddToTLDataStrW(tld, wszCloseBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
} }
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
@ -412,9 +416,9 @@ int EnumVars(ITypeInfo *pTypeInfo, int cVars, HTREEITEM hParent)
AddToStrW(wszText, wszSpace); AddToStrW(wszText, wszSpace);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
AddToStrW(wszText, wszAfter); AddToStrW(wszText, wszAfter);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSemicolon); AddToTLDataStrW(tld, wszSemicolon);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
SendMessage(typelib.hTree, TVM_INSERTITEM, 0, (LPARAM)&tvis); SendMessage(typelib.hTree, TVM_INSERTITEM, 0, (LPARAM)&tvis);
SysFreeString(bstrName); SysFreeString(bstrName);
@ -441,6 +445,8 @@ int EnumFuncs(ITypeInfo *pTypeInfo, int cFuncs, HTREEITEM hParent)
for(i=0; i<cFuncs; i++) for(i=0; i<cFuncs; i++)
{ {
TYPELIB_DATA *tld;
if(FAILED(ITypeInfo_GetFuncDesc(pTypeInfo, i, &pFuncDesc))) continue; if(FAILED(ITypeInfo_GetFuncDesc(pTypeInfo, i, &pFuncDesc))) continue;
if(FAILED(ITypeInfo_GetDocumentation(pTypeInfo, pFuncDesc->memid, &bstrName, if(FAILED(ITypeInfo_GetDocumentation(pTypeInfo, pFuncDesc->memid, &bstrName,
NULL, NULL, NULL))) continue; NULL, NULL, NULL))) continue;
@ -457,97 +463,95 @@ int EnumFuncs(ITypeInfo *pTypeInfo, int cFuncs, HTREEITEM hParent)
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
memset(wszAfter, 0, sizeof(wszAfter)); memset(wszAfter, 0, sizeof(wszAfter));
tld = InitializeTLData();
U(tvis).item.cchTextMax = SysStringLen(bstrName); U(tvis).item.cchTextMax = SysStringLen(bstrName);
U(tvis).item.pszText = bstrName; U(tvis).item.pszText = bstrName;
U(tvis).item.lParam = InitializeTLData(); U(tvis).item.lParam = (LPARAM) tld;
bFirst = TRUE; bFirst = TRUE;
if(pFuncDesc->memid < MIN_FUNC_ID) if(pFuncDesc->memid < MIN_FUNC_ID)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets1); AddToTLDataStrW(tld, wszOpenBrackets1);
bFirst = FALSE; bFirst = FALSE;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszId); AddToTLDataStrW(tld, wszId);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets2); AddToTLDataStrW(tld, wszOpenBrackets2);
wsprintfW(wszText, wszFormat, pFuncDesc->memid); wsprintfW(wszText, wszFormat, pFuncDesc->memid);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets2); AddToTLDataStrW(tld, wszCloseBrackets2);
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
} }
CreateTypeInfo(wszText, wszAfter, pFuncDesc->elemdescFunc.tdesc, pTypeInfo); CreateTypeInfo(wszText, wszAfter, pFuncDesc->elemdescFunc.tdesc, pTypeInfo);
switch(pFuncDesc->invkind) switch(pFuncDesc->invkind)
{ {
case INVOKE_PROPERTYGET: case INVOKE_PROPERTYGET:
if(bFirst) AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), if(bFirst) AddToTLDataStrW(tld, wszOpenBrackets1);
wszOpenBrackets1);
else else
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
} }
bFirst = FALSE; bFirst = FALSE;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszPropGet); AddToTLDataStrW(tld, wszPropGet);
break; break;
case INVOKE_PROPERTYPUT: case INVOKE_PROPERTYPUT:
if(bFirst) AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), if(bFirst) AddToTLDataStrW(tld, wszOpenBrackets1);
wszOpenBrackets1);
else else
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
} }
bFirst = FALSE; bFirst = FALSE;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszPropPut); AddToTLDataStrW(tld, wszPropPut);
break; break;
case INVOKE_PROPERTYPUTREF: case INVOKE_PROPERTYPUTREF:
if(bFirst) AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), if(bFirst) AddToTLDataStrW(tld, wszOpenBrackets1);
wszOpenBrackets1);
else else
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
} }
bFirst = FALSE; bFirst = FALSE;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszPropPutRef); AddToTLDataStrW(tld, wszPropPutRef);
break; break;
default:; default:;
} }
if(!bFirst) if(!bFirst)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets1); AddToTLDataStrW(tld, wszCloseBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
} }
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszAfter); AddToTLDataStrW(tld, wszAfter);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
if(pFuncDesc->memid >= MIN_FUNC_ID) if(pFuncDesc->memid >= MIN_FUNC_ID)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszStdCall); AddToTLDataStrW(tld, wszStdCall);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
} }
tabSize = ((TYPELIB_DATA*)(U(tvis).item.lParam))->idlLen; tabSize = tld->idlLen;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), bstrName); AddToTLDataStrW(tld, bstrName);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets2); AddToTLDataStrW(tld, wszOpenBrackets2);
for(j=0; j<pFuncDesc->cParams; j++) for(j=0; j<pFuncDesc->cParams; j++)
{ {
if(j != 0) AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); if(j != 0) AddToTLDataStrW(tld, wszComa);
if(pFuncDesc->cParams != 1) if(pFuncDesc->cParams != 1)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddSpaces((TYPELIB_DATA*)(U(tvis).item.lParam), tabSize); AddSpaces(tld, tabSize);
} }
bFirst = TRUE; bFirst = TRUE;
#define ENUM_PARAM_FLAG(x)\ #define ENUM_PARAM_FLAG(x)\
if(U(pFuncDesc->lprgelemdescParam[j]).paramdesc.wParamFlags & x) \ if(U(pFuncDesc->lprgelemdescParam[j]).paramdesc.wParamFlags & x) \
{\ {\
if(bFirst) AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam),\ if(bFirst) AddToTLDataStrW(tld,\
wszOpenBrackets1);\ wszOpenBrackets1);\
else\ else\
{\ {\
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa);\ AddToTLDataStrW(tld, wszComa);\
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace);\ AddToTLDataStrW(tld, wszSpace);\
}\ }\
bFirst = FALSE;\ bFirst = FALSE;\
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wsz##x);\ AddToTLDataStrW(tld, wsz##x);\
} }
ENUM_PARAM_FLAG(PARAMFLAG_FIN); ENUM_PARAM_FLAG(PARAMFLAG_FIN);
ENUM_PARAM_FLAG(PARAMFLAG_FOUT); ENUM_PARAM_FLAG(PARAMFLAG_FOUT);
@ -559,23 +563,23 @@ int EnumFuncs(ITypeInfo *pTypeInfo, int cFuncs, HTREEITEM hParent)
if(!bFirst) if(!bFirst)
{ {
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets1); AddToTLDataStrW(tld, wszCloseBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
} }
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
memset(wszAfter, 0, sizeof(wszAfter)); memset(wszAfter, 0, sizeof(wszAfter));
CreateTypeInfo(wszText, wszAfter, pFuncDesc->lprgelemdescParam[j].tdesc, CreateTypeInfo(wszText, wszAfter, pFuncDesc->lprgelemdescParam[j].tdesc,
pTypeInfo); pTypeInfo);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszAfter); AddToTLDataStrW(tld, wszAfter);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), bstrParamNames[j+1]); AddToTLDataStrW(tld, bstrParamNames[j+1]);
SysFreeString(bstrParamNames[j+1]); SysFreeString(bstrParamNames[j+1]);
} }
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets2); AddToTLDataStrW(tld, wszCloseBrackets2);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSemicolon); AddToTLDataStrW(tld, wszSemicolon);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
SendMessage(typelib.hTree, TVM_INSERTITEM, 0, (LPARAM)&tvis); SendMessage(typelib.hTree, TVM_INSERTITEM, 0, (LPARAM)&tvis);
HeapFree(GetProcessHeap(), 0, bstrParamNames); HeapFree(GetProcessHeap(), 0, bstrParamNames);
@ -877,6 +881,7 @@ int PopulateTree(void)
HTREEITEM hMain; HTREEITEM hMain;
BOOL bInsert; BOOL bInsert;
TYPELIB_DATA *tldDispatch; TYPELIB_DATA *tldDispatch;
TYPELIB_DATA *tld;
const WCHAR wszGeneratedInfo[] = { '/','/',' ','G','e','n','e','r','a','t','e','d', const WCHAR wszGeneratedInfo[] = { '/','/',' ','G','e','n','e','r','a','t','e','d',
' ','.','I','D','L',' ','f','i','l','e',' ','(','b','y',' ','t','h','e',' ', ' ','.','I','D','L',' ','f','i','l','e',' ','(','b','y',' ','t','h','e',' ',
@ -929,45 +934,46 @@ int PopulateTree(void)
ITypeLib_GetDocumentation(pTypeLib, -1, &bstrName, &bstrData, NULL, NULL); ITypeLib_GetDocumentation(pTypeLib, -1, &bstrName, &bstrData, NULL, NULL);
ITypeLib_GetLibAttr(pTypeLib, &pTLibAttr); ITypeLib_GetLibAttr(pTypeLib, &pTLibAttr);
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszGeneratedInfo); U(tvis).item.lParam = (LPARAM) tld;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), typelib.wszFileName); AddToTLDataStrW(tld, wszGeneratedInfo);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, typelib.wszFileName);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets1); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszOpenBrackets1);
AddSpaces((TYPELIB_DATA*)(U(tvis).item.lParam), 4); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszUUID); AddSpaces(tld, 4);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets2); AddToTLDataStrW(tld, wszUUID);
AddToTLDataStrW(tld, wszOpenBrackets2);
StringFromGUID2(&(pTLibAttr->guid), wszText, MAX_LOAD_STRING); StringFromGUID2(&(pTLibAttr->guid), wszText, MAX_LOAD_STRING);
wszText[lstrlenW(wszText)-1] = '\0'; wszText[lstrlenW(wszText)-1] = '\0';
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), &wszText[1]); AddToTLDataStrW(tld, &wszText[1]);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets2); AddToTLDataStrW(tld, wszCloseBrackets2);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddSpaces((TYPELIB_DATA*)(U(tvis).item.lParam), 4); AddSpaces(tld, 4);
wsprintfW(wszText, wszFormat2, pTLibAttr->wMajorVerNum, pTLibAttr->wMinorVerNum); wsprintfW(wszText, wszFormat2, pTLibAttr->wMajorVerNum, pTLibAttr->wMinorVerNum);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszText); AddToTLDataStrW(tld, wszText);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszComa); AddToTLDataStrW(tld, wszComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddSpaces((TYPELIB_DATA*)(U(tvis).item.lParam), 4); AddSpaces(tld, 4);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszHelpString); AddToTLDataStrW(tld, wszHelpString);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets2); AddToTLDataStrW(tld, wszOpenBrackets2);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszInvertedComa); AddToTLDataStrW(tld, wszInvertedComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), bstrData); AddToTLDataStrW(tld, bstrData);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszInvertedComa); AddToTLDataStrW(tld, wszInvertedComa);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets2); AddToTLDataStrW(tld, wszCloseBrackets2);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszCloseBrackets1); AddToTLDataStrW(tld, wszCloseBrackets1);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszLibrary); AddToTLDataStrW(tld, wszLibrary);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), bstrName); AddToTLDataStrW(tld, bstrName);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets3); AddToTLDataStrW(tld, wszOpenBrackets3);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, wszCloseBrackets3); AddToStrW(tld->wszInsertAfter, wszCloseBrackets3);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, wszSemicolon); AddToStrW(tld->wszInsertAfter, wszSemicolon);
wsprintfW(wszText, wszFormat, bstrName, bstrData); wsprintfW(wszText, wszFormat, bstrName, bstrData);
SysFreeString(bstrName); SysFreeString(bstrName);
@ -986,48 +992,37 @@ int PopulateTree(void)
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
memset(wszAfter, 0, sizeof(wszAfter)); memset(wszAfter, 0, sizeof(wszAfter));
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
U(tvis).item.lParam = (LPARAM)tld;
switch(pTypeAttr->typekind) switch(pTypeAttr->typekind)
{ {
case TKIND_ENUM: case TKIND_ENUM:
AddToStrW(wszText, wszTKIND_ENUM); AddToStrW(wszText, wszTKIND_ENUM);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
CreateTypedefHeader(pTypeInfo, pTypeAttr, CreateTypedefHeader(pTypeInfo, pTypeAttr, tld);
(TYPELIB_DATA*)(U(tvis).item.lParam)); AddToTLDataStrW(tld, &wszTKIND_ENUM[lstrlenW(wszTKIND_ALIAS)]);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), AddToTLDataStrW(tld, wszOpenBrackets3);
&wszTKIND_ENUM[lstrlenW(wszTKIND_ALIAS)]); AddToTLDataStrW(tld,wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets3); AddToStrW(tld->wszInsertAfter, wszCloseBrackets3);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam),wszNewLine); AddToStrW(tld->wszInsertAfter, wszSpace);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, AddToStrW(tld->wszInsertAfter, bstrName);
wszCloseBrackets3); AddToStrW(tld->wszInsertAfter, wszSemicolon);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, AddToStrW(tld->wszInsertAfter, wszNewLine);
wszSpace);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter,
bstrName);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter,
wszSemicolon);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter,
wszNewLine);
break; break;
case TKIND_RECORD: case TKIND_RECORD:
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszTKIND_RECORD); AddToTLDataStrW(tld, wszTKIND_RECORD);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszTag); AddToTLDataStrW(tld, wszTag);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), bstrName); AddToTLDataStrW(tld, bstrName);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSpace); AddToTLDataStrW(tld, wszSpace);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszOpenBrackets3); AddToTLDataStrW(tld, wszOpenBrackets3);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszNewLine);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, AddToStrW(tld->wszInsertAfter, wszCloseBrackets3);
wszCloseBrackets3); AddToStrW(tld->wszInsertAfter, wszSpace);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, AddToStrW(tld->wszInsertAfter, bstrName);
wszSpace); AddToStrW(tld->wszInsertAfter, wszSemicolon);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter, AddToStrW(tld->wszInsertAfter, wszNewLine);
bstrName);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter,
wszSemicolon);
AddToStrW(((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter,
wszNewLine);
AddToStrW(wszText, wszTKIND_RECORD); AddToStrW(wszText, wszTKIND_RECORD);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
@ -1038,9 +1033,8 @@ int PopulateTree(void)
break; break;
case TKIND_INTERFACE: case TKIND_INTERFACE:
CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName, CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName,
bstrData, ulHelpContext, pTypeAttr, bstrData, ulHelpContext, pTypeAttr, tld);
(TYPELIB_DATA*)(U(tvis).item.lParam)); tld->bPredefine = TRUE;
((TYPELIB_DATA*)(U(tvis).item.lParam))->bPredefine = TRUE;
AddToStrW(wszText, wszTKIND_INTERFACE); AddToStrW(wszText, wszTKIND_INTERFACE);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
@ -1055,35 +1049,36 @@ int PopulateTree(void)
break; break;
case TKIND_DISPATCH: case TKIND_DISPATCH:
CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName, CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName,
bstrData, ulHelpContext, pTypeAttr, bstrData, ulHelpContext, pTypeAttr, tld);
(TYPELIB_DATA*)(U(tvis).item.lParam)); tld->bPredefine = TRUE;
((TYPELIB_DATA*)(U(tvis).item.lParam))->bPredefine = TRUE;
AddToStrW(wszText, wszTKIND_DISPATCH); AddToStrW(wszText, wszTKIND_DISPATCH);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
hParent = TreeView_InsertItem(typelib.hTree, &tvis); hParent = TreeView_InsertItem(typelib.hTree, &tvis);
hMain = tvis.hParent; hMain = tvis.hParent;
tldDispatch = (TYPELIB_DATA*)(U(tvis).item.lParam); tldDispatch = tld;
lstrcpyW(wszText, wszProperties); lstrcpyW(wszText, wszProperties);
tvis.hParent = hParent; tvis.hParent = hParent;
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszProperties); U(tvis).item.lParam = (LPARAM) tld;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszColon); AddToTLDataStrW(tld, wszProperties);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszColon);
AddToTLDataStrW(tld, wszNewLine);
tvis.hParent = TreeView_InsertItem(typelib.hTree, &tvis); tvis.hParent = TreeView_InsertItem(typelib.hTree, &tvis);
EnumVars(pTypeInfo, pTypeAttr->cVars, tvis.hParent); EnumVars(pTypeInfo, pTypeAttr->cVars, tvis.hParent);
AddChildrenData(tvis.hParent, (TYPELIB_DATA*)(U(tvis).item.lParam)); AddChildrenData(tvis.hParent, tld);
lstrcpyW(wszText, wszMethods); lstrcpyW(wszText, wszMethods);
tvis.hParent = hParent; tvis.hParent = hParent;
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszMethods); U(tvis).item.lParam = (LPARAM) tld;
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszColon); AddToTLDataStrW(tld, wszMethods);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine); AddToTLDataStrW(tld, wszColon);
AddToTLDataStrW(tld, wszNewLine);
tvis.hParent = TreeView_InsertItem(typelib.hTree, &tvis); tvis.hParent = TreeView_InsertItem(typelib.hTree, &tvis);
EnumFuncs(pTypeInfo, pTypeAttr->cFuncs, tvis.hParent); EnumFuncs(pTypeInfo, pTypeAttr->cFuncs, tvis.hParent);
AddChildrenData(tvis.hParent, (TYPELIB_DATA*)(U(tvis).item.lParam)); AddChildrenData(tvis.hParent, tld);
EnumImplTypes(pTypeInfo, pTypeAttr->cImplTypes, hParent); EnumImplTypes(pTypeInfo, pTypeAttr->cImplTypes, hParent);
AddChildrenData(hParent, tldDispatch); AddChildrenData(hParent, tldDispatch);
@ -1101,7 +1096,8 @@ int PopulateTree(void)
SysFreeString(bstrData); SysFreeString(bstrData);
memset(wszText, 0, sizeof(wszText)); memset(wszText, 0, sizeof(wszText));
U(tvis).item.lParam = InitializeTLData(); tld = InitializeTLData();
U(tvis).item.lParam = (LPARAM) tld;
ITypeInfo_GetRefTypeInfo(pTypeInfo, hRefType, &pRefTypeInfo); ITypeInfo_GetRefTypeInfo(pTypeInfo, hRefType, &pRefTypeInfo);
ITypeInfo_GetDocumentation(pRefTypeInfo, MEMBERID_NIL, &bstrName, ITypeInfo_GetDocumentation(pRefTypeInfo, MEMBERID_NIL, &bstrName,
@ -1109,9 +1105,8 @@ int PopulateTree(void)
ITypeInfo_GetTypeAttr(pRefTypeInfo, &pTypeAttr); ITypeInfo_GetTypeAttr(pRefTypeInfo, &pTypeAttr);
CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName, CreateInterfaceInfo(pTypeInfo, pTypeAttr->cImplTypes, bstrName,
bstrData, ulHelpContext, pTypeAttr, bstrData, ulHelpContext, pTypeAttr, tld);
(TYPELIB_DATA*)(U(tvis).item.lParam)); tld->bPredefine = TRUE;
((TYPELIB_DATA*)(U(tvis).item.lParam))->bPredefine = TRUE;
AddToStrW(wszText, wszTKIND_INTERFACE); AddToStrW(wszText, wszTKIND_INTERFACE);
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
@ -1125,12 +1120,10 @@ int PopulateTree(void)
AddToStrW(wszText, bstrName); AddToStrW(wszText, bstrName);
AddToStrW(wszText, wszAfter); AddToStrW(wszText, wszAfter);
CreateTypedefHeader(pTypeInfo, pTypeAttr, CreateTypedefHeader(pTypeInfo, pTypeAttr, tld);
(TYPELIB_DATA*)(U(tvis).item.lParam)); AddToTLDataStrW(tld, &wszText[lstrlenW(wszTKIND_ALIAS)]);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), AddToTLDataStrW(tld, wszSemicolon);
&wszText[lstrlenW(wszTKIND_ALIAS)]); AddToTLDataStrW(tld, wszNewLine);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszSemicolon);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), wszNewLine);
break; break;
default: default:
lstrcpyW(wszText, bstrName); lstrcpyW(wszText, bstrName);
@ -1147,9 +1140,8 @@ int PopulateTree(void)
EnumImplTypes(pTypeInfo, pTypeAttr->cImplTypes, hParent); EnumImplTypes(pTypeInfo, pTypeAttr->cImplTypes, hParent);
if(memcmp(bstrName, wszVT_UNKNOWN, sizeof(wszVT_UNKNOWN))) if(memcmp(bstrName, wszVT_UNKNOWN, sizeof(wszVT_UNKNOWN)))
AddChildrenData(hParent, (TYPELIB_DATA*)(U(tvis).item.lParam)); AddChildrenData(hParent, tld);
AddToTLDataStrW((TYPELIB_DATA*)(U(tvis).item.lParam), AddToTLDataStrW(tld, tld->wszInsertAfter);
((TYPELIB_DATA*)(U(tvis).item.lParam))->wszInsertAfter);
} }
ITypeInfo_ReleaseTypeAttr(pTypeInfo, pTypeAttr); ITypeInfo_ReleaseTypeAttr(pTypeInfo, pTypeAttr);