もっと手軽にActiveX

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

'--------------------------------------
' ActiveX DLLを使用していますが
' ActiveX系(Control,DLL,Exe)
' も同様にアプリケーションを実行すると共に
' ActiveXの自動インストール処理が行われ
' 使用可能になります
'
' # Group1でVBを実行したときは、
' # プロジェクトエクスプローラの
' # Project1を選択して、
' # VBのメニューの参照設定で
' # MyLibraryをチェックしたり
' # はずしたりして下さい
'--------------------------------------

'クラスを宣言します
'参照設定でMyLibraryをチェックしているときは
' As library
'にするとVBのインテリセンス機能が働きます
Dim m_clsLibrary As Object

'ループを脱出する終了フラグです
Dim m_Quit As Boolean

'フォームのインスタンスを生成する前に呼び出されます
Private Sub Form_Initialize()
    Dim strAxFile       As String
    Dim strAxFilePath   As String
    
    'ActiveXファイルのフルパスを代入します
    strAxFile = "test_mylib.dll"
    strAxFilePath = App.Path & "\resource\" & strAxFile
    
    
    '----------------------------------
    ' テスト用なので
    ' 実際に使うときはUninstall関数は
    ' ここで呼び出さない方
    ' (InstallとCreateObjectのみ)が良いと思います
    '----------------------------------
    'ActiveXファイルをアンインストールします
    Uninstall GetSystemFolder & "\" & strAxFile
    '----------------------------------
    
    
    'ActiveXファイルをインストールします
    '下の行をコメントして下さい
    ' "ActiveXコンポーネントはオブジェクトを作成できません"
    '(ActiveXがインストールされていないエラー)
    'とメッセージが出ると思います
    'この関数は、指定したActiveXファイルを
    'Systemフォルダに移動してインストールします
    Install strAxFilePath
    
    
    'ActiveXのクラスのインスタンスを生成します
    'CreateObjectの方がお手軽かと思います
    Set m_clsLibrary = CreateObject("MyLibrary.library")
    
    'または、下記のようにする(参照設定でMyLibraryをチェックしたときのみ使えます)
    'Set m_clsLibrary = New library
    
End Sub

'フォームをロードしました
'フォームのインスタンス生成後に呼び出されます
Private Sub Form_Load()
    
    'フォームを強制的に表示させます
    Me.Show
    Me.Refresh
    
    'キーの入力を監視するために
    'ループします
    Do
        DoEvents
        '下記はMyLibrary(ActiveX)のメソッドのことです
        'InKeyメソッドは、
        'テンキーや特殊キーなどには未対応です
        Label2.Caption = "あなたは、""" & m_clsLibrary.InKey & """" & "を押しました"
    Loop Until m_Quit
    'フォームを破棄します
    Unload Me
End Sub

'フォームをアンロードします
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    '閉じるボタンを押しました
    If UnloadMode = 0 Then
        m_Quit = True
        Cancel = 1
    End If
End Sub


<戻る

Sample95.lzh


http://hp.vector.co.jp/authors/VA015521/