master
  1/**
  2 * This file is part of the mingw-w64 runtime package.
  3 * No warranty is given; refer to the file DISCLAIMER within this package.
  4 *
  5 * dmksctrl.h
  6 *
  7 * Contributors:
  8 *   Created by Johannes Anderwald
  9 *   Reworked by Kai Tietz
 10 *
 11 */
 12
 13#ifndef _DMKSCTRL_
 14#define _DMKSCTRL_
 15
 16#include <winapifamily.h>
 17
 18#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 19
 20#include <pshpack8.h>
 21#include <objbase.h>
 22
 23#ifndef _NTRTL_
 24#ifndef DEFINE_GUIDEX
 25#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
 26#endif
 27
 28#ifndef STATICGUIDOF
 29#define STATICGUIDOF(guid) STATIC_##guid
 30#endif
 31#endif
 32
 33#ifndef STATIC_IID_IKsControl
 34#define STATIC_IID_IKsControl 0x28f54685, 0x06fd, 0x11d2, 0xb2, 0x7a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96
 35#endif
 36
 37#ifndef _KS_
 38#define _KS_
 39
 40typedef struct {
 41  __C89_NAMELESS union {
 42    __C89_NAMELESS struct {
 43      GUID Set;
 44      ULONG Id;
 45      ULONG Flags;
 46    };
 47    LONGLONG Alignment;
 48  };
 49} KSIDENTIFIER,*PKSIDENTIFIER;
 50
 51typedef KSIDENTIFIER KSPROPERTY,*PKSPROPERTY, KSMETHOD,*PKSMETHOD, KSEVENT,*PKSEVENT;
 52
 53#define KSMETHOD_TYPE_NONE 0x0
 54#define KSMETHOD_TYPE_READ 0x1
 55#define KSMETHOD_TYPE_SEND 0x1
 56#define KSMETHOD_TYPE_WRITE 0x2
 57#define KSMETHOD_TYPE_MODIFY 0x3
 58#define KSMETHOD_TYPE_SOURCE 0x4
 59#define KSMETHOD_TYPE_SETSUPPORT 0x100
 60#define KSMETHOD_TYPE_BASICSUPPORT 0x200
 61
 62#define KSPROPERTY_TYPE_GET 0x1
 63#define KSPROPERTY_TYPE_SET 0x2
 64#define KSPROPERTY_TYPE_SETSUPPORT 0x100
 65#define KSPROPERTY_TYPE_BASICSUPPORT 0x200
 66#define KSPROPERTY_TYPE_RELATIONS 0x400
 67#define KSPROPERTY_TYPE_SERIALIZESET 0x800
 68#define KSPROPERTY_TYPE_UNSERIALIZESET 0x1000
 69#define KSPROPERTY_TYPE_SERIALIZERAW 0x2000
 70#define KSPROPERTY_TYPE_UNSERIALIZERAW 0x4000
 71#define KSPROPERTY_TYPE_SERIALIZESIZE 0x8000
 72#define KSPROPERTY_TYPE_DEFAULTVALUES 0x10000
 73#define KSPROPERTY_TYPE_TOPOLOGY 0x10000000
 74#endif
 75
 76#ifndef _IKsControl_
 77#define _IKsControl_
 78
 79#ifdef DECLARE_INTERFACE_
 80#undef INTERFACE
 81#define INTERFACE IKsControl
 82
 83DECLARE_INTERFACE_ (IKsControl, IUnknown) {
 84#ifndef __cplusplus
 85  STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
 86  STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
 87  STDMETHOD_ (ULONG, Release) (THIS) PURE;
 88#endif
 89  STDMETHOD (KsProperty) (THIS_ PKSPROPERTY Property, ULONG PropertyLength, LPVOID PropertyData, ULONG DataLength, ULONG *BytesReturned) PURE;
 90  STDMETHOD (KsMethod) (THIS_ PKSMETHOD Method, ULONG MethodLength, LPVOID MethodData, ULONG DataLength, ULONG *BytesReturned) PURE;
 91  STDMETHOD (KsEvent) (THIS_ PKSEVENT Event, ULONG EventLength, LPVOID EventData, ULONG DataLength, ULONG *BytesReturned) PURE;
 92};
 93#endif
 94#endif
 95
 96#include <poppack.h>
 97
 98DEFINE_GUID (IID_IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2, 0x7a, 0x00, 0xa0, 0xc9, 0x22, 0x31, 0x96);
 99#ifndef _KSMEDIA_
100DEFINE_GUID (KSDATAFORMAT_SUBTYPE_MIDI, 0x1d262760, 0xe957, 0x11cf, 0xa5, 0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00);
101DEFINE_GUID (KSDATAFORMAT_SUBTYPE_DIRECTMUSIC, 0x1a82f8bc, 0x3f8b, 0x11d2, 0xb7, 0x74, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
102#endif
103
104#endif
105#endif