mediactrl.cpp
来自「A*算法 A*算法 A*算法 A*算法A*算法A*算法」· C++ 代码 · 共 1,438 行 · 第 1/5 页
CPP
1,438 行
STDMETHOD(GetCodecURL)(long CodecNum,
BSTR __RPC_FAR *pbstrCodecURL) PURE;
STDMETHOD(GetMoreInfoURL)(MPMoreInfoType MoreInfoType,
BSTR __RPC_FAR *pbstrMoreInfoURL) PURE;
STDMETHOD(GetMediaInfoString)(MPMediaInfoType MediaInfoType,
BSTR __RPC_FAR *pbstrMediaInfo) PURE;
STDMETHOD(Cancel)(void) PURE;
STDMETHOD(Open)(BSTR bstrFileName) PURE;
STDMETHOD(IsSoundCardEnabled)(VARIANT_BOOL __RPC_FAR *pbSoundCard) PURE;
STDMETHOD(Next)(void) PURE;
STDMETHOD(Previous)(void) PURE;
STDMETHOD(StreamSelect)(long StreamNum) PURE;
STDMETHOD(FastForward)(void) PURE;
STDMETHOD(FastReverse)(void) PURE;
STDMETHOD(GetStreamName)(long StreamNum,
BSTR __RPC_FAR *pbstrStreamName) PURE;
STDMETHOD(GetStreamGroup)(long StreamNum,
long __RPC_FAR *pStreamGroup) PURE;
STDMETHOD(GetStreamSelected)(long StreamNum, VARIANT_BOOL __RPC_FAR *pStreamSelected) PURE;
};
struct IMediaPlayer2 : public IMediaPlayer
{
STDMETHOD(get_DVD)(struct IMediaPlayerDvd __RPC_FAR *__RPC_FAR *ppdispatch) PURE;
STDMETHOD(GetMediaParameter)(long EntryNum, BSTR bstrParameterName, BSTR __RPC_FAR *pbstrParameterValue) PURE;
STDMETHOD(GetMediaParameterName(long EntryNum, long Index, BSTR __RPC_FAR *pbstrParameterName) PURE;
STDMETHOD(get_EntryCount)(long __RPC_FAR *pNumberEntries) PURE;
STDMETHOD(GetCurrentEntry)(long __RPC_FAR *pEntryNumber) PURE;
STDMETHOD(SetCurrentEntry)(long EntryNumber) PURE;
STDMETHOD(ShowDialog)(MPShowDialogConstants mpDialogIndex) PURE;
};
//---------------------------------------------------------------------------
// NETSHOW COM INTERFACES (dumped from nscompat.idl from MSVC COM Browser)
//---------------------------------------------------------------------------
struct INSOPlay : public IDispatch
{
STDMETHOD(get_ImageSourceWidth)(long __RPC_FAR *pWidth) PURE;
STDMETHOD(get_ImageSourceHeight)(long __RPC_FAR *pHeight) PURE;
STDMETHOD(get_Duration)(double __RPC_FAR *pDuration) PURE;
STDMETHOD(get_Author)(BSTR __RPC_FAR *pbstrAuthor) PURE;
STDMETHOD(get_Copyright)(BSTR __RPC_FAR *pbstrCopyright) PURE;
STDMETHOD(get_Description)(BSTR __RPC_FAR *pbstrDescription) PURE;
STDMETHOD(get_Rating)(BSTR __RPC_FAR *pbstrRating) PURE;
STDMETHOD(get_Title)(BSTR __RPC_FAR *pbstrTitle) PURE;
STDMETHOD(get_SourceLink)(BSTR __RPC_FAR *pbstrSourceLink) PURE;
STDMETHOD(get_MarkerCount)(long __RPC_FAR *pMarkerCount) PURE;
STDMETHOD(get_CanScan)(VARIANT_BOOL __RPC_FAR *pCanScan) PURE;
STDMETHOD(get_CanSeek)(VARIANT_BOOL __RPC_FAR *pCanSeek) PURE;
STDMETHOD(get_CanSeekToMarkers)(VARIANT_BOOL __RPC_FAR *pCanSeekToMarkers) PURE;
STDMETHOD(get_CreationDate)(DATE __RPC_FAR *pCreationDate) PURE;
STDMETHOD(get_Bandwidth)(long __RPC_FAR *pBandwidth) PURE;
STDMETHOD(get_ErrorCorrection)(BSTR __RPC_FAR *pbstrErrorCorrection) PURE;
STDMETHOD(get_AutoStart)(VARIANT_BOOL __RPC_FAR *pAutoStart) PURE;
STDMETHOD(put_AutoStart)(VARIANT_BOOL pAutoStart) PURE;
STDMETHOD(get_AutoRewind)(VARIANT_BOOL __RPC_FAR *pAutoRewind) PURE;
STDMETHOD(put_AutoRewind)(VARIANT_BOOL pAutoRewind) PURE;
STDMETHOD(get_AllowChangeControlType)(VARIANT_BOOL __RPC_FAR *pAllowChangeControlType) PURE;
STDMETHOD(put_AllowChangeControlType)(VARIANT_BOOL pAllowChangeControlType) PURE;
STDMETHOD(get_InvokeURLs)(VARIANT_BOOL __RPC_FAR *pInvokeURLs) PURE;
STDMETHOD(put_InvokeURLs)(VARIANT_BOOL pInvokeURLs) PURE;
STDMETHOD(get_EnableContextMenu)(VARIANT_BOOL __RPC_FAR *pEnableContextMenu) PURE;
STDMETHOD(put_EnableContextMenu)(VARIANT_BOOL pEnableContextMenu) PURE;
STDMETHOD(get_TransparentAtStart)(VARIANT_BOOL __RPC_FAR *pTransparentAtStart) PURE;
STDMETHOD(put_TransparentAtStart)(VARIANT_BOOL pTransparentAtStart) PURE;
STDMETHOD(get_TransparentOnStop)(VARIANT_BOOL __RPC_FAR *pTransparentOnStop) PURE;
STDMETHOD(put_TransparentOnStop)(VARIANT_BOOL pTransparentOnStop) PURE;
STDMETHOD(get_ClickToPlay)(VARIANT_BOOL __RPC_FAR *pClickToPlay) PURE;
STDMETHOD(put_ClickToPlay)(VARIANT_BOOL pClickToPlay) PURE;
STDMETHOD(get_FileName)(BSTR __RPC_FAR *pbstrFileName) PURE;
STDMETHOD(put_FileName)(BSTR pbstrFileName) PURE;
STDMETHOD(get_CurrentPosition)(double __RPC_FAR *pCurrentPosition) PURE;
STDMETHOD(put_CurrentPosition)(double pCurrentPosition) PURE;
STDMETHOD(get_Rate)(double __RPC_FAR *pRate) PURE;
STDMETHOD(put_Rate)(double pRate) PURE;
STDMETHOD(get_CurrentMarker)(long __RPC_FAR *pCurrentMarker) PURE;
STDMETHOD(put_CurrentMarker)(long pCurrentMarker) PURE;
STDMETHOD(get_PlayCount)(long __RPC_FAR *pPlayCount) PURE;
STDMETHOD(put_PlayCount)(long pPlayCount) PURE;
STDMETHOD(get_CurrentState)(long __RPC_FAR *pCurrentState) PURE;
STDMETHOD(get_DisplaySize)(long __RPC_FAR *pDisplaySize) PURE;
STDMETHOD(put_DisplaySize)(long pDisplaySize) PURE;
STDMETHOD(get_MainWindow)(long __RPC_FAR *pMainWindow) PURE;
STDMETHOD(get_ControlType)(long __RPC_FAR *pControlType) PURE;
STDMETHOD(put_ControlType)(long pControlType) PURE;
STDMETHOD(get_AllowScan)(VARIANT_BOOL __RPC_FAR *pAllowScan) PURE;
STDMETHOD(put_AllowScan)(VARIANT_BOOL pAllowScan) PURE;
STDMETHOD(get_SendKeyboardEvents)(VARIANT_BOOL __RPC_FAR *pSendKeyboardEvents) PURE;
STDMETHOD(put_SendKeyboardEvents)(VARIANT_BOOL pSendKeyboardEvents) PURE;
STDMETHOD(get_SendMouseClickEvents)(VARIANT_BOOL __RPC_FAR *pSendMouseClickEvents) PURE;
STDMETHOD(put_SendMouseClickEvents)(VARIANT_BOOL pSendMouseClickEvents) PURE;
STDMETHOD(get_SendMouseMoveEvents)(VARIANT_BOOL __RPC_FAR *pSendMouseMoveEvents) PURE;
STDMETHOD(put_SendMouseMoveEvents)(VARIANT_BOOL pSendMouseMoveEvents) PURE;
STDMETHOD(get_SendStateChangeEvents)(VARIANT_BOOL __RPC_FAR *pSendStateChangeEvents) PURE;
STDMETHOD(put_SendStateChangeEvents)(VARIANT_BOOL pSendStateChangeEvents) PURE;
STDMETHOD(get_ReceivedPackets)(long __RPC_FAR *pReceivedPackets) PURE;
STDMETHOD(get_RecoveredPackets)(long __RPC_FAR *pRecoveredPackets) PURE;
STDMETHOD(get_LostPackets)(long __RPC_FAR *pLostPackets) PURE;
STDMETHOD(get_ReceptionQuality)(long __RPC_FAR *pReceptionQuality) PURE;
STDMETHOD(get_BufferingCount)(long __RPC_FAR *pBufferingCount) PURE;
STDMETHOD(get_CursorType)(long __RPC_FAR *pCursorType) PURE;
STDMETHOD(put_CursorType)(long pCursorType) PURE;
STDMETHOD(get_AnimationAtStart)(VARIANT_BOOL __RPC_FAR *pAnimationAtStart) PURE;
STDMETHOD(put_AnimationAtStart)(VARIANT_BOOL pAnimationAtStart) PURE;
STDMETHOD(get_AnimationOnStop)(VARIANT_BOOL __RPC_FAR *pAnimationOnStop) PURE;
STDMETHOD(put_AnimationOnStop)(VARIANT_BOOL pAnimationOnStop) PURE;
STDMETHOD(Play)(void) PURE;
STDMETHOD(Pause)(void) PURE;
STDMETHOD(Stop)(void) PURE;
STDMETHOD(GetMarkerTime)(long MarkerNum, double __RPC_FAR *pMarkerTime) PURE;
STDMETHOD(GetMarkerName)(long MarkerNum, BSTR __RPC_FAR *pbstrMarkerName) PURE;
};
struct INSPlay : public INSOPlay
{
STDMETHOD(get_ChannelName)(BSTR __RPC_FAR *pbstrChannelName) PURE;
STDMETHOD(get_ChannelDescription)(BSTR __RPC_FAR *pbstrChannelDescription) PURE;
STDMETHOD(get_ChannelURL)(BSTR __RPC_FAR *pbstrChannelURL) PURE;
STDMETHOD(get_ContactAddress)(BSTR __RPC_FAR *pbstrContactAddress) PURE;
STDMETHOD(get_ContactPhone)(BSTR __RPC_FAR *pbstrContactPhone) PURE;
STDMETHOD(get_ContactEmail)(BSTR __RPC_FAR *pbstrContactEmail) PURE;
STDMETHOD(get_AllowChangeDisplaySize)(VARIANT_BOOL __RPC_FAR *pAllowChangeDisplaySize) PURE;
STDMETHOD(put_AllowChangeDisplaySize)(VARIANT_BOOL pAllowChangeDisplaySize) PURE;
STDMETHOD(get_CodecCount)(long __RPC_FAR *pCodecCount) PURE;
STDMETHOD(get_IsBroadcast)(VARIANT_BOOL __RPC_FAR *pIsBroadcast) PURE;
STDMETHOD(get_IsDurationValid)(VARIANT_BOOL __RPC_FAR *pIsDurationValid) PURE;
STDMETHOD(get_SourceProtocol)(long __RPC_FAR *pSourceProtocol) PURE;
STDMETHOD(get_OpenState)(long __RPC_FAR *pOpenState) PURE;
STDMETHOD(get_SendOpenStateChangeEvents)(VARIANT_BOOL __RPC_FAR *pSendOpenStateChangeEvents) PURE;
STDMETHOD(put_SendOpenStateChangeEvents)(VARIANT_BOOL pSendOpenStateChangeEvents) PURE;
STDMETHOD(get_SendWarningEvents)(VARIANT_BOOL __RPC_FAR *pSendWarningEvents) PURE;
STDMETHOD(put_SendWarningEvents)(VARIANT_BOOL pSendWarningEvents) PURE;
STDMETHOD(get_SendErrorEvents)(VARIANT_BOOL __RPC_FAR *pSendErrorEvents) PURE;
STDMETHOD(put_SendErrorEvents)(VARIANT_BOOL pSendErrorEvents) PURE;
STDMETHOD(get_HasError)(VARIANT_BOOL __RPC_FAR *pHasError) PURE;
STDMETHOD(get_ErrorDescription)(BSTR __RPC_FAR *pbstrErrorDescription) PURE;
STDMETHOD(get_ErrorCode)(long __RPC_FAR *pErrorCode) PURE;
STDMETHOD(get_PlayState)(long __RPC_FAR *pPlayState) PURE;
STDMETHOD(get_SendPlayStateChangeEvents)(VARIANT_BOOL __RPC_FAR *pSendPlayStateChangeEvents) PURE;
STDMETHOD(put_SendPlayStateChangeEvents)(VARIANT_BOOL pSendPlayStateChangeEvents) PURE;
STDMETHOD(get_BufferingTime)(double __RPC_FAR *pBufferingTime) PURE;
STDMETHOD(put_BufferingTime)(double pBufferingTime) PURE;
STDMETHOD(get_UseFixedUDPPort)(VARIANT_BOOL __RPC_FAR *pUseFixedUDPPort) PURE;
STDMETHOD(put_UseFixedUDPPort)(VARIANT_BOOL pUseFixedUDPPort) PURE;
STDMETHOD(get_FixedUDPPort)(long __RPC_FAR *pFixedUDPPort) PURE;
STDMETHOD(put_FixedUDPPort)(long pFixedUDPPort) PURE;
STDMETHOD(get_UseHTTPProxy)(VARIANT_BOOL __RPC_FAR *pUseHTTPProxy) PURE;
STDMETHOD(put_UseHTTPProxy)(VARIANT_BOOL pUseHTTPProxy) PURE;
STDMETHOD(get_EnableAutoProxy)(VARIANT_BOOL __RPC_FAR *pEnableAutoProxy) PURE;
STDMETHOD(put_EnableAutoProxy)(VARIANT_BOOL pEnableAutoProxy) PURE;
STDMETHOD(get_HTTPProxyHost)(BSTR __RPC_FAR *pbstrHTTPProxyHost) PURE;
STDMETHOD(put_HTTPProxyHost)(BSTR pbstrHTTPProxyHost) PURE;
STDMETHOD(get_HTTPProxyPort)(long __RPC_FAR *pHTTPProxyPort) PURE;
STDMETHOD(put_HTTPProxyPort)(long pHTTPProxyPort) PURE;
STDMETHOD(get_EnableMulticast)(VARIANT_BOOL __RPC_FAR *pEnableMulticast) PURE;
STDMETHOD(put_EnableMulticast)(VARIANT_BOOL pEnableMulticast) PURE;
STDMETHOD(get_EnableUDP)(VARIANT_BOOL __RPC_FAR *pEnableUDP) PURE;
STDMETHOD(put_EnableUDP)(VARIANT_BOOL pEnableUDP) PURE;
STDMETHOD(get_EnableTCP)(VARIANT_BOOL __RPC_FAR *pEnableTCP) PURE;
STDMETHOD(put_EnableTCP)(VARIANT_BOOL pEnableTCP) PURE;
STDMETHOD(get_EnableHTTP)(VARIANT_BOOL __RPC_FAR *pEnableHTTP) PURE;
STDMETHOD(put_EnableHTTP)(VARIANT_BOOL pEnableHTTP) PURE;
STDMETHOD(get_BufferingProgress)(long __RPC_FAR *pBufferingProgress) PURE;
STDMETHOD(get_BaseURL)(BSTR __RPC_FAR *pbstrBaseURL) PURE;
STDMETHOD(put_BaseURL)(BSTR pbstrBaseURL) PURE;
STDMETHOD(get_DefaultFrame)(BSTR __RPC_FAR *pbstrDefaultFrame) PURE;
STDMETHOD(put_DefaultFrame)(BSTR pbstrDefaultFrame) PURE;
STDMETHOD(AboutBox))(void) PURE;
STDMETHOD(Cancel)(void) PURE;
STDMETHOD(GetCodecInstalled)(long CodecNum, VARIANT_BOOL __RPC_FAR *pCodecInstalled) PURE;
STDMETHOD(GetCodecDescription)(long CodecNum, BSTR __RPC_FAR *pbstrCodecDescription) PURE;
STDMETHOD(GetCodecURL)(long CodecNum, BSTR __RPC_FAR *pbstrCodecURL) PURE;
STDMETHOD(Open)(BSTR bstrFileName) PURE;
};
struct INSPlay1 : public INSPlay
{
STDMETHOD(get_MediaPlayer)(IDispatch __RPC_FAR *__RPC_FAR *ppdispatch) PURE;
};
//---------------------------------------------------------------------------
// MISC COM INTERFACES
//---------------------------------------------------------------------------
typedef enum _FilterState
{
State_Stopped,
State_Paused,
State_Running
} FILTER_STATE;
typedef enum _PinDirection {
PINDIR_INPUT,
PINDIR_OUTPUT
} PIN_DIRECTION;
typedef struct _FilterInfo {
WCHAR achName[128];
struct IFilterGraph *pGraph;
} FILTER_INFO;
typedef struct _PinInfo {
struct IBaseFilter *pFilter;
PIN_DIRECTION dir;
WCHAR achName[128];
} PIN_INFO;
struct IBaseFilter;
struct IPin;
struct IEnumFilters;
typedef struct _MediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
struct IFilterGraph : public IUnknown
{
STDMETHOD(AddFilter)(IBaseFilter *, LPCWSTR) PURE;
STDMETHOD(RemoveFilter)(IBaseFilter *) PURE;
STDMETHOD(EnumFilters)(IEnumFilters **) PURE;
STDMETHOD(FindFilterByName)(LPCWSTR, IBaseFilter **) PURE;
STDMETHOD(ConnectDirect)(IPin *, IPin *, const AM_MEDIA_TYPE *) PURE;
STDMETHOD(Reconnect)(IPin *) PURE;
STDMETHOD(Disconnect)(IPin *) PURE;
STDMETHOD(SetDefaultSyncSource)() PURE;
};
struct IGraphBuilder : public IFilterGraph
{
STDMETHOD(Connect)(IPin *, IPin *) PURE;
STDMETHOD(Render)(IPin *) PURE;
STDMETHOD(RenderFile)(LPCWSTR, LPCWSTR) PURE;
STDMETHOD(AddSourceFilter)(LPCWSTR, LPCWSTR, IBaseFilter **) PURE;
STDMETHOD(SetLogFile)(DWORD_PTR) PURE;
STDMETHOD(Abort)() PURE;
STDMETHOD(ShouldOperationContinue)() PURE;
};
struct IReferenceClock;
struct IEnumPins;
#define REFERENCE_TIME LONGLONG
struct IMediaFilter : public IPersist
{
STDMETHOD(Stop)( void) PURE;
STDMETHOD(Pause)( void) PURE;
STDMETHOD(Run)(REFERENCE_TIME tStart) PURE;
STDMETHOD(GetState)(DWORD dwMilliSecsTimeout,
FILTER_STATE *State) PURE;
STDMETHOD(SetSyncSource)(IReferenceClock *pClock) PURE;
STDMETHOD(GetSyncSource)(IReferenceClock **pClock) PURE;
};
struct IBaseFilter : public IMediaFilter
{
STDMETHOD(EnumPins)(IEnumPins **ppEnum) PURE;
STDMETHOD(FindPin)(LPCWSTR Id, IPin **ppPin) PURE;
STDMETHOD(QueryFilterInfo)(FILTER_INFO *pInfo) PURE;
STDMETHOD(JoinFilterGraph)(IFilterGraph *pGraph, LPCWSTR pName) PURE;
STDMETHOD(QueryVendorInfo)(LPWSTR *pVendorInfo) PURE;
};
//###########################################################################
//
//
// wxAMMediaBackend
//
//
//###########################################################################
typedef BOOL (WINAPI* LPAMGETERRORTEXT)(HRESULT, wxChar *, DWORD);
class WXDLLIMPEXP_MEDIA wxAMMediaBackend : public wxMediaBackendCommonBase
{
public:
wxAMMediaBackend();
virtual ~wxAMMediaBackend();
void Clear();
virtual bool CreateControl(wxControl* ctrl, wxWindow* parent,
wxWindowID id,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?