>HSP3でWintab32.dllを使用したいのですが、
>使い勝手の良いモジュールなどはありませんでしょうか。
>
>HSP2.6用でしたら、以下で発見しました。
>http://hp.vector.co.jp/authors/VA015883/plugin/index.html
HSP2.x用にモジュールがあるのなら、ご自分で3.0用に
書き換えてみるのも手かと。
私が適当に書き換えたものを載せますが、MIAさんの
コピーライトが入っているものを勝手に書き換えて
載せるのはどうかとも思うので、問題がある場合
削除してください。削除用パスワード:pass
MIA's HomePage
http://taillove.jp/mia/
;-------------------------------------
; 簡単 Wintab モジュール (C) MIA 2003
;-------------------------------------
; TabletStat で取得できる配列の内容
; .0 : 入力ペン番号(消しゴムだと 2 になったりする)
; .1 : ボタン情報(ペン入力を含む)
; .2 : 位置情報 X
; .3 : 位置情報 Y
; .4 : 位置情報 Z
; .5 : 筆圧
; .6 : 筆圧2(スプレーの噴出量等)
; .7 : 回転角度(10分の1度表記、時計回りで上方向が 0)
; .8 : 倒れ角度(10分の1度表記、垂直が 900)
#module "EzTablet"
#uselib "kernel32.dll"
#func global LoadLibrary "LoadLibraryA" str
#func global GetProcAddress "GetProcAddress" int,sptr
#func global FreeLibrary "FreeLibrary" int
#deffunc TabletClose
if hTab : dllret = callfunc(hTab,WTClose,1) : hTab = 0
return
#deffunc TabletTerm onexit
TabletClose : if hDLL : FreeLibrary hDLL : hDLL = 0
return
#deffunc TabErr_ str m
dialog m + "が見つかりません"
TabletTerm
return
#deffunc TabletInit
ret = 1
if hDLL : return ret
LoadLibrary "wintab32.dll" : hDLL = stat
if stat = 0 : TabErr_ "wintab32" : ret = 0
fn = "WTInfoA" : GetProcAddress hDLL,fn : WTInfo = stat
if stat = 0 : TabErr_ fn : ret = 0
fn = "WTOpenA" : GetProcAddress hDLL,fn : WTOpen = stat
if stat = 0 : TabErr_ fn : ret = 0
fn = "WTPacketsGet" : GetProcAddress hDLL,fn : WTPacketsGet = stat
if stat = 0 : TabErr_ fn : ret = 0
fn = "WTClose" : GetProcAddress hDLL,fn : WTClose = stat
if stat = 0 : TabErr_ fn : ret = 0
return ret
#deffunc TabletOpen int sx,int sy
if hTab : TabletClose
dim LogContext, 64
pLogContext = varptr(LogContext)
param = 3,0,pLogContext
dllret = callfunc(param,WTInfo,3)
LogContext(16) = 0x3fe0,0,0,-1,-1
LogContext(27) = 0,0,0,sx,sy,0
Name = "EzTablet/HSP" : l = strlen(Name)
memcpy LogContext,Name,l+1
param = hWnd,pLogContext,1
dllret = callfunc(param,WTOpen,3)
hTab = dllret
return hTab
#deffunc TabletStat val dest
if hTab = 0 : return 0
pDest = varptr(dest)
param = hTab,1,pDest
dllret = callfunc(param,WTPacketsGet,3)
return dllret
#global
もちろんsample.asも書き換える必要があります。