It could be that you do not need to QueryInterface or are using the wrong automation object to query the interface. SWT does some calls QueryInterface behind the scenes and hence the OleAutomation object you are using may not be an IDispatch. Also the COM CoClasses generated by SWTtoCOM have getAs.... methods for cast to various interfaces.
The negative value returned from the method is an error code. Have a look at this url for more details on what the error code is
http://support.microsoft.com/kb/186063