MCPcopy Create free account
hub / github.com/AutoHotkey/AutoHotkey / Begin

Method Begin

source/script_com.cpp:1484–1511  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1482
1483
1484HRESULT ComArrayEnum::Begin(ComObject *aArrayObject, ComArrayEnum *&aEnum, int aMode)
1485{
1486 HRESULT hr;
1487 SAFEARRAY *psa = aArrayObject->mArray;
1488 void *arrayData;
1489 long lbound, ubound;
1490
1491 if (SafeArrayGetDim(psa) != 1)
1492 return E_NOTIMPL;
1493
1494 if ( SUCCEEDED(hr = SafeArrayGetLBound(psa, 1, &lbound))
1495 && SUCCEEDED(hr = SafeArrayGetUBound(psa, 1, &ubound))
1496 && SUCCEEDED(hr = SafeArrayAccessData(psa, &arrayData)) )
1497 {
1498 VARTYPE arrayType = aArrayObject->mVarType & VT_TYPEMASK;
1499 UINT elemSize = SafeArrayGetElemsize(psa);
1500 if (aEnum = new ComArrayEnum(aArrayObject, arrayData, lbound, ubound, elemSize, arrayType, aMode >= 2))
1501 {
1502 aArrayObject->AddRef(); // Keep obj alive until enumeration completes.
1503 }
1504 else
1505 {
1506 SafeArrayUnaccessData(psa);
1507 hr = E_OUTOFMEMORY;
1508 }
1509 }
1510 return hr;
1511}
1512
1513ComArrayEnum::~ComArrayEnum()
1514{

Callers

nothing calls this directly

Calls 1

AddRefMethod · 0.45

Tested by

no test coverage detected