Hello, COM(VB6) World!

Posted on 5月 13th, 2012 by cx20

COM(VB6)

COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は VB6 による COM クライアント(事前バインディングならびに実行時バインディング)の例となっている。

ソースコード(事前バインディング)

Sub Main()
    Dim shell As New Shell32.shell
 
    Dim vRootFolder
    vRootFolder = Shell32.ShellSpecialFolderConstants.ssfWINDOWS
 
    Dim folder As Shell32.folder
    Set folder = shell.BrowseForFolder(0, "Hello, COM(VB6) World!", 0, vRootFolder)
 
    If Not folder Is Nothing Then
        Set folder = Nothing
    End If
    Set shell = Nothing
End Sub

以下、プロジェクトファイルより一部抜粋。

プロジェクトファイル(事前バインディング)

Type=Exe
Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#WINDOWSsystem32STDOLE2.TLB#OLE Automation
Reference=*G{50A7E9B0-70EF-11D1-B75A-00A0C90564FE}#1.0#0#WINDOWSsystem32SHELL32.dll#Microsoft Shell Controls And Automation
Module=Hello; Hello.bas
Startup="Sub Main"
ExeName32="hello.exe"
Name="HelloProject"

ソースコード(実行時バインディング)

Sub Main()
    Dim shell
    Set shell = CreateObject("Shell.Application")
 
    Dim vRootFolder
    vRootFolder = 36 ' ssfWINDOWS
 
    Dim folder
    Set folder = shell.BrowseForFolder(0, "Hello, COM(VB6) World!", 0, vRootFolder)
 
    If Not folder Is Nothing Then
        Set folder = Nothing
    End If
    Set shell = Nothing
End Sub

コンパイル方法

C:¥> vb6 /make Hello.vbp

実行結果

+----------------------------------------+
|Browse For Folder                    [X]|
+----------------------------------------+
| Hello, COM(VB6) Wolrd!                 |
|                                        |
| +------------------------------------+ |
| |[Windows]                           | |
| | +[addins]                          | |
| | +[AppCompat]                       | |
| | +[AppPatch]                        | |
| | +[assembly]                        | |
| |     :                              | |
| |     :                              | |
| |     :                              | |
| +------------------------------------+ |
| [Make New Folder]    [  OK  ] [Cancel] |
+----------------------------------------+

Tags:

Categories: COM, library, VB6

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing