2 #include "SeraphyScriptTools.h"
5 SAFEARRAY* GetArrayFromVariant(VARIANT& var, VARTYPE* pVt)
7 //
\8c^
\82Ì
\8f\89\8aú
\89»
11 VARIANT* pParseVariant = &var;
12 SAFEARRAY* pArray = NULL;
13 if (!(var.vt & VT_ARRAY) && (var.vt & (VT_BYREF | VT_VARIANT))) {
14 //
\94z
\97ñ
\82Å
\82Í
\82È
\82
\82Ä
\81A
\83o
\83\8a\83A
\83\93\83g
\82Ì
\8eQ
\8fÆ
\93n
\82µ
\82Å
\82 \82ê
\82Î
\81A
\82»
\82Ì
\83|
\83C
\83\93\83^
\82É
\89ð
\90Í
\82ð
\82 \82í
\82¹
\82é
15 pParseVariant = var.pvarVal;
17 if (!(pParseVariant->vt & VT_ARRAY)) {
18 //
\94z
\97ñ
\88È
\8aO
\82È
\82ç
\8fI
\97¹
21 //
\94z
\97ñ
\82Å
\82 \82é
22 if (pParseVariant->vt & VT_BYREF) {
23 //
\94z
\97ñ
\82Ì
\8eQ
\8fÆ
\93n
\82µ
\82Å
\82 \82é
24 pArray = *pParseVariant->pparray;
27 //
\94z
\97ñ
\82»
\82Ì
\82à
\82Ì
\82Å
\82 \82é
28 pArray = pParseVariant->parray;
30 //
\8c^
\8fî
\95ñ
\82Ì
\8eæ
\82è
\8fo
\82µ (SafeArray
\82É
\82Í
\8c^
\8fî
\95ñ
\82Í
\95K
\90{
\82Å
\82Í
\82È
\82¢
\82½
\82ß)
32 *pVt = (pParseVariant->vt & VT_TYPEMASK);
38 * VARIANT
\8c^
\82ª
\95Ï
\90\94(ByRef
\8c^)
\82ð
\82³
\82µ
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\81A
39 *
\82»
\82ê
\8e©
\90g
\82ª
\92l
\82Æ
\82È
\82é
\82æ
\82¤
\82ÉByVal
\8c^
\82É
\8b
\90§
\95Ï
\8a·
\82µ
\82Ä
\83R
\83s
\81[
\82·
\82é.
40 * (ByVal
\82Å
\82 \82ê
\82Î
\92P
\8f\83\82É
\83R
\83s
\81[
\82·
\82é.)
42 HRESULT VariantCopyByVal(VARIANT *pDestVal, const VARIANT *pSrcVal)
44 if (!pDestVal || !pSrcVal) {
47 ATLASSERT(pDestVal != pSrcVal);
49 VariantInit(pDestVal);
51 if (pSrcVal->vt & VT_BYREF) {
52 // ByRef
\82Ì
\8fê
\8d\87\82ÍByVal
\82É
\95Ï
\8a·
\82·
\82é.
53 VARTYPE vt = pSrcVal->vt & ~VT_BYREF;
55 if (vt == VT_VARIANT) {
56 // Variant
\82Ì
\83|
\83C
\83\93\83^
\82Ì
\8fê
\8d\87\82Í
\81A
\82»
\82Ì
\83|
\83C
\83\93\83^
\82ð
\83R
\83s
\81[
\82·
\82é
\82Ì
\82Ý
57 return VariantCopy(pDestVal, pSrcVal->pvarVal);
60 //
\8c^
\95Ï
\8a·
\82ð
\8eg
\82Á
\82ÄByRef
\82ð
\8aO
\82·
61 return VariantChangeType(pDestVal, pSrcVal, 0, vt);
65 // ByVal
\82Ì
\8fê
\8d\87\82Í
\83R
\83s
\81[
\82·
\82é
\82Ì
\82Ý
66 return VariantCopy(pDestVal, pSrcVal);