Commondialog в Windows 2000.

  • Автор темы CHIP
  • Дата начала
C

CHIP

В общем такая проблема... В аутлук-форме, на вкладке чтения нужно иметь возможность добавления файла в Аттач...

Такой код:

Код:
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "Все файлы (*.*)|*.*"
objDialog.InitialDir = "D:\"
intResult = objDialog.ShowOpen
If intResult <> 0 Then
Set objAttachments = Item.Attachments
objAttachments.Add objDialog.FileName
End If
Set objDialog = Nothing
Set intResult= Nothing

В WinXP все отлично работает.. а вот в 2000-ом и ниже - не пашет, жалуется так:
Невозможно создание объекта контейнером ActiveX: UserAccounts.CommonDialog

Вот хотелось бы узнать, как это все осуществить и на ХР и на 2000-ом...
Читал что можно использовать API... но как приведенный код переписать на VBScript тоже не знаю...
такой код:

Код:
Option Explicit

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Sub Command1_Click()
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = Form1.hWnd
OpenFile.hInstance = App.hInstance
sFilter = "Batch Files (*.bat)" & Chr(0) & "*.BAT" & Chr(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = "C:\"
OpenFile.lpstrTitle = "Use the Comdlg API not the OCX"
OpenFile.flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "The User pressed the Cancel Button"
Else
MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
End If
End Sub

Кто знает, подскажите плиз.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!