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
3.1 KiB

  1. // ISSUE-2000/10/25-FrankYe Default to unique pointers
  2. // Probably should default pointer to unique, then won't
  3. // need so much redefinition of data structures to have
  4. // unique embedded pointers
  5. [
  6. uuid(3faf4738-3a21-4307-b46c-fdda9bb8c0d5),
  7. version(1.0),
  8. endpoint("ncalrpc:[AudioSrv]")]
  9. interface AudioSrv
  10. {
  11. import "wtypes.idl";
  12. typedef __int3264 RHANDLE;
  13. typedef [string, unique] wchar_t * UNIQUE_PWSTR;
  14. typedef struct {
  15. unsigned long Data1;
  16. unsigned short Data2;
  17. unsigned short Data3;
  18. byte Data4[ 8 ];
  19. } RPC_GUID;
  20. typedef RPC_GUID RPC_CLSID;
  21. typedef struct _DILIST {
  22. int Count;
  23. [size_is(Count)] UNIQUE_PWSTR DeviceInterface[];
  24. } DILIST;
  25. typedef [unique] DILIST *UNIQUE_PDILIST;
  26. typedef struct _GFX {
  27. unsigned int Id;
  28. UNIQUE_PWSTR GfxFactoryDi;
  29. RPC_CLSID Clsid;
  30. unsigned int Type;
  31. unsigned int Order;
  32. } GFX, *PGFX;
  33. typedef struct _PGFXLIST {
  34. int Count;
  35. [size_is(Count)] GFX Gfx[];
  36. } GFXLIST;
  37. typedef [unique] GFXLIST *UNIQUE_PGFXLIST;
  38. long s_gfxCreateZoneFactoriesList([out] UNIQUE_PDILIST *ppDiList);
  39. long s_gfxCreateGfxFactoriesList([in, string] wchar_t *pZoneDi,
  40. [out] UNIQUE_PDILIST *ppDiList);
  41. long s_gfxCreateGfxList([in, string] wchar_t *pZoneDi,
  42. [out] UNIQUE_PGFXLIST *ppGfxList);
  43. long s_gfxRemoveGfx([in] unsigned long Id);
  44. long s_gfxAddGfx([in, string] wchar_t *ZoneFactoryDi,
  45. [in, string] wchar_t *GfxFactoryDi,
  46. [in] unsigned long Type,
  47. [in] unsigned long Order,
  48. [out] unsigned long *pNewId);
  49. long s_gfxModifyGfx([in] unsigned long Id,
  50. [in] unsigned long Order);
  51. // TODO learn how to pass HANDLE as OUT param
  52. long s_gfxOpenGfx([in] unsigned long dwProcessId,
  53. [in] unsigned long dwGfxId,
  54. [out] RHANDLE *pFileHandle);
  55. void s_gfxLogon([in] handle_t hBinding,
  56. [in] unsigned long dwProcessId);
  57. void s_gfxLogoff(void);
  58. typedef [context_handle] void * HANDLE_SESSIONNOTIFICATION;
  59. typedef [ref] HANDLE_SESSIONNOTIFICATION *PHANDLE_SESSIONNOTIFICATION;
  60. long s_winmmRegisterSessionNotificationEvent([in] unsigned long dwProcessId,
  61. [in] RHANDLE hEvent,
  62. [out] PHANDLE_SESSIONNOTIFICATION phSessionNotification);
  63. long s_winmmUnregisterSessionNotification([in, out] PHANDLE_SESSIONNOTIFICATION phSessionNotification);
  64. long s_winmmSessionConnectState([in] unsigned long dwProcessId, [out] int *ConnectState);
  65. long s_wdmDriverOpenDrvRegKey([in] DWORD dwProcessId, [in] LPCTSTR DeviceInterface, [in] ULONG samDesired, [out] RHANDLE *phkey);
  66. void s_winmmAdvisePreferredDeviceChange(void);
  67. long s_winmmGetPnpInfo([out] long *pcbPnpInfo, [out, size_is(,*pcbPnpInfo)] BYTE **PnpInfo);
  68. }