Option Strict Off
Option Explicit On
Module basWinAPI
	
	'プリンタ設定ダイアログボックスを表示する
	Declare Function PrinterProperties Lib "winspool.drv" (ByVal hwnd As Integer, ByVal hPrinter As Integer) As Integer
	'プリンタあるいはプリントサーバーのハンドルを取得する
    Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, ByRef phPrinter As Integer, ByRef pDefault As IntPtr) As Integer
    'プリンタオブジェクトをクローズする
	Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Integer) As Integer
	
	'// SHInvokePrinterCommand のアクションフラグ
	Public Enum PRINTACTION_ENUM
		PRINTACTION_OPEN = 0 ' プリンタダイアログ
		PRINTACTION_PROPERTIES = 1 ' プロパティ
		PRINTACTION_NETINSTALL = 2
		PRINTACTION_NETINSTALLLINK = 3
		PRINTACTION_TESTPAGE = 4 ' テストページの印字 (なぜか動作しない...。) (T_T)
		PRINTACTION_OPENNETPRN = 5 ' ネットワークプロパティ
		' 以下のアクションフラグは Windows NT or 2000 のみ
		PRINTACTION_DOCUMENTDEFAULTS = 6 ' ドキュメントの既定プロパティ
		PRINTACTION_SERVERPROPERTIES = 7 ' サーバーのプロパティ
	End Enum
	
	Declare Function SHInvokePrinterCommand Lib "Shell32.dll"  Alias "SHInvokePrinterCommandA"(ByVal hwnd As Integer, ByVal uAction As Integer, ByRef lpBuf1 As Byte, ByVal lpBuf2 As String, ByVal fModal As Integer) As Integer
	
	
	'プリンタの用紙の取得
    Public Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal pDevice As String, ByVal pPort As String, ByVal fwCapability As Integer, ByRef pOutput As Short, ByRef pDevMode As IntPtr) As Integer

	Public Const DC_PAPERNAMES As Short = 16
	
	'UPGRADE_ISSUE: パラメータ 'As Any' の宣言はサポートされません。 詳細については、'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1016"' をクリックしてください。
    Public Declare Sub MoveMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Byte, ByRef Source As Byte, ByVal Length As Integer)
End Module