This section defines the interfaces needed to add audio and video codec formats for use with NetMeeting.
Create_Instance |
IInstallAudioCodecs |
IInstallVideoCodecs |
Use the standard COM CreateInstance API to instantiate a CInstallCodecs object with the CreateInstallCodecs interface. For more information on Create Instance, see Inside OLE, Second Edition.
HRESULT CreateInstallCodecs(
LPUNKNOWN punkOuter,
REFIID riid,
LPVOID * ppv);
Creates an instance of the CInstallCodecs object, and returns the requested interface. This function should only be called indirectly through CoCreateInstance.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
E_OUTOFMEMORY | Not enough memory to create the object. |
CLASS_E_NOAGGREGATION | Aggregation is not supported for this object. |
IC_E_CAPS_INSTANTIATION_FAILURE | Could not instantiate a capability object. |
IC_E_CAPS_INITIALIZATION_FAILURE | Could not initialize a capability object. |
CreateInstallCodecs should not be called directly. Clients of installable codecs should use the COM CoCreateInstance function to instantiate the object, expecting the same return values.
This interface provides methods for adding audio codec formats for use with NetMeeting, as well as removing these formats, enumerating them, and changing their use order.
AddACMFormat |
EnumFormats |
FreeBuffer |
RemoveACMFormat |
ReorderFormats |
HRESULT AddACMFormat(
LPWAVEFORMATEX lpwfx,
PAUDCAP_INFO pAudCapInfo);
Adds an ACM encoding format for use with NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
IC_E_NO_SUCH_FORMAT | The specified WAVEFORMATEX structure was not found with ACM. The format must be installed with ACM before it can be added for use with NetMeeting. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Back to IInstallAudioCodecs Interface
HRESULT EnumFormats(
PAUDCAP_INFO_LIST * ppAudCapInfoList);
Enumerates the audio codec formats known to NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
E_OUTOFMEMORY | Not enough memory for allocating the enumeration buffer. |
IC_E_NO_FORMATS | No formats were available to enumerate. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
The caller is expected to free the returned list by calling IInstallAudioCodecs::FreeBuffer on the same interface.
Back to IInstallAudioCodecs Interface
HRESULT FreeBuffer(
LPVOID lpBuffer);
Frees a buffer that was returned by the IInstallAudioCodecs interface.
Back to IInstallAudioCodecs Interface
HRESULT RemoveACMFormat(
LPWAVEFORMATEX lpwfx);
Removes an ACM format from the list of formats used by NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
IC_E_NO_SUCH_FORMAT | The specified format was not found. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Back to IInstallAudioCodecs Interface
HRESULT ReorderFormats(
PAUDCAP_INFO_LIST pAudCapInfoList);
Reorders the audio formats for use with NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
C_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Since this method can only reorder formats that are known to NetMeeting, it is recommended that the caller first call IInstallAudioCodecs::EnumFormats to get all formats known to NetMeeting, assign new sort indexes (wSortIndex), and then call IInstallAudioCodecs::ReorderFormats with the modified list.
Arranging the formats in a specific order by using IInstallAudioCodecs::ReorderFormats does not guarantee that the top-ranked formats will be used before lower-ranked formats are used. For example, if the sending system is not capable of encoding a top-ranked format, this format will not be used. The same will happen if the receiving system cannot decode this format.
Back to IInstallAudioCodecs Interface
This interface provides methods for adding video codec formats for use with NetMeeting, as well as removing these formats, enumerating them, and changing their use order.
AddVCMFormat |
EnumFormats |
FreeBuffer |
RemoveVCMFormat |
ReorderFormats |
HRESULT AddVCMFormat(
PVIDCAP_INFO pVidCapInfo);
Adds a video encoding format for use with NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
IC_E_NO_SUCH_FORMAT | The specified format was not found. The format must be installed with Video For Windows before it can be added for use with NetMeeting. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Back to IInstallVideoCodecs Interface
HRESULT EnumFormats(
PVIDCAP_INFO_LIST * ppVidCapInfoList);
Enumerates the video codec formats known to NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
E_OUTOFMEMORY | Not enough memory for allocating the enumeration buffer. |
IC_E_NO_FORMATS | No formats were available to enumerate. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
The caller is expected to free the returned list by calling IInstallVideoCodecs::FreeBuffer on the same interface.
Back to IInstallVideoCodecs Interface
HRESULT FreeBuffer(
LPVOID lpBuffer);
Frees a buffer that was returned by the IInstallVideoCodecs interface.
Back to IInstallVideoCodecs Interface
HRESULT RemoveVCMFormat(
PVIDCAP_INFO pVidCapInfo);
Removes a video format from the list of formats used by NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
IC_E_NO_SUCH_FORMAT | The specified format was not found. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Back to IInstallVideoCodecs Interface
HRESULT ReorderFormats(
PVIDCAP_INFO_LIST pVidCapInfoList);
Reorders the video formats for use with NetMeeting.
S_OK | Success. |
E_INVALIDARG | Invalid argument. |
IC_E_INTERNAL_ERROR | The network audio/video controller reported a system error. |
Since this method can only reorder formats that are known to NetMeeting, it is recommended that the caller first call IInstallVideoCodecs::EnumFormats to get all formats known to NetMeeting, assign new sort indexes (wSortIndex), and then call IInstallVideoCodecs::ReorderFormats with the modified list.
Arranging the formats in a specific order by using IInstallVideoCodecs::ReorderFormats does not guarantee that the top-ranked formats will be used before lower-ranked formats are used. For example, if the sending system is not capable of encoding a top-ranked format, this format will not be used. The same will happen if the receiving system cannot decode this format.
Back to IInstallVideoCodecs Interface
Last Updated: November 1, 1997
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.