From 25de67355705992bd4cb381f3a2f5c5482d0b0b7 Mon Sep 17 00:00:00 2001 From: Michael Schimmel Date: Wed, 4 Feb 2026 10:39:30 +0100 Subject: [PATCH] Init WASAPI --- .gitignore | 84 +++ WASAPI/MainForm.dfm | 92 +++ WASAPI/MainForm.pas | 562 +++++++++++++++ WASAPI/MainForm.vlb | 25 + WASAPI/WASAPITest.delphilsp.json | 1 + WASAPI/WASAPITest.dpr | 14 + WASAPI/WASAPITest.dproj | 1119 ++++++++++++++++++++++++++++++ WASAPI/WASAPITest.res | Bin 0 -> 154804 bytes 8 files changed, 1897 insertions(+) create mode 100644 .gitignore create mode 100644 WASAPI/MainForm.dfm create mode 100644 WASAPI/MainForm.pas create mode 100644 WASAPI/MainForm.vlb create mode 100644 WASAPI/WASAPITest.delphilsp.json create mode 100644 WASAPI/WASAPITest.dpr create mode 100644 WASAPI/WASAPITest.dproj create mode 100644 WASAPI/WASAPITest.res diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..95561b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,84 @@ +# ---> Delphi +# Uncomment these types if you want even more clean repository. But be careful. +# It can make harm to an existing project source. Read explanations below. +# +# Resource files are binaries containing manifest, project icon and version info. +# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. +#*.res +# +# Type library file (binary). In old Delphi versions it should be stored. +# Since Delphi 2009 it is produced from .ridl file and can safely be ignored. +#*.tlb +# +# Diagram Portfolio file. Used by the diagram editor up to Delphi 7. +# Uncomment this if you are not using diagrams or use newer Delphi version. +#*.ddp +# +# Visual LiveBindings file. Added in Delphi XE2. +# Uncomment this if you are not using LiveBindings Designer. +#*.vlb +# +# Deployment Manager configuration file for your project. Added in Delphi XE2. +# Uncomment this if it is not mobile development and you do not use remote debug feature. +#*.deployproj +# +# C++ object files produced when C/C++ Output file generation is configured. +# Uncomment this if you are not using external objects (zlib library for example). +#*.obj +# + +# Default Delphi compiler directories +# Content of this directories are generated with each Compile/Construct of a project. +# Most of the time, files here have not there place in a code repository. +Win32/ +Win64/ +OSX64/ +OSXARM64/ +Android/ +Android64/ +iOSDevice64/ +Linux64/ + +# Delphi compiler-generated binaries (safe to delete) +*.exe +*.dll +*.bpl +*.bpi +*.dcp +*.so +*.apk +*.drc +*.map +*.dres +*.rsm +*.tds +*.dcu +*.lib +*.a +*.o +*.ocx + +# Delphi autogenerated files (duplicated info) +*.cfg +*.hpp +*Resource.rc + +# Delphi local files (user-specific info) +*.local +*.identcache +*.projdata +*.tvsconfig +*.dsk + +# Delphi history and backups +__history/ +__recovery/ +*.~* + +# Castalia statistics file (since XE7 Castalia is distributed with Delphi) +*.stat + +# Boss dependency manager vendor folder https://github.com/HashLoad/boss +modules/ + +.vscode diff --git a/WASAPI/MainForm.dfm b/WASAPI/MainForm.dfm new file mode 100644 index 0000000..98b20fb --- /dev/null +++ b/WASAPI/MainForm.dfm @@ -0,0 +1,92 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 815 + ClientWidth = 677 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = 'Segoe UI' + Font.Style = [] + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + DesignSize = ( + 677 + 815) + TextHeight = 15 + object Button1: TButton + Left = 16 + Top = 8 + Width = 137 + Height = 25 + Caption = 'Button1' + TabOrder = 0 + OnClick = Button1Click + end + object ResultMemo: TMemo + Left = 16 + Top = 168 + Width = 638 + Height = 591 + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 1 + ExplicitWidth = 585 + ExplicitHeight = 217 + end + object RmsBar: TProgressBar + Left = 16 + Top = 781 + Width = 638 + Height = 17 + Anchors = [akLeft, akRight, akBottom] + TabOrder = 2 + ExplicitTop = 407 + ExplicitWidth = 585 + end + object UpdateButton: TButton + Left = 16 + Top = 39 + Width = 137 + Height = 25 + Caption = 'Update' + TabOrder = 3 + OnClick = UpdateButtonClick + end + object SilenceEdit: TSpinEdit + Left = 184 + Top = 8 + Width = 49 + Height = 24 + MaxValue = 20 + MinValue = 1 + TabOrder = 4 + Value = 3 + OnChange = SilenceEditChange + end + object OptsMemo: TMemo + Left = 296 + Top = 8 + Width = 358 + Height = 154 + Anchors = [akLeft, akTop, akRight] + TabOrder = 5 + ExplicitWidth = 305 + end + object LoggingCheckBox: TCheckBox + Left = 16 + Top = 80 + Width = 97 + Height = 17 + Caption = 'Logging' + TabOrder = 6 + end + object RmsTimer: TTimer + Interval = 100 + OnTimer = RmsTimerTimer + Left = 192 + Top = 40 + end +end diff --git a/WASAPI/MainForm.pas b/WASAPI/MainForm.pas new file mode 100644 index 0000000..096b1e0 --- /dev/null +++ b/WASAPI/MainForm.pas @@ -0,0 +1,562 @@ +unit MainForm; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Winapi.MMSystem, Vcl.ComCtrls, Vcl.ExtCtrls, + System.SyncObjs, System.Math, System.Net.HttpClient, System.Net.HttpClientComponent, + System.Net.Mime, System.JSON, System.IOUtils, System.Generics.Collections, Vcl.Samples.Spin; + +type + TTranscriptionTask = record + TaskID: string; + SequenceIndex: Int64; + end; + + (* Polling worker for async API tasks *) + TTranscriptionWorker = class(TThread) + strict private + fQueue: TThreadedQueue; + fClient: TNetHTTPClient; + procedure ProcessTask(const ATask: TTranscriptionTask); + protected + procedure Execute; override; + public + constructor Create; + destructor Destroy; override; + procedure Enqueue(const ATaskID: string; AIndex: Int64); + end; + + TAudioCaptureThread = class(TThread) + private + FWaveIn: HWAVEIN; + FHeaders: array[0..1] of TWaveHdr; + FBuffers: array[0..1] of array of Byte; + FEvent: THandle; + fCurrentRms: Integer; + + fIsSilent: Boolean; + fDbThreshold: Double; + fSilenceCounter: Integer; + fRequiredSilencePackets: Integer; + fActiveFragment: TMemoryStream; + fTotalSegmentsSent: Int64; + fForceUploadFlag: Integer; // Atomic flag + + procedure PrepareBuffers; + procedure UnprepareBuffers; + function CalculateRms(ABuffer: PByte; ALength: Cardinal): Integer; + procedure ProcessSilence(ARms: Integer; ABuffer: PByte; ALength: Cardinal); + procedure WriteWavHeader(AStream: TStream; ADataSize: Cardinal); + procedure TrimSilentStart(AOffset: Int64); + procedure SyncUploadAndEnqueue(AStream: TMemoryStream); + procedure PerformUpload(AStream: TMemoryStream); + protected + procedure Execute; override; + public + constructor Create; + destructor Destroy; override; + procedure ForceUpload; + property CurrentRms: Integer read fCurrentRms; + end; + + TForm1 = class(TForm) + Button1: TButton; + ResultMemo: TMemo; + RmsBar: TProgressBar; + RmsTimer: TTimer; + UpdateButton: TButton; + SilenceEdit: TSpinEdit; + OptsMemo: TMemo; + LoggingCheckBox: TCheckBox; + procedure FormCreate(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure RmsTimerTimer(Sender: TObject); + procedure SilenceEditChange(Sender: TObject); + procedure UpdateButtonClick(Sender: TObject); + private + fCaptureThread: TAudioCaptureThread; + procedure Log(const AMsg: string); + public + end; + +var + Form1: TForm1; + GlobalTranscriptionWorker: TTranscriptionWorker; + +implementation + +{$R *.dfm} + +{ TTranscriptionWorker } + +constructor TTranscriptionWorker.Create; +begin + inherited Create(False); + fQueue := TThreadedQueue.Create(100, 1000, 100); + fClient := TNetHTTPClient.Create(nil); +end; + +destructor TTranscriptionWorker.Destroy; +begin + Terminate; + fQueue.DoShutDown; + fClient.Free; + fQueue.Free; + inherited; +end; + +procedure TTranscriptionWorker.Enqueue(const ATaskID: string; AIndex: Int64); +var + task: TTranscriptionTask; +begin + task.TaskID := ATaskID; + task.SequenceIndex := AIndex; + fQueue.PushItem(task); +end; + +procedure TTranscriptionWorker.Execute; +var + task: TTranscriptionTask; +begin + while not Terminated do + begin + if (fQueue.PopItem(task) = TWaitResult.wrSignaled) and (not Terminated) then + ProcessTask(task); + end; +end; + +procedure TTranscriptionWorker.ProcessTask(const ATask: TTranscriptionTask); +var + resp: IHTTPResponse; + jsonResult: TJSONObject; + status, transcriptionText, sText: string; + resVal, segmentsVal: TJSONValue; + segmentsArray: TJSONArray; + i: Integer; + isDone: Boolean; +begin + isDone := False; + repeat + if Terminated then exit; + try + resp := fClient.Get('http://minerva.lan:8000/task/' + ATask.TaskID); + if (resp.StatusCode = 200) then + begin + jsonResult := TJSONObject.ParseJSONValue(resp.ContentAsString(TEncoding.UTF8)) as TJSONObject; + if Assigned(jsonResult) then + try + if jsonResult.TryGetValue('status', status) then + begin + if (status = 'completed') then + begin + if jsonResult.TryGetValue('result', resVal) and (resVal is TJSONObject) and + TJSONObject(resVal).TryGetValue('segments', segmentsVal) then + begin + segmentsArray := segmentsVal as TJSONArray; + transcriptionText := ''; + for i := 0 to segmentsArray.Count - 1 do + if (segmentsArray.Items[i] as TJSONObject).TryGetValue('text', sText) then + transcriptionText := transcriptionText + sText; + + sText := transcriptionText.Trim; + TThread.Queue(nil, procedure begin + Form1.ResultMemo.Lines.Add(sText); + end); + isDone := True; + end; + end + else if (status = 'failed') or (status = 'error') then + isDone := True; + end; + finally + jsonResult.Free; + end; + end; + except + on E: Exception do isDone := True; + end; + if not isDone then Sleep(500); + until isDone; +end; + +{ TAudioCaptureThread } + +constructor TAudioCaptureThread.Create; +var + format: TWaveFormatEx; +begin + inherited Create(True); + FEvent := CreateEvent(nil, False, False, nil); + fActiveFragment := TMemoryStream.Create; + fDbThreshold := -35.0; + fRequiredSilencePackets := 30; + fIsSilent := True; + fTotalSegmentsSent := 0; + fForceUploadFlag := 0; + + FillChar(format, sizeof(format), 0); + format.wFormatTag := WAVE_FORMAT_PCM; + format.nChannels := 1; + format.nSamplesPerSec := 16000; + format.wBitsPerSample := 16; + format.nBlockAlign := 2; + format.nAvgBytesPerSec := 32000; + + if waveInOpen(@FWaveIn, WAVE_MAPPER, @format, FEvent, 0, CALLBACK_EVENT) <> MMSYSERR_NOERROR then + raise Exception.Create('waveInOpen failed'); + + PrepareBuffers; +end; + +destructor TAudioCaptureThread.Destroy; +begin + waveInStop(FWaveIn); + UnprepareBuffers; + waveInClose(FWaveIn); + CloseHandle(FEvent); + fActiveFragment.Free; + inherited; +end; + +procedure TAudioCaptureThread.ForceUpload; +begin + TInterlocked.Exchange(fForceUploadFlag, 1); +end; + +procedure TAudioCaptureThread.SyncUploadAndEnqueue(AStream: TMemoryStream); +var + client: TNetHTTPClient; + formData: TMultipartFormData; + resp: IHTTPResponse; + jsonResp: TJSONObject; + taskID: string; + urlParams: string; +begin + client := TNetHTTPClient.Create(nil); + formData := TMultipartFormData.Create; + try + AStream.Position := 0; + formData.AddStream('file', AStream, False, 'fragment.wav', 'audio/wav'); + + // Build query string from OptsMemo settings + urlParams := ''; + TThread.Synchronize(nil, procedure + begin + for var i := 0 to Form1.OptsMemo.Lines.Count - 1 do + begin + if (urlParams <> '') then + urlParams := urlParams + '&'; + urlParams := urlParams + Form1.OptsMemo.Lines[i]; + end; + end); + + resp := client.Post( + 'http://minerva.lan:8000/speech-to-text?' + urlParams, + formData + ); + + if (resp.StatusCode = 200) then + begin + jsonResp := TJSONObject.ParseJSONValue(resp.ContentAsString(TEncoding.UTF8)) as TJSONObject; + try + if Assigned(jsonResp) and jsonResp.TryGetValue('identifier', taskID) then + GlobalTranscriptionWorker.Enqueue(taskID, fTotalSegmentsSent); + finally + jsonResp.Free; + end; + end; + finally + formData.Free; + client.Free; + AStream.Free; // Stream is freed here as it was passed to this method + end; +end; + +procedure TAudioCaptureThread.PerformUpload(AStream: TMemoryStream); +begin + inc(fTotalSegmentsSent); + SyncUploadAndEnqueue(AStream); +end; + +procedure TAudioCaptureThread.WriteWavHeader(AStream: TStream; ADataSize: Cardinal); +type + TWavHeader = packed record + RIFF: array[0..3] of AnsiChar; + FileSize: Cardinal; + WAVE: array[0..3] of AnsiChar; + fmt: array[0..3] of AnsiChar; + FormatSize: Cardinal; + FormatTag: Word; + Channels: Word; + SamplesPerSec: Cardinal; + AvgBytesPerSec: Cardinal; + BlockAlign: Word; + BitsPerSample: Word; + DataMark: array[0..3] of AnsiChar; + DataSize: Cardinal; + end; +var + header: TWavHeader; +begin + header.RIFF := 'RIFF'; + header.FileSize := ADataSize + sizeof(TWavHeader) - 8; + header.WAVE := 'WAVE'; + header.fmt := 'fmt '; + header.FormatSize := 16; + header.FormatTag := 1; + header.Channels := 1; + header.SamplesPerSec := 16000; + header.BitsPerSample := 16; + header.BlockAlign := 2; + header.AvgBytesPerSec := 32000; + header.DataMark := 'data'; + header.DataSize := ADataSize; + AStream.WriteBuffer(header, sizeof(TWavHeader)); +end; + +function TAudioCaptureThread.CalculateRms(ABuffer: PByte; ALength: Cardinal): Integer; +var + i, count: Integer; + pSamples: PSmallInt; + sum, sampleVal: Double; +begin + sum := 0; + pSamples := PSmallInt(ABuffer); + count := ALength div 2; + for i := 0 to count - 1 do + begin + sampleVal := pSamples^; + sum := sum + (sampleVal * sampleVal); + inc(pSamples); + end; + if (count > 0) then Result := Round(Sqrt(sum / count)) else Result := 0; +end; + +procedure TAudioCaptureThread.TrimSilentStart(AOffset: Int64); +var + newSize: Int64; +begin + newSize := fActiveFragment.Size - AOffset; + if (newSize > 0) then + Move(PByte(fActiveFragment.Memory)[AOffset], fActiveFragment.Memory^, newSize); + fActiveFragment.Size := newSize; + fActiveFragment.Position := newSize; +end; + +procedure TAudioCaptureThread.ProcessSilence(ARms: Integer; ABuffer: PByte; ALength: Cardinal); +var + uploadStream: TMemoryStream; + currentDb: Double; + maxIdleSize, keepSize, sendSize: Int64; + forceRequested: Boolean; +begin + forceRequested := TInterlocked.CompareExchange(fForceUploadFlag, 0, 1) = 1; + fActiveFragment.WriteBuffer(ABuffer^, ALength); + if (ARms > 0) then currentDb := 20 * Log10(ARms / 32768) else currentDb := -100.0; + + if (currentDb > fDbThreshold) then + begin + if fIsSilent then + begin + fIsSilent := False; + TThread.Queue(nil, procedure begin Form1.Log('Activity detected...'); end); + end; + fSilenceCounter := 0; + end + else + begin + inc(fSilenceCounter); + if fIsSilent then + begin + maxIdleSize := Int64(fRequiredSilencePackets) * ALength; + if (fActiveFragment.Size > maxIdleSize) then + TrimSilentStart(fActiveFragment.Size - maxIdleSize); + end + else if (fSilenceCounter >= fRequiredSilencePackets) or forceRequested then + begin + fIsSilent := True; + keepSize := (Int64(fRequiredSilencePackets) div 2) * ALength; + + if forceRequested then keepSize := 0; + + sendSize := fActiveFragment.Size - keepSize; + if (sendSize > 0) then + begin + uploadStream := TMemoryStream.Create; + WriteWavHeader(uploadStream, sendSize); + fActiveFragment.Position := 0; + uploadStream.CopyFrom(fActiveFragment, sendSize); + PerformUpload(uploadStream); + TrimSilentStart(sendSize); + end; + fSilenceCounter := 0; + TThread.Queue(nil, procedure begin Form1.Log('Fragment uploaded.'); end); + end; + end; +end; + +procedure TAudioCaptureThread.PrepareBuffers; +var + i: Integer; + bufferSize: Cardinal; +begin + bufferSize := 3200; + for i := 0 to High(FBuffers) do + begin + SetLength(FBuffers[i], bufferSize); + FHeaders[i].lpData := PAnsiChar(@FBuffers[i][0]); + FHeaders[i].dwBufferLength := bufferSize; + FHeaders[i].dwFlags := 0; + waveInPrepareHeader(FWaveIn, @FHeaders[i], sizeof(TWaveHdr)); + waveInAddBuffer(FWaveIn, @FHeaders[i], sizeof(TWaveHdr)); + end; +end; + +procedure TAudioCaptureThread.UnprepareBuffers; +var + i: Integer; +begin + waveInReset(FWaveIn); + for i := 0 to High(FHeaders) do + waveInUnprepareHeader(FWaveIn, @FHeaders[i], sizeof(TWaveHdr)); +end; + +procedure TAudioCaptureThread.Execute; +var + i: Integer; + rmsValue: Integer; +begin + waveInStart(FWaveIn); + while (not Terminated) do + begin + if (WaitForSingleObject(FEvent, 100) = WAIT_OBJECT_0) then + begin + for i := 0 to High(FHeaders) do + begin + if (not Terminated) and ((FHeaders[i].dwFlags and WHDR_DONE) <> 0) then + begin + rmsValue := CalculateRms(PByte(FHeaders[i].lpData), FHeaders[i].dwBytesRecorded); + TInterlocked.Exchange(fCurrentRms, rmsValue); + ProcessSilence(rmsValue, PByte(FHeaders[i].lpData), FHeaders[i].dwBytesRecorded); + FHeaders[i].dwFlags := FHeaders[i].dwFlags and not WHDR_DONE; + waveInAddBuffer(FWaveIn, @FHeaders[i], sizeof(TWaveHdr)); + end; + end; + end; + end; +end; + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + RmsBar.Min := 0; + RmsBar.Max := 100; + GlobalTranscriptionWorker := TTranscriptionWorker.Create; + + // List settings for the Post on FormCreate in OptsMemo + OptsMemo.Lines.Clear; + OptsMemo.Lines.Add('language=de'); + OptsMemo.Lines.Add('task=transcribe'); + OptsMemo.Lines.Add('model=large-v3'); + OptsMemo.Lines.Add('device=cuda'); + OptsMemo.Lines.Add('device_index=0'); + OptsMemo.Lines.Add('threads=0'); + OptsMemo.Lines.Add('batch_size=8'); + OptsMemo.Lines.Add('chunk_size=20'); + OptsMemo.Lines.Add('compute_type=float16'); + OptsMemo.Lines.Add('beam_size=5'); + OptsMemo.Lines.Add('best_of=5'); + OptsMemo.Lines.Add('patience=1'); + OptsMemo.Lines.Add('length_penalty=1'); + OptsMemo.Lines.Add('temperatures=0'); + OptsMemo.Lines.Add('compression_ratio_threshold=2.4'); + OptsMemo.Lines.Add('log_prob_threshold=-1'); + OptsMemo.Lines.Add('no_speech_threshold=0.6'); + OptsMemo.Lines.Add('initial_prompt=null'); + OptsMemo.Lines.Add('suppress_tokens=-1'); + OptsMemo.Lines.Add('suppress_numerals=false'); + OptsMemo.Lines.Add('hotwords=Absatz'); + OptsMemo.Lines.Add('vad_onset=0.5'); + OptsMemo.Lines.Add('vad_offset=0.363'); +end; + +procedure TForm1.Log(const AMsg: string); +begin + if LoggingCheckBox.Checked then + ResultMemo.Lines.Add(FormatDateTime('hh:nn:ss', Now) + ': ' + AMsg); +end; + +procedure TForm1.Button1Click(Sender: TObject); +begin + if not Assigned(fCaptureThread) then + begin + fCaptureThread := TAudioCaptureThread.Create; + fCaptureThread.Start; + Button1.Caption := 'Stop Recording'; + end + else + begin + fCaptureThread.Terminate; + fCaptureThread.WaitFor; + FreeAndNil(fCaptureThread); + Button1.Caption := 'Start Recording'; + RmsBar.Position := 0; + end; +end; + +procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if Assigned(fCaptureThread) then begin fCaptureThread.Terminate; fCaptureThread.WaitFor; end; +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + if Assigned(fCaptureThread) then fCaptureThread.Free; + if Assigned(GlobalTranscriptionWorker) then + begin + GlobalTranscriptionWorker.Terminate; + GlobalTranscriptionWorker.WaitFor; + GlobalTranscriptionWorker.Free; + end; +end; + +procedure TForm1.RmsTimerTimer(Sender: TObject); +var + rawRms: Integer; + dbValue: Double; +begin + if Assigned(fCaptureThread) then + begin + rawRms := TInterlocked.CompareExchange(fCaptureThread.fCurrentRms, 0, 0); + if (rawRms > 0) then + begin + dbValue := 20 * Log10(rawRms / 32768); + RmsBar.Position := Max(0, Round((dbValue + 60) * (100 / 60))); + end + else RmsBar.Position := 0; + end; +end; + +procedure TForm1.SilenceEditChange(Sender: TObject); +begin + if Assigned(fCaptureThread) then + begin + // Conversion: SpinEdit Value (seconds) to packets (approx 100ms per packet) + fCaptureThread.fRequiredSilencePackets := Max(1, SilenceEdit.Value * 10); + end; +end; + +procedure TForm1.UpdateButtonClick(Sender: TObject); +begin + if Assigned(fCaptureThread) then + fCaptureThread.ForceUpload; +end; + +initialization +finalization +end. diff --git a/WASAPI/MainForm.vlb b/WASAPI/MainForm.vlb new file mode 100644 index 0000000..ffa8fbe --- /dev/null +++ b/WASAPI/MainForm.vlb @@ -0,0 +1,25 @@ +[RmsTimer] +Coordinates=61,77,74,36 + +[Button1] +Coordinates=10,78,59,58 + +[ResultMemo] +Coordinates=276,10,86,58 + +[RmsBar] +Coordinates=79,78,61,58 + +[UpdateButton] +Coordinates=173,10,93,58 + +[SilenceEdit] +Coordinates=84,10,79,58 + +[] +Coordinates=289,78,91,36 + +[OptsMemo] +Coordinates=10,10,64,58 +Visible=True + diff --git a/WASAPI/WASAPITest.delphilsp.json b/WASAPI/WASAPITest.delphilsp.json new file mode 100644 index 0000000..a04008c --- /dev/null +++ b/WASAPI/WASAPITest.delphilsp.json @@ -0,0 +1 @@ +{ "settings": { "project": "file:///T%3A/Misc/WASAPI/WASAPITest.dpr", "dllname": "dcc32370.dll", "dccOptions": "-$O- -$W+ -$R+ -$Q+ --no-config -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG;;FRAMEWORK_VCL -E.\\Win32\\Debug -I\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\debug\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\debug\";S:\\3rdParty\\spring4d\\Library\\Delphi11\\Win32\\Debug;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports;C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win32;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source -LEC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Bpl -LNC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp -NU.\\Win32\\Debug -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell; -O\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports;C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win32;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source -R\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports;C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win32;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source -U\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\debug\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\debug\";S:\\3rdParty\\spring4d\\Library\\Delphi11\\Win32\\Debug;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win32\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports;C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win32;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source -V -VN -NBC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp -NHC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\hpp\\Win32 -NO.\\Win32\\Debug -LU" , "projectFiles":[ { "name": "MainForm", "file": "file:///T%3A/Misc/WASAPI/MainForm.pas" } ] , "includeDCUsInUsesCompletion": true, "enableKeyWordCompletion": true, "browsingPaths": [ "file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/OCX/Servers","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/VCL","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/RTL/SYS","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/win","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/win/winrt","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/ToolsAPI","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/IBX","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Internet","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/PROPERTY%20EDITORS","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/soap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/XML","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/Core","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/System","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/Protocols","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/fmx","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/components","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/engine","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/graph","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/ado","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/cloud","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/dbx","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/dsnap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/vclctrls","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap/connectors","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap/proxygen","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DataExplorer","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/Common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/Common/dunit","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/Common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject/dunit","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/src","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/tests","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Experts","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indy/abstraction","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indy/implementation","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indyimpl","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Property%20Editors/Indy10","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/soap/wsdlimporter","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Visualizers","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/XMLReporting","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/XPGen","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/rest","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/firedac","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/tethering","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnitX","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/ems","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/net","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/FlatBox2D","file:///S%3A/sc_famos_src/svn_vcl/cpxedits","file:///S%3A/sc_famos_src/svn_vcl/dzChart","file:///S%3A/sc_famos_src/svn_vcl/eaeditor","file:///S%3A/sc_famos_src/svn_vcl/FamosEvents","file:///S%3A/sc_famos_src/svn_vcl/HTML_Viewer/source","file:///S%3A/sc_famos_src/svn_vcl/Myc_ChartEdit","file:///S%3A/sc_famos_src/svn_vcl/Myc_HemiDrag","file:///S%3A/sc_famos_src/svn_vcl/Myc_SplitControl","file:///S%3A/sc_famos_src/svn_vcl/NiceChart","file:///S%3A/sc_famos_src/svn_vcl/plotter","file:///S%3A/sc_famos_src/svn_vcl/SimpleIPC","file:///S%3A/sc_famos_src/svn_vcl/SynEdit-master/Source","file:///S%3A/sc_famos_src/svn_vcl/ValEdits","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster/zlib","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster/zlib/win32","file:///S%3A/sc_famos_src/svn_vcl/Virtual-TreeView/Source","file:///S%3A/sc_famos_src/svn_common/caHelpSys","file:///S%3A/sc_famos_src/svn_common/Misc","file:///S%3A/sc_famos_src/svn_common/Myc_VecMath","file:///S%3A/sc_famos_src/svn_common/PascalScript/source","file:///S%3A/sc_famos_src/svn_common/TreeBase","file:///S%3A/sc_famos_src/svn_common/TreeBase/Medien","file:///S%3A/3rdParty/spring4d/Source","file:///S%3A/3rdParty/spring4d/Source/Base","file:///S%3A/3rdParty/spring4d/Source/Base/Collections","file:///S%3A/3rdParty/spring4d/Source/Base/Logging","file:///S%3A/3rdParty/spring4d/Source/Base/Patches","file:///S%3A/3rdParty/spring4d/Source/Core/Container","file:///S%3A/3rdParty/spring4d/Source/Core/Interception","file:///S%3A/3rdParty/spring4d/Source/Core/Logging","file:///S%3A/3rdParty/spring4d/Source/Core/Mocking","file:///S%3A/3rdParty/spring4d/Source/Core/Services","file:///S%3A/3rdParty/spring4d/Source/Extensions/Cryptography","file:///S%3A/3rdParty/spring4d/Source/Extensions/Utils","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressCore%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressCommon%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressGDI%2B%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressLibrary/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/XP%20Theme%20Manager/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressLayout%20Control/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressPageControl/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressEditors%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressDocking%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressBars/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressOfficeCore%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressMemData/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressDataController/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressNavBar/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressSkins%20Library/Sources","file:///T%3A/Myc/Src","file:///T%3A/Myc/Src/Data","file:///T%3A/Myc/Src/AST" ] , "CommonAppData": "file:///C%3A/Users/Brummel/AppData/Roaming/Embarcadero/BDS/37.0/" , "Templates": "file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/ObjRepos/" } } \ No newline at end of file diff --git a/WASAPI/WASAPITest.dpr b/WASAPI/WASAPITest.dpr new file mode 100644 index 0000000..228537b --- /dev/null +++ b/WASAPI/WASAPITest.dpr @@ -0,0 +1,14 @@ +program WASAPITest; + +uses + Vcl.Forms, + MainForm in 'MainForm.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/WASAPI/WASAPITest.dproj b/WASAPI/WASAPITest.dproj new file mode 100644 index 0000000..291cc99 --- /dev/null +++ b/WASAPI/WASAPITest.dproj @@ -0,0 +1,1119 @@ + + + {9C648A65-767F-475C-A5B4-535972514019} + 20.3 + VCL + True + Debug + Win32 + WASAPITest + 3 + Application + WASAPITest.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + WASAPITest + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;fmxase;vcltouch;dbrtl;Skia.Package.FMX;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;fmxase;vcltouch;dbrtl;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + DEBUG;$(DCC_Define) + true + false + true + true + true + true + true + + + false + PerMonitorV2 + + + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + PerMonitorV2 + + + PerMonitorV2 + + + + MainSource + + +
Form1
+ dfm +
+ + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + Application + + + + WASAPITest.dpr + + + + + + WASAPITest.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + True + True + + + 12 + + + + +
diff --git a/WASAPI/WASAPITest.res b/WASAPI/WASAPITest.res new file mode 100644 index 0000000000000000000000000000000000000000..0dae0c264bb350730fa2471080a11568dd6e7f10 GIT binary patch literal 154804 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�KmC6k}d^GnmLKWAqAyRAR5So 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 t`}ICY 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 X18~