|Microsoft DirectX 9.0|
The PackStructured method inserts fixed-length data (typically a MIDI channel message), along with timing and routing information, into the buffer.
HRESULT PackStructured( REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD dwChannelMessage );
Absolute time of the message. (See Remarks.)
Channel group to which the data belongs.
Data (MIDI message) to pack.
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.
At least 32 bytes (the size of DMUS_EVENTHEADER plus dwChannelMessage) must be free in the buffer.
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.
Header: Declared in dmusicc.h.