| Platform SDK: Broadcast Architecture |
The BPCSuspend class contains a single method, DeviceRelease. Your application can use DeviceRelease to suspend the Video Access server and cause it to release all devices for use by other applications. For more information on this process, see Suspending the Video Access Server.
Your application should not use the BPCSuspend or BPCSuspended class while it is in a state in which cross-process COM calls are disallowed. For example, if your application is currently processing a call to the Microsoft® Win32® SendMessage function or a broadcast system message any cross-process COM calls fail with an RPC_E_CANTCALLOUT_ININPUTSYNCCALL error code. If your application is in such a state when it attempts to suspend the Video Access server, the running object table can become corrupt and lock up the server.
Windows NT/2000: Unsupported.
Windows 95/98: Requires Windows 98.
Header: Declared in vidsvr.odl.
Import Library: Included as a resource in vid.ocx.
The following example uses a BPCSuspend object to request that the Video Access server release all devices. When the devices are no longer needed, the BPCSuspended object is set to Nothing, allowing the Video Access server to reconnect to the devices. The BPCSuspended object indicates whether the Video Access server has released all video devices. If it exists, the Video Access server is suspended and has released all video devices. If it does not exist, the suspend request failed.
Note For the following code to work, the Video Access server (Vidsvr.exe) must be running and you must add the following keys to the registry:
HKEY_CLASSES_ROOT\MS BPC Video Server Suspend
HKEY_CLASSES_ROOT\MS BPC Video Server Suspend\CLSID
"{887072E7-45D6-11D1-B6B0-00C04FBBDE6E}"
Private Sub BPCSuspend()
Dim susp As BPCSuspend
Dim suspended As BPCSuspended
On Error GoTo ErrorHandler
Set susp = GetObject(, "MS BPC Video Server Suspend")
On Error Goto 0
If (susp Is Nothing) Then
MsgBox "Video Access server is not running."
Else
On Error Goto ErrorHandler2
susp.DeviceRelease 0, suspended
On Error Goto 0
If (suspended Is Nothing) Then
MsgBox "Video Access server is active, won't suspend."
Else
MsgBox "DeviceRelease() succeeded. Video Access server suspended."
Set suspended = Nothing
End If
Set susp = Nothing
End If
Exit Sub
ErrorHandler:
If (Err.Number = 429) Then
MsgBox "Video Access server is not running."
Else
MsgBox "Error " + Str(Err.Number)
End If
Goto Exit_BPCSuspend
ErrorHandler2:
If (Err.Number = -2147467259) Then
MsgBox "Video Access server is active, won't suspend."
Else
MsgBox "Error " + Str(Err.Number)
End If
Exit_BPCSuspend:
End Sub