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
2ce0efd3
Commit
2ce0efd3
authored
Oct 05, 2015
by
Dmitry Timoshkov
Committed by
Alexandre Julliard
Oct 06, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32/tests: Replace magic values by symbolic names in the typelib data.
Signed-off-by:
Dmitry Timoshkov
<
dmitry@baikal.ru
>
parent
016985f6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
170 additions
and
43 deletions
+170
-43
typelib.c
dlls/oleaut32/tests/typelib.c
+170
-43
No files found.
dlls/oleaut32/tests/typelib.c
View file @
2ce0efd3
...
...
@@ -3722,9 +3722,82 @@ static const struct map_entry callconv_map[] = {
{0, NULL}
};
static const struct map_entry vt_map[] = {
MAP_ENTRY(VT_EMPTY),
MAP_ENTRY(VT_NULL),
MAP_ENTRY(VT_I2),
MAP_ENTRY(VT_I4),
MAP_ENTRY(VT_R4),
MAP_ENTRY(VT_R8),
MAP_ENTRY(VT_CY),
MAP_ENTRY(VT_DATE),
MAP_ENTRY(VT_BSTR),
MAP_ENTRY(VT_DISPATCH),
MAP_ENTRY(VT_ERROR),
MAP_ENTRY(VT_BOOL),
MAP_ENTRY(VT_VARIANT),
MAP_ENTRY(VT_UNKNOWN),
MAP_ENTRY(VT_DECIMAL),
MAP_ENTRY(15),
MAP_ENTRY(VT_I1),
MAP_ENTRY(VT_UI1),
MAP_ENTRY(VT_UI2),
MAP_ENTRY(VT_UI4),
MAP_ENTRY(VT_I8),
MAP_ENTRY(VT_UI8),
MAP_ENTRY(VT_INT),
MAP_ENTRY(VT_UINT),
MAP_ENTRY(VT_VOID),
MAP_ENTRY(VT_HRESULT),
MAP_ENTRY(VT_PTR),
MAP_ENTRY(VT_SAFEARRAY),
MAP_ENTRY(VT_CARRAY),
MAP_ENTRY(VT_USERDEFINED),
MAP_ENTRY(VT_LPSTR),
MAP_ENTRY(VT_LPWSTR),
MAP_ENTRY(VT_RECORD),
MAP_ENTRY(VT_INT_PTR),
MAP_ENTRY(VT_UINT_PTR),
MAP_ENTRY(39),
MAP_ENTRY(40),
MAP_ENTRY(41),
MAP_ENTRY(42),
MAP_ENTRY(43),
MAP_ENTRY(44),
MAP_ENTRY(45),
MAP_ENTRY(46),
MAP_ENTRY(47),
MAP_ENTRY(48),
MAP_ENTRY(49),
MAP_ENTRY(50),
MAP_ENTRY(51),
MAP_ENTRY(52),
MAP_ENTRY(53),
MAP_ENTRY(54),
MAP_ENTRY(55),
MAP_ENTRY(56),
MAP_ENTRY(57),
MAP_ENTRY(58),
MAP_ENTRY(59),
MAP_ENTRY(60),
MAP_ENTRY(61),
MAP_ENTRY(62),
MAP_ENTRY(63),
MAP_ENTRY(VT_FILETIME),
MAP_ENTRY(VT_BLOB),
MAP_ENTRY(VT_STREAM),
MAP_ENTRY(VT_STORAGE),
MAP_ENTRY(VT_STREAMED_OBJECT),
MAP_ENTRY(VT_STORED_OBJECT),
MAP_ENTRY(VT_BLOB_OBJECT),
MAP_ENTRY(VT_CF),
MAP_ENTRY(VT_CLSID),
{0, NULL}
};
#undef MAP_ENTRY
static const char *map_value(
DWORD
val, const struct map_entry *map)
static const char *map_value(
int
val, const struct map_entry *map)
{
static int map_id;
static char bufs[16][256];
...
...
@@ -3738,7 +3811,7 @@ static const char *map_value(DWORD val, const struct map_entry *map)
}
buf = bufs[(map_id++)%16];
sprintf(buf, "
0x%x
", val);
sprintf(buf, "
%d
", val);
return buf;
}
...
...
@@ -3802,6 +3875,60 @@ static char *print_size(BSTR name, TYPEATTR *attr)
return buf;
}
static const char *dump_param_flags(DWORD flags)
{
static char buf[256];
if (!flags) return "PARAMFLAG_NONE";
buf[0] = 0;
#define ADD_FLAG(x) if (flags & x) { if (buf[0]) strcat(buf, "|"); strcat(buf, #x); flags &= ~x; }
ADD_FLAG(PARAMFLAG_FIN)
ADD_FLAG(PARAMFLAG_FOUT)
ADD_FLAG(PARAMFLAG_FLCID)
ADD_FLAG(PARAMFLAG_FRETVAL)
ADD_FLAG(PARAMFLAG_FOPT)
ADD_FLAG(PARAMFLAG_FHASDEFAULT)
ADD_FLAG(PARAMFLAG_FHASCUSTDATA)
#undef ADD_FLAG
assert(!flags);
assert(strlen(buf) < sizeof(buf));
return buf;
}
static const char *dump_func_flags(DWORD flags)
{
static char buf[256];
if (!flags) return "0";
buf[0] = 0;
#define ADD_FLAG(x) if (flags & x) { if (buf[0]) strcat(buf, "|"); strcat(buf, #x); flags &= ~x; }
ADD_FLAG(FUNCFLAG_FRESTRICTED)
ADD_FLAG(FUNCFLAG_FSOURCE)
ADD_FLAG(FUNCFLAG_FBINDABLE)
ADD_FLAG(FUNCFLAG_FREQUESTEDIT)
ADD_FLAG(FUNCFLAG_FDISPLAYBIND)
ADD_FLAG(FUNCFLAG_FDEFAULTBIND)
ADD_FLAG(FUNCFLAG_FHIDDEN)
ADD_FLAG(FUNCFLAG_FUSESGETLASTERROR)
ADD_FLAG(FUNCFLAG_FDEFAULTCOLLELEM)
ADD_FLAG(FUNCFLAG_FUIDEFAULT)
ADD_FLAG(FUNCFLAG_FNONBROWSABLE)
ADD_FLAG(FUNCFLAG_FREPLACEABLE)
ADD_FLAG(FUNCFLAG_FIMMEDIATEBIND)
#undef ADD_FLAG
assert(!flags);
assert(strlen(buf) < sizeof(buf));
return buf;
}
static void test_dump_typelib(const char *name)
{
WCHAR wszString[260];
...
...
@@ -3853,14 +3980,14 @@ static void test_dump_typelib(const char *name)
" /*id*/ 0x%x, /*func*/ %s, /*inv*/ %s, /*call*/ %s,\n",
desc->memid, map_value(desc->funckind, funckind_map), map_value(desc->invkind, invkind_map),
map_value(desc->callconv, callconv_map));
printf(" /*#param*/ %d, /*#opt*/ %d, /*vtbl*/ %d, /*#scodes*/ %d, /*flags*/
0x%x
,\n",
desc->cParams, desc->cParamsOpt, desc->oVft/sizeof(void*), desc->cScodes, d
esc->wFuncFlags
);
printf(" {%
d, %x}, /* ret */\n", desc->elemdescFunc.tdesc.vt, U(desc->elemdescFunc).paramdesc.wParamFlags
);
printf(" /*#param*/ %d, /*#opt*/ %d, /*vtbl*/ %d, /*#scodes*/ %d, /*flags*/
%s
,\n",
desc->cParams, desc->cParamsOpt, desc->oVft/sizeof(void*), desc->cScodes, d
ump_func_flags(desc->wFuncFlags)
);
printf(" {%
s, %s}, /* ret */\n", map_value(desc->elemdescFunc.tdesc.vt, vt_map), dump_param_flags(U(desc->elemdescFunc).paramdesc.wParamFlags)
);
printf(" { /* params */\n");
for (p = 0; p < desc->cParams; p++)
{
ELEMDESC e = desc->lprgelemdescParam[p];
printf(" {%
d, %x},\n", e.tdesc.vt, U(e).paramdesc.wParamFlags
);
printf(" {%
s, %s},\n", map_value(e.tdesc.vt, vt_map), dump_param_flags(U(e).paramdesc.wParamFlags)
);
}
printf(" {-1, -1}\n");
printf(" },\n");
...
...
@@ -3933,11 +4060,11 @@ static const type_info info[] = {
{
{
/*id*/
0x60000000
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
2
,
/*#opt*/
0
,
/*vtbl*/
0
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
24
,
0
},
/* ret */
/*#param*/
2
,
/*#opt*/
0
,
/*vtbl*/
0
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
26
,
1
},
{
26
,
2
},
{
VT_PTR
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
-
1
,
-
1
}
},
{
/* names */
...
...
@@ -3949,8 +4076,8 @@ static const type_info info[] = {
},
{
/*id*/
0x60000001
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
1
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
19
,
0
},
/* ret */
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
1
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_UI4
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
-
1
,
-
1
}
},
...
...
@@ -3961,8 +4088,8 @@ static const type_info info[] = {
},
{
/*id*/
0x60000002
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
2
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
19
,
0
},
/* ret */
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
2
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_UI4
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
-
1
,
-
1
}
},
...
...
@@ -3973,10 +4100,10 @@ static const type_info info[] = {
},
{
/*id*/
0x60010000
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
1
,
/*#opt*/
0
,
/*vtbl*/
3
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
24
,
0
},
/* ret */
/*#param*/
1
,
/*#opt*/
0
,
/*vtbl*/
3
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
26
,
2
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
-
1
,
-
1
}
},
{
/* names */
...
...
@@ -3987,12 +4114,12 @@ static const type_info info[] = {
},
{
/*id*/
0x60010001
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
3
,
/*#opt*/
0
,
/*vtbl*/
4
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
24
,
0
},
/* ret */
/*#param*/
3
,
/*#opt*/
0
,
/*vtbl*/
4
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
23
,
1
},
{
19
,
1
},
{
26
,
2
},
{
VT_UINT
,
PARAMFLAG_FIN
},
{
VT_UI4
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
-
1
,
-
1
}
},
{
/* names */
...
...
@@ -4005,14 +4132,14 @@ static const type_info info[] = {
},
{
/*id*/
0x60010002
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
5
,
/*#opt*/
0
,
/*vtbl*/
5
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
24
,
0
},
/* ret */
/*#param*/
5
,
/*#opt*/
0
,
/*vtbl*/
5
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
26
,
1
},
{
26
,
1
},
{
23
,
1
},
{
19
,
1
},
{
26
,
2
},
{
VT_PTR
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FIN
},
{
VT_UINT
,
PARAMFLAG_FIN
},
{
VT_UI4
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
-
1
,
-
1
}
},
{
/* names */
...
...
@@ -4027,17 +4154,17 @@ static const type_info info[] = {
},
{
/*id*/
0x60010003
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
8
,
/*#opt*/
0
,
/*vtbl*/
6
,
/*#scodes*/
0
,
/*flags*/
0x1
,
{
24
,
0
},
/* ret */
/*#param*/
8
,
/*#opt*/
0
,
/*vtbl*/
6
,
/*#scodes*/
0
,
/*flags*/
FUNCFLAG_FRESTRICTED
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
3
,
1
},
{
26
,
1
},
{
19
,
1
},
{
18
,
1
},
{
26
,
1
},
{
26
,
2
},
{
26
,
2
},
{
26
,
2
},
{
VT_I4
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FIN
},
{
VT_UI4
,
PARAMFLAG_FIN
},
{
VT_UI2
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FIN
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
VT_PTR
,
PARAMFLAG_FOUT
},
{
-
1
,
-
1
}
},
{
/* names */
...
...
@@ -4055,8 +4182,8 @@ static const type_info info[] = {
},
{
/*id*/
0x60020000
,
/*func*/
FUNC_DISPATCH
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
7
,
/*#scodes*/
0
,
/*flags*/
0
x0
,
{
24
,
0
},
/* ret */
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
7
,
/*#scodes*/
0
,
/*flags*/
0
,
{
VT_VOID
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
-
1
,
-
1
}
},
...
...
@@ -4075,8 +4202,8 @@ static const type_info info[] = {
{
{
/*id*/
0x60020000
,
/*func*/
FUNC_PUREVIRTUAL
,
/*inv*/
INVOKE_FUNC
,
/*call*/
CC_STDCALL
,
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
7
,
/*#scodes*/
0
,
/*flags*/
0
x0
,
{
25
,
0
},
/* ret */
/*#param*/
0
,
/*#opt*/
0
,
/*vtbl*/
7
,
/*#scodes*/
0
,
/*flags*/
0
,
{
VT_HRESULT
,
PARAMFLAG_NONE
},
/* ret */
{
/* params */
{
-
1
,
-
1
}
},
...
...
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