本文整理汇总了C++中IAAFDictionary::GetContainerDefs方法的典型用法代码示例。如果您正苦于以下问题:C++ IAAFDictionary::GetContainerDefs方法的具体用法?C++ IAAFDictionary::GetContainerDefs怎么用?C++ IAAFDictionary::GetContainerDefs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAAFDictionary
的用法示例。
在下文中一共展示了IAAFDictionary::GetContainerDefs方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar* pFileName)
{
IAAFFile* pFile = NULL;
IAAFHeader* pHeader = NULL;
IAAFDictionary* pDictionary = NULL;
IEnumAAFContainerDefs *pPlug = NULL;
IAAFContainerDef *pPlugDef = NULL;
IAAFDefObject *pDef = NULL;
bool bFileOpen = false;
aafBool testBool;
aafUID_t readUID;
HRESULT hr = S_OK;
try
{
// Open the AAF file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// Get the AAF file header.
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->GetDictionary(&pDictionary));
checkResult(pDictionary->GetContainerDefs(&pPlug));
while(pPlug->NextOne (&pPlugDef) == AAFRESULT_SUCCESS)
{
checkResult(pPlugDef->QueryInterface (IID_IAAFDefObject, (void **)&pDef));
checkResult(pDef->GetAUID(&readUID));
if(memcmp(&readUID, &testUID, sizeof(aafUID_t)) == 0)
{
checkResult(pPlugDef->EssenceIsIdentified (&testBool));
checkExpression(testBool == kAAFTrue, AAFRESULT_TEST_FAILED);
break;
}
pDef->Release();
pDef = NULL;
pPlugDef->Release();
pPlugDef = NULL;
}
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup and return
if (pDef)
pDef->Release();
if (pPlugDef)
pPlugDef->Release();
if (pPlug)
pPlug->Release();
if (pDictionary)
pDictionary->Release();
if (pHeader)
pHeader->Release();
if (pFile)
{ // Close file
if (bFileOpen)
pFile->Close();
pFile->Release();
}
return hr;
}
示例2: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar* pFileName)
{
IAAFFile* pFile = NULL;
IAAFHeader* pHeader = NULL;
IAAFDictionary* pDictionary = NULL;
IEnumAAFContainerDefs *pPlug = NULL;
IAAFDefObject* pDef = NULL;
IAAFContainerDef* pContainerDef = NULL;
bool bFileOpen = false;
HRESULT hr = S_OK;
aafUID_t readUID;
wchar_t testString[256];
try
{
// Open the AAF file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// Get the AAF file header.
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->GetDictionary(&pDictionary));
checkResult(pDictionary->GetContainerDefs(&pPlug));
while(pPlug->NextOne (&pContainerDef) == AAFRESULT_SUCCESS)
{
checkResult(pContainerDef->QueryInterface (IID_IAAFDefObject, (void **)&pDef));
checkResult(pDef->GetAUID(&readUID));
if(memcmp(&readUID, &testUID, sizeof(aafUID_t)) == 0)
{
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName) == 0, AAFRESULT_TEST_FAILED);
aafUInt32 nameLen;
checkResult (pDef->GetNameBufLen (&nameLen));
checkExpression (((wcslen (sName)+1) * sizeof (aafCharacter) == nameLen),
AAFRESULT_TEST_FAILED);
checkResult(pDef->GetDescription (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sDescription) == 0, AAFRESULT_TEST_FAILED);
checkResult (pDef->GetDescriptionBufLen (&nameLen));
checkExpression (((wcslen (sDescription)+1) * sizeof (aafCharacter) == nameLen),
AAFRESULT_TEST_FAILED);
break;
}
pDef->Release();
pDef = NULL;
pContainerDef->Release();
pContainerDef = NULL;
}// checkResult(pPlug->NextOne(&pContainerDef));
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup and return
if (pHeader)
pHeader->Release();
if (pPlug)
pPlug->Release();
if (pDef)
pDef->Release();
if (pContainerDef)
pContainerDef->Release();
if (pDictionary)
pDictionary->Release();
if (pFile)
{ // Close file
if (bFileOpen)
pFile->Close();
pFile->Release();
}
return hr;
}
示例3: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar* pFileName)
{
IAAFFile* pFile = NULL;
IAAFHeader* pHeader = NULL;
IAAFDictionary* pDictionary = NULL;
IEnumAAFContainerDefs *pPlug = NULL;
IEnumAAFContainerDefs *pClonePlug = NULL;
IAAFDefObject* pDef = NULL;
IAAFContainerDef* pContainerDef = NULL;
IAAFContainerDef* pArray[2] = { NULL, NULL };
// IAAFContainerDef** pArrayDef = pArray;
bool bFileOpen = false;
HRESULT hr = S_OK;
// wchar_t testString[256];
// aafUInt32 resultCount;
try
{
// Open the AAF file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// Get the AAF file header.
checkResult(pFile->GetHeader(&pHeader));
checkResult(pHeader->GetDictionary(&pDictionary));
checkResult(pDictionary->GetContainerDefs(&pPlug));
/* Read and check the first element */
checkResult(pPlug->NextOne(&pContainerDef));
checkResult(pContainerDef->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
#if 0 //!!! Can't rely on order any more
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName1) == 0, AAFRESULT_TEST_FAILED);
pContainerDef->Release();
pContainerDef = NULL;
pDef->Release();
pDef = NULL;
/* Read and check the second element */
checkResult(pPlug->NextOne(&pContainerDef));
checkResult(pContainerDef->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName2) == 0, AAFRESULT_TEST_FAILED);
pContainerDef->Release();
pContainerDef = NULL;
pDef->Release();
pDef = NULL;
/* Reset, and check the first element again*/
checkResult(pPlug->Reset());
checkResult(pPlug->NextOne(&pContainerDef));
checkResult(pContainerDef->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName1) == 0, AAFRESULT_TEST_FAILED);
pContainerDef->Release();
pContainerDef = NULL;
pDef->Release();
pDef = NULL;
/* Reset, Skip, and check the second element again*/
checkResult(pPlug->Reset());
checkResult(pPlug->Skip(1));
checkResult(pPlug->NextOne(&pContainerDef));
checkResult(pContainerDef->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName2) == 0, AAFRESULT_TEST_FAILED);
pContainerDef->Release();
pContainerDef = NULL;
pDef->Release();
pDef = NULL;
/* Reset, and read both elements */
checkResult(pPlug->Reset());
checkResult(pPlug->Next (2, (IAAFContainerDef **)&pArray, &resultCount));
checkExpression (resultCount == 2, AAFRESULT_TEST_FAILED);
checkResult(pArrayDef[0]->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName1) == 0, AAFRESULT_TEST_FAILED);
pDef->Release();
pDef = NULL;
checkResult(pArrayDef[1]->QueryInterface (IID_IAAFDefObject,
(void **)&pDef));
checkResult(pDef->GetName (testString, sizeof(testString)));
checkExpression (wcscmp(testString, sName2) == 0, AAFRESULT_TEST_FAILED);
pDef->Release();
pDef = NULL;
/* Read one past to make sure that it fails */
checkExpression(pPlug->NextOne(&pContainerDef) != AAFRESULT_SUCCESS, AAFRESULT_TEST_FAILED);
/* Clone the enumerator, and read one element */
checkResult(pPlug->Clone(&pClonePlug));
checkResult(pClonePlug->Reset());
//.........这里部分代码省略.........