windows-nt/Source/XPSP1/NT/multimedia/media/deluxecd/main/sink.h
2020-09-26 16:20:57 +08:00

56 lines
1.4 KiB
C++

// FrameworkNotifySink.h: interface for the CFrameworkNotifySink class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FRAMEWORKNOTIFYSINK_H__E5927148_521E_11D1_9B97_00C04FA3B60C__INCLUDED_)
#define AFX_FRAMEWORKNOTIFYSINK_H__E5927148_521E_11D1_9B97_00C04FA3B60C__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "mmfw.h"
#include "..\cdopt\cdopt.h"
#define WM_DISCCHANGED WM_USER + 1500
typedef struct CompNode
{
IMMComponent* pComp;
HWND hwndComp;
HMENU hmenuComp;
IMMFWNotifySink* pSink;
struct CompNode* pNext;
TCHAR szTitle[MAX_PATH*2];
} COMPNODE, *PCOMPNODE;
LPCDOPT GetCDOpt();
LPCDDATA GetCDData();
class CFrameworkNotifySink : public IMMFWNotifySink
{
public:
CFrameworkNotifySink(PCOMPNODE pNode);
virtual ~CFrameworkNotifySink();
STDMETHOD (QueryInterface)(REFIID riid, LPVOID *ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
STDMETHOD (OnEvent)(MMEVENTS mmEventID, LPVOID pEvent);
STDMETHOD_(void*,GetCustomMenu)();
STDMETHOD_(HPALETTE,GetPalette)();
STDMETHOD_(void*,GetOptions)();
STDMETHOD_(void*,GetData)();
public:
static HWND m_hwndTitle;
private:
DWORD m_dwRef;
PCOMPNODE m_pNode;
TCHAR m_szAppName[MAX_PATH/2];
};
#endif // !defined(AFX_FRAMEWORKNOTIFYSINK_H__E5927148_521E_11D1_9B97_00C04FA3B60C__INCLUDED_)