投稿日 | : 2004/02/19(Thu) 17:29 |
投稿者 | : 匿名 |
Eメール | : |
URL | : |
タイトル | : Re^4: プリンターポートの追加:ネットワーク経由 |
構造体2(PORT_INFO_2)を使用してのローカルポートの設定ができていない状況です。
現在、使用している構造体は
Public Type PORT_INFO_2
pPortName As Long
pMonitorName As Long
pDescription As Long
fPortType As Long
Reserved As Long
End Type
Public Type PORT_INFO_2S
pPortName As String
pMonitorName As String
pDescription As String
fPortType As Long
Reserved As Long
End Type
を両方使用しています。
PORT_INFO_2Sの方は
Port2.pPortName ="LPT4:"
success = AddPortEx(vbNullString, 2, Port2, "Local Port")
エラーコード:124
PORT_INFO_2の方では
bytPortBuffer() = StrConv(文字列, vbByte)
MoveMemory PORT_INFO_2(0).格納先, bytPortBuffer(0), UBound(bytPortBuffer)
の形でやるパターンA
この場合、文字列に格納される値は"L・o・c・a・l P・o・r・t・"となります。"・"はNullchar
こちらも
エラーコード:124
パターンBは
bytPortBuffer() = StrConv(文字列, vbByte)
の後に、
ある関数(bytPortBuffer())で
中にNullcharがあれば、詰めて行き、最後に配列を縮小すると言う処理をしています。
配列自体が、戻り値になります。
その後に
MoveMemory PORT_INFO_2(0).格納先, bytPortBuffer(0), UBound(bytPortBuffer)
格納しています。("Local Port"になる)
結果の文字列は実際にメッセージで出力しています(文字列に戻す関数使用)
ちなみにこちらも
エラーコード:124
というのを、PORT_INFO_2構造体の3つのパラメータについて行っております。
.pPortName
.pMonitorName
.pDescription
のこりの部分は
.fPortType
0〜16までの値を格納(Loopにて)
.Reserve
0しか入れてはならないそうです(ヘルプ参照)