Суть вопроса такова. Есть пример по адресу: http://vbaccelerator.com/home/VB/Code/L ... /index.asp
Понял все, кроме одного: как создать объектные переменную, например IVBIMAPI.IVBDiscRecorder, с помощью функции CoCreateInstance?
В примере создают объектную переменную типа IVBIMAPI.ICDBurn:
- Код: Выделить всё
Private Const CLSID_CDBURN As String = "fbeb8a05-beee-4442-804e-409d6c4515e9"
Private Const IID_CDBURN As String = "3d73a659-e5d0-4d42-afc0-5121ba425c8d"
Private m_cdBurn As IVBIMAPI.ICDBurn
Dim clsidCDBurn As UUID
With clsidCDBurn
.Data1 = &HFBEB8A05
.Data2 = &HBEEE
.Data3 = &H4442
.Data4(0) = &H80
.Data4(1) = &H4E
.Data4(2) = &H40
.Data4(3) = &H9D
.Data4(4) = &H6C
.Data4(5) = &H45
.Data4(6) = &H15
.Data4(7) = &HE9
End With
Dim iidCDBurn As UUID
With iidCDBurn
' 3D73A659-E5D0-4D42-AFC0-5121BA425C8D
.Data1 = &H3D73A659
.Data2 = &HE5D0
.Data3 = &H4D42
.Data4(0) = &HAF
.Data4(1) = &HC0
.Data4(2) = &H51
.Data4(3) = &H21
.Data4(4) = &HBA
.Data4(5) = &H42
.Data4(6) = &H5C
.Data4(7) = &H8D
End With
Dim hr As Long
hr = CoCreateInstance(clsidCDBurn, Nothing, CLSCTX_INPROC_SERVER, iidCDBurn, m_cdBurn)
Если делать по аналогии, то IID я могу найти в OLE View, а где взять CLSID? Код должен быть примерно так:
- Код: Выделить всё
Private Const CLSID_DISCRECORDER As String = "00000000-0000-0000-0000-000000000000" ' где взять значение?
Private Const IID_DISCRECORDER As String = "85AC9776-CA88-4CF2-894E-09598C078A41"
Private m_cdDiscRecorder As IVBIMAPI.IVBDiscRecorder
Dim clsidDiscRecorder As UUID
' здесь нужно знать CLSID, чтобы установить значения
With clsidDiscRecorder
.Data1 = &H0
.Data2 = &H0
.Data3 = &H0
.Data4(0) = &H0
.Data4(1) = &H0
.Data4(2) = &H0
.Data4(3) = &H0
.Data4(4) = &H0
.Data4(5) = &H0
.Data4(6) = &H0
.Data4(7) = &H0
End With
Dim iidDiscRecorder As UUID
With iidDiscRecorder
'85AC9776-CA88-4CF2-894E-09598C078A41
.Data1 = &H85AC9776
.Data2 = &HCA88
.Data3 = &H4CF2
.Data4(0) = &H89
.Data4(1) = &H4E
.Data4(2) = &H9
.Data4(3) = &H59
.Data4(4) = &H8C
.Data4(5) = &H7
.Data4(6) = &H8A
.Data4(7) = &H41
End With
hr = CoCreateInstance(clsidDiscRecorder, Nothing, CLSCTX_INPROC_SERVER, iidDiscRecorder, m_cdDiscRecorder)