Как использовать небезопасные собственные методы с разрешениями пользовательского интерфейса
Привет,
У меня есть простая дилемма о том, что такое синтаксис и семантика propper при использовании небезопасных нативных методов с разрешениями пользовательского интерфейса. Вот пример программного кода с объяснением в официальных документах MS Visual Studio:
Ссылка на статью
Если я правильно понял синтаксис таков :
создать новое разрешение пользовательского интерфейса
вызов небезопасного метода
Чего я только не понимал ,
Нужно ли мне повторно создавать новое разрешение безопасности пользовательского интерфейса каждый раз, когда я вызываю небезопасный метод ?
Если мне нужно последовательно вызывать множество различных небезопасных методов , нужно ли создавать новые разрешения безопасности пользовательского интерфейса для каждого из них?
Что я уже пробовал:
Прочитав много незнакомого материала в интернете на эту тему, я создал программу, которая работает правильно, debbuger не показывает никаких ошибок или предупреждений, но я до сих пор не знаю, правильно ли она написана. Вот вам и мир кода :
void Register_Clipboard_Listener_And_HotKeys() { // Reset Registration message Registration_Message = string.Empty; // Demand new security permission new UIPermission(UIPermissionWindow.AllWindows, UIPermissionClipboard.AllClipboard).Demand(); // Set Clipboard listener Clipboard_Listener = UnsafeNativeMethods.AddClipboardFormatListener(this.Handle); if (Clipboard_Listener == false) { Registration_Message += " Clipboard listener could not be registered. \n\n"; Registration_Ok = false; return; } // Demand new security permission new UIPermission(UIPermissionWindow.AllWindows).Demand(); // Hot Key Combination to Control + V Ctrl_V = UnsafeNativeMethods.RegisterHotKey(this.Handle, V, Control | MOD_NOREPEAT, V); if (Ctrl_V == false) { Registration_Message += " Hot Key - Ctrl + V - could not be registered. \n\n"; Registration_Ok = false; return; } // Demand new security permission new UIPermission(UIPermissionWindow.AllWindows).Demand(); // Hot Key Combination to Control + V Ctrl_Alt_V = UnsafeNativeMethods.RegisterHotKey(this.Handle, W, Control | Alt | MOD_NOREPEAT, V); if (Ctrl_Alt_V == false) { Registration_Message += " Hot Key - Ctrl + Alt + V - could not be registered. \n\n"; Registration_Ok = false; return; }
Правильно ли написана эта часть кода?
Есть ли что - нибудь, что необходимо сделать до закрытия главного окна?
Заранее спасибо.
Всего наилучшего,
Желько Перич