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
9c202682
Commit
9c202682
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 variable help strings.
parent
3f7b5794
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
9 deletions
+15
-9
typelib.c
dlls/oleaut32/typelib.c
+15
-9
No files found.
dlls/oleaut32/typelib.c
View file @
9c202682
...
...
@@ -4096,7 +4096,7 @@ static char *SLTG_DoImpls(char *pBlk, ITypeInfoImpl *pTI,
}
static
void
SLTG_DoVars
(
char
*
pBlk
,
char
*
pFirstItem
,
ITypeInfoImpl
*
pTI
,
unsigned
short
cVars
,
const
char
*
pNameTable
,
const
sltg_ref_lookup_t
*
ref_lookup
)
const
char
*
pNameTable
,
const
sltg_ref_lookup_t
*
ref_lookup
,
const
BYTE
*
hlp_strings
)
{
TLBVarDesc
*
pVarDesc
;
const
TLBString
*
prevName
=
NULL
;
...
...
@@ -4126,6 +4126,12 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign
TRACE_
(
typelib
)(
"byte_offs = 0x%x
\n
"
,
pItem
->
byte_offs
);
TRACE_
(
typelib
)(
"memid = %#lx
\n
"
,
pItem
->
memid
);
if
(
pItem
->
helpstring
!=
0xffff
)
{
pVarDesc
->
HelpString
=
decode_string
(
hlp_strings
,
pBlk
+
pItem
->
helpstring
,
pNameTable
-
pBlk
,
pTI
->
pTypeLib
);
TRACE_
(
typelib
)(
"helpstring = %s
\n
"
,
debugstr_w
(
pVarDesc
->
HelpString
->
str
));
}
if
(
pItem
->
flags
&
0x02
)
pType
=
&
pItem
->
type
;
else
...
...
@@ -4365,9 +4371,9 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI,
static
void
SLTG_ProcessRecord
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
const
char
*
pNameTable
,
SLTG_TypeInfoHeader
*
pTIHeader
,
const
SLTG_TypeInfoTail
*
pTITail
)
const
SLTG_TypeInfoTail
*
pTITail
,
const
BYTE
*
hlp_strings
)
{
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
NULL
);
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
NULL
,
hlp_strings
);
}
static
void
SLTG_ProcessAlias
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
...
...
@@ -4408,7 +4414,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI,
pNameTable
);
if
(
pTITail
->
vars_off
!=
0xffff
)
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
);
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
,
hlp_strings
);
if
(
pTITail
->
funcs_off
!=
0xffff
)
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
,
hlp_strings
);
...
...
@@ -4428,9 +4434,9 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI,
static
void
SLTG_ProcessEnum
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
const
char
*
pNameTable
,
SLTG_TypeInfoHeader
*
pTIHeader
,
const
SLTG_TypeInfoTail
*
pTITail
)
const
SLTG_TypeInfoTail
*
pTITail
,
const
BYTE
*
hlp_strings
)
{
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
NULL
);
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
NULL
,
hlp_strings
);
}
static
void
SLTG_ProcessModule
(
char
*
pBlk
,
ITypeInfoImpl
*
pTI
,
...
...
@@ -4443,7 +4449,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI,
pNameTable
);
if
(
pTITail
->
vars_off
!=
0xffff
)
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
);
SLTG_DoVars
(
pBlk
,
pBlk
+
pTITail
->
vars_off
,
pTI
,
pTITail
->
cVars
,
pNameTable
,
ref_lookup
,
hlp_strings
);
if
(
pTITail
->
funcs_off
!=
0xffff
)
SLTG_DoFuncs
(
pBlk
,
pBlk
+
pTITail
->
funcs_off
,
pTI
,
pTITail
->
cFuncs
,
pNameTable
,
ref_lookup
,
hlp_strings
);
...
...
@@ -4698,12 +4704,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength)
switch
(
pTIHeader
->
typekind
)
{
case
TKIND_ENUM
:
SLTG_ProcessEnum
((
char
*
)(
pMemHeader
+
1
),
*
ppTypeInfoImpl
,
pNameTable
,
pTIHeader
,
pTITail
);
pTIHeader
,
pTITail
,
hlp_strings
);
break
;
case
TKIND_RECORD
:
SLTG_ProcessRecord
((
char
*
)(
pMemHeader
+
1
),
*
ppTypeInfoImpl
,
pNameTable
,
pTIHeader
,
pTITail
);
pTIHeader
,
pTITail
,
hlp_strings
);
break
;
case
TKIND_INTERFACE
:
...
...
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