windows-nt/Source/XPSP1/NT/multimedia/dshow/tools/dmotest/dmotst/dmotest.h
2020-09-26 16:20:57 +08:00

145 lines
4.2 KiB
C++

#ifndef _VARIABLE_INC_
#define _VARIABLE_INC_
/*=============================================================================
|
| File: dmotest.h
|
| Copyright (c) 2000 Microsoft Corporation. All rights reserved
|
| Abstract:
| Example of deriving of CTreeModule and CTestNodeItem classes to create
| a test application with the ability to pass variables to the test functions
|
| Contents:
|
|
| History:
| 5/1/2000 wendyliu First version
|
\============================================================================*/
#include <windows.h>
#include <treemod.h>
/*=============================================================================
| RESOURCES
\============================================================================*/
#define APPICON 101
#define ITEM_COUNT 100
#define NUM_OF_DMO_SUBITEM_COLUMN 3
#define NUM_OF_FILE_SUBITEM_COLUMN 1
#define MAX_LEN 255
#define MAX_NUM 50
#define TX_NO_OF_COMPONENTS_ENTRY "No of Components"
#define TX_NO_OF_SELECTED_COMPONENTS_ENTRY "No of Selected Components"
#define TX_COMPONENT_ENTRY "Component Name"
#define TX_CLASSID_ENTRY "Class ID"
#define TX_SELECTED_FOR_TEST "Selected for Test"
#define TX_NO_OF_TEST_FILES_ENTRY "No of Test Files"
#define TX_FILENAME_ENTRY "Input File Name"
#define TX_NOT_EXIST "Not Exist"
class CTestNodeItem;
class CDmoTestCase;
//typedef CTestNodeItem *PCTestNodeItem;
//typedef PCTestNodeItem *PPCTestNodeItem;
typedef CDmoTestCase *PCDmoTestCase;
typedef PCDmoTestCase *PPCDmoTestCase;
//the type of function that will be called by RunTest
typedef DWORD (*DMOTESTFNPROC1)(LPSTR pszVar1, LPSTR pszVar2);
typedef DWORD (*DMOTESTFNPROC2)(LPSTR pszVar1);
/*=============================================================================
| CLASS DEFINITIONS
\============================================================================*/
/*-----------------------------------------------------------------------------
| Class: CDmoTest
| Purpose: Derive CTestModule for more reusable form
| Notes: This is admittedly not the best implementation but the
| interface is what matters. Most of the functions are wrappers
| for functionality provided by CTestNodeItem and its
| derivitives.
\----------------------------------------------------------------------------*/
class CDmoTest : public CTreeModule
{
private:
char m_szScriptFileName[256];
protected:
//wrapper for AddCase in this module
void AddCase(LPSTR pszCaseID, LPSTR pszName, DMOTESTFNPROC1 pfnTest, CDmoTest* dmoTest);
//overloaded variable passing version of AddCase
void AddCase(LPSTR pszCaseID, LPSTR pszName, DMOTESTFNPROC2 pfnTest, CDmoTest* dmoTest);
// Defined for each module by user
virtual void InitCaseTree();
public:
CDmoTest(CTestShell* pShell, HINSTANCE hInstDLL);
virtual ~CDmoTest(void);
// event display dialog proc
static INT_PTR CALLBACK SelectDmoDialogProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK SelectTestFileDialogProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK MediaTypeDialogProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
static INT_PTR CALLBACK DataGenDialogProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
DWORD LoadSettings(LPSTR pszFileName, LPSTR pszSetction);
DWORD SaveSettings(LPSTR pszFileName, LPSTR pszSetction);
BOOL InitListView(HWND hListView);
BOOL InitTestFileListView(HWND hListView);
virtual DWORD Initialize(void);
DWORD RunTest(DWORD dwTestID);
DWORD OnInitialUpdate(void);
void ProcessMenuItem(DWORD nID, HWND hWndCtl, DWORD codeNotify, HMENU hOptionMenu);
int GetNumComponent();
LPSTR GetDmoName(int index);
LPSTR GetDmoClsid(int index);
BOOL IsDmoSelected(int index);
int GetNumTestFile(int index);
LPSTR GetFileName(int comIndex, int fileIndex);
HWND GetWindowHandle();
int GetNumSelectedDmo();
static HWND m_hSelectDmoDlg;
static HWND m_hSelectFilesDlg;
static HWND m_hMediaTypeDlg;
static HWND m_hDataGenDlg;
HWND m_hDmoList;
HWND m_hTestFileList;
HWND m_hMediaTypeList;
HWND m_hInputFileField;
HWND m_hOutputFileField;
};
#endif