ISharedPropertyGroup::CreatePropertyByPosition Method Example
#include <mtx.h>
#include <mtxspm.h>
IObjectContext* pObjectContext = NULL;
ISharedPropertyGroupManager* pPropGpMgr = NULL;
ISharedPropertyGroup* pPropGp = NULL;
ISharedProperty* pPropNextNum = NULL;
VARIANT_BOOL fAlreadyExists = VARIANT_FALSE;
LONG lIsolationMode = LockMethod;
LONG lReleaseMode = Process;
BSTR stName;
VARIANT vNext;
LONG lNextValue = 0L;
HRESULT hr = S_OK;
hr = GetObjectContext(&pObjectContext);
// Create the SharedPropertyGroupManager,
// SharedPropertyGroup, and SharedProperty.
hr = pObjectContext->CreateInstance
(CLSID_SharedPropertyGroupManager,
IID_ISharedPropertyGroupManager,
(void**)&pPropGpMgr);
stName = SysAllocString(L"Counter");
hr = pPropGpMgr->CreatePropertyGroup(stName,
&lIsolationMode, &lReleaseMode, &fAlreadyExists,
&pPropGp);
SysFreeString(stName);
hr = pPropGp->CreatePropertyByPosition
(0, &fAlreadyExists, &pPropNextNum);
// Get the next number and increment the counter.
VariantInit(&vNext);
vNext.vt = VT_I4;
hr = pPropNextNum->get_Value(&vNext);
lNextValue = vNext.lVal++;
hr = pPropNextNum->put_Value(vNext);