95 lines
2.7 KiB
C
95 lines
2.7 KiB
C
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// File: gfxui.h
|
|
//
|
|
// This file defines the functions that are used by the Global
|
|
// Effects (GFX) page to drive manipulate the effects for a
|
|
// mixer.
|
|
//
|
|
// History:
|
|
// 10 June 2000 RogerW
|
|
// Created.
|
|
//
|
|
// Copyright (C) 2000 Microsoft Corporation All Rights Reserved.
|
|
//
|
|
// Microsoft Confidential
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
#pragma once
|
|
|
|
//=============================================================================
|
|
// Include files
|
|
//=============================================================================
|
|
#include <mmsysp.h> // Middle Layer
|
|
|
|
// GFXUI element status flags
|
|
#define GFX_DEFAULT 0X00000000
|
|
#define GFX_CREATED 0X00000001 // Id, Order, & Type are valid
|
|
#define GFX_ADD 0X00000002
|
|
|
|
typedef struct _GFXUI GFXUI;
|
|
typedef GFXUI* PGFXUI;
|
|
|
|
typedef struct _GFXUI
|
|
{
|
|
PWSTR pszName;
|
|
PWSTR pszFactoryDi;
|
|
DWORD Id;
|
|
DWORD Type;
|
|
DWORD Order;
|
|
DWORD nFlags;
|
|
CLSID clsidUI;
|
|
PGFXUI pNext;
|
|
} **PPGFXUI;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwType;
|
|
PWSTR pszZoneDi;
|
|
PGFXUI puiList;
|
|
} GFXUILIST, *PGFXUILIST, **PPGFXUILIST;
|
|
|
|
|
|
//
|
|
// API Prototypes
|
|
//
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" { /* Assume C declarations for C++ */
|
|
#endif /* __cplusplus */
|
|
|
|
// Interface
|
|
HRESULT GFXUI_CreateList (DWORD dwMixID, DWORD dwType, BOOL fAll, PPGFXUILIST ppList);
|
|
BOOL GFXUI_CheckDevice (DWORD dwMixID, DWORD dwType);
|
|
void GFXUI_FreeList (PPGFXUILIST ppList);
|
|
HRESULT GFXUI_Properties (PGFXUI puiGFX, HWND hWndOwner);
|
|
HRESULT GFXUI_CreateAddGFX (PPGFXUI ppuiGFXAdd, PGFXUI puiGFXSource);
|
|
HRESULT GFXUI_Apply (PPGFXUILIST ppListApply, PPGFXUI ppuiListDelete);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
// Helpers
|
|
BOOL GFXUI_CanShowProperties (PGFXUI puiGFX);
|
|
|
|
|
|
//
|
|
// Local Function Prototypes
|
|
//
|
|
HRESULT InitList (DWORD dwMixID, DWORD dwType, PPGFXUILIST ppList);
|
|
HRESULT AddNode (PCWSTR pszGfxFactoryDi, DWORD Id, REFCLSID rclsid, DWORD Type, DWORD Order, DWORD nFlags, PPGFXUILIST ppList);
|
|
HRESULT AddFactoryNode (PCWSTR pszGfxFactoryDi, PPGFXUILIST ppList);
|
|
void FreeNode (PPGFXUI ppNode);
|
|
void FreeListNodes (PPGFXUI ppuiList);
|
|
HRESULT AttachNode (PPGFXUILIST ppList, PGFXUI pNode);
|
|
HRESULT CreateNode (PCWSTR pszName, PCWSTR pszGfxFactoryDi, PPGFXUI ppNode);
|
|
HRESULT GetFriendlyName (PCWSTR pszGfxFactoryDi, PWSTR* ppszName);
|
|
HKEY OpenGfxRegKey (PCWSTR pszGfxFactoryDi, REGSAM sam);
|
|
UINT GetListSize (PGFXUI puiList);
|
|
PTCHAR GetInterfaceName (DWORD dwMixerID);
|
|
// Callback
|
|
LONG GFXEnum (PVOID Context, DWORD Id, PCWSTR GfxFactoryDi, REFCLSID rclsid, DWORD Type, DWORD Order);
|
|
|
|
|