Platform SDK: Transaction Server |
CreatePropertyGroup, CreateProperty, put_Value, get_Value Methods Example
[This product will work only on Windows NT 4.0 versions and earlier. For Windows 2000 and later, see COM+ (Component Services).]
#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; LONG lNextValue = 0L; BSTR stName, stNextNumber; VARIANT vNext; 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); stNextNumber = SysAllocString(L"NextNum"); hr = pPropGp->CreateProperty (stNextNumber, &fAlreadyExists, &pPropNextNum); SysFreeString(stNextNumber); // 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);