인덱서 만들기 및 구성

ASF 인덱서는 ASF(고급 시스템 형식) 파일에서 인덱스 개체를 읽거나 쓰는 데 사용되는 WMContainer 계층 구성 요소입니다. 이 항목에서는 Media Foundation에서 제공하는 기본 인덱서 개체를 만드는 방법에 대한 정보를 제공합니다.

ASF 파일의 구조에 대한 자세한 내용은 ASF 파일 구조를 참조하세요.

ASF 인덱서 만들기 및 초기화

  1. MFCreateASFIndexer 함수를 호출하여 인덱서 개체에 대한 IMFASFIndexer 포인터를 받습니다.

  2. IMFASFIndexer::SetFlags를 호출하여 인덱서 개체에 대한 읽기 또는 쓰기 모드를 지정합니다. 기본적으로 인덱서는 앞으로 검색하도록 구성됩니다.

    Windows Server Update Services와 함께 플래그
    읽기(앞으로 검색) 0(기본값)
    읽기(역방향 검색) MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK
    쓰기 MFASF_INDEXER_WRITE_NEW_INDEX

     

    참고

    인덱서의 동일한 instance 읽기 및 쓰기 모두에 사용할 수 없습니다. 하나 또는 다른 인덱서에 대해 구성해야 합니다.

     

  3. IMFASFIndexer::Initialize를 호출하여 작성하거나 읽을 파일을 설명하는 ContentInfo 개체의 IMFASFContentInfo 포인터를 지정하여 인덱서를 초기화합니다. ContentInfo 개체에는 ASF 헤더 개체를 구성하는 정보가 포함되어 있습니다. ASF 파일의 인덱스 항목을 생성하거나 읽기 전에 인덱서 개체에 유효한 ContentInfo 개체가 필요합니다.

다음 코드 예제에서는 애플리케이션을 만들고 특정 ASF 콘텐츠와 함께 작동 하려면 인덱서 개체를 초기화 하는 방법을 보여줍니다. ContentInfo 개체는 ASF Header 개체를 나타냅니다. 콘텐츠는 바이트 스트림으로 전달됩니다.

HRESULT CreateASFIndexer(
    IMFASFContentInfo* pContentInfo, 
    DWORD dwFlags,
    IMFASFIndexer** ppIndexer
    )
{
    *ppIndexer = NULL;

    IMFASFIndexer *pIndexer = NULL;

    HRESULT hr = MFCreateASFIndexer(&pIndexer);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = pIndexer->SetFlags(dwFlags);
    if (FAILED(hr))
    {
        goto done;
    }

    hr =  pIndexer->Initialize(pContentInfo);
    if (FAILED(hr))
    {
        goto done;
    }

    // Return the object to the caller.
    *ppIndexer = pIndexer;
    (*ppIndexer)->AddRef();

done:
    // Clean up.
    SafeRelease(&pIndexer);
    return hr;
}

ASF 인덱서

인덱서 를 사용하여 ASF 파일 내에서 검색

인덱서를 사용하여 새 인덱스 작성