Uncommented 'optional' attributes.

diff --git a/include/amstream.idl b/include/amstream.idl
index 410804c..65bea0d 100644
--- a/include/amstream.idl
+++ b/include/amstream.idl
@@ -91,7 +91,7 @@
 	HRESULT Initialize(
 		[in] STREAM_TYPE StreamType,
 		[in] DWORD dwFlags,
-		[in] /*[optional]*/ IGraphBuilder *pFilterGraph);
+		[in, optional] IGraphBuilder *pFilterGraph);
 
 	HRESULT GetFilterGraph(
 		[out] IGraphBuilder **ppGraphBuilder);
@@ -100,10 +100,10 @@
 		[out] IMediaStreamFilter **ppFilter);
 
 	HRESULT AddMediaStream(
-		[in] /*[optional]*/ IUnknown *pStreamObject,
-		[in] /*[optional]*/ const MSPID *PurposeId,
+		[in, optional] IUnknown *pStreamObject,
+		[in, optional] const MSPID *PurposeId,
 		[in] DWORD dwFlags,
-		[out] /*[optional]*/ IMediaStream **ppNewStream);
+		[out, optional] IMediaStream **ppNewStream);
 
 	HRESULT OpenFile(
 		[in] LPCWSTR pszFileName,
@@ -127,7 +127,7 @@
 interface IAMMediaStream : IMediaStream
 {
 	HRESULT Initialize(
-		[in] /*[optional]*/ IUnknown *pSourceObject,
+		[in, optional] IUnknown *pSourceObject,
 		[in] DWORD dwFlags,
 		[in] REFMSPID PurposeId,
 		[in] const STREAM_TYPE StreamType);
@@ -231,9 +231,9 @@
 
 	HRESULT CreateSample(
 		[in] long lSampleSize,
-		[in] /*[optional]*/ BYTE * pbBuffer,
+		[in, optional] BYTE * pbBuffer,
 		[in] DWORD dwFlags,
-		[in] /*[optional]*/ IUnknown *pUnkOuter,
+		[in, optional] IUnknown *pUnkOuter,
 		[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
 
 	HRESULT GetStreamAllocatorRequirements(
diff --git a/include/ddstream.idl b/include/ddstream.idl
index afaa002..bab3604 100644
--- a/include/ddstream.idl
+++ b/include/ddstream.idl
@@ -44,14 +44,14 @@
 interface IDirectDrawMediaStream : IMediaStream
 {
 	HRESULT GetFormat(
-		[out] /*[optional]*/ DDSURFACEDESC *pDDSDCurrent,
-		[out] /*[optional]*/ IDirectDrawPalette **ppDirectDrawPalette,
-		[out] /*[optional]*/ DDSURFACEDESC *pDDSDDesired,
-		[out] /*[optional]*/ DWORD *pdwFlags);
+		[out, optional] DDSURFACEDESC *pDDSDCurrent,
+		[out, optional] IDirectDrawPalette **ppDirectDrawPalette,
+		[out, optional] DDSURFACEDESC *pDDSDDesired,
+		[out, optional] DWORD *pdwFlags);
 
 	HRESULT SetFormat(
 		[in] const DDSURFACEDESC *pDDSurfaceDesc,
-		[in] /*[optional]*/ IDirectDrawPalette *pDirectDrawPalette);
+		[in, optional] IDirectDrawPalette *pDirectDrawPalette);
 
 	HRESULT GetDirectDraw(
 		[out] IDirectDraw **ppDirectDraw);
@@ -60,8 +60,8 @@
 		[in] IDirectDraw *pDirectDraw);
 
 	HRESULT CreateSample(
-		[in] /*[optional]*/ IDirectDrawSurface *pSurface,
-		[in] /*[optional]*/ const RECT *pRect,
+		[in, optional] IDirectDrawSurface *pSurface,
+		[in, optional] const RECT *pRect,
 		[in] DWORD dwFlags,
 		[out] IDirectDrawStreamSample **ppSample);
 
@@ -79,8 +79,8 @@
 interface IDirectDrawStreamSample : IStreamSample
 {
 	HRESULT GetSurface(
-		[out] /*[optional]*/ IDirectDrawSurface ** ppDirectDrawSurface,
-		[out] /*[optional]*/ RECT * pRect);
+		[out, optional] IDirectDrawSurface ** ppDirectDrawSurface,
+		[out, optional] RECT * pRect);
 
 	HRESULT SetRect(
 		[in] const RECT * pRect);
diff --git a/include/mmstream.idl b/include/mmstream.idl
index 4e0177b..3b4b59c 100644
--- a/include/mmstream.idl
+++ b/include/mmstream.idl
@@ -90,8 +90,8 @@
 interface IMultiMediaStream : IUnknown {
 
 	HRESULT GetInformation(
-		[out] /*[optional]*/ char *pdwFlags,
-		[out] /*[optional]*/ STREAM_TYPE *pStreamType);
+		[out, optional] char *pdwFlags,
+		[out, optional] STREAM_TYPE *pStreamType);
 
 	HRESULT GetMediaStream(
 		[in] REFMSPID idPurpose,
@@ -132,8 +132,8 @@
 		[out] IMultiMediaStream **ppMultiMediaStream);
 
 	HRESULT GetInformation(
-		[out] /*[optional]*/ MSPID *pPurposeId,
-		[out] /*[optional]*/ STREAM_TYPE *pType);
+		[out, optional] MSPID *pPurposeId,
+		[out, optional] STREAM_TYPE *pType);
 
 	HRESULT SetSameFormat(
 		[in] IMediaStream *pStreamThatHasDesiredFormat,
@@ -164,21 +164,21 @@
 		[in] IMediaStream **ppMediaStream);
 
 	HRESULT GetSampleTimes(
-		[out] /*[optional]*/ STREAM_TIME * pStartTime,
-		[out] /*[optional]*/ STREAM_TIME * pEndTime,
-		[out] /*[optional]*/ STREAM_TIME * pCurrentTime);
+		[out, optional] STREAM_TIME * pStartTime,
+		[out, optional] STREAM_TIME * pEndTime,
+		[out, optional] STREAM_TIME * pCurrentTime);
 
 	HRESULT SetSampleTimes(
-		[in] /*[optional]*/ const STREAM_TIME *pStartTime,
-		[in] /*[optional]*/ const STREAM_TIME *pEndTime);
+		[in, optional] const STREAM_TIME *pStartTime,
+		[in, optional] const STREAM_TIME *pEndTime);
 
 	HRESULT Update(
 		[in] DWORD dwFlags,
-		[in] /*[optional]*/ HANDLE hEvent,
-		[in] /*[optional]*/ PAPCFUNC pfnAPC,
-		[in] /*[optional]*/ DWORD dwAPCData);
+		[in, optional] HANDLE hEvent,
+		[in, optional] PAPCFUNC pfnAPC,
+		[in, optional] DWORD dwAPCData);
 
 	HRESULT CompletionStatus(
 		[in] DWORD dwFlags,
-		[in] /*[optional]*/ DWORD dwMilliseconds);
+		[in, optional] DWORD dwMilliseconds);
 };