in libyara.NET/Scanner.h [193:204]
int HandleMessage(YR_SCAN_CONTEXT* context, int message, void* message_data, void* user_data)
{
if (message == CALLBACK_MSG_RULE_MATCHING)
{
auto resultsHandle = GCHandle::FromIntPtr(IntPtr(user_data));
auto results = (List<ScanResult^>^)resultsHandle.Target;
results->Add(gcnew ScanResult(context, (YR_RULE*)message_data));
}
return (int)CallbackResult::Continue;
}