Re: Adding an automation class for IMAPI
- From: "Joe Fawcett" <joefawcett@xxxxxxxxxxxxxxxx>
- Date: Sat, 31 Mar 2007 16:57:09 +0100
This link clearly states that this class is Vista/Longhorn only:
http://msdn2.microsoft.com/en-us/library/aa365380.aspx
--
Joe Fawcett (MVP - XML)
http://joe.fawcett.name
"Buchs" <Buchs@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:EEABD0DA-F693-483D-97BD-203600B3DD50@xxxxxxxxxxxxxxxx
I picked up the script below somewhere on microsoft.com/msdn for making use
of the IMAPI interface to do what I always wanted - interact with my CD
burner programmatically.
When I attempt to run it (WinXP Home SP2), I get an error message
indicating
that the Automation Class (IMAPI2.MsftDiscMaster2) is not loaded.
I am not sure if there are some particular references I need to load or
something else I need to do to enable this automation class.
I spent some time investigating my system's installation of IMAPI. I have
version 5.1.2600.2180. I am suspicious that I do not have IMAPI v2 and
that
perhaps that is limited to Vista. I tried just removing the "2"s from the
object class cited and that lead to the same message.
I have searched high and low on Microsoft.com for any updates and
downloads
related to IMAPI. Other than some documents describing IMAPI, I did not
find
anything. In fact, in the whole website and many component areas there
are
very few hits and none of them seem to be helpful.
After a few hours of searching MSDN and Microsoft.com in general,
downloading script debuggers, etc. I am giving up on myself finding the
answer of what to do next.
Can any kind person here help me?
Thanks in advance.
(This topic originally posted at: Windows XP Security and Admin:
<http://www.microsoft.com/windowsxp/expertzone/newsgroups/reader.mspx?dg=microsoft.public.windowsxp.security_admin&mid=4ad02951-1fb4-4f44-9f6a-4fcbb1980d76>
)
------
' This script examines the burn device characteristics such as
' product ID, product revision level, feature set, and profiles.
' Copyright (C) Microsoft Corp. 2006
Option Explicit
' Constants
const IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE = 47
WScript.Quit(Main)
Function Main
Dim Index ' Index to recording drive.
Dim Recorder ' Recorder object
Dim Path ' Directory of files to burn
Dim Stream ' Data stream for burning device
Index = 1 ' Second drive on the system
' Create a DiscMaster2 object to connect to CD/DVD drives.
Dim g_DiscMaster
Set g_DiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
' Create a DiscRecorder object for the specified burning device.
Dim uniqueId
set recorder = WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
uniqueId = g_DiscMaster.Item(Index)
recorder.InitializeDiscRecorder( uniqueId )
' *** - Formatting to display recorder info
WScript.Echo "--------------------------------------------------"
Wscript.Echo " ActiveRecorderId: " & recorder.ActiveDiscRecorder
Wscript.Echo " Vendor Id: " & recorder.VendorId
Wscript.Echo " Product Id: " & recorder.ProductId
Wscript.Echo " Product Revision: " & recorder.ProductRevision
Wscript.Echo " VolumeName: " & recorder.VolumeName
Wscript.Echo " Can Load Media: " & recorder.DeviceCanLoadMedia
Wscript.Echo " Device Number: " & recorder.LegacyDeviceNumber
Dim mountPoint
For Each mountPoint In recorder.VolumePathNames
WScript.Echo " Mount Point: " & mountPoint
Next
WScript.Echo "Supported Features" 'in _IMAPI_FEATURE_PAGE_TYPE
Dim supportedFeature
For Each supportedFeature in recorder.SupportedFeaturePages
if supportedFeature = _
IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE then
WScript.Echo " Feature: " & supportedFeature & _
" Drive supports DVD-RW."
else
WScript.Echo " Feature: " & supportedFeature
end if
Next
WScript.Echo "Current Features" 'in _IMAPI_FEATURE_PAGE_TYPE
Dim currentFeature
For Each currentFeature in recorder.CurrentFeaturePages
WScript.Echo " Feature: " & currentFeature
Next
WScript.Echo "Supported Profiles" 'in _IMAPI_PROFILE_TYPE
Dim supportedProfile
For Each supportedProfile in recorder.SupportedProfiles
WScript.Echo " Profile: " & supportedProfile
Next
WScript.Echo "Current Profiles" 'in _IMAPI_PROFILE_TYPE
Dim currentProfile
For Each currentProfile in recorder.CurrentProfiles
WScript.Echo " Profile: " & currentProfile
Next
WScript.Echo "Supported Mode Pages" 'in _IMAPI_MODE_PAGE_TYPE
Dim supportedModePage
For Each supportedModePage in recorder.SupportedModePages
WScript.Echo " Mode Page: " & supportedModePage
Next
WScript.Echo
WScript.Echo "----- Finished content -----"
Main = 0
End Function
.
- References:
- Adding an automation class for IMAPI
- From: Buchs
- Adding an automation class for IMAPI
- Prev by Date: Adding an automation class for IMAPI
- Previous by thread: Adding an automation class for IMAPI
- Index(es):