Это перевод грубый для иллюстрации:
private static void ProgressFunc(uint percent, object context, out bool cancel)
{
Command command = (Command)context;
CameraEvent e = new CameraEvent("ProgressReport", percent);
command.GetCameraModel().NotifyObservers(e);
cancel = false;
}
(EdsError
был изменен на void
, потому что мы используем исключения в C # вместо кодов ошибок;EDSCALLBACK
определяется как __stdcall
, что здесь не имеет значения; код работает только при наличии всех подразумеваемых классов и методов; идиоматический C # будет использовать event
/ EventHandler / EventArgs вместо метода "NotifyObservers"; Я предполагаю, что вы не хотите взаимодействовать с C ++).