There is a typo in the documentation for the ISpRecoGrammar::SetRuleState method in SAPI 5.3.  The input parameters are listed as:

HRESULT SetRuleState(
   LPCWSTR       *pszName,
   void          *pReserved,
   SPRULESTATE   NewState
);

This instead it should be:

HRESULT SetRuleState(
   LPCWSTR       pszName,
   void          *pReserved,
   SPRULESTATE   NewState
);

Note that instead of "*pszName" the parameter should be "pszName".

We'll update MSDN and the Windows SDK documentation, but in the meantime we wanted to publish this errata.