From be37726f56a2066fe7e142d50f82ef3b222f0ab6 Mon Sep 17 00:00:00 2001 From: Shogo Ishigami <29514220+nusu-github@users.noreply.github.com> Date: Thu, 27 Jun 2024 23:15:52 +0900 Subject: [PATCH] =?UTF-8?q?CLSID=E8=87=AA=E5=8B=95=E7=94=9F=E6=88=90?= =?UTF-8?q?=E3=80=81Vec=E3=81=B8=E3=81=AE=E5=A4=89=E6=8F=9B=E4=BD=9C?= =?UTF-8?q?=E6=A5=AD=E3=82=92=E5=8A=B9=E7=8E=87=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.metadata/CeVIO.Talk.RemoteService2.IDL | 690 ++-- crates/cevio-sys/.metadata/generate.proj | 6 +- .../winmd/CeVIO.Talk.RemoteService2.winmd | Bin 5632 -> 6144 bytes crates/cevio-sys/build.rs | 2 + crates/cevio-sys/src/bindings.rs | 2780 ----------------- crates/cevio-sys/src/lib.rs | 18 +- crates/cevio/src/cevio.rs | 52 +- 7 files changed, 453 insertions(+), 3095 deletions(-) delete mode 100644 crates/cevio-sys/src/bindings.rs diff --git a/crates/cevio-sys/.metadata/CeVIO.Talk.RemoteService2.IDL b/crates/cevio-sys/.metadata/CeVIO.Talk.RemoteService2.IDL index 2d2ce73..abd065c 100644 --- a/crates/cevio-sys/.metadata/CeVIO.Talk.RemoteService2.IDL +++ b/crates/cevio-sys/.metadata/CeVIO.Talk.RemoteService2.IDL @@ -1,291 +1,431 @@ +// Generated .IDL file (by the OLE/COM Object Viewer) +// +// typelib filename: CeVIO.Talk.RemoteService2.tlb + import "objidl.idl"; -import "oaidl.idl"; -import "propidl.idl"; [ - odl, - uuid(A409140F-B7A5-48EF-893E-8B971420E05A), - version(1.0), - dual, - oleautomation, + uuid(7E3B8901-0A65-44A0-9A9A-5F9F822D0716), + version(3.0), ] -interface IPhonemeData2 : IDispatch { - [id(0x60020000), propget] - HRESULT Phoneme([out, retval] BSTR* pRetVal); - [id(0x60020001), propget] - HRESULT StartTime([out, retval] double* pRetVal); - [id(0x60020002), propget] - HRESULT EndTime([out, retval] double* pRetVal); -}; +library CeVIO_Talk_RemoteService2 +{ + // Forward declare all types defined in this typelib + interface IPhonemeData2; + interface ISpeakingState2; + interface ITalkerComponent2; + interface ITalkerComponentArray2; + interface IStringArray2; + interface IPhonemeDataArray2; + interface IServiceControl2; + interface IServiceControl2V40; + interface IServiceControl2V40Part; + interface ITalker2; + interface ITalker2V40; + interface ITalker2V40Part; -[ - odl, - uuid(EE2E846D-0120-4A31-A95B-14004D7CF730), - version(1.0), - dual, - oleautomation, -] -interface ISpeakingState2 : IDispatch { - [id(0x60020000), propget] - HRESULT IsSucceeded([out, retval] VARIANT_BOOL* pRetVal); - [id(0x60020001), propget] - HRESULT IsCompleted([out, retval] VARIANT_BOOL* pRetVal); - [id(0x60020002)] - HRESULT Wait(); - [id(0x60020003)] - HRESULT Wait_2([in] double timeoutSeconds); -}; + [ + odl, + uuid(A409140F-B7A5-48EF-893E-8B971420E05A), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.IPhonemeData2") + ] + interface IPhonemeData2 : IDispatch { + [id(0x60020000), propget] + HRESULT Phoneme([out, retval] BSTR* pRetVal); + [id(0x60020001), propget] + HRESULT StartTime([out, retval] double* pRetVal); + [id(0x60020002), propget] + HRESULT EndTime([out, retval] double* pRetVal); + }; -[ - odl, - uuid(0FB8C1A2-4895-4EF1-9AC5-71CC45EC61B9), - version(1.0), - dual, - oleautomation, -] -interface ITalkerComponent2 : IDispatch { - [id(0x60020000), propget] - HRESULT Id([out, retval] BSTR* pRetVal); - [id(0x60020001), propget] - HRESULT Name([out, retval] BSTR* pRetVal); - [id(00000000), propget] - HRESULT Value([out, retval] unsigned long* pRetVal); - [id(00000000), propput] - HRESULT Value([in] unsigned long pRetVal); -}; + [ + uuid(9FF8647A-C6C9-49E6-88B9-1FC19EC13C13), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.PhonemeData2") + ] + coclass PhonemeData2 { + [default] interface IPhonemeData2; + }; -[ - odl, - uuid(50D7AB4E-0D5E-4FCE-B809-E784C58E5355), - version(1.0), - dual, - oleautomation, -] -interface ITalkerComponentArray2 : IDispatch { - [id(0x60020000), propget] - HRESULT Length([out, retval] long* pRetVal); - [id(0x60020001)] - HRESULT At( - [in] long index, - [out, retval] ITalkerComponent2** pRetVal); - [id(0x60020002)] - HRESULT ByName( - [in] BSTR Name, - [out, retval] ITalkerComponent2** pRetVal); - [id(0x60020003)] - HRESULT Duplicate([out, retval] ITalkerComponentArray2** pRetVal); -}; + [ + odl, + uuid(EE2E846D-0120-4A31-A95B-14004D7CF730), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.ISpeakingState2") + ] + interface ISpeakingState2 : IDispatch { + [id(0x60020000), propget] + HRESULT IsSucceeded([out, retval] VARIANT_BOOL* pRetVal); + [id(0x60020001), propget] + HRESULT IsCompleted([out, retval] VARIANT_BOOL* pRetVal); + [id(0x60020002)] + HRESULT Wait(); + [id(0x60020003), custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "Wait")] + HRESULT Wait_2([in] double timeoutSeconds); + }; -[ - odl, - uuid(37F03F6E-9C51-4E32-BF31-761C6BC87AAC), - version(1.0), - dual, - oleautomation, -] -interface IStringArray2 : IDispatch { - [id(0x60020000), propget] - HRESULT Length([out, retval] long* pRetVal); - [id(0x60020001)] - HRESULT At( - [in] long index, - [out, retval] BSTR* pRetVal); - [id(0x60020002)] - HRESULT Duplicate([out, retval] IStringArray2** pRetVal); -}; + [ + uuid(9C404814-1CF6-4D35-8078-006BD6548C6B), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.SpeakingState2") + ] + coclass SpeakingState2 { + [default] interface ISpeakingState2; + }; -[ - odl, - uuid(96C207D5-B547-485F-8538-96A5BE0C73B6), - version(1.0), - dual, - oleautomation, -] -interface IPhonemeDataArray2 : IDispatch { - [id(0x60020000), propget] - HRESULT Length([out, retval] long* pRetVal); - [id(0x60020001)] - HRESULT At( - [in] long index, - [out, retval] IPhonemeData2** pRetVal); - [id(0x60020002)] - HRESULT Duplicate([out, retval] IPhonemeDataArray2** pRetVal); -}; + [ + odl, + uuid(0FB8C1A2-4895-4EF1-9AC5-71CC45EC61B9), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.ITalkerComponent2") + ] + interface ITalkerComponent2 : IDispatch { + [id(0x60020000), propget] + HRESULT Id([out, retval] BSTR* pRetVal); + [id(0x60020001), propget] + HRESULT Name([out, retval] BSTR* pRetVal); + [id(00000000), propget] + HRESULT Value([out, retval] unsigned long* pRetVal); + [id(00000000), propput] + HRESULT Value([in] unsigned long pRetVal); + }; -[ - odl, - uuid(F726D3E2-5A0F-4CA7-9029-D3549D594350), - version(1.0), - dual, - oleautomation, -] -interface IServiceControl2 : IDispatch { - [id(0x60020000), propget] - HRESULT IsHostStarted([out, retval] VARIANT_BOOL* pRetVal); - [id(0x60020001)] - HRESULT StartHost( - [in] VARIANT_BOOL noWait, - [out, retval] long* pRetVal); - [id(0x60020002)] - HRESULT CloseHost([in] long mode); -}; + [ + uuid(5958DBCF-0DFD-41C6-9852-ACAC4ACC9E9D), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.TalkerComponent2") + ] + coclass TalkerComponent2 { + [default] interface ITalkerComponent2; + }; -[ - odl, - uuid(5318F2D5-9973-4A11-A2D7-80FB823B7F9F), - version(1.0), - dual, - oleautomation, -] -interface IServiceControl2V40 : IDispatch { - [id(0x60020000), propget] - HRESULT HostVersion([out, retval] BSTR* pRetVal); - [id(0x60020001), propget] - HRESULT InterfaceVersion([out, retval] BSTR* pRetVal); - [id(0x60020002), propget] - HRESULT IsHostStarted([out, retval] VARIANT_BOOL* pRetVal); - [id(0x60020003)] - HRESULT StartHost( - [in] VARIANT_BOOL noWait, - [out, retval] long* pRetVal); - [id(0x60020004)] - HRESULT CloseHost([in] long mode); -}; + [ + odl, + uuid(50D7AB4E-0D5E-4FCE-B809-E784C58E5355), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.ITalkerComponentArray2") + ] + interface ITalkerComponentArray2 : IDispatch { + [id(0x60020000), propget] + HRESULT Length([out, retval] long* pRetVal); + [id(0x60020001)] + HRESULT At( + [in] long index, + [out, retval] ITalkerComponent2** pRetVal); + [id(0x60020002)] + HRESULT ByName( + [in] BSTR Name, + [out, retval] ITalkerComponent2** pRetVal); + [id(0x60020003)] + HRESULT Duplicate([out, retval] ITalkerComponentArray2** pRetVal); + }; -[ - odl, - uuid(0D1EF04D-07EE-4CAF-A424-E7819BE41516), - version(1.0), - dual, - oleautomation, -] -interface IServiceControl2V40Part : IDispatch { - [id(0x60020000), propget] - HRESULT HostVersion([out, retval] BSTR* pRetVal); - [id(0x60020001), propget] - HRESULT InterfaceVersion([out, retval] BSTR* pRetVal); -}; + [ + uuid(134FD50F-8E05-42D3-A7E2-099758DE3811), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.TalkerComponentCollection2") + ] + coclass TalkerComponentCollection2 { + [default] interface ITalkerComponentArray2; + }; -[ - odl, - uuid(F5EED82F-A947-4B66-9411-4074EA111879), - version(1.0), - dual, - oleautomation, -] -interface ITalker2 : IDispatch { - [id(0x60020000), propget] - HRESULT Volume([out, retval] unsigned long* pRetVal); - [id(0x60020000), propput] - HRESULT Volume([in] unsigned long pRetVal); - [id(0x60020002), propget] - HRESULT Speed([out, retval] unsigned long* pRetVal); - [id(0x60020002), propput] - HRESULT Speed([in] unsigned long pRetVal); - [id(0x60020004), propget] - HRESULT Tone([out, retval] unsigned long* pRetVal); - [id(0x60020004), propput] - HRESULT Tone([in] unsigned long pRetVal); - [id(0x60020006), propget] - HRESULT Alpha([out, retval] unsigned long* pRetVal); - [id(0x60020006), propput] - HRESULT Alpha([in] unsigned long pRetVal); - [id(0x60020008), propget] - HRESULT Components([out, retval] ITalkerComponentArray2** pRetVal); - [id(0x60020009), propget] - HRESULT Cast([out, retval] BSTR* pRetVal); - [id(0x60020009), propput] - HRESULT Cast([in] BSTR pRetVal); - [id(0x6002000b), propget] - HRESULT AvailableCasts([out, retval] IStringArray2** pRetVal); - [id(0x6002000c)] - HRESULT Speak( - [in] BSTR text, - [out, retval] ISpeakingState2** pRetVal); - [id(0x6002000d)] - HRESULT Stop([out, retval] VARIANT_BOOL* pRetVal); - [id(0x6002000e)] - HRESULT GetTextDuration( - [in] BSTR text, - [out, retval] double* pRetVal); - [id(0x6002000f)] - HRESULT GetPhonemes( - [in] BSTR text, - [out, retval] IPhonemeDataArray2** pRetVal); - [id(0x60020010)] - HRESULT OutputWaveToFile( - [in] BSTR text, - [in] BSTR path, - [out, retval] VARIANT_BOOL* pRetVal); -}; + [ + odl, + uuid(37F03F6E-9C51-4E32-BF31-761C6BC87AAC), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.IStringArray2") + ] + interface IStringArray2 : IDispatch { + [id(0x60020000), propget] + HRESULT Length([out, retval] long* pRetVal); + [id(0x60020001)] + HRESULT At( + [in] long index, + [out, retval] BSTR* pRetVal); + [id(0x60020002)] + HRESULT Duplicate([out, retval] IStringArray2** pRetVal); + }; -[ - odl, - uuid(38C647A8-39EC-433E-94C2-83E532F10CA1), - version(1.0), - dual, - oleautomation, -] -interface ITalker2V40 : IDispatch { - [id(0x60020000), propget] - HRESULT Volume([out, retval] unsigned long* pRetVal); - [id(0x60020000), propput] - HRESULT Volume([in] unsigned long pRetVal); - [id(0x60020002), propget] - HRESULT Speed([out, retval] unsigned long* pRetVal); - [id(0x60020002), propput] - HRESULT Speed([in] unsigned long pRetVal); - [id(0x60020004), propget] - HRESULT Tone([out, retval] unsigned long* pRetVal); - [id(0x60020004), propput] - HRESULT Tone([in] unsigned long pRetVal); - [id(0x60020006), propget] - HRESULT Alpha([out, retval] unsigned long* pRetVal); - [id(0x60020006), propput] - HRESULT Alpha([in] unsigned long pRetVal); - [id(0x60020008), propget] - HRESULT ToneScale([out, retval] unsigned long* pRetVal); - [id(0x60020008), propput] - HRESULT ToneScale([in] unsigned long pRetVal); - [id(0x6002000a), propget] - HRESULT Components([out, retval] ITalkerComponentArray2** pRetVal); - [id(0x6002000b), propget] - HRESULT Cast([out, retval] BSTR* pRetVal); - [id(0x6002000b), propput] - HRESULT Cast([in] BSTR pRetVal); - [id(0x6002000d), propget] - HRESULT AvailableCasts([out, retval] IStringArray2** pRetVal); - [id(0x6002000e)] - HRESULT Speak( - [in] BSTR text, - [out, retval] ISpeakingState2** pRetVal); - [id(0x6002000f)] - HRESULT Stop([out, retval] VARIANT_BOOL* pRetVal); - [id(0x60020010)] - HRESULT GetTextDuration( - [in] BSTR text, - [out, retval] double* pRetVal); - [id(0x60020011)] - HRESULT GetPhonemes( - [in] BSTR text, - [out, retval] IPhonemeDataArray2** pRetVal); - [id(0x60020012)] - HRESULT OutputWaveToFile( - [in] BSTR text, - [in] BSTR path, - [out, retval] VARIANT_BOOL* pRetVal); -}; + [ + uuid(F877DB3C-B2FD-4A97-9F55-355C94350E9B), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.StringArray2") + ] + coclass StringArray2 { + [default] interface IStringArray2; + }; -[ - odl, - uuid(247E9BBE-530B-4E02-94F9-22AEC45B7AD5), - version(1.0), - dual, - oleautomation, -] -interface ITalker2V40Part : IDispatch { - [id(0x60020000), propget] - HRESULT ToneScale([out, retval] unsigned long* pRetVal); - [id(0x60020000), propput] - HRESULT ToneScale([in] unsigned long pRetVal); + [ + odl, + uuid(96C207D5-B547-485F-8538-96A5BE0C73B6), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.IPhonemeDataArray2") + ] + interface IPhonemeDataArray2 : IDispatch { + [id(0x60020000), propget] + HRESULT Length([out, retval] long* pRetVal); + [id(0x60020001)] + HRESULT At( + [in] long index, + [out, retval] IPhonemeData2** pRetVal); + [id(0x60020002)] + HRESULT Duplicate([out, retval] IPhonemeDataArray2** pRetVal); + }; + + [ + uuid(8C732FD9-C313-4F9B-BA0B-5E60A73A9A30), + version(1.0), + noncreatable, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.PhonemeDataArray2") + ] + coclass PhonemeDataArray2 { + [default] interface IPhonemeDataArray2; + }; + + [ + odl, + uuid(F726D3E2-5A0F-4CA7-9029-D3549D594350), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.IServiceControl2") + ] + interface IServiceControl2 : IDispatch { + [id(0x60020000), propget] + HRESULT IsHostStarted([out, retval] VARIANT_BOOL* pRetVal); + [id(0x60020001)] + HRESULT StartHost( + [in] VARIANT_BOOL noWait, + [out, retval] long* pRetVal); + [id(0x60020002)] + HRESULT CloseHost([in] long mode); + }; + + [ + odl, + uuid(5318F2D5-9973-4A11-A2D7-80FB823B7F9F), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.IServiceControl2V40") + + ] + interface IServiceControl2V40 : IDispatch { + [id(0x60020000), propget] + HRESULT HostVersion([out, retval] BSTR* pRetVal); + [id(0x60020001), propget] + HRESULT InterfaceVersion([out, retval] BSTR* pRetVal); + [id(0x60020002), propget] + HRESULT IsHostStarted([out, retval] VARIANT_BOOL* pRetVal); + [id(0x60020003)] + HRESULT StartHost( + [in] VARIANT_BOOL noWait, + [out, retval] long* pRetVal); + [id(0x60020004)] + HRESULT CloseHost([in] long mode); + }; + + [ + odl, + uuid(0D1EF04D-07EE-4CAF-A424-E7819BE41516), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.IServiceControl2V40Part") + ] + interface IServiceControl2V40Part : IDispatch { + [id(0x60020000), propget] + HRESULT HostVersion([out, retval] BSTR* pRetVal); + [id(0x60020001), propget] + HRESULT InterfaceVersion([out, retval] BSTR* pRetVal); + }; + + [ + uuid(B75AFE5E-DD52-42E9-A6F5-7BE5F6FE8EDB), + version(1.0), + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.ServiceControl2") + ] + coclass ServiceControl2 { + [default] interface IServiceControl2; + interface IServiceControl2V40; + interface IServiceControl2V40Part; + }; + + [ + uuid(3D882C2B-9C6D-480A-8E7E-1F017EE3D580), + version(1.0), + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.ServiceControl2V40") + ] + coclass ServiceControl2V40 { + interface IServiceControl2; + [default] interface IServiceControl2V40; + interface IServiceControl2V40Part; + }; + + [ + odl, + uuid(F5EED82F-A947-4B66-9411-4074EA111879), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.ITalker2") + ] + interface ITalker2 : IDispatch { + [id(0x60020000), propget] + HRESULT Volume([out, retval] unsigned long* pRetVal); + [id(0x60020000), propput] + HRESULT Volume([in] unsigned long pRetVal); + [id(0x60020002), propget] + HRESULT Speed([out, retval] unsigned long* pRetVal); + [id(0x60020002), propput] + HRESULT Speed([in] unsigned long pRetVal); + [id(0x60020004), propget] + HRESULT Tone([out, retval] unsigned long* pRetVal); + [id(0x60020004), propput] + HRESULT Tone([in] unsigned long pRetVal); + [id(0x60020006), propget] + HRESULT Alpha([out, retval] unsigned long* pRetVal); + [id(0x60020006), propput] + HRESULT Alpha([in] unsigned long pRetVal); + [id(0x60020008), propget] + HRESULT Components([out, retval] ITalkerComponentArray2** pRetVal); + [id(0x60020009), propget] + HRESULT Cast([out, retval] BSTR* pRetVal); + [id(0x60020009), propput] + HRESULT Cast([in] BSTR pRetVal); + [id(0x6002000b), propget] + HRESULT AvailableCasts([out, retval] IStringArray2** pRetVal); + [id(0x6002000c)] + HRESULT Speak( + [in] BSTR text, + [out, retval] ISpeakingState2** pRetVal); + [id(0x6002000d)] + HRESULT Stop([out, retval] VARIANT_BOOL* pRetVal); + [id(0x6002000e)] + HRESULT GetTextDuration( + [in] BSTR text, + [out, retval] double* pRetVal); + [id(0x6002000f)] + HRESULT GetPhonemes( + [in] BSTR text, + [out, retval] IPhonemeDataArray2** pRetVal); + [id(0x60020010)] + HRESULT OutputWaveToFile( + [in] BSTR text, + [in] BSTR path, + [out, retval] VARIANT_BOOL* pRetVal); + }; + + [ + odl, + uuid(38C647A8-39EC-433E-94C2-83E532F10CA1), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.ITalker2V40") + ] + interface ITalker2V40 : IDispatch { + [id(0x60020000), propget] + HRESULT Volume([out, retval] unsigned long* pRetVal); + [id(0x60020000), propput] + HRESULT Volume([in] unsigned long pRetVal); + [id(0x60020002), propget] + HRESULT Speed([out, retval] unsigned long* pRetVal); + [id(0x60020002), propput] + HRESULT Speed([in] unsigned long pRetVal); + [id(0x60020004), propget] + HRESULT Tone([out, retval] unsigned long* pRetVal); + [id(0x60020004), propput] + HRESULT Tone([in] unsigned long pRetVal); + [id(0x60020006), propget] + HRESULT Alpha([out, retval] unsigned long* pRetVal); + [id(0x60020006), propput] + HRESULT Alpha([in] unsigned long pRetVal); + [id(0x60020008), propget] + HRESULT ToneScale([out, retval] unsigned long* pRetVal); + [id(0x60020008), propput] + HRESULT ToneScale([in] unsigned long pRetVal); + [id(0x6002000a), propget] + HRESULT Components([out, retval] ITalkerComponentArray2** pRetVal); + [id(0x6002000b), propget] + HRESULT Cast([out, retval] BSTR* pRetVal); + [id(0x6002000b), propput] + HRESULT Cast([in] BSTR pRetVal); + [id(0x6002000d), propget] + HRESULT AvailableCasts([out, retval] IStringArray2** pRetVal); + [id(0x6002000e)] + HRESULT Speak( + [in] BSTR text, + [out, retval] ISpeakingState2** pRetVal); + [id(0x6002000f)] + HRESULT Stop([out, retval] VARIANT_BOOL* pRetVal); + [id(0x60020010)] + HRESULT GetTextDuration( + [in] BSTR text, + [out, retval] double* pRetVal); + [id(0x60020011)] + HRESULT GetPhonemes( + [in] BSTR text, + [out, retval] IPhonemeDataArray2** pRetVal); + [id(0x60020012)] + HRESULT OutputWaveToFile( + [in] BSTR text, + [in] BSTR path, + [out, retval] VARIANT_BOOL* pRetVal); + }; + + [ + odl, + uuid(247E9BBE-530B-4E02-94F9-22AEC45B7AD5), + version(1.0), + dual, + oleautomation, + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.ITalker2V40Part") + ] + interface ITalker2V40Part : IDispatch { + [id(0x60020000), propget] + HRESULT ToneScale([out, retval] unsigned long* pRetVal); + [id(0x60020000), propput] + HRESULT ToneScale([in] unsigned long pRetVal); + }; + + [ + uuid(EFBCD077-659B-4E6B-A8A9-FE88BE66308C), + version(1.0), + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.Talker2") + ] + coclass Talker2 { + [default] interface ITalker2; + interface ITalker2V40; + interface ITalker2V40Part; + }; + + [ + uuid(60698BB3-F7BD-4119-B79E-482FF352EF3F), + version(1.0), + custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "CeVIO.Talk.RemoteService2.InteroperableComponents.Talker2V40") + ] + coclass Talker2V40 { + interface ITalker2; + [default] interface ITalker2V40; + interface ITalker2V40Part; + }; }; diff --git a/crates/cevio-sys/.metadata/generate.proj b/crates/cevio-sys/.metadata/generate.proj index bb418aa..3aca2b7 100644 --- a/crates/cevio-sys/.metadata/generate.proj +++ b/crates/cevio-sys/.metadata/generate.proj @@ -4,13 +4,15 @@ ../.windows/winmd/CeVIO.Talk.RemoteService2.winmd 255.255.255.255 $(CompiledHeadersDir) + false - - + + @(Headers) CeVIO.Talk.RemoteService2 + true diff --git a/crates/cevio-sys/.windows/winmd/CeVIO.Talk.RemoteService2.winmd b/crates/cevio-sys/.windows/winmd/CeVIO.Talk.RemoteService2.winmd index b3c5c23cee9617a6b88160b183d6f6adf8518f94..51de2e6468a12c269577e659a89a39d8a70c8d4f 100644 GIT binary patch literal 6144 zcmeHLdvH|c6+idhU9y{G6E;C=MhgoGZJFu?uBf#*&BB6 z@>C2Z3{){<2SEivC5TeS&R8v|EiDkY>R`*1q0*tYj>Jbh7PK9N+6q1A+y~hRj*QH- zfAoXz-19r%Ip;g)e2=|1wR1Lt1OPVd7cTRu&2qL`Dde1_0 zws%1Eegvvb6w%`TwP-0m%qk4f?Iu z*~`;1fZWTEe7V#E;OM8}KwRAqdo^X5hPbB?36Ay86%jWNzv1EuwOe;3eedPUx}>q>K%rQ1uM}CxOp|@l+d%9bLoq*l~Noqu41H)P?ETX`FZ*5%fFnoCCw z2D0(k!v=CNBEO`W%ZU6F8qA31Aymj{zJZ1^5)4$t=s`)>9L8vaG3H@(oq@(N+HGk1 z!6^)e(Kt35XQ*T}BLi*DK#McbD;emS3?yeDF#|o2freUWwNL;vF|wOE7EBsj+LeX% z)z^s7aPbDdt@N=%M0VDrv8h5OWLYSTi1!3}vEL`v@s40S`v?eHXFBbgC}cyPWp@q{ z?Kx^`*E%r{co?{)T@Q&VKBffIu07&L>ma7>tE4Tw-+0Up;uCNKThZ(-;vN`gBDV9G z2!dgG`6=9FB3BZ#^_s|jOez%c_T-kfzb@T~$HG9a z^H|Rb7CMFKHVcs#KBg#1vzOb=G4?XWMC_%^Lgb~wLN{a0=(JM9>SE0*b%3Z|h+DT{ z+BI890i8!`X_pV}YIK082JPxBB%)n|g>uoZ(L!^jJrJ_cJ}DcTE%Yl%7G_zfO*#s5 zOk{siY!&8OXq;3DEfyLfB?Q?*cSMf?v@uT)cO$j@Mn#Ejk&0DX4uF52Sy& z8A<-GB%%*E`U zQ=6S65vDy%`HI7k9nrHeCCHQbr4t(ar zzC$d4wS4!`-ZPs3FPR_^R1!;~Va2D$wS*cgZN6nJ1VVDGO-V36Q;upar4VRnRpUy# z;+HkK6nsi^px#Sb-bSTe)fB@C>IFL#xeed^gPN=mm-Ekiu-;H$S`TV(Tq+ioX27wWZlc~5(U zanql@YY5cdeGWfebeB%naH7Uj2lwYcT>VMiW3MhgGVLSzB~!!U@Q7}^Bfns6_>GuQcUmAXJ`@zYDEF4l@w(Zj!C)9Q>gSOv? zHsGfX`uy$5S+hTPrOO{_+`D)Bk?oJOF#mXcp}qT9#qM{VTW0-fqML=2PcA+G`SV+* z?`WDZchiKttt|Y*nB<1S!&~cL&Y3rV_xB#d^+liaF3j22`1W5ao<6(sy-zQ6pJd^8 zZ(4sx`?l=r?p4EuRi}=3vT*6qpP$*PwADTH?1l9Q7LLWQ5j6kl{n7cqI9F7@Z+rEa ze>9$%YW`aNH=mmMnTqEGAkNZWPgTEC&?i>8(~wP;sd%UUTT5(<@vUDw?!0oo-Qj&U9H#P4L>k+s%3N-8mn8p9&cNdZowojwq zE{DA`Z2+jea?jgKHGsebjR4}d2{>XK_t}WgsYtMIVy=j|X#ndZc_U*b-545BOu5a$ zYeH)PXqo`u75gKqD>jNv20wIbxCXFf5(y`?0P5|WfUm|j#aA^+t~J$dXjx=QWa*Nn zwYQUnA2LXX%K>V3;5<|SjNsy{iQDMv{x>G1{m&nhO|hcKb9&*SV;c(SxpL6n06~ zP>1MN9H9lrp;iiAkjfD|trYUf^Z9IW`u;A>$NBU6!cq&A3Dky&X8AB7s)Or(m&%So8fJLd`#6ZJbu}uaN%+AMjAJDnbqaJIOz0Nq5)`3FpykRDNC@<>QVzWW z9a41ZZh=~qQ?SlM{(bVGbgw{_N(=M}^e;It=>pxXY?o33{ZiU14R|O-*=`buvds!a z*;)cowwnc_Z25RWNhw6x7DXRryG0<%cB??oq0j9Cy@WnLDG*iS0fDFzy9A<2>=uYB zfe#{XC9cG$1foiORv@axLjqAHz90});$aVkD6)eBQDl$0NX8v}&^g}llzVr)~g(oZoRWg1mTGR$<8Y1l`SJxoWK`uuFgbeQQV)94J6k1+L>5g%nb%rqQe zE2hIt!$Fb^GYywB&vcY&s)8gVOnsGX%XEZkG(?g;Onoz%XX>kBo~aLCHZcaKBTU08 zNm5Kln1-uKGR$<8DV>00?jP~=#t85+yjQ^s$5{Xy`TU^u<24B$9|y6xksnGYjb_WV z^H!#=ci9q%CG^ZDBhUOAJ#F{ZL9BbwGL5Ve)or~FnvLFASA?`8Jx12D4c7_k#dC(f z3E!6Ewr(4QC%YHEJ*L^p=FqcgPadN&pVzmNIlp>)$camsxZ;m?SgB&hsE6Lho>*gN zqOYl|s~wu+i5_U{Ss7p5o`3Ka-o+Oip+mbf3sjJs9 z;`Ez_U9feGE1v@TGUZSbSgv?d&lo)XIO;0e7|$Ag$VgZ%Y3!z$I`ympOMxeYSQo2k$Bm?ArV6C#7Ont|xpaZY z5X;bkjYE1mqxWZwX1!penhjn38;zt5rbT;b+D^cY){QH}+XuAS7*oB-1y`Dx=8RP^ zC?kvzEtuoab6mj2ea^0aF?aIv!2bH!{a8bD-n?xA5b_aT#QdAZk4IlcQB%Y`fI?rI$CKSb0JJfu|7&XtL@LR8`Lk z5~Bu@bH=E?3C%jc`D*tkLci)d8a%(}<_2s(GAJ-1u zxasHHz9qD(1FqI$)Ow}t_`%la``Y&2cJT1A%EI?uEp=X1fWr)+&hJm({8rVvuea~J z^>pGZYn$<#f(-vMH(q#5UG>zfJ1;+Y#{*BWu;a}Ip^IhDwGW5S?>aPk9e(L?%4$&L zQOTiVMj;_uT%jqHBns7e==nouF8;OknGJUyP#f$&s&nx*9);g%E!}qE_WI@n$9KO` zcd7D879KmaBU}-eI}iM0(X%7>Y!dit8Jd^D5k r(9{W diff --git a/crates/cevio-sys/build.rs b/crates/cevio-sys/build.rs index c906738..485abea 100644 --- a/crates/cevio-sys/build.rs +++ b/crates/cevio-sys/build.rs @@ -11,6 +11,8 @@ fn main() { "CeVIO.Talk.RemoteService2", "--config", "implement", + "--config", + "vtbl", ]) .unwrap(); } diff --git a/crates/cevio-sys/src/bindings.rs b/crates/cevio-sys/src/bindings.rs deleted file mode 100644 index 3fd491b..0000000 --- a/crates/cevio-sys/src/bindings.rs +++ /dev/null @@ -1,2780 +0,0 @@ -// Bindings generated by `windows-bindgen` 0.57.0 - -#![allow( - non_snake_case, - non_upper_case_globals, - non_camel_case_types, - dead_code, - clippy::all -)] -pub mod Talk { - pub mod RemoteService2 { - windows_core::imp::define_interface!( - IPhonemeData2, - IPhonemeData2_Vtbl, - 0xa409140f_b7a5_48ef_893e_8b971420e05a - ); - impl core::ops::Deref for IPhonemeData2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IPhonemeData2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IPhonemeData2 { - pub unsafe fn Phoneme(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Phoneme)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn StartTime(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).StartTime)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn EndTime(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).EndTime)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - } - #[repr(C)] - pub struct IPhonemeData2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Phoneme: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub StartTime: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut f64, - ) -> windows_core::HRESULT, - pub EndTime: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut f64, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - IPhonemeDataArray2, - IPhonemeDataArray2_Vtbl, - 0x96c207d5_b547_485f_8538_96a5be0c73b6 - ); - impl core::ops::Deref for IPhonemeDataArray2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IPhonemeDataArray2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IPhonemeDataArray2 { - pub unsafe fn Length(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Length)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn At(&self, index: i32) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).At)( - windows_core::Interface::as_raw(self), - index, - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Duplicate(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Duplicate)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - } - #[repr(C)] - pub struct IPhonemeDataArray2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Length: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut i32, - ) -> windows_core::HRESULT, - pub At: unsafe extern "system" fn( - *mut core::ffi::c_void, - i32, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Duplicate: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - IServiceControl2, - IServiceControl2_Vtbl, - 0xf726d3e2_5a0f_4ca7_9029_d3549d594350 - ); - impl core::ops::Deref for IServiceControl2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IServiceControl2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IServiceControl2 { - pub unsafe fn IsHostStarted( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).IsHostStarted)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn StartHost(&self, nowait: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).StartHost)( - windows_core::Interface::as_raw(self), - nowait.param().abi(), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn CloseHost(&self, mode: i32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).CloseHost)( - windows_core::Interface::as_raw(self), - mode, - ) - .ok() - } - } - #[repr(C)] - pub struct IServiceControl2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub IsHostStarted: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub StartHost: unsafe extern "system" fn( - *mut core::ffi::c_void, - windows::Win32::Foundation::VARIANT_BOOL, - *mut i32, - ) -> windows_core::HRESULT, - pub CloseHost: - unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - IServiceControl2V40, - IServiceControl2V40_Vtbl, - 0x5318f2d5_9973_4a11_a2d7_80fb823b7f9f - ); - impl core::ops::Deref for IServiceControl2V40 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IServiceControl2V40, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IServiceControl2V40 { - pub unsafe fn HostVersion(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).HostVersion)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn InterfaceVersion(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).InterfaceVersion)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn IsHostStarted( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).IsHostStarted)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn StartHost(&self, nowait: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).StartHost)( - windows_core::Interface::as_raw(self), - nowait.param().abi(), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn CloseHost(&self, mode: i32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).CloseHost)( - windows_core::Interface::as_raw(self), - mode, - ) - .ok() - } - } - #[repr(C)] - pub struct IServiceControl2V40_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub HostVersion: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub InterfaceVersion: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub IsHostStarted: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub StartHost: unsafe extern "system" fn( - *mut core::ffi::c_void, - windows::Win32::Foundation::VARIANT_BOOL, - *mut i32, - ) -> windows_core::HRESULT, - pub CloseHost: - unsafe extern "system" fn(*mut core::ffi::c_void, i32) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - IServiceControl2V40Part, - IServiceControl2V40Part_Vtbl, - 0x0d1ef04d_07ee_4caf_a424_e7819be41516 - ); - impl core::ops::Deref for IServiceControl2V40Part { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IServiceControl2V40Part, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IServiceControl2V40Part { - pub unsafe fn HostVersion(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).HostVersion)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn InterfaceVersion(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).InterfaceVersion)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - } - #[repr(C)] - pub struct IServiceControl2V40Part_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub HostVersion: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub InterfaceVersion: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ISpeakingState2, - ISpeakingState2_Vtbl, - 0xee2e846d_0120_4a31_a95b_14004d7cf730 - ); - impl core::ops::Deref for ISpeakingState2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ISpeakingState2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ISpeakingState2 { - pub unsafe fn IsSucceeded( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).IsSucceeded)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn IsCompleted( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).IsCompleted)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn Wait(&self) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).Wait)(windows_core::Interface::as_raw(self)) - .ok() - } - pub unsafe fn Wait_2(&self, timeoutseconds: f64) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).Wait_2)( - windows_core::Interface::as_raw(self), - timeoutseconds, - ) - .ok() - } - } - #[repr(C)] - pub struct ISpeakingState2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub IsSucceeded: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub IsCompleted: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub Wait: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT, - pub Wait_2: - unsafe extern "system" fn(*mut core::ffi::c_void, f64) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - IStringArray2, - IStringArray2_Vtbl, - 0x37f03f6e_9c51_4e32_bf31_761c6bc87aac - ); - impl core::ops::Deref for IStringArray2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - IStringArray2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl IStringArray2 { - pub unsafe fn Length(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Length)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn At(&self, index: i32) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).At)( - windows_core::Interface::as_raw(self), - index, - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Duplicate(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Duplicate)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - } - #[repr(C)] - pub struct IStringArray2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Length: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut i32, - ) -> windows_core::HRESULT, - pub At: unsafe extern "system" fn( - *mut core::ffi::c_void, - i32, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub Duplicate: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ITalker2, - ITalker2_Vtbl, - 0xf5eed82f_a947_4b66_9411_4074ea111879 - ); - impl core::ops::Deref for ITalker2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ITalker2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ITalker2 { - pub unsafe fn Volume(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Volume)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetVolume(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetVolume)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Speed(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Speed)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetSpeed(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetSpeed)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Tone(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Tone)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetTone(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetTone)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Alpha(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Alpha)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetAlpha(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetAlpha)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Components(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Components)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Cast(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Cast)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn SetCast(&self, pretval: P0) -> windows_core::Result<()> - where - P0: windows_core::Param, - { - (windows_core::Interface::vtable(self).SetCast)( - windows_core::Interface::as_raw(self), - pretval.param().abi(), - ) - .ok() - } - pub unsafe fn AvailableCasts(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).AvailableCasts)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Speak(&self, text: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Speak)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Stop( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Stop)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn GetTextDuration(&self, text: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).GetTextDuration)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn GetPhonemes( - &self, - text: P0, - ) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).GetPhonemes)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn OutputWaveToFile( - &self, - text: P0, - path: P1, - ) -> windows_core::Result - where - P0: windows_core::Param, - P1: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).OutputWaveToFile)( - windows_core::Interface::as_raw(self), - text.param().abi(), - path.param().abi(), - &mut result__, - ) - .map(|| result__) - } - } - #[repr(C)] - pub struct ITalker2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Volume: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetVolume: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Speed: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetSpeed: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Tone: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetTone: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Alpha: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetAlpha: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Components: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Cast: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub SetCast: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub AvailableCasts: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Speak: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Stop: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub GetTextDuration: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut f64, - ) -> windows_core::HRESULT, - pub GetPhonemes: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub OutputWaveToFile: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - core::mem::MaybeUninit, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ITalker2V40, - ITalker2V40_Vtbl, - 0x38c647a8_39ec_433e_94c2_83e532f10ca1 - ); - impl core::ops::Deref for ITalker2V40 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ITalker2V40, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ITalker2V40 { - pub unsafe fn Volume(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Volume)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetVolume(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetVolume)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Speed(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Speed)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetSpeed(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetSpeed)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Tone(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Tone)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetTone(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetTone)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Alpha(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Alpha)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetAlpha(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetAlpha)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn ToneScale(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).ToneScale)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetToneScale(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetToneScale)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - pub unsafe fn Components(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Components)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Cast(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Cast)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn SetCast(&self, pretval: P0) -> windows_core::Result<()> - where - P0: windows_core::Param, - { - (windows_core::Interface::vtable(self).SetCast)( - windows_core::Interface::as_raw(self), - pretval.param().abi(), - ) - .ok() - } - pub unsafe fn AvailableCasts(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).AvailableCasts)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Speak(&self, text: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Speak)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Stop( - &self, - ) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Stop)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn GetTextDuration(&self, text: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).GetTextDuration)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn GetPhonemes( - &self, - text: P0, - ) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).GetPhonemes)( - windows_core::Interface::as_raw(self), - text.param().abi(), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn OutputWaveToFile( - &self, - text: P0, - path: P1, - ) -> windows_core::Result - where - P0: windows_core::Param, - P1: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).OutputWaveToFile)( - windows_core::Interface::as_raw(self), - text.param().abi(), - path.param().abi(), - &mut result__, - ) - .map(|| result__) - } - } - #[repr(C)] - pub struct ITalker2V40_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Volume: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetVolume: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Speed: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetSpeed: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Tone: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetTone: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Alpha: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetAlpha: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub ToneScale: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetToneScale: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - pub Components: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Cast: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub SetCast: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub AvailableCasts: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Speak: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Stop: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - pub GetTextDuration: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut f64, - ) -> windows_core::HRESULT, - pub GetPhonemes: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub OutputWaveToFile: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - core::mem::MaybeUninit, - *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ITalker2V40Part, - ITalker2V40Part_Vtbl, - 0x247e9bbe_530b_4e02_94f9_22aec45b7ad5 - ); - impl core::ops::Deref for ITalker2V40Part { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ITalker2V40Part, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ITalker2V40Part { - pub unsafe fn ToneScale(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).ToneScale)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetToneScale(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetToneScale)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - } - #[repr(C)] - pub struct ITalker2V40Part_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub ToneScale: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetToneScale: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ITalkerComponent2, - ITalkerComponent2_Vtbl, - 0x0fb8c1a2_4895_4ef1_9ac5_71cc45ec61b9 - ); - impl core::ops::Deref for ITalkerComponent2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ITalkerComponent2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ITalkerComponent2 { - pub unsafe fn Id(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Id)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Name(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Name)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Value(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Value)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn SetValue(&self, pretval: u32) -> windows_core::Result<()> { - (windows_core::Interface::vtable(self).SetValue)( - windows_core::Interface::as_raw(self), - pretval, - ) - .ok() - } - } - #[repr(C)] - pub struct ITalkerComponent2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Id: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub Name: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT, - pub Value: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut u32, - ) -> windows_core::HRESULT, - pub SetValue: - unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT, - } - windows_core::imp::define_interface!( - ITalkerComponentArray2, - ITalkerComponentArray2_Vtbl, - 0x50d7ab4e_0d5e_4fce_b809_e784c58e5355 - ); - impl core::ops::Deref for ITalkerComponentArray2 { - type Target = windows::Win32::System::Com::IDispatch; - fn deref(&self) -> &Self::Target { - unsafe { core::mem::transmute(self) } - } - } - windows_core::imp::interface_hierarchy!( - ITalkerComponentArray2, - windows_core::IUnknown, - windows::Win32::System::Com::IDispatch - ); - impl ITalkerComponentArray2 { - pub unsafe fn Length(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Length)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .map(|| result__) - } - pub unsafe fn At(&self, index: i32) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).At)( - windows_core::Interface::as_raw(self), - index, - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn ByName(&self, name: P0) -> windows_core::Result - where - P0: windows_core::Param, - { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).ByName)( - windows_core::Interface::as_raw(self), - name.param().abi(), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - pub unsafe fn Duplicate(&self) -> windows_core::Result { - let mut result__ = core::mem::zeroed(); - (windows_core::Interface::vtable(self).Duplicate)( - windows_core::Interface::as_raw(self), - &mut result__, - ) - .and_then(|| windows_core::Type::from_abi(result__)) - } - } - #[repr(C)] - pub struct ITalkerComponentArray2_Vtbl { - pub base__: windows::Win32::System::Com::IDispatch_Vtbl, - pub Length: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut i32, - ) -> windows_core::HRESULT, - pub At: unsafe extern "system" fn( - *mut core::ffi::c_void, - i32, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub ByName: unsafe extern "system" fn( - *mut core::ffi::c_void, - core::mem::MaybeUninit, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - pub Duplicate: unsafe extern "system" fn( - *mut core::ffi::c_void, - *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT, - } - pub trait IPhonemeData2_Impl: Sized + windows::Win32::System::Com::IDispatch_Impl { - fn Phoneme(&self) -> windows_core::Result; - fn StartTime(&self) -> windows_core::Result; - fn EndTime(&self) -> windows_core::Result; - } - impl windows_core::RuntimeName for IPhonemeData2 {} - impl IPhonemeData2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeData2_Impl, - const OFFSET: isize, - >() -> IPhonemeData2_Vtbl { - unsafe extern "system" fn Phoneme< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeData2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeData2_Impl::Phoneme(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn StartTime< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeData2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut f64, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeData2_Impl::StartTime(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn EndTime< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeData2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut f64, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeData2_Impl::EndTime(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Phoneme: Phoneme::, - StartTime: StartTime::, - EndTime: EndTime::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait IPhonemeDataArray2_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn Length(&self) -> windows_core::Result; - fn At(&self, index: i32) -> windows_core::Result; - fn Duplicate(&self) -> windows_core::Result; - } - impl windows_core::RuntimeName for IPhonemeDataArray2 {} - impl IPhonemeDataArray2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeDataArray2_Impl, - const OFFSET: isize, - >() -> IPhonemeDataArray2_Vtbl { - unsafe extern "system" fn Length< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeDataArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeDataArray2_Impl::Length(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn At< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeDataArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - index: i32, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeDataArray2_Impl::At(this, core::mem::transmute_copy(&index)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Duplicate< - Identity: windows_core::IUnknownImpl, - Impl: IPhonemeDataArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IPhonemeDataArray2_Impl::Duplicate(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Length: Length::, - At: At::, - Duplicate: Duplicate::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait IServiceControl2_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn IsHostStarted( - &self, - ) -> windows_core::Result; - fn StartHost( - &self, - nowait: windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::Result; - fn CloseHost(&self, mode: i32) -> windows_core::Result<()>; - } - impl windows_core::RuntimeName for IServiceControl2 {} - impl IServiceControl2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2_Impl, - const OFFSET: isize, - >() -> IServiceControl2_Vtbl { - unsafe extern "system" fn IsHostStarted< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2_Impl::IsHostStarted(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn StartHost< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - nowait: windows::Win32::Foundation::VARIANT_BOOL, - pretval: *mut i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2_Impl::StartHost(this, core::mem::transmute_copy(&nowait)) - { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn CloseHost< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - mode: i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - IServiceControl2_Impl::CloseHost(this, core::mem::transmute_copy(&mode)).into() - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - IsHostStarted: IsHostStarted::, - StartHost: StartHost::, - CloseHost: CloseHost::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait IServiceControl2V40_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn HostVersion(&self) -> windows_core::Result; - fn InterfaceVersion(&self) -> windows_core::Result; - fn IsHostStarted( - &self, - ) -> windows_core::Result; - fn StartHost( - &self, - nowait: windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::Result; - fn CloseHost(&self, mode: i32) -> windows_core::Result<()>; - } - impl windows_core::RuntimeName for IServiceControl2V40 {} - impl IServiceControl2V40_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >() -> IServiceControl2V40_Vtbl { - unsafe extern "system" fn HostVersion< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40_Impl::HostVersion(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn InterfaceVersion< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40_Impl::InterfaceVersion(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn IsHostStarted< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40_Impl::IsHostStarted(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn StartHost< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - nowait: windows::Win32::Foundation::VARIANT_BOOL, - pretval: *mut i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40_Impl::StartHost( - this, - core::mem::transmute_copy(&nowait), - ) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn CloseHost< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - mode: i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - IServiceControl2V40_Impl::CloseHost(this, core::mem::transmute_copy(&mode)) - .into() - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - HostVersion: HostVersion::, - InterfaceVersion: InterfaceVersion::, - IsHostStarted: IsHostStarted::, - StartHost: StartHost::, - CloseHost: CloseHost::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait IServiceControl2V40Part_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn HostVersion(&self) -> windows_core::Result; - fn InterfaceVersion(&self) -> windows_core::Result; - } - impl windows_core::RuntimeName for IServiceControl2V40Part {} - impl IServiceControl2V40Part_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40Part_Impl, - const OFFSET: isize, - >() -> IServiceControl2V40Part_Vtbl { - unsafe extern "system" fn HostVersion< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40Part_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40Part_Impl::HostVersion(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn InterfaceVersion< - Identity: windows_core::IUnknownImpl, - Impl: IServiceControl2V40Part_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IServiceControl2V40Part_Impl::InterfaceVersion(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - HostVersion: HostVersion::, - InterfaceVersion: InterfaceVersion::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ISpeakingState2_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn IsSucceeded(&self) - -> windows_core::Result; - fn IsCompleted(&self) - -> windows_core::Result; - fn Wait(&self) -> windows_core::Result<()>; - fn Wait_2(&self, timeoutseconds: f64) -> windows_core::Result<()>; - } - impl windows_core::RuntimeName for ISpeakingState2 {} - impl ISpeakingState2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ISpeakingState2_Impl, - const OFFSET: isize, - >() -> ISpeakingState2_Vtbl { - unsafe extern "system" fn IsSucceeded< - Identity: windows_core::IUnknownImpl, - Impl: ISpeakingState2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ISpeakingState2_Impl::IsSucceeded(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn IsCompleted< - Identity: windows_core::IUnknownImpl, - Impl: ISpeakingState2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ISpeakingState2_Impl::IsCompleted(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Wait< - Identity: windows_core::IUnknownImpl, - Impl: ISpeakingState2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ISpeakingState2_Impl::Wait(this).into() - } - unsafe extern "system" fn Wait_2< - Identity: windows_core::IUnknownImpl, - Impl: ISpeakingState2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - timeoutseconds: f64, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ISpeakingState2_Impl::Wait_2(this, core::mem::transmute_copy(&timeoutseconds)) - .into() - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - IsSucceeded: IsSucceeded::, - IsCompleted: IsCompleted::, - Wait: Wait::, - Wait_2: Wait_2::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait IStringArray2_Impl: Sized + windows::Win32::System::Com::IDispatch_Impl { - fn Length(&self) -> windows_core::Result; - fn At(&self, index: i32) -> windows_core::Result; - fn Duplicate(&self) -> windows_core::Result; - } - impl windows_core::RuntimeName for IStringArray2 {} - impl IStringArray2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: IStringArray2_Impl, - const OFFSET: isize, - >() -> IStringArray2_Vtbl { - unsafe extern "system" fn Length< - Identity: windows_core::IUnknownImpl, - Impl: IStringArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IStringArray2_Impl::Length(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn At< - Identity: windows_core::IUnknownImpl, - Impl: IStringArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - index: i32, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IStringArray2_Impl::At(this, core::mem::transmute_copy(&index)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Duplicate< - Identity: windows_core::IUnknownImpl, - Impl: IStringArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match IStringArray2_Impl::Duplicate(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Length: Length::, - At: At::, - Duplicate: Duplicate::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ITalker2_Impl: Sized + windows::Win32::System::Com::IDispatch_Impl { - fn Volume(&self) -> windows_core::Result; - fn SetVolume(&self, pretval: u32) -> windows_core::Result<()>; - fn Speed(&self) -> windows_core::Result; - fn SetSpeed(&self, pretval: u32) -> windows_core::Result<()>; - fn Tone(&self) -> windows_core::Result; - fn SetTone(&self, pretval: u32) -> windows_core::Result<()>; - fn Alpha(&self) -> windows_core::Result; - fn SetAlpha(&self, pretval: u32) -> windows_core::Result<()>; - fn Components(&self) -> windows_core::Result; - fn Cast(&self) -> windows_core::Result; - fn SetCast(&self, pretval: &windows_core::BSTR) -> windows_core::Result<()>; - fn AvailableCasts(&self) -> windows_core::Result; - fn Speak(&self, text: &windows_core::BSTR) -> windows_core::Result; - fn Stop(&self) -> windows_core::Result; - fn GetTextDuration(&self, text: &windows_core::BSTR) -> windows_core::Result; - fn GetPhonemes( - &self, - text: &windows_core::BSTR, - ) -> windows_core::Result; - fn OutputWaveToFile( - &self, - text: &windows_core::BSTR, - path: &windows_core::BSTR, - ) -> windows_core::Result; - } - impl windows_core::RuntimeName for ITalker2 {} - impl ITalker2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >() -> ITalker2_Vtbl { - unsafe extern "system" fn Volume< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Volume(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetVolume< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2_Impl::SetVolume(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Speed< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Speed(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetSpeed< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2_Impl::SetSpeed(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Tone< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Tone(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetTone< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2_Impl::SetTone(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Alpha< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Alpha(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetAlpha< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2_Impl::SetAlpha(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Components< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Components(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Cast< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Cast(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetCast< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2_Impl::SetCast(this, core::mem::transmute(&pretval)).into() - } - unsafe extern "system" fn AvailableCasts< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::AvailableCasts(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Speak< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Speak(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Stop< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::Stop(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn GetTextDuration< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut f64, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::GetTextDuration(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn GetPhonemes< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::GetPhonemes(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn OutputWaveToFile< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - path: core::mem::MaybeUninit, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2_Impl::OutputWaveToFile( - this, - core::mem::transmute(&text), - core::mem::transmute(&path), - ) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Volume: Volume::, - SetVolume: SetVolume::, - Speed: Speed::, - SetSpeed: SetSpeed::, - Tone: Tone::, - SetTone: SetTone::, - Alpha: Alpha::, - SetAlpha: SetAlpha::, - Components: Components::, - Cast: Cast::, - SetCast: SetCast::, - AvailableCasts: AvailableCasts::, - Speak: Speak::, - Stop: Stop::, - GetTextDuration: GetTextDuration::, - GetPhonemes: GetPhonemes::, - OutputWaveToFile: OutputWaveToFile::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ITalker2V40_Impl: Sized + windows::Win32::System::Com::IDispatch_Impl { - fn Volume(&self) -> windows_core::Result; - fn SetVolume(&self, pretval: u32) -> windows_core::Result<()>; - fn Speed(&self) -> windows_core::Result; - fn SetSpeed(&self, pretval: u32) -> windows_core::Result<()>; - fn Tone(&self) -> windows_core::Result; - fn SetTone(&self, pretval: u32) -> windows_core::Result<()>; - fn Alpha(&self) -> windows_core::Result; - fn SetAlpha(&self, pretval: u32) -> windows_core::Result<()>; - fn ToneScale(&self) -> windows_core::Result; - fn SetToneScale(&self, pretval: u32) -> windows_core::Result<()>; - fn Components(&self) -> windows_core::Result; - fn Cast(&self) -> windows_core::Result; - fn SetCast(&self, pretval: &windows_core::BSTR) -> windows_core::Result<()>; - fn AvailableCasts(&self) -> windows_core::Result; - fn Speak(&self, text: &windows_core::BSTR) -> windows_core::Result; - fn Stop(&self) -> windows_core::Result; - fn GetTextDuration(&self, text: &windows_core::BSTR) -> windows_core::Result; - fn GetPhonemes( - &self, - text: &windows_core::BSTR, - ) -> windows_core::Result; - fn OutputWaveToFile( - &self, - text: &windows_core::BSTR, - path: &windows_core::BSTR, - ) -> windows_core::Result; - } - impl windows_core::RuntimeName for ITalker2V40 {} - impl ITalker2V40_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >() -> ITalker2V40_Vtbl { - unsafe extern "system" fn Volume< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Volume(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetVolume< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetVolume(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Speed< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Speed(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetSpeed< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetSpeed(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Tone< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Tone(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetTone< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetTone(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Alpha< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Alpha(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetAlpha< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetAlpha(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn ToneScale< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::ToneScale(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetToneScale< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetToneScale(this, core::mem::transmute_copy(&pretval)).into() - } - unsafe extern "system" fn Components< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Components(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Cast< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Cast(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetCast< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40_Impl::SetCast(this, core::mem::transmute(&pretval)).into() - } - unsafe extern "system" fn AvailableCasts< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::AvailableCasts(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Speak< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Speak(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Stop< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::Stop(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn GetTextDuration< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut f64, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::GetTextDuration(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn GetPhonemes< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::GetPhonemes(this, core::mem::transmute(&text)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn OutputWaveToFile< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - text: core::mem::MaybeUninit, - path: core::mem::MaybeUninit, - pretval: *mut windows::Win32::Foundation::VARIANT_BOOL, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40_Impl::OutputWaveToFile( - this, - core::mem::transmute(&text), - core::mem::transmute(&path), - ) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Volume: Volume::, - SetVolume: SetVolume::, - Speed: Speed::, - SetSpeed: SetSpeed::, - Tone: Tone::, - SetTone: SetTone::, - Alpha: Alpha::, - SetAlpha: SetAlpha::, - ToneScale: ToneScale::, - SetToneScale: SetToneScale::, - Components: Components::, - Cast: Cast::, - SetCast: SetCast::, - AvailableCasts: AvailableCasts::, - Speak: Speak::, - Stop: Stop::, - GetTextDuration: GetTextDuration::, - GetPhonemes: GetPhonemes::, - OutputWaveToFile: OutputWaveToFile::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ITalker2V40Part_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn ToneScale(&self) -> windows_core::Result; - fn SetToneScale(&self, pretval: u32) -> windows_core::Result<()>; - } - impl windows_core::RuntimeName for ITalker2V40Part {} - impl ITalker2V40Part_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40Part_Impl, - const OFFSET: isize, - >() -> ITalker2V40Part_Vtbl { - unsafe extern "system" fn ToneScale< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40Part_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalker2V40Part_Impl::ToneScale(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetToneScale< - Identity: windows_core::IUnknownImpl, - Impl: ITalker2V40Part_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalker2V40Part_Impl::SetToneScale(this, core::mem::transmute_copy(&pretval)) - .into() - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - ToneScale: ToneScale::, - SetToneScale: SetToneScale::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ITalkerComponent2_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn Id(&self) -> windows_core::Result; - fn Name(&self) -> windows_core::Result; - fn Value(&self) -> windows_core::Result; - fn SetValue(&self, pretval: u32) -> windows_core::Result<()>; - } - impl windows_core::RuntimeName for ITalkerComponent2 {} - impl ITalkerComponent2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponent2_Impl, - const OFFSET: isize, - >() -> ITalkerComponent2_Vtbl { - unsafe extern "system" fn Id< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponent2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponent2_Impl::Id(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Name< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponent2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut core::mem::MaybeUninit, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponent2_Impl::Name(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Value< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponent2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponent2_Impl::Value(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn SetValue< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponent2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: u32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - ITalkerComponent2_Impl::SetValue(this, core::mem::transmute_copy(&pretval)) - .into() - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Id: Id::, - Name: Name::, - Value: Value::, - SetValue: SetValue::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - pub trait ITalkerComponentArray2_Impl: - Sized + windows::Win32::System::Com::IDispatch_Impl - { - fn Length(&self) -> windows_core::Result; - fn At(&self, index: i32) -> windows_core::Result; - fn ByName(&self, name: &windows_core::BSTR) -> windows_core::Result; - fn Duplicate(&self) -> windows_core::Result; - } - impl windows_core::RuntimeName for ITalkerComponentArray2 {} - impl ITalkerComponentArray2_Vtbl { - pub const fn new< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponentArray2_Impl, - const OFFSET: isize, - >() -> ITalkerComponentArray2_Vtbl { - unsafe extern "system" fn Length< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponentArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut i32, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponentArray2_Impl::Length(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn At< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponentArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - index: i32, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponentArray2_Impl::At(this, core::mem::transmute_copy(&index)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn ByName< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponentArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - name: core::mem::MaybeUninit, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponentArray2_Impl::ByName(this, core::mem::transmute(&name)) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - unsafe extern "system" fn Duplicate< - Identity: windows_core::IUnknownImpl, - Impl: ITalkerComponentArray2_Impl, - const OFFSET: isize, - >( - this: *mut core::ffi::c_void, - pretval: *mut *mut core::ffi::c_void, - ) -> windows_core::HRESULT { - let this = (this as *const *const ()).offset(OFFSET) as *const Identity; - let this = (*this).get_impl(); - match ITalkerComponentArray2_Impl::Duplicate(this) { - Ok(ok__) => { - core::ptr::write(pretval, core::mem::transmute(ok__)); - windows_core::HRESULT(0) - } - Err(err) => err.into(), - } - } - Self { - base__: windows::Win32::System::Com::IDispatch_Vtbl::new::< - Identity, - Impl, - OFFSET, - >(), - Length: Length::, - At: At::, - ByName: ByName::, - Duplicate: Duplicate::, - } - } - pub fn matches(iid: &windows_core::GUID) -> bool { - iid == &::IID - || iid - == &::IID - } - } - } -} diff --git a/crates/cevio-sys/src/lib.rs b/crates/cevio-sys/src/lib.rs index 5f00798..56298d4 100644 --- a/crates/cevio-sys/src/lib.rs +++ b/crates/cevio-sys/src/lib.rs @@ -1,21 +1,9 @@ -use windows_core::GUID; - pub use bindings::Talk::RemoteService2::{ IPhonemeData2, IPhonemeDataArray2, IServiceControl2, IServiceControl2V40, IServiceControl2V40Part, ISpeakingState2, IStringArray2, ITalker2, ITalker2V40, - ITalker2V40Part, ITalkerComponent2, ITalkerComponentArray2, + ITalker2V40Part, ITalkerComponent2, ITalkerComponentArray2, PhonemeData2, PhonemeDataArray2, + ServiceControl2, ServiceControl2V40, SpeakingState2, StringArray2, Talker2, Talker2V40, + TalkerComponent2, TalkerComponentCollection2, }; -pub const CLSID_PHONEME_DATA2: GUID = GUID::from_u128(0x9FF8647A_C6C9_49E6_88B9_1FC19EC13C13); -pub const CLSID_SPEAKING_STATE2: GUID = GUID::from_u128(0x9C404814_1CF6_4D35_8078_006BD6548C6B); -pub const CLSID_TALKER_COMPONENT2: GUID = GUID::from_u128(0x5958DBCF_0DFD_41C6_9852_ACAC4ACC9E9D); -pub const CLSID_TALKER_COMPONENT_COLLECTION2: GUID = - GUID::from_u128(0x134FD50F_8E05_42D3_A7E2_099758DE3811); -pub const CLSID_STRING_ARRAY2: GUID = GUID::from_u128(0xF877DB3C_B2FD_4A97_9F55_355C94350E9B); -pub const CLSID_PHONEME_DATA_ARRAY2: GUID = GUID::from_u128(0x8C732FD9_C313_4F9B_BA0B_5E60A73A9A30); -pub const CLSID_SERVICE_CONTROL2: GUID = GUID::from_u128(0xB75AFE5E_DD52_42E9_A6F5_7BE5F6FE8EDB); -pub const CLSID_SERVICE_CONTROL2V40: GUID = GUID::from_u128(0x3D882C2B_9C6D_480A_8E7E_1F017EE3D580); -pub const CLSID_TALKER2: GUID = GUID::from_u128(0xEFBCD077_659B_4E6B_A8A9_FE88BE66308C); -pub const CLSID_TALKER2V40: GUID = GUID::from_u128(0x60698BB3_F7BD_4119_B79E_482FF352EF3F); - mod bindings; diff --git a/crates/cevio/src/cevio.rs b/crates/cevio/src/cevio.rs index 854239a..e13cbfc 100644 --- a/crates/cevio/src/cevio.rs +++ b/crates/cevio/src/cevio.rs @@ -13,8 +13,8 @@ use windows::{ }; use cevio_sys::{ - IServiceControl2V40, ISpeakingState2, ITalker2V40, ITalkerComponent2, - CLSID_SERVICE_CONTROL2V40, CLSID_TALKER2V40, + IServiceControl2V40, ISpeakingState2, ITalker2V40, ITalkerComponent2, ServiceControl2V40, + Talker2V40, }; #[derive(Debug, PartialEq)] @@ -79,9 +79,8 @@ impl Cevio { CoInitializeEx(None, COINIT_MULTITHREADED).ok()?; let service: IServiceControl2V40 = - CoCreateInstance(&CLSID_SERVICE_CONTROL2V40, None, CLSCTX_INPROC_SERVER)?; - let talker: ITalker2V40 = - CoCreateInstance(&CLSID_TALKER2V40, None, CLSCTX_INPROC_SERVER)?; + CoCreateInstance(&ServiceControl2V40, None, CLSCTX_INPROC_SERVER)?; + let talker: ITalker2V40 = CoCreateInstance(&Talker2V40, None, CLSCTX_INPROC_SERVER)?; Ok(Self { service: Arc::new(service), @@ -108,7 +107,7 @@ impl Cevio { pub fn start(&self, no_wait: bool) -> Result { unsafe { self.service.StartHost(VARIANT_BOOL::from(no_wait)) } .map_err(|err| err.into()) - .map(|x| StartHostResult::from(x)) + .map(StartHostResult::from) } /// CeVIO AIに終了を要求します。 @@ -189,16 +188,19 @@ impl Cevio { /// - 例2『小春六花』→ "嬉しい", "普通", "怒り", "哀しみ", "落ち着き" /// pub fn components(&self) -> Result> { - let talker_components_array2 = unsafe { self.talker.Components() }?; - let mut components = Vec::new(); + let talker_components = unsafe { self.talker.Components() }?; - unsafe { - for i in 0..talker_components_array2.Length()? { - let talker_component = talker_components_array2.At(i)?; + let len = unsafe { talker_components.Length()? }; + let mut components = Vec::with_capacity(len as usize); + + for i in 0..len { + let component = unsafe { + let talker_component = talker_components.At(i)?; let id = talker_component.Id()?.to_string(); let name = talker_component.Name()?.to_string(); - components.push(Component::new(talker_component, id, name)); - } + Component::new(talker_component, id, name) + }; + components.push(component); } Ok(components) @@ -219,12 +221,14 @@ impl Cevio { /// 利用可能なキャスト名を取得します。 /// pub fn available_casts(&self) -> Result> { - let string_array = unsafe { self.talker.AvailableCasts() }?; - let mut casts = Vec::new(); + let strings = unsafe { self.talker.AvailableCasts() }?; - unsafe { - for i in 0..string_array.Length()? { - casts.push(string_array.At(i)?.to_string()); + let len = unsafe { strings.Length()? }; + let mut casts = Vec::with_capacity(len as usize); + + for i in 0..len { + unsafe { + casts.push(strings.At(i)?.to_string()); } } @@ -274,12 +278,14 @@ impl Cevio { /// - リップシンク等に利用できます。 /// pub fn phonemes(&self, text: &str) -> Result> { - let phoneme_data_array = unsafe { self.talker.GetPhonemes(&BSTR::from(text)) }?; - let mut phonemes = Vec::new(); + let phoneme_datas = unsafe { self.talker.GetPhonemes(&BSTR::from(text)) }?; - unsafe { - for i in 0..phoneme_data_array.Length()? { - let data = phoneme_data_array.At(i)?; + let len = unsafe { phoneme_datas.Length()? }; + let mut phonemes = Vec::with_capacity(len as usize); + + for i in 0..len { + unsafe { + let data = phoneme_datas.At(i)?; phonemes.push(PhonemeData { phoneme: data.Phoneme()?.to_string(), start_time: data.StartTime()?,