Это плохая, плохая, плохая идея. Устройство является устройством общего назначения, предназначенным для запуска нескольких приложений. Платформа должна , а не быть подчиненной вашему приложению. Это все равно что сказать, что у вас есть настольное приложение, которое работает только с разрешением 640x480, поэтому вы должны иметь возможность заблокировать чей-либо компьютер с таким разрешением.
Лучшее решение - либо на самом деле исправить ваше программное обеспечение (задыхаться) для поддержки обеих ориентаций (и вы знаете, что есть и другие разрешения, так и устройства с квадратным экраном, верно?), Либо чтобы ваше приложение было как минимум всплывающим окно сообщения какого-либо типа, информирующее пользователя о совместимости при выборе неподдерживаемого разрешения или ориентации.
Что касается того, «как» это сделать - вы не можете. Поворот обрабатывается драйвером дисплея, в частности, вызывая ExtEscape с DRVESC_SETSCREENROTATION. В стандартном драйвере GPEFlat , который поставляется с PB, он, в свою очередь, вызывает DynRotate и продолжает вызывать SetRotation (вы можете посмотреть на общедоступный источник в eval edition, если вы действительно хотите знать, как все это работает) ,
Суть в том, что для перехвата этого вызова вам потребуется либо создать заменяющий драйвер дисплея, либо хотя бы какую-нибудь прокладку, которую вы вставите в качестве драйвера, который, в свою очередь, вызывает существующий. Ничего из этого не произойдет в управляемом коде.