DSSHOW3D.H
/*========================================================================== 
 * 
 *  Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. 
 * 
 *  File:       DSShow3D.h 
 *  Content:    DirectSound Mixing Test with 3D sound main header file 
 * 
 ***************************************************************************/ 
#ifndef __DSSHOW3D_H__ 
#define __DSSHOW3D_H__ 
 
#define QQUOTE(x) #x 
#define QUOTE(y) QQUOTE(y) 
#define REMIND(str) __FILE__ "(" QUOTE(__LINE__) ") : " str 
 
#include <mmsystem.h> 
#include <dsound.h> 
#include <d3dtypes.h> 
 
#include "resource.h" 
#include "debug.h" 
 
#define MAXCONTROLS             200 // An insanely large number of controls 
 
// To check for stopping of sounds, and updating UI, a timer is set...use this for the rate. 
#define TIMERPERIOD200// In milliseconds 
 
 
#define OPENFILENAME_F_LOCALFOCUS0x00000001 
#define OPENFILENAME_F_STICKYFOCUS0x00000002 
#define OPENFILENAME_F_GLOBALFOCUS0x00000004 
 
#define OPENFILENAME_F_GETPOS0x00000008 
#define OPENFILENAME_F_GETPOS20x00000010 
 
#define OPENFILENAME_F_3D    0x00000020 
#define OPENFILENAME_F_MUTEMAX      0x00000040 
#define OPENFILENAME_F_NOTIFY0x00000080 
 
#define MAXVOL_VAL0 
#define MIDPAN_VAL0 
 
// Registry Keys and Values 
#define REG_SETTINGS_KEY    TEXT("Software\\Microsoft\\DSShow3D") 
#define REG_SETTING_DEVICE_DEFAULT  TEXT("UseDSoundDefault") 
#define REG_SETTING_USE_EXCLUSIVE   TEXT("UseExclusiveMode") 
#define REG_SETTING_OUTPUT_FORMAT   TEXT("PreferredOutputFormat") 
#define REG_SETTING_FOCUS_FLAG    TEXT("Focus") 
#define REG_SETTING_OPEN3D    TEXT("DefaultOpen3D") 
#define REG_SETTING_INITIAL_DIR    TEXT("InitialDirectory") 
#define REG_SETTING_DEVICE_GUID    TEXT("PreferredDevice") 
#define REG_DIRECT3D_KEY    TEXT("Software\\Microsoft\\Direct3D") 
#define REG_D3DPATH_VAL    TEXT("D3D Path") 
 
 
typedef struct tag_rs 
{ 
    BOOL    fDefaultDevice;    // Use the DSound default device? 
    BOOL    fOpen3D;    // Default to opening in 3D? 
BOOLfDisable3D;// True on systems which are less than a Pentium. 
    BOOL    fUseExclusiveMode;    // Use exclusive mode? 
    DWORD   dwDefaultFocusFlag;    // The DSBCAPS flag for the default focus 
    DWORD   dwPreferredFormat;    // Preferred output format 
    TCHAR   szInitialDir[MAX_PATH]; // Initial open directory 
    GUID    guPreferredDevice;    // GUID of preferred device, if not default 
} REGSETTINGS, *PREGSETTINGS; 
 
 
typedef struct tag_fd 
{ 
    DWORD   dwCode; 
    WORD    wCommandID; 
    BOOL    fEnable; 
} FORMATDATA, *PFORMATDATA; 
 
/////////////////////////////////////////////////////////////////////// 
// Function prototypes 
// 
 
BOOL CALLBACK DSEnumProc( LPGUID, LPCTSTR, LPCTSTR, LPVOID ); 
BOOL CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM); 
BOOL CALLBACK SettingsDlgProc(HWND, UINT, WPARAM, LPARAM); 
UINT CALLBACK FileOpenCustomTemplateDlgProc(HWND, UINT, WPARAM, LPARAM); 
 
BOOL OpenFileDialog(HWND, LPTSTR, int *, LPDWORD); 
BOOL IsValidWave(LPTSTR); 
 
BOOL FormatCodeToWFX( DWORD, PWAVEFORMATEX ); 
BOOL FormatCodeToText( DWORD, LPTSTR, int ); 
 
DWORD FormatCodeFromCommandID( WORD ); 
WORD CommandIDFromFormatCode( DWORD ); 
void DisableFormatCode( DWORD ); 
void EnableFormatCode( DWORD ); 
BOOL IsSameFormat(LPWAVEFORMATEX pwfx1, LPWAVEFORMATEX pwfx2); 
 
#endif// __DSSHOW3D_H__