Topic: How to define in a method from interface the parameter referring to a class

Here for example I have a class:

class ATL_NO_VTABLE CIStorage: 
 public CComObjectRootEx <CComSingleThreadModel>, 
 public CComCoClass <CIStorage, &CLSID_DiagReport>, 
 public IDispatchImpl <ICIStorage, &IID_ICIStorage, &LIBID_DiagReportLib,/*wMajor = */1,/*wMinor = */0> 
IFACEMETHODIMP (//Creates object which allows us to work with "IStorage interface" 
 _Out_ CIStorage ** pCIStorage, 
 _Out_ BOOL *bResult = 0 

CreateObjectStorage it is intended for creation and reset in parameter opIStorage a copy of object of a class.

In idl the interface is presented as:

  uuid (C002768D-287A-4BC8-B098-CDFC74BA9A16), 
  helpstring ("IStorage Interface"), 
  pointer_default (unique) 

interface ICIStorage: IDispatch { 
[id (0),   
  helpstring ("Create object foe work with IStorage interface")  
] HRESULT CreateObjectStorage ( 
 [out] CIStorage ** pCIStorage, 
 [out, retval] BOOL *bResult 

But idl it is compiled with an error:

Error 1 error MIDL2025: syntax error: expecting a type specification near "CIStorage"...

As  MIDL with CIStorage