本文整理汇总了C++中COleSafeArray::CreateOneDim方法的典型用法代码示例。如果您正苦于以下问题:C++ COleSafeArray::CreateOneDim方法的具体用法?C++ COleSafeArray::CreateOneDim怎么用?C++ COleSafeArray::CreateOneDim使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COleSafeArray
的用法示例。
在下文中一共展示了COleSafeArray::CreateOneDim方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WindowList
// return list of windows we have made
VARIANT CMUSHclientDoc::WindowList()
{
COleSafeArray sa; // for array list
long iCount = 0;
// put the arrays into the array
if (!m_MiniWindows.empty ()) // cannot create empty dimension
{
sa.CreateOneDim (VT_VARIANT, m_MiniWindows.size ());
for (MiniWindowMapIterator it = m_MiniWindows.begin ();
it != m_MiniWindows.end ();
it++)
{
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (it->first.c_str ());
sa.PutElement (&iCount, &v);
iCount++;
}
} // end of having at least one
return sa.Detach ();
} // end of CMUSHclientDoc::WindowList
示例2: GetGlobalOptionList
VARIANT CMUSHclientApp::GetGlobalOptionList()
{
COleSafeArray sa; // for list
long i, count = 0;
// count them
for (i = 0; GlobalOptionsTable [i].pName; i++)
count++;
for (i = 0; AlphaGlobalOptionsTable [i].pName; i++)
count++;
sa.CreateOneDim (VT_VARIANT, count);
count = 0;
// put the numeric option names into the array
for (i = 0; GlobalOptionsTable [i].pName; i++)
{
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v ((LPCTSTR) GlobalOptionsTable [i].pName);
sa.PutElement (&count, &v);
count++;
} // end of looping through each option
// put the alpha option names into the array
for (i = 0; AlphaGlobalOptionsTable [i].pName; i++)
{
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v ((LPCTSTR) AlphaGlobalOptionsTable [i].pName);
sa.PutElement (&count, &v);
count++;
} // end of looping through each option
return sa.Detach ();
}
示例3: GetTriggerList
VARIANT CMUSHclientDoc::GetTriggerList()
{
COleSafeArray sa; // for wildcard list
CString strTriggerName;
CTrigger * trigger_item;
long iCount = 0;
POSITION pos;
iCount = GetTriggerMap ().GetCount ();
if (iCount) // cannot create empty array dimension
{
sa.CreateOneDim (VT_VARIANT, iCount);
for (iCount = 0, pos = GetTriggerMap ().GetStartPosition(); pos; iCount++)
{
GetTriggerMap ().GetNextAssoc (pos, strTriggerName, trigger_item);
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (strTriggerName);
sa.PutElement (&iCount, &v);
} // end of looping through each trigger
} // end of having at least one
return sa.Detach ();
} // end of CMUSHclientDoc::GetTriggerList
示例4: GetPluginList
VARIANT CMUSHclientDoc::GetPluginList()
{
COleSafeArray sa; // for variable list
CString strVariableName;
long iCount = 0;
// put the plugins into the array
if (!m_PluginList.empty ()) // cannot create empty dimension
{
sa.CreateOneDim (VT_VARIANT, m_PluginList.size ());
for (PluginListIterator pit = m_PluginList.begin ();
pit != m_PluginList.end ();
++pit)
{
CPlugin * p = *pit;
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (p->m_strID);
sa.PutElement (&iCount, &v);
iCount++;
} // end of looping through each plugin
} // end of having at least one
return sa.Detach ();
} // end of CMUSHclientDoc::GetPluginList
示例5: GetWorldIdList
VARIANT CMUSHclientDoc::GetWorldIdList()
{
COleSafeArray sa; // for list
CMUSHclientDoc * pDoc;
long iCount = 0;
POSITION pos;
// count number of worlds
for (pos = App.m_pWorldDocTemplate->GetFirstDocPosition(); pos != NULL; iCount++)
pDoc = (CMUSHclientDoc *) App.m_pWorldDocTemplate->GetNextDoc(pos);
if (iCount) // cannot create empty array dimension
{
sa.CreateOneDim (VT_VARIANT, iCount);
// put the worlds into the array
for (iCount = 0, pos = App.m_pWorldDocTemplate->GetFirstDocPosition(); pos != NULL; iCount++)
{
pDoc = (CMUSHclientDoc *) App.m_pWorldDocTemplate->GetNextDoc(pos);
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (pDoc->m_strWorldID);
sa.PutElement (&iCount, &v);
} // end of looping through each world
} // end of having at least one
return sa.Detach ();
} // end of CMUSHclientDoc::GetWorldIdList
示例6: Navigate
HRESULT CHtmlCtrl::Navigate(LPCTSTR lpszURL,
DWORD dwFlags /*= 0*/,
LPCTSTR lpszTargetFrameName /*= NULL*/,
LPCTSTR lpszHeaders /*= NULL*/,
LPVOID lpvPostData /*= NULL*/,
DWORD dwPostDataLen /*= 0*/)
{
CString strURL(lpszURL);
BSTR bstrURL = strURL.AllocSysString();
COleSafeArray vPostData;
if (lpvPostData != NULL)
{
if (dwPostDataLen == 0)
dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);
vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
}
return m_pBrowser->Navigate(bstrURL,
COleVariant((long) dwFlags, VT_I4),
COleVariant(lpszTargetFrameName, VT_BSTR),
vPostData,
COleVariant(lpszHeaders, VT_BSTR));
}
示例7: ToOleVariant
COleVariant CLispEng::ToOleVariant(CP p) {
AFX_MANAGE_STATE(AfxGetStaticModuleState());
#ifdef X_DEBUG
static ofstream os("c:\\out\\lisp.log");
Print(os, p);
os << endl;
#endif
COleVariant r;
switch (Type(p)) {
case TS_CONS:
if (!p)
r.vt = VT_NULL;
else
E_Error();
break;
case TS_FIXNUM:
return COleVariant((long)AsNumber(p));
case TS_BIGNUM:
{
__int64 n;
if (!ToBigInteger(p).AsInt64(n))
E_Error();
return COleVariant((long)n); // only lower 32 bits
}
case TS_SYMBOL:
if (p == V_T)
return COleVariant(true);
E_Error();
case TS_ARRAY:
if (StringP(p))
return COleVariant(AsString(p));
else if (VectorP(p))
{
CArrayValue *av = ToVector(p);
COleSafeArray sa;
size_t len = av->GetVectorLength();
sa.CreateOneDim(VT_VARIANT, (DWORD)len);
for (long i=0; i<(long)len; ++i) {
COleVariant v = ToOleVariant(av->GetElement(i));
sa.PutElement(&i, &v);
}
return sa;
}
E_Error();
default:
E_Error();
}
return r;
}
示例8: Navigate
HRESULT CWebCtrl::Navigate(LPCTSTR lpszURL, DWORD dwFlags, LPCTSTR lpszTargetFrameName, LPCTSTR lpszHeaders, LPVOID lpvPostData, DWORD dwPostDataLen)
{
if ( m_pBrowser == NULL ) return E_UNEXPECTED;
CComBSTR bstrURL( lpszURL );
COleSafeArray vPostData;
if ( lpvPostData != NULL )
{
if ( dwPostDataLen == 0 ) dwPostDataLen = lstrlen( (LPCTSTR)lpvPostData );
vPostData.CreateOneDim( VT_UI1, dwPostDataLen, lpvPostData );
}
return m_pBrowser->Navigate( bstrURL, COleVariant( (long) dwFlags, VT_I4 ),
COleVariant( lpszTargetFrameName, VT_BSTR ), vPostData,
COleVariant( lpszHeaders, VT_BSTR ) );
}
示例9: GetAlphaOptionList
VARIANT CMUSHclientDoc::GetAlphaOptionList()
{
COleSafeArray sa; // for list
long i;
// count them
for (i = 0; AlphaOptionsTable [i].pName; i++)
;
sa.CreateOneDim (VT_VARIANT, i);
// put the alpha option names into the array
for (i = 0; AlphaOptionsTable [i].pName; i++)
{
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (AlphaOptionsTable [i].pName);
sa.PutElement (&i, &v);
} // end of looping through each option
return sa.Detach ();
}
示例10: vURL
void CHtmlView::Navigate2(LPCTSTR lpszURL, DWORD dwFlags /* = 0 */,
LPCTSTR lpszTargetFrameName /* = NULL */,
LPCTSTR lpszHeaders /* = NULL */,
LPVOID lpvPostData /* = NULL */, DWORD dwPostDataLen /* = 0 */)
{
ASSERT(m_pBrowserApp != NULL);
COleSafeArray vPostData;
if (lpvPostData != NULL)
{
if (dwPostDataLen == 0)
dwPostDataLen = lstrlen((LPCTSTR) lpvPostData);
vPostData.CreateOneDim(VT_UI1, dwPostDataLen, lpvPostData);
}
COleVariant vURL(lpszURL, VT_BSTR);
COleVariant vHeaders(lpszHeaders, VT_BSTR);
COleVariant vTargetFrameName(lpszTargetFrameName, VT_BSTR);
COleVariant vFlags((long) dwFlags, VT_I4);
m_pBrowserApp->Navigate2(vURL,
vFlags, vTargetFrameName, vPostData, vHeaders);
}
示例11: SpellCheck
VARIANT CMUSHclientDoc::SpellCheck(LPCTSTR Text)
{
const char sFunction [] = "spellcheck_string";
VARIANT vaResult;
VariantInit(&vaResult);
if (!App.m_bSpellCheckOK)
return vaResult;
set<string> errors;
if (App.m_SpellChecker_Lua)
{
lua_settop(App.m_SpellChecker_Lua, 0); // clear stack
lua_getglobal (App.m_SpellChecker_Lua, sFunction);
if (!lua_isfunction (App.m_SpellChecker_Lua, -1))
return vaResult; // cannot spell check string
lua_pushstring (App.m_SpellChecker_Lua, Text); // string to be checked
int narg = lua_gettop(App.m_SpellChecker_Lua) - 1; // all but the function
int error = CallLuaWithTraceBack (App.m_SpellChecker_Lua, narg, 1);
if (error)
{
LuaError (App.m_SpellChecker_Lua, "Run-time error", sFunction, "world.SpellCheck", "", this);
return vaResult; // cannot spell check string - syntax error
}
if (lua_isnumber (App.m_SpellChecker_Lua, -1))
{
SetUpVariantLong (vaResult, lua_tonumber (App.m_SpellChecker_Lua, -1)); // no errors
return vaResult;
}
// must be table or else return bad result
if (!lua_istable (App.m_SpellChecker_Lua, -1))
return vaResult; // cannot spell check string - syntax error
// convert returned table into a set
for (int i = 1; ; i++)
{
lua_rawgeti (App.m_SpellChecker_Lua, 1, i); // get i'th item
if (lua_isnil (App.m_SpellChecker_Lua, -1))
break; // first nil key, leave loop
// to avoid crashes, ignore table items that are not strings
if (lua_isstring (App.m_SpellChecker_Lua, -1))
errors.insert (lua_tostring (App.m_SpellChecker_Lua, -1));
lua_pop (App.m_SpellChecker_Lua, 1); // remove value
} // end of looping through table
// maybe didn't find any errors?
if (errors.empty ())
{
SetUpVariantLong (vaResult, 0); // no errors
return vaResult;
}
// now make array of the errors
COleSafeArray sa; // for wildcard list
sa.CreateOneDim (VT_VARIANT, errors.size ());
long iCount = 0;
for (set<string>::const_iterator it = errors.begin ();
it != errors.end (); it++, iCount++)
{
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v (it->c_str ());
sa.PutElement (&iCount, &v);
} // end of looping through each error
return sa.Detach ();
} // end custom spell check
return vaResult;
} // end of SpellCheck
示例12: MXP_StartTagScript
bool CMUSHclientDoc::MXP_StartTagScript (const CString & strName,
const CString & strArguments,
CArgumentList & ArgumentList)
{
// don't make it too easy to dummy up AFK replies
if (strName == "afk")
return false;
if (!SendToAllPluginCallbacks (ON_PLUGIN_MXP_OPENTAG,
CFormat ("%s,%s",
(LPCTSTR) strName,
(LPCTSTR) strArguments)
), true)
return true;
// see if main script wants to do anything
if (m_dispidOnMXP_OpenTag == DISPID_UNKNOWN)
return false;
long nInvocationCount = 0;
long iCount = ArgumentList.GetCount ();
CString strType = "MXP open tag";
CString strReason = TFormat ("opening MXP tag %s", (LPCTSTR) strName);
if (GetScriptEngine () && GetScriptEngine ()->IsLua ())
{
list<double> nparams;
list<string> sparams;
sparams.push_back ((LPCTSTR) strName); // name of tag
sparams.push_back ((LPCTSTR) strArguments); // all arguments
map <string, string> table;
CArgument * pArgument;
POSITION pos;
// put the arguments into the table
for (iCount = 0, pos = ArgumentList.GetHeadPosition (); pos; iCount++)
{
pArgument = ArgumentList.GetNext (pos);
CString strName = pArgument->strName;
// empty ones we will put there by position
if (strName.IsEmpty ())
strName = CFormat ("%i",
pArgument->iPosition);
table [(LPCTSTR) strName] = pArgument->strValue;
} // end of looping through each argument
bool result;
GetScriptEngine ()->ExecuteLua (m_dispidOnMXP_OpenTag,
m_strOnMXP_OpenTag,
eWorldAction,
strType,
strReason,
nparams,
sparams,
nInvocationCount,
NULL,
&table,
NULL,
&result);
return result;
} // end of Lua
COleSafeArray sa; // for wildcard list
if (iCount) // cannot create empty array dimension
{
sa.CreateOneDim (VT_VARIANT, iCount);
CArgument * pArgument;
POSITION pos;
// put the arguments into the array
for (iCount = 0, pos = ArgumentList.GetHeadPosition (); pos; iCount++)
{
pArgument = ArgumentList.GetNext (pos);
// the array must be a bloody array of variants, or VBscript kicks up
COleVariant v;
// empty ones we will put there by position
if (pArgument->strName.IsEmpty ())
v = CFormat ("%i=%s",
pArgument->iPosition,
(LPCTSTR) pArgument->strValue);
else
v = CFormat ("%s=%s",
(LPCTSTR) pArgument->strName,
(LPCTSTR) pArgument->strValue);
sa.PutElement (&iCount, &v);
} // end of looping through each argument
} // end of having at least one
//.........这里部分代码省略.........
示例13: ExecuteAliasScript
bool CMUSHclientDoc::ExecuteAliasScript (CAlias * alias_item,
const CString strCurrentLine)
{
if (CheckScriptingAvailable ("Alias", alias_item->dispid, alias_item->strProcedure))
return false;
if (alias_item->dispid != DISPID_UNKNOWN) // if we have a dispatch id
{
CString strType = "alias";
CString strReason = TFormat ("processing alias \"%s\"",
(LPCTSTR) alias_item->strLabel);
// get unlabelled alias's internal name
const char * pLabel = alias_item->strLabel;
if (pLabel [0] == 0)
pLabel = GetAliasRevMap () [alias_item].c_str ();
if (GetScriptEngine () && GetScriptEngine ()->IsLua ())
{
list<double> nparams;
list<string> sparams;
sparams.push_back (pLabel);
sparams.push_back ((LPCTSTR) strCurrentLine);
alias_item->bExecutingScript = true; // cannot be deleted now
GetScriptEngine ()->ExecuteLua (alias_item->dispid,
alias_item->strProcedure,
eDontChangeAction,
strType,
strReason,
nparams,
sparams,
alias_item->nInvocationCount,
alias_item->regexp);
alias_item->bExecutingScript = false; // can be deleted now
return true;
} // end of Lua
// prepare for the arguments, so far, 3 which are:
// 1. alias name,
// 2. expanded line
// 3. replacement string
// WARNING - arguments should appear in REVERSE order to what the sub expects them!
enum
{
eWildcards,
eInputLine,
eAliasName,
eArgCount, // this MUST be last
};
COleSafeArray sa; // for wildcard list
COleVariant args [eArgCount];
DISPPARAMS params = { args, NULL, eArgCount, 0 };
args [eAliasName] = pLabel;
args [eInputLine] = strCurrentLine;
// --------------- set up wildcards array ---------------------------
sa.Clear ();
// nb - to be consistent with %1, %2 etc. we will make array 1-relative
sa.CreateOneDim (VT_VARIANT, MAX_WILDCARDS, NULL, 1);
long i;
for (i = 1; i < MAX_WILDCARDS; i++)
{
COleVariant v (alias_item->wildcards [i].c_str ());
sa.PutElement (&i, &v);
}
// i should be MAX_WILDCARDS (10) now ;)
COleVariant v (alias_item->wildcards [0].c_str ()); // the whole matching line
sa.PutElement (&i, &v);
args [eWildcards] = sa;
alias_item->bExecutingScript = true; // cannot be deleted now
ExecuteScript (alias_item->dispid,
alias_item->strProcedure,
eDontChangeAction, // don't change current action
strType,
strReason,
params,
alias_item->nInvocationCount);
alias_item->bExecutingScript = false; // can be deleted now
return true;
} // end of having a dispatch ID
return false;
} // end of CMUSHclientDoc::ExecuteAliasScript