Copyright © 2001-2019 MultiMedia Soft

TagsReader.ID3V2_GeneralObjectFrameMemoryFileGet method

Previous pageReturn to chapter overviewNext page

Remarks

 

Obtains a copy in memory of the file stored inside an ID3V2 general object frame (GEOB).

 

For further details about methods related to tags reading refer to the TagsReader object.

For details about the reading of tags see the How to read TAG information in sound files tutorial.

 

 

Syntax

 

[Visual Basic]

control.TagsReader.ID3V2_GeneralObjectFrameMemoryFileGet (

nIndex as Integer,

pBuffer as variant,

nBufferLen as long

) as enumErrorCodes


 

[C++]

short control.TagsReader.ID3V2_GeneralObjectFrameMemoryFileGet (

short nIndex,

const VARIANT FAR& pBuffer,

long nBufferLen

);


 

 

Parameter

Description

 

 

nIndex

Zero-based index of the general object frame. The total number of general object frames available inside the ID3V2 tag can be obtained through a call to the TagsReader.ID3V2_FrameCountGet method with the strFrameId parameter set to "GEOB".

pBuffer

Output buffer that, on return from the method call, will contain the file data

nBufferLength

Length of the buffer expressed in bytes. The size for the memory buffer can be obtained through the TagsReader.ID3V2_GeneralObjectFrameSizeGet method.

 

 

Return value

 

Value

Meaning

 

 

Negative value

An error occurred (see the LastError property for further error details)

enumErrorCodes.NOERROR (0)

The method call was successful.

 

 

Below you can find a couple of samples that demonstrate how to retrieve a general object and store it inside a memory buffer in Visual Basic 6 and Visual C++ 6:

 

Visual Basic 6

 

Private Sub Command1_Click()

' obtain the size in bytes of the first available picture (having index 0)

Dim nSizeInBytes As Long

ActiveSoundEditor1.TagsReader.ID3V2_GeneralObjectFrameSizeGet 0, nSizeInBytes

if nSizeInBytes = 0 then Exit Sub

 

' allocate the destination buffer

Dim bytImage() As Byte

ReDim bytImage(nSizeInBytes)      

 

' read picture data into the buffer

ActiveSoundEditor1.TagsReader.ID3V2_GeneralObjectFrameMemoryFileGet 0, VarPtr(bytImage(0)), nSizeInBytes      

 

...

use the buffer

...

 

' erase the buffer and free memory

Erase bytImage

End Sub

 

 

Visual C++ 6 with MFC

 

void CReadId3v2Dlg::OnButton1()

{

long nSizeInBytes = 0;

m_editor.TagsReader.ID3V2_GeneralObjectFrameSizeGet (0, &nSizeInBytes);

if (nSizeInBytes == 0)

   return;

 

BYTE *pBuffer = new BYTE[nTagSize];

 

COleVariant var;

var.vt = VT_BYREF | VT_UI1;

var.pbVal = pTagBuffer;

m_editor.TagsReader.ID3V2_GeneralObjectFrameMemoryFileGet (0, var, nSizeInBytes);

 

...

use the buffer

...

 

delete pBuffer;

}