📄 sbe.idl
字号:
pbStopped
If supplied, set to a non-zero value if the recording has been
stopped;
Can be NULL;
NOTE: If the recording has never been started, it will not be flagged
as stopped.
--*/
HRESULT
GetRecordingStatus (
[out] HRESULT * phResult,
[out] BOOL * pbStarted,
[out] BOOL * pbStopped
) ;
} ;
/*++
============================================================================
============================================================================
IStreamBufferRecComp
CoCreateInstance CLSID_StreamBufferComposeRecording and QueryInterface for
this interface; this interface allows the creation of a single target
content recording which consists of a number of concatenated recordings
(reference or content; can mix & match if desired)
--*/
[
object,
uuid(9E259A9B-8815-42ae-B09F-221970B154FD),
pointer_default(unique)
]
interface IStreamBufferRecComp : IUnknown
{
/*++
------------------------------------------------------------------------
Initialize ()
1. Initializes for a target recording
Parameter Detail
----------------
pszTargetFilename
Sets the target filename
Fails if the file already exists
pszSBRecProfileRef
Must be a completed, SBE-generated recording
This recording's profile will be used to define the target profile
Appended files must have exactly the same profile
--*/
HRESULT
Initialize (
[in] LPCWSTR pszTargetFilename,
[in] LPCWSTR pszSBRecProfileRef
) ;
/*++
------------------------------------------------------------------------
Append ()
1. appends an entire recording
2. fails if the recording is live
--*/
HRESULT
Append (
[in] LPCWSTR pszSBRecording
) ;
/*++
------------------------------------------------------------------------
AppendEx ()
1. appends the specified portion of the recording; the parameters must
be accurate; the call will not readjust them within the boundaries
2. the time spread must be at least 2 seconds
3. fails if the recording is live
--*/
HRESULT
AppendEx (
[in] LPCWSTR pszSBRecording,
[in] REFERENCE_TIME rtStart,
[in] REFERENCE_TIME rtStop
) ;
/*++
------------------------------------------------------------------------
GetCurrentLength ()
1. returns the current length of the recording; updates as recordings
are appended;
2. can be called repeatedly during a Append() call on another
thread;
--*/
HRESULT
GetCurrentLength (
[out] DWORD * pcSeconds
) ;
/*++
------------------------------------------------------------------------
Close ()
1. explicitely closes the recording
2. final release of interface closes the recording as well
--*/
HRESULT
Close (
) ;
/*++
------------------------------------------------------------------------
Cancel ()
1. cancels an in-progress appending operation; has no effect otherwise
--*/
HRESULT
Cancel (
) ;
} ;
/*++
============================================================================
============================================================================
IStreamBufferRecordingAttribute
obtained by calling QueryInterface on a recorder
well-known attributes:
NAME DESCRIPTION
------------------- ----------------------------------------------------
Title String containing the content title.
Author String containing the name of the content author.
Description String containing a description of the content.
Rating String containing a content rating.
Copyright String containing a content copyright message.
Duration Quadruple word value containing the playing duration
of the file, in 100-nanosecond units.
Bitrate Double word value containing the bit rate.
Seekable Boolean value; true denoting that the content is
seekable.
Stridable Boolean value, true denoting that the content is
stridable (fast forward and rewind are enabled).
Broadcast Boolean value; true denoting that the content is not
copyright-protected, and can be broadcast.
Use_DRM reserved
DRM_Flags reserved
DRM_Level reserved
Is_Protected reserved
Is_Trusted reserved
Signature_Name reserved
HasAudio Boolean, true denoting the content includes an
audio stream.
HasImage Boolean, true denoting the content includes a still
image stream (such as JPEG images).
HasScript Boolean, true denoting the content includes a script
stream.
HasVideo Boolean, true denoting the content includes a video
stream.
CurrentBitrate Double word containing the current total bitrate,
usually used for MEB (multi-bit rate) streams.
OptimalBitrate Double word containing the minimum total bitrate
recommended to stream the content and get
maximum quality.
WM/AlbumTitle String containing the album title.
WM/Track Double word containing the track number.
WM/PromotionURL String with a URL to an HTML page that contains
information about products and events (such as
concerts) that are related to this music.
WM/AlbumCoverURL String with a URL to an HTML page that contains an
image of the album cover and information about
the album.
WM/Genre String with the genre of the music.
WM/Year String with the year of publication of the music.
WM/GenreID
WM/MCDI
BannerImageType One member of the WMT_ATTR_IMAGETYPE enumeration
type.
BannerImageData The actual image data: a bitmap, JPEG, or GIF image.
BannerImageURL If the banner image is clicked on then this URL is
activated.
CopyrightURL An URL to a copyright page.
NSC_Name String containing the multicast station contact
name (read-only).
NSC_Address String containing the multicast station contact
address (read-only).
NSC_Phone String containing the multicast station contact
phone number (read-only).
NSC_Email String containing the multicast station contact
email address (read-only).
NSC_Description String containing the multicast station contact
description (read-only).
--*/
cpp_quote( "////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// List of pre-defined attributes " )
cpp_quote( "//" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingDuration[] =L\"Duration\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBitrate[] =L\"Bitrate\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSeekable[] =L\"Seekable\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingStridable[] =L\"Stridable\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBroadcast[] =L\"Broadcast\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingProtected[] =L\"Is_Protected\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrusted[] =L\"Is_Trusted\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSignature_Name[] =L\"Signature_Name\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasAudio[] =L\"HasAudio\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasImage[] =L\"HasImage\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasScript[] =L\"HasScript\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasVideo[] =L\"HasVideo\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingCurrentBitrate[] =L\"CurrentBitrate\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingOptimalBitrate[] =L\"OptimalBitrate\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasAttachedImages[] =L\"HasAttachedImages\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSkipBackward[] =L\"Can_Skip_Backward\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSkipForward[] =L\"Can_Skip_Forward\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNumberOfFrames[] =L\"NumberOfFrames\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingFileSize[] =L\"FileSize\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasArbitraryDataStream[] =L\"HasArbitraryDataStream\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasFileTransferStream[] =L\"HasFileTransferStream\";" )
cpp_quote( "" )
cpp_quote( "////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// The content description object supports 5 basic attributes." )
cpp_quote( "//" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTitle[] =L\"Title\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAuthor[] =L\"Author\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingDescription[] =L\"Description\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingRating[] =L\"Rating\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingCopyright[] =L\"Copyright\";" )
cpp_quote( "" )
cpp_quote( "////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// These attributes are used to configure DRM using IWMDRMWriter::SetDRMAttribute." )
cpp_quote( "//" )
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingUse_DRM = L\"Use_DRM\";" )
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingDRM_Flags = L\"DRM_Flags\";" )
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingDRM_Level = L\"DRM_Level\";" )
cpp_quote( "" )
cpp_quote( "////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// These are the additional attributes defined in the WM attribute" )
cpp_quote( "// namespace that give information about the content." )
cpp_quote( "//" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumTitle[] =L\"WM/AlbumTitle\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrack[] =L\"WM/Track\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingPromotionURL[] =L\"WM/PromotionURL\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumCoverURL[] =L\"WM/AlbumCoverURL\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingGenre[] =L\"WM/Genre\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingYear[] =L\"WM/Year\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingGenreID[] =L\"WM/GenreID\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingMCDI[] =L\"WM/MCDI\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingComposer[] =L\"WM/Composer\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingLyrics[] =L\"WM/Lyrics\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrackNumber[] =L\"WM/TrackNumber\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingToolName[] =L\"WM/ToolName\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingToolVersion[] =L\"WM/ToolVersion\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingIsVBR[] =L\"IsVBR\";" )
//
// WM/AlbumArtist is a potentially different value than Author
//
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumArtist[] =L\"WM/AlbumArtist\";" )
cpp_quote( "" )
cpp_quote( "////////////////////////////////////////////////////////////////" )
cpp_quote( "//" )
cpp_quote( "// These optional attributes may be used to give information " )
cpp_quote( "// about the branding of the content." )
cpp_quote( "//" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageType[] =L\"BannerImageType\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageData[] =L\"BannerImageData\";" )
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageURL[] =L\"BannerImageURL\";" )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -