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 |
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" |
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 |
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
コンパイル方法
実行結果
+----------------------------------------+
|Browse For Folder [X]|
+----------------------------------------+
| Hello, COM(VB6) Wolrd! |
| |
| +------------------------------------+ |
| |[Windows] | |
| | +[addins] | |
| | +[AppCompat] | |
| | +[AppPatch] | |
| | +[assembly] | |
| | : | |
| | : | |
| | : | |
| +------------------------------------+ |
| [Make New Folder] [ OK ] [Cancel] |
+----------------------------------------+ |
+----------------------------------------+
|Browse For Folder [X]|
+----------------------------------------+
| Hello, COM(VB6) Wolrd! |
| |
| +------------------------------------+ |
| |[Windows] | |
| | +[addins] | |
| | +[AppCompat] | |
| | +[AppPatch] | |
| | +[assembly] | |
| | : | |
| | : | |
| | : | |
| +------------------------------------+ |
| [Make New Folder] [ OK ] [Cancel] |
+----------------------------------------+
Tags: COM
Categories: COM, library, VB6