C++ wmi Отслеживание изменений файлов в директории

Пытаюсь написать отслеживание изменений файлов в определнной директории через WMI C++. Остановился на этом решение:

hres = pSvc->ExecMethodAsync( bstr_t("WQL"), bstr_t("Select * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'CIM_DirectoryContainsFile' AND TargetInstance.GroupComponent= \"Win32_Directory.Name=\"c:\\\\Users\\name_user\""), WBEM_FLAG_SEND_STATUS, NULL, pStubSink);

Асинхронный метод, который по идее должен вызывать, как в примере MSDN метод IWbemObjectSink::Indicate() (https://docs.microsoft.com/ru-ru/windows/win32/wmisdk/example--getting-wmi-data-from-the-local-computer-asynchronously)

Но, если я меняюю WQL-запрос на тот, который мне нужен, то ничего не происходит, функция никак не вызывается.

В Powershell работает следующий код:

$query = "Select * from __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'CIM_DirectoryContainsFile' AND TargetInstance.GroupComponent='Win32_Directory.Name=""D:\\\\name_dir""'" Register-WmiEvent -Query $query -Action { Write-Host "A new file $($event.SourceEventArgs.NewEvent.TargetInstance.PartComponent) got operated" }

Как можно было бы перенести его на плюсы?


Ответы (0 шт):