Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.8 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // File: gfxui.h
  4. //
  5. // This file defines the functions that are used by the Global
  6. // Effects (GFX) page to drive manipulate the effects for a
  7. // mixer.
  8. //
  9. // History:
  10. // 10 June 2000 RogerW
  11. // Created.
  12. //
  13. // Copyright (C) 2000 Microsoft Corporation All Rights Reserved.
  14. //
  15. // Microsoft Confidential
  16. //
  17. ///////////////////////////////////////////////////////////////////////////////
  18. #pragma once
  19. //=============================================================================
  20. // Include files
  21. //=============================================================================
  22. #include <mmsysp.h> // Middle Layer
  23. // GFXUI element status flags
  24. #define GFX_DEFAULT 0X00000000
  25. #define GFX_CREATED 0X00000001 // Id, Order, & Type are valid
  26. #define GFX_ADD 0X00000002
  27. typedef struct _GFXUI GFXUI;
  28. typedef GFXUI* PGFXUI;
  29. typedef struct _GFXUI
  30. {
  31. PWSTR pszName;
  32. PWSTR pszFactoryDi;
  33. DWORD Id;
  34. DWORD Type;
  35. DWORD Order;
  36. DWORD nFlags;
  37. CLSID clsidUI;
  38. PGFXUI pNext;
  39. } **PPGFXUI;
  40. typedef struct
  41. {
  42. DWORD dwType;
  43. PWSTR pszZoneDi;
  44. PGFXUI puiList;
  45. } GFXUILIST, *PGFXUILIST, **PPGFXUILIST;
  46. //
  47. // API Prototypes
  48. //
  49. #ifdef __cplusplus
  50. extern "C" { /* Assume C declarations for C++ */
  51. #endif /* __cplusplus */
  52. // Interface
  53. HRESULT GFXUI_CreateList (DWORD dwMixID, DWORD dwType, BOOL fAll, PPGFXUILIST ppList);
  54. BOOL GFXUI_CheckDevice (DWORD dwMixID, DWORD dwType);
  55. void GFXUI_FreeList (PPGFXUILIST ppList);
  56. HRESULT GFXUI_Properties (PGFXUI puiGFX, HWND hWndOwner);
  57. HRESULT GFXUI_CreateAddGFX (PPGFXUI ppuiGFXAdd, PGFXUI puiGFXSource);
  58. HRESULT GFXUI_Apply (PPGFXUILIST ppListApply, PPGFXUI ppuiListDelete);
  59. #ifdef __cplusplus
  60. } // extern "C"
  61. #endif
  62. // Helpers
  63. BOOL GFXUI_CanShowProperties (PGFXUI puiGFX);
  64. //
  65. // Local Function Prototypes
  66. //
  67. HRESULT InitList (DWORD dwMixID, DWORD dwType, PPGFXUILIST ppList);
  68. HRESULT AddNode (PCWSTR pszGfxFactoryDi, DWORD Id, REFCLSID rclsid, DWORD Type, DWORD Order, DWORD nFlags, PPGFXUILIST ppList);
  69. HRESULT AddFactoryNode (PCWSTR pszGfxFactoryDi, PPGFXUILIST ppList);
  70. void FreeNode (PPGFXUI ppNode);
  71. void FreeListNodes (PPGFXUI ppuiList);
  72. HRESULT AttachNode (PPGFXUILIST ppList, PGFXUI pNode);
  73. HRESULT CreateNode (PCWSTR pszName, PCWSTR pszGfxFactoryDi, PPGFXUI ppNode);
  74. HRESULT GetFriendlyName (PCWSTR pszGfxFactoryDi, PWSTR* ppszName);
  75. HKEY OpenGfxRegKey (PCWSTR pszGfxFactoryDi, REGSAM sam);
  76. UINT GetListSize (PGFXUI puiList);
  77. PTCHAR GetInterfaceName (DWORD dwMixerID);
  78. // Callback
  79. LONG GFXEnum (PVOID Context, DWORD Id, PCWSTR GfxFactoryDi, REFCLSID rclsid, DWORD Type, DWORD Order);