declare sub TEST1_SETSTATE_NULLCHAR(FDSCRP$, byval SW%= 0)
sub TEST1_SETSTATE_NULLCHAR(FDSCRP$, byval SW%)
var RES as long, DCB as T_DCB
var HFILE as long
var F as long, M as long
var DEVNAME$
if SW%<0 then SW%=0
if SW%> 1 then SW%=1
select case ucase$(left$(FDSCRP$,5))
case "COM0:"
DEVNAME$="COM1"
case "COM1:"
DEVNAME$="COM2"
case "COM2:"
DEVNAME$="COM3"
case "COM3:"
DEVNAME$="COM4"
case "COM4:"
DEVNAME$="COM5"
case else
error 55 :exit sub
end select
HFILE=INVALID_HANDLE_VALUE
HFILE = CREATEFILE(DEVNAME$, (GENERIC_READ or GENERIC_WRITE), 0, NULL, OPEN_EXISTING, 0, NULL)
if HFILE= INVALID_HANDLE_VALUE then print "Error:open失敗":exit sub
RES=GetCommState(hfile, DCB)
if res=0 then
print "Error:GetCommState"
RES=CLOSEHANDLE(HFILE)
else
if DCB.DCBLENGTH<>len(T_DCB) then print "!!DCBlength(hex)=";DCB.DCBLENGTH
'**ここで設定を変更する**
F=DCB.FBITFIELDS '*bit毎設定必要
'----fNull----
F=F and (not fnULL) 'ビット消去
M=fnULL
M=M * clng(SW%) '設定値
F=F or M 'ビット設定
if DCB.FBITFIELDS <> F then
print "fBitFields(16進数)変更前=";hex$(DCB.FBITFIELDS)
DCB.FBITFIELDS=F '設定
print "fBitFields(16進数)変更後=";hex$(DCB.FBITFIELDS)
'設定を更新する
RES=SetCommState(hfile, DCB)
if res=0 then
print "Error:SetCommState"
endif
endif
RES=CLOSEHANDLE(HFILE)
endif
end sub