Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com --- include/Makefile.in | 1 + include/icodecapi.idl | 64 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 include/icodecapi.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 43a4fd98a42..eac1c2e0570 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -338,6 +338,7 @@ SOURCES = \ icftypes.idl \ icm.h \ icmpapi.h \ + icodecapi.idl \ idispids.h \ ieautomation.idl \ iextag.idl \ diff --git a/include/icodecapi.idl b/include/icodecapi.idl new file mode 100644 index 00000000000..7954b3fc2f6 --- /dev/null +++ b/include/icodecapi.idl @@ -0,0 +1,64 @@ +/* + * Copyright 2021 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +import "unknwn.idl"; +import "oaidl.idl"; + +interface IStream; + +struct CodecAPIEventData +{ + GUID guid; + DWORD dataLength; + DWORD reserved[3]; +}; + +[ + uuid(901db4c7-31ce-41a2-85dc-8fa0bf41b8da), + local, + object, + pointer_default(unique) +] +interface ICodecAPI : IUnknown +{ + HRESULT IsSupported ([in] const GUID *api); + HRESULT IsModifiable ([in] const GUID *api); + + HRESULT GetParameterRange ([in] const GUID *api, [out] VARIANT *min, [out] VARIANT *max, [out] VARIANT *delta); + HRESULT GetParameterValues ([in] const GUID *api, [out, size_is(,*count)] VARIANT **values, [out] ULONG *count); + HRESULT GetParameterValues ([in] const GUID *api, [out, size_is(,*count)] VARIANT **values, [out] ULONG *count); + HRESULT GetDefaultValue ([in] const GUID *api, [out] VARIANT *value); + + HRESULT GetValue ([in] const GUID *api, [out] VARIANT *value); + HRESULT SetValue ([in] const GUID *api, [in] VARIANT *value); + + HRESULT RegisterForEvent ([in] const GUID *api, [in] LONG_PTR userData); + HRESULT UnregisterForEvent ([in] const GUID *api); + + HRESULT SetAllDefaults(void); + + HRESULT SetValueWithNotify ([in] const GUID *api, [in] VARIANT *value, [out, size_is(,*count)] GUID **param, [out] ULONG *count); + + HRESULT SetAllDefaultsWithNotify([out, size_is(,*count)] GUID **param, [out] ULONG *count); + + HRESULT GetAllSettings([in] IStream *stream); + HRESULT SetAllSettings([in] IStream *stream); + + HRESULT SetAllSettingsWithNotify([in] IStream* stream, [out, size_is(,*count)] GUID **param, [out] ULONG *count); +}