新しいプロジェクトを作成すると、VB.NET IDE は自動的に Option Strict をデフォルトで Off に設定します。
そのため、私はよくOption Strict Onをファイルの先頭に置き、適切なプログラミングの実践として、そのファイルに Option Strict のルールを適用しています。
ここで(しばらくの間)、新しいプロジェクトを作成するときに、プロジェクトのプロパティ/コンパイルの下で Option Strict をオンに設定して、すべてのファイルで指定する必要なくプロジェクト全体に適用されるようにします。
しかし、現在、データ型が完全にはわかっていないプロジェクトで1つの外部プログラムを使用しており、プロジェクト内のすべてのファイルに対して Option Strict を保持したいと考えています。
そのファイルの先頭でOption Strict Offを試してみましたが、それでは十分ではないようです。私のIDE/エラータブの下に、典型的なエラーの多くがリストされています。
プロジェクトの Compiler プロパティでOption Strict がオンになっているプロジェクトの下の 1 つのファイルだけに対して Option Strict をオフにする方法は?
Public Class ApplicationBar
Inherits NativeWindow
' Debugging Mode On/Off
#Const DEBUG_MODE = False
' SetWindowLong selectors
Const GWL_WNDPROC = -4&
' Windows messages
Const WM_ACTIVATE = &H6
Const WM_GETMINMAXINFO = &H24
Const WM_ENTERSIZEMOVE = &H231
Const WM_EXITSIZEMOVE = &H232
Const WM_MOVING = &H216
Const WM_NCHITTEST = &H84
Const WM_NCMOUSEMOVE = &HA0
Const WM_SIZING = &H214
Const WM_TIMER = &H113
Const WM_WINDOWPOSCHANGED = &H47
' WM_SIZING Selectors
Const WMSZ_LEFT = 1
Const WMSZ_RIGHT = 2
Const WMSZ_TOP = 3
Const WMSZ_TOPLEFT = 4
Const WMSZ_TOPRIGHT = 5
Const WMSZ_BOTTOM = 6
Const WMSZ_BOTTOMLEFT = 7
Const WMSZ_BOTTOMRIGHT = 8
' Appbar messages
Const ABM_NEW = &H0
Const ABM_REMOVE = &H1
Const ABM_QUERYPOS = &H2
Const ABM_SETPOS = &H3
Const ABM_GETSTATE = &H4
Const ABM_GETTASKBARPOS = &H5
Const ABM_ACTIVATE = &H6
Const ABM_GETAUTOHIDEBAR = &H7
Const ABM_SETAUTOHIDEBAR = &H8
Const ABM_WINDOWPOSCHANGED = &H9
Const ABM_SETSTATE = &HA
' Appbar edges
Const ABE_LEFT = 0
Const ABE_TOP = 1
Const ABE_RIGHT = 2
Const ABE_BOTTOM = 3
Const ABE_UNKNOWN = 4
Const ABE_FLOAT = 5
'Appbar allowed floats
Const ABF_ALLOWLEFT = 1
Const ABF_ALLOWRIGHT = 2
Const ABF_ALLOWTOP = 4
Const ABF_ALLOWBOTTOM = 8
Const ABF_ALLOWFLOAT = 16
' The ABN_* constants are defined here as follows:
'Const ABN_STATECHANGE = &H0
Const ABN_POSCHANGED = &H1
Const ABN_FULLSCREENAPP = &H2
Const ABN_WINDOWARRANGE = &H3
' GetKeyState and GetAsyncKeyState Selectors
Const VK_LBUTTON = &H1
Const VK_RBUTTON = &H2
Const VK_CONTROL = &H11
' MessageBox Selectors
Const MB_OK = &H0&
Const MB_ICONINFORMATION = &H40&
' ModifyStyle Selectors
Const GWL_STYLE = (-16)
Const GWL_EXSTYLE = (-20)
Const WS_CAPTION = &HC00000
Const WS_SYSMENU = &H80000
Const WS_EX_APPWINDOW = &H40000
Const WS_BORDER = &H800000
' SetWindowPos Selectors
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOZORDER = &H4
Const SWP_NOACTIVATE = &H10
Const SWP_DRAWFRAME = &H20
Const HWND_NOTOPMOST = -2
Const HWND_TOPMOST = -1
Const HWND_BOTTOM = 1
' ShowWindow Selectors
Const SW_HIDE = 0
Const SW_SHOW = 5
' WM_ACTIVATE Selectors
Const WA_INACTIVE = 0
'Custom Defaults
Private Const AB_DEF_SIZE_INC As Integer = 1
Private Const AB_DEF_DOCK_SIZE As Integer = 32
' We need a timer to determine when the AppBar should be re-hidden
Const AUTO_HIDE_TIMER_ID = 100
Const SLIDE_DEF_TIMER_INTERVAL = 400 ' milliseconds
' Subclassing function default result
Const INHERIT_DEFAULT_CALLBACK = -1
これらの変数はすべて明示的に宣言されていないため緑色の下線が引かれ、Option Strict On ではエラーとして扱われます。