Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
928966dd
Commit
928966dd
authored
Jul 18, 2006
by
Piotr Caban
Committed by
Alexandre Julliard
Jul 19, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleview: Added some features to IDL data displaying.
parent
83edbac0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
81 additions
and
12 deletions
+81
-12
main.h
programs/oleview/main.h
+1
-0
typelib.c
programs/oleview/typelib.c
+80
-12
No files found.
programs/oleview/main.h
View file @
928966dd
...
...
@@ -115,6 +115,7 @@ typedef struct
typedef
struct
{
WCHAR
*
idl
;
WCHAR
wszInsertAfter
[
MAX_LOAD_STRING
];
INT
idlLen
;
}
TYPELIB_DATA
;
...
...
programs/oleview/typelib.c
View file @
928966dd
...
...
@@ -37,6 +37,8 @@ static const WCHAR wszOpenBrackets1[] = { '[','\0' };
static
const
WCHAR
wszCloseBrackets1
[]
=
{
']'
,
'\0'
};
static
const
WCHAR
wszOpenBrackets2
[]
=
{
'('
,
'\0'
};
static
const
WCHAR
wszCloseBrackets2
[]
=
{
')'
,
'\0'
};
static
const
WCHAR
wszOpenBrackets3
[]
=
{
'{'
,
'\0'
};
static
const
WCHAR
wszCloseBrackets3
[]
=
{
'}'
,
'\0'
};
static
const
WCHAR
wszUUID
[]
=
{
'u'
,
'u'
,
'i'
,
'd'
,
'\0'
};
...
...
@@ -93,6 +95,25 @@ LPARAM InitializeTLData(void)
return
(
LPARAM
)
pTLData
;
}
void
AddChildrenData
(
HTREEITEM
hParent
,
TYPELIB_DATA
*
pData
)
{
HTREEITEM
hCur
;
TVITEM
tvi
;
memset
(
&
tvi
,
0
,
sizeof
(
&
tvi
));
hCur
=
TreeView_GetChild
(
typelib
.
hTree
,
hParent
);
do
{
tvi
.
hItem
=
hCur
;
SendMessage
(
typelib
.
hTree
,
TVM_GETITEM
,
0
,
(
LPARAM
)
&
tvi
);
if
(
tvi
.
lParam
&&
((
TYPELIB_DATA
*
)(
tvi
.
lParam
))
->
idlLen
)
AddToTLDataStrW
(
pData
,
((
TYPELIB_DATA
*
)(
tvi
.
lParam
))
->
idl
);
}
while
((
hCur
=
TreeView_GetNextSibling
(
typelib
.
hTree
,
hCur
)));
AddToTLDataStrW
(
pData
,
pData
->
wszInsertAfter
);
}
void
CreateTypeInfo
(
WCHAR
*
wszAddTo
,
WCHAR
*
wszAddAfter
,
TYPEDESC
tdesc
,
ITypeInfo
*
pTypeInfo
)
{
int
i
;
...
...
@@ -166,7 +187,7 @@ int EnumVars(ITypeInfo *pTypeInfo, int cVars, HTREEITEM hParent)
WCHAR
wszText
[
MAX_LOAD_STRING
];
WCHAR
wszAfter
[
MAX_LOAD_STRING
];
U
(
tvis
).
item
.
mask
=
TVIF_TEXT
;
U
(
tvis
).
item
.
mask
=
TVIF_TEXT
|
TVIF_PARAM
;
U
(
tvis
).
item
.
cchTextMax
=
MAX_LOAD_STRING
;
U
(
tvis
).
item
.
pszText
=
wszText
;
tvis
.
hInsertAfter
=
(
HTREEITEM
)
TVI_LAST
;
...
...
@@ -184,6 +205,10 @@ int EnumVars(ITypeInfo *pTypeInfo, int cVars, HTREEITEM hParent)
AddToStrW
(
wszText
,
wszSpace
);
AddToStrW
(
wszText
,
bstrName
);
AddToStrW
(
wszText
,
wszAfter
);
U
(
tvis
).
item
.
lParam
=
InitializeTLData
();
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszText
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszSemicolon
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszNewLine
);
SendMessage
(
typelib
.
hTree
,
TVM_INSERTITEM
,
0
,
(
LPARAM
)
&
tvis
);
SysFreeString
(
bstrName
);
...
...
@@ -309,6 +334,7 @@ int PopulateTree(void)
const
WCHAR
wszHelpString
[]
=
{
'h'
,
'e'
,
'l'
,
'p'
,
's'
,
't'
,
'r'
,
'i'
,
'n'
,
'g'
,
'\0'
};
const
WCHAR
wszLibrary
[]
=
{
'l'
,
'i'
,
'b'
,
'r'
,
'a'
,
'r'
,
'y'
,
' '
,
'\0'
};
const
WCHAR
wszTag
[]
=
{
't'
,
'a'
,
'g'
,
'\0'
};
U
(
tvis
).
item
.
mask
=
TVIF_TEXT
|
TVIF_PARAM
;
U
(
tvis
).
item
.
cchTextMax
=
MAX_LOAD_STRING
;
...
...
@@ -361,6 +387,10 @@ int PopulateTree(void)
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszLibrary
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
bstrName
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszNewLine
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszOpenBrackets3
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszNewLine
);
AddToStrW
(((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
))
->
wszInsertAfter
,
wszCloseBrackets3
);
AddToStrW
(((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
))
->
wszInsertAfter
,
wszSemicolon
);
wsprintfW
(
wszText
,
wszFormat
,
bstrName
,
bstrData
);
SysFreeString
(
bstrName
);
...
...
@@ -377,18 +407,49 @@ int PopulateTree(void)
memset
(
wszText
,
0
,
sizeof
(
wszText
));
memset
(
wszAfter
,
0
,
sizeof
(
wszAfter
));
U
(
tvis
).
item
.
lParam
=
InitializeTLData
();
switch
(
pTypeAttr
->
typekind
)
{
#define TKINDADDTOSTR(x) case x:\
AddToStrW(wszText, wsz##x);\
AddToStrW(wszText, bstrName);\
break
TKINDADDTOSTR
(
TKIND_ENUM
);
TKINDADDTOSTR
(
TKIND_RECORD
);
TKINDADDTOSTR
(
TKIND_MODULE
);
TKINDADDTOSTR
(
TKIND_INTERFACE
);
TKINDADDTOSTR
(
TKIND_COCLASS
);
TKINDADDTOSTR
(
TKIND_UNION
);
case
TKIND_ENUM
:
AddToStrW
(
wszText
,
wszTKIND_ENUM
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_RECORD
:
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszTKIND_RECORD
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszTag
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
bstrName
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszSpace
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszOpenBrackets3
);
AddToTLDataStrW
((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
),
wszNewLine
);
AddToStrW
(((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
))
->
wszInsertAfter
,
wszCloseBrackets3
);
AddToStrW
(((
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
))
->
wszInsertAfter
,
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
);
AddToStrW
(
wszText
,
wszTKIND_RECORD
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_MODULE
:
AddToStrW
(
wszText
,
wszTKIND_MODULE
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_INTERFACE
:
AddToStrW
(
wszText
,
wszTKIND_INTERFACE
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_COCLASS
:
AddToStrW
(
wszText
,
wszTKIND_COCLASS
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_UNION
:
AddToStrW
(
wszText
,
wszTKIND_UNION
);
AddToStrW
(
wszText
,
bstrName
);
break
;
case
TKIND_DISPATCH
:
AddToStrW
(
wszText
,
wszTKIND_DISPATCH
);
AddToStrW
(
wszText
,
bstrName
);
...
...
@@ -397,6 +458,7 @@ int PopulateTree(void)
hParent
=
TreeView_InsertItem
(
typelib
.
hTree
,
&
tvis
);
EnumImplTypes
(
pTypeInfo
,
pTypeAttr
->
cImplTypes
,
hParent
);
memset
(
wszText
,
0
,
sizeof
(
wszText
));
U
(
tvis
).
item
.
lParam
=
InitializeTLData
();
ITypeInfo_GetRefTypeInfo
(
pTypeInfo
,
hRefType
,
&
pRefTypeInfo
);
ITypeInfo_GetDocumentation
(
pRefTypeInfo
,
MEMBERID_NIL
,
&
bstrName
,
...
...
@@ -424,6 +486,8 @@ int PopulateTree(void)
EnumFuncs
(
pTypeInfo
,
pTypeAttr
->
cFuncs
,
hParent
);
EnumImplTypes
(
pTypeInfo
,
pTypeAttr
->
cImplTypes
,
hParent
);
AddChildrenData
(
hParent
,
(
TYPELIB_DATA
*
)(
U
(
tvis
).
item
.
lParam
));
ITypeInfo_ReleaseTypeAttr
(
pTypeInfo
,
pTypeAttr
);
ITypeInfo_Release
(
pTypeInfo
);
SysFreeString
(
bstrName
);
...
...
@@ -443,7 +507,11 @@ void UpdateData(HTREEITEM item)
tvi
.
hItem
=
item
;
SendMessage
(
typelib
.
hTree
,
TVM_GETITEM
,
0
,
(
LPARAM
)
&
tvi
);
if
(
!
tvi
.
lParam
||
!
((
TYPELIB_DATA
*
)
tvi
.
lParam
)
->
idlLen
)
return
;
if
(
!
tvi
.
lParam
)
{
SetWindowText
(
typelib
.
hEdit
,
wszSpace
);
return
;
}
SetWindowText
(
typelib
.
hEdit
,
((
TYPELIB_DATA
*
)
tvi
.
lParam
)
->
idl
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment