Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-fonts
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
Aleksandr Isakov
wine-fonts
Commits
3f7b5794
Commit
3f7b5794
authored
Jan 26, 2016
by
Dmitry Timoshkov
Committed by
Vitaly Lipatov
Jul 30, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Add support for decoding SLTG function help strings.
parent
a34dce46
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
10 deletions
+14
-10
typelib.c
dlls/oleaut32/typelib.c
+14
-10
No files found.
dlls/oleaut32/typelib.c
View file @
3f7b5794
...
...
@@ -4207,7 +4207,8 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign
}
static
void
SLTG_DoFuncs
(
char
*
pBlk
,
char
*
pFirstItem
,
ITypeInfoImpl
*
pTI
,
unsigned
short
cFuncs
,
char
*
pNameTable
,
const
sltg_ref_lookup_t
*
ref_lookup
)
unsigned
short
cFuncs
,
char
*
pNameTable
,
const
sltg_ref_lookup_t
*
ref_lookup
,
const
BYTE
*
hlp_strings
)
{
SLTG_Function
*
pFunc
;
unsigned
short
i
;
...
...
@@ -4248,6 +4249,9 @@ static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI,
else
pFuncDesc
->
funcdesc
.
oVft
=
(
pFunc
->
vtblpos
&
~
1
)
*
sizeof
(
void
*
)
/
pTI
->
pTypeLib
->
ptr_size
;
if
(
pFunc
->
helpstring
!=
0xffff
)
pFuncDesc
->
HelpString
=
decode_string
(
hlp_strings
,
pBlk
+
pFunc
->
helpstring
,
pNameTable
-
pBlk
,
pTI
->
pTypeLib
);
if
(
pFunc
->
magic
&
SLTG_FUNCTION_FLAGS_PRESENT
)
pFuncDesc
->
funcdesc
.
wFuncFlags
=
pFunc
->
funcflags
;
...
...
@@ -4334,7 +4338,7 @@ static void SLTG_ProcessCoClass(char *pBlk, ITypeInfoImpl *pTI,
static
void
SLTG_ProcessInterface
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
char
*
pNameTable
,
SLTG_TypeInfoHeader
*
pTIHeader
,
const
SLTG_TypeInfoTail
*
pTITail
)
const
SLTG_TypeInfoTail
*
pTITail
,
const
BYTE
*
hlp_strings
)
{
char
*
pFirstItem
;
sltg_ref_lookup_t
*
ref_lookup
=
NULL
;
...
...
@@ -4351,7 +4355,7 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI,
}
if
(
pTITail
->
funcs_off
!=
0xffff
)
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
);
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
,
hlp_strings
);
heap_free
(
ref_lookup
);
...
...
@@ -4396,7 +4400,7 @@ static void SLTG_ProcessAlias(char *pBlk, ITypeInfoImpl *pTI,
static
void
SLTG_ProcessDispatch
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
char
*
pNameTable
,
SLTG_TypeInfoHeader
*
pTIHeader
,
const
SLTG_TypeInfoTail
*
pTITail
)
const
SLTG_TypeInfoTail
*
pTITail
,
const
BYTE
*
hlp_strings
)
{
sltg_ref_lookup_t
*
ref_lookup
=
NULL
;
if
(
pTIHeader
->
href_table
!=
0xffffffff
)
...
...
@@ -4407,7 +4411,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI,
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
);
if
(
pTITail
->
funcs_off
!=
0xffff
)
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
);
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
,
hlp_strings
);
if
(
pTITail
->
impls_off
!=
0xffff
)
SLTG_DoImpls
(
pBlk
+
pTITail
->
impls_off
,
pTI
,
FALSE
,
ref_lookup
);
...
...
@@ -4431,7 +4435,7 @@ static void SLTG_ProcessEnum(char *pBlk, ITypeInfoImpl *pTI,
static
void
SLTG_ProcessModule
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
char
*
pNameTable
,
SLTG_TypeInfoHeader
*
pTIHeader
,
const
SLTG_TypeInfoTail
*
pTITail
)
const
SLTG_TypeInfoTail
*
pTITail
,
const
BYTE
*
hlp_strings
)
{
sltg_ref_lookup_t
*
ref_lookup
=
NULL
;
if
(
pTIHeader
->
href_table
!=
0xffffffff
)
...
...
@@ -4442,7 +4446,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI,
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
);
if
(
pTITail
->
funcs_off
!=
0xffff
)
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
);
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
,
hlp_strings
);
heap_free
(
ref_lookup
);
if
(
TRACE_ON
(
typelib
))
dump_TypeInfo
(
pTI
);
...
...
@@ -4704,7 +4708,7 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
case
TKIND_INTERFACE
:
SLTG_ProcessInterface
((
char
*
)(
pMemHeader
+
1
),
*
ppTypeInfoImpl
,
pNameTable
,
pTIHeader
,
pTITail
);
pTIHeader
,
pTITail
,
hlp_strings
);
break
;
case
TKIND_COCLASS
:
...
...
@@ -4719,12 +4723,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
case
TKIND_DISPATCH
:
SLTG_ProcessDispatch
((
char
*
)(
pMemHeader
+
1
),
*
ppTypeInfoImpl
,
pNameTable
,
pTIHeader
,
pTITail
);
pTIHeader
,
pTITail
,
hlp_strings
);
break
;
case
TKIND_MODULE
:
SLTG_ProcessModule
((
char
*
)(
pMemHeader
+
1
),
*
ppTypeInfoImpl
,
pNameTable
,
pTIHeader
,
pTITail
);
pTIHeader
,
pTITail
,
hlp_strings
);
break
;
default:
...
...
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