ReactOS 0.4.17-dev-934-g091855f
dmutils.c File Reference
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "winnt.h"
#include "wingdi.h"
#include "winuser.h"
#include "wine/debug.h"
#include "objbase.h"
#include "dmusici.h"
#include "dmusicf.h"
#include "dmusics.h"
#include "dmutils.h"
#include "dmobject.h"
Include dependency graph for dmutils.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dmfile)
 
HRESULT IDirectMusicUtils_IPersistStream_ParseDescGeneric (DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
 
HRESULT IDirectMusicUtils_IPersistStream_ParseUNFOGeneric (DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 25 of file dmutils.c.

Function Documentation

◆ IDirectMusicUtils_IPersistStream_ParseDescGeneric()

HRESULT IDirectMusicUtils_IPersistStream_ParseDescGeneric ( DMUS_PRIVATE_CHUNK *  pChunk,
IStream *  pStm,
LPDMUS_OBJECTDESC  pDesc 
)

Parsing utilities

Definition at line 45 of file dmutils.c.

45 {
46
47 switch (pChunk->fccID) {
49 TRACE(": GUID chunk\n");
51 IStream_Read (pStm, &pDesc->guidObject, pChunk->dwSize, NULL);
52 break;
53 }
55 TRACE(": file date chunk\n");
56 pDesc->dwValidData |= DMUS_OBJ_DATE;
57 IStream_Read (pStm, &pDesc->ftDate, pChunk->dwSize, NULL);
58 break;
59 }
61 TRACE(": name chunk\n");
62 pDesc->dwValidData |= DMUS_OBJ_NAME;
63 IStream_Read (pStm, pDesc->wszName, pChunk->dwSize, NULL);
64 break;
65 }
67 TRACE(": file name chunk\n");
69 IStream_Read (pStm, pDesc->wszFileName, pChunk->dwSize, NULL);
70 break;
71 }
73 TRACE(": version chunk\n");
75 IStream_Read (pStm, &pDesc->vVersion, pChunk->dwSize, NULL);
76 break;
77 }
79 TRACE(": category chunk\n");
81 IStream_Read (pStm, pDesc->wszCategory, pChunk->dwSize, NULL);
82 break;
83 }
84 default:
85 /* not handled */
86 return S_FALSE;
87 }
88
89 return S_OK;
90}
#define NULL
Definition: types.h:112
#define DMUS_FOURCC_GUID_CHUNK
Definition: dmusicf.h:42
#define DMUS_FOURCC_VERSION_CHUNK
Definition: dmusicf.h:51
#define DMUS_FOURCC_FILE_CHUNK
Definition: dmusicf.h:106
#define DMUS_FOURCC_NAME_CHUNK
Definition: dmusicf.h:105
#define DMUS_FOURCC_DATE_CHUNK
Definition: dmusicf.h:104
#define DMUS_FOURCC_CATEGORY_CHUNK
Definition: dmusicf.h:50
#define DMUS_OBJ_DATE
Definition: dmusici.h:273
#define DMUS_OBJ_NAME
Definition: dmusici.h:267
#define DMUS_OBJ_FILENAME
Definition: dmusici.h:269
#define DMUS_OBJ_VERSION
Definition: dmusici.h:272
#define DMUS_OBJ_CATEGORY
Definition: dmusici.h:268
#define DMUS_OBJ_OBJECT
Definition: dmusici.h:265
#define S_OK
Definition: intsafe.h:52
#define TRACE(s)
Definition: solgame.cpp:4
WCHAR wszCategory[DMUS_MAX_CATEGORY]
Definition: dmusici.h:749
DMUS_VERSION vVersion
Definition: dmusici.h:747
FILETIME ftDate
Definition: dmusici.h:746
DWORD dwValidData
Definition: dmusici.h:743
WCHAR wszFileName[DMUS_MAX_FILENAME]
Definition: dmusici.h:750
WCHAR wszName[DMUS_MAX_NAME]
Definition: dmusici.h:748
#define S_FALSE
Definition: winerror.h:3451

Referenced by parse_style_form().

◆ IDirectMusicUtils_IPersistStream_ParseUNFOGeneric()

HRESULT IDirectMusicUtils_IPersistStream_ParseUNFOGeneric ( DMUS_PRIVATE_CHUNK *  pChunk,
IStream *  pStm,
LPDMUS_OBJECTDESC  pDesc 
)

don't ask me why, but M$ puts INFO elements in UNFO list sometimes (though strings seem to be valid unicode)

Definition at line 92 of file dmutils.c.

92 {
93
94 LARGE_INTEGER liMove; /* used when skipping chunks */
95
100 switch (pChunk->fccID) {
101
102 case mmioFOURCC('I','N','A','M'):
104 TRACE(": name chunk\n");
105 pDesc->dwValidData |= DMUS_OBJ_NAME;
106 IStream_Read (pStm, pDesc->wszName, pChunk->dwSize, NULL);
107 TRACE(" - wszName: %s\n", debugstr_w(pDesc->wszName));
108 break;
109 }
110
111 case mmioFOURCC('I','A','R','T'):
113 TRACE(": artist chunk (ignored)\n");
114 liMove.QuadPart = pChunk->dwSize;
115 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR, NULL);
116 break;
117 }
118 case mmioFOURCC('I','C','O','P'):
120 TRACE(": copyright chunk (ignored)\n");
121 liMove.QuadPart = pChunk->dwSize;
122 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR, NULL);
123 break;
124 }
125 case mmioFOURCC('I','S','B','J'):
127 TRACE(": subject chunk (ignored)\n");
128 liMove.QuadPart = pChunk->dwSize;
129 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR, NULL);
130 break;
131 }
132 case mmioFOURCC('I','C','M','T'):
134 TRACE(": comment chunk (ignored)\n");
135 liMove.QuadPart = pChunk->dwSize;
136 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR, NULL);
137 break;
138 }
139 default:
140 /* not handled */
141 return S_FALSE;
142 }
143
144 return S_OK;
145}
#define DMUS_FOURCC_UNAM_CHUNK
Definition: dmusicf.h:45
#define DMUS_FOURCC_UCOP_CHUNK
Definition: dmusicf.h:47
#define DMUS_FOURCC_UART_CHUNK
Definition: dmusicf.h:46
#define DMUS_FOURCC_UCMT_CHUNK
Definition: dmusicf.h:49
#define DMUS_FOURCC_USBJ_CHUNK
Definition: dmusicf.h:48
#define debugstr_w
Definition: kernel32.h:32
#define mmioFOURCC(c0, c1, c2, c3)
Definition: mmsystem.h:38
LONGLONG QuadPart
Definition: typedefs.h:114

Referenced by parse_style_form().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dmfile  )