Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The PackUnstructured method inserts unstructured data (typically a MIDI system-exclusive message), along with timing and routing information, into the buffer.
Syntax
HRESULT PackUnstructured(
REFERENCE_TIME rt,
DWORD dwChannelGroup,
DWORD cb,
LPBYTE lpb
);
Parameters
rt
Absolute time of the message.
dwChannelGroup
Channel group to which the message belongs.
cb
Size of the data, in bytes.
lpb
Address of a buffer containing the data.
Return Values
If the method succeeds, the return value is S_OK.
If it fails, the method can return one of the error values shown in the following table.
Return code |
E_OUTOFMEMORY |
E_POINTER |
Remarks
This method can be used to send any kind of data to the port.
At least 28 bytes (the size of DMUS_EVENTHEADER) plus the size of the data, padded to a multiple of 4 bytes, must be free in the buffer. The buffer space required can be obtained by using the DMUS_EVENT_SIZE(cb) macro, where cb is the size of the data.
The rt parameter must contain the absolute time at which the data is to be sent to the port. To play a message immediately, retrieve the time from the latency clock, and use this as rt. See IDirectMusicPort8::GetLatencyClock.
Messages stamped with the same time do not necessarily play in the same order in which they were placed in the buffer.
Requirements
** Header:** Dmusicc.h
See Also