Microsoft DirectShow 9.0


This topic applies to Update Rollup 2 for Microsoft Windows XP Media Center Edition 2005 and later.

The GetTableDescriptorByTag method searches the CAT for a descriptor with the specified descriptor tag.


  HRESULT GetTableDescriptorByTag(
  BYTE  bTag,
  DWORD*  pdwCookie,
  IGenericDescriptor**  ppDescriptor



[in]  Specifies the descriptor tag for which to search.


[in, out]  Pointer to a variable that specifies the start position in the descriptor list. This parameter is optional. If the value of pdwCookie is NULL, the search starts from the first descriptor in the list. Otherwise, the search starts from the position given in pdwCookie. When the method returns, the pdwCookie parameter contains the position of the next matching descriptor, if any. You can use this parameter to iterate through the descriptor list, looking for every instance of a particular descriptor tag.


[out]  Receives a pointer to the IGenericDescriptor interface. Use this interface to retrieve the information in the descriptor. The caller must release the interface.

Return Values

The method returns an HRESULT. Possible values include those in the following table.

Return code Description
MPEG2_E_OUT_OF_BOUNDS Index out of bounds.
MPEG2_E_NOT_PRESENT The specified tag was not found.
MPEG2_S_MORE_DATA_AVAILABLE The record contains at least one more descriptor with this tag.
MPEG2_S_NO_MORE_DATA_AVAILABLE The record does not contain any more descriptors with this tag.
S_OK The method succeeded.


If the value of pdwCookie is not NULL, the method returns either MPEG2_S_NO_MORE_DATA_AVAILABLE or MPEG2_S_MORE_DATA_AVAILABLE to indicate whether the MGT contains additional tags that match the search criteria.


Header: Include mpeg2psiparser.h.

See Also