本文整理汇总了C++中IEnumAAFMobs::Next方法的典型用法代码示例。如果您正苦于以下问题:C++ IEnumAAFMobs::Next方法的具体用法?C++ IEnumAAFMobs::Next怎么用?C++ IEnumAAFMobs::Next使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IEnumAAFMobs
的用法示例。
在下文中一共展示了IEnumAAFMobs::Next方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadAAFFile
static HRESULT ReadAAFFile(aafWChar * pFileName)
{
IAAFFile * pFile = NULL;
bool bFileOpen = false;
IAAFHeader * pHeader = NULL;
aafNumSlots_t numMobs, i;
HRESULT hr = S_OK;
HRESULT localhr = S_OK;
IEnumAAFMobs *mobIter = NULL;
IEnumAAFMobs *cloneMobIter = NULL;
IAAFMob *aMob = NULL;
IAAFMob **mobArray = NULL;
aafSearchCrit_t criteria;
aafUInt32 numFetched = 0;
try
{
// Open the file
checkResult(AAFFileOpenExistingRead(pFileName, 0, &pFile));
bFileOpen = true;
// We can't really do anthing in AAF without the header.
checkResult(pFile->GetHeader(&pHeader));
// Make sure that we have one master, one file, and one composition (three total)
checkResult(pHeader->CountMobs(kAAFAllMob, &numMobs));
checkExpression (3 == numMobs, AAFRESULT_TEST_FAILED);
criteria.searchTag = kAAFNoSearch;
checkResult(pHeader->GetMobs (&criteria, &mobIter));
/* Test the Reset method *******************************/
if (mobIter->Reset() == AAFRESULT_SUCCESS)
cout<< " Reset() ... Passed" << endl;
else {
cout<< " Reset() ... Failed!!!" << endl;
hr = AAFRESULT_TEST_FAILED;
}
/* Test the NextOne method ******************************/
// Call NextOne once for each mob for a total of numMobs times
for (i=0; i<numMobs; i++) {
if (mobIter->NextOne(&aMob) == AAFRESULT_SUCCESS) {
aMob->Release();
aMob = NULL;
}
else
localhr = AAFRESULT_TEST_FAILED;
}
// Make sure we are at the end
if (mobIter->NextOne(&aMob) != AAFRESULT_NO_MORE_OBJECTS)
localhr = AAFRESULT_TEST_FAILED;
mobIter->Reset();
// this should return AAFRESULT_NULL_PARAM
if (mobIter->NextOne(NULL) != AAFRESULT_NULL_PARAM)
localhr = AAFRESULT_TEST_FAILED;
if (SUCCEEDED(localhr))
cout<< " NextOne() ... Passed" << endl;
else {
cout<< " NextOne() ... Failed!!!" << endl;
hr = AAFRESULT_TEST_FAILED;
}
/* Test the Skip method ******************************/
localhr = S_OK;
mobIter->Reset();
// skip over each Mob one at a time.
for (i=0; i<numMobs; i++)
if (mobIter->Skip(1) != AAFRESULT_SUCCESS)
localhr = AAFRESULT_TEST_FAILED;
// Make sure we are at the end.
if (mobIter->Skip(1) != AAFRESULT_NO_MORE_OBJECTS)
localhr = AAFRESULT_TEST_FAILED;
mobIter->Reset();
// Skip over multiple Mobs at a time.
for (i=2; i<=numMobs; i++) {
if (mobIter->Skip(i) != AAFRESULT_SUCCESS)
localhr = AAFRESULT_TEST_FAILED;
mobIter->Reset();
}
// Make sure we are at the end.
if (mobIter->Skip(numMobs+1) != AAFRESULT_NO_MORE_OBJECTS)
localhr = AAFRESULT_TEST_FAILED;
if (SUCCEEDED(localhr))
cout<< " Skip() ... Passed" << endl;
//.........这里部分代码省略.........