My favorites | Sign in
Project Home Downloads
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions

Issue 8 attachment: patch.txt (1.6 KB)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
==== ControlEventSink.cpp ====
242c242
< NPVar2Variant(&result, pVarResult);
---
> NPVar2Variant(&result, pVarResult, instance);
==== scriptable.h ====
275c275
< NPVar2Variant(&args[i], &vArgs[argCount - i - 1]);
---
> NPVar2Variant(&args[i], &vArgs[argCount - i - 1], instance);
347c347
< NPVar2Variant(value, &val);
---
> NPVar2Variant(value, &val, instance);
==== variants.cpp ====
37a38
> #include <atlsafe.h>
358c359
< NPVar2Variant(const NPVariant *npvar, VARIANT *var)
---
> NPVar2Variant(const NPVariant *npvar, VARIANT *var, NPP instance)
399d399
< // An object of type NPObject - currently not supported.
401a402,427
>
> {
> NPIdentifier *identifiers = NULL;
> uint32_t identifierCount = 0;
> NPObject *object = NPVARIANT_TO_OBJECT(*npvar);
>
> if (NPNFuncs.enumerate(instance, object, &identifiers, &identifierCount))
> {
> CComSafeArray<VARIANT> variants(identifierCount);
>
> for (uint32_t index = 0; index < identifierCount; ++index)
> {
> NPVariant npVariant;
>
> if (NPNFuncs.getproperty(instance, object, identifiers[index], &npVariant))
> {
> NPVar2Variant(&npVariant, &variants.GetAt(index), instance);
> NPNFuncs.releasevariantvalue(&npVariant);
> }
> }
>
> NPNFuncs.memfree(identifiers);
> *reinterpret_cast<CComVariant*>(var) = variants;
> }
> }
>
==== variants.h ====
37c37
< void NPVar2Variant(const NPVariant *npvar, VARIANT *var);
---
> void NPVar2Variant(const NPVariant *npvar, VARIANT *var, NPP instance);
Powered by Google Project Hosting