Quel est le Matlab équivalent de NULL, quand il appelle COM/ActiveX méthodes?

Je maintenir un programme qui peut être automatisé via COM. Généralement les clients à utiliser les VBS pour faire leur script, mais nous avons un couple de clients qui utilisent Matlab ActiveX support et de la difficulté appel COM méthodes de l'objet avec un paramètre NULL.

Ils nous ont demandé comment ils le font dans Matlab et j'ai été à récurer Mathworks COM/ActiveX documentation pour un jour ou deux et ne peut pas le comprendre.

Leur exemple de code pourrait ressembler à quelque chose comme ceci:

function do_something()
   OurAppInstance = actxserver('Foo.Application');
   OurAppInstance.Method('Hello', NULL)
end

NULL est là dans une autre langue, nous vous écrire NULL ou nil ou Nothing, ou, bien sûr, passer un objet. Le problème c'est que c'est facultatif (et ceux-ci sont mis en œuvre en tant que paramètres optionnels dans la plupart, mais pas, les cas) - ces méthodes s'attendre à obtenir NULL assez souvent.

Ils me disent qu'ils ont essayé [] (qui d'après mes lectures me semblait le plus probable) ainsi que '', Nothing, 'Nothing', None, Null, et 0. Je n'ai aucune idée de la façon dont beaucoup de ceux qui sont encore valides Matlab des mots - clés, certainement pas de travail dans ce cas.

Peut aider quelqu'un? Ce qui est Matlab syntaxe d'un pointeur null /objet pour l'utiliser comme une méthode COM paramètre?

Mise à jour: Merci pour toutes les réponses pour l'instant! Malheureusement, aucune de ces réponses semblent fonctionner, même pas libpointer. L'erreur est la même dans tous les cas:

Error: Type mismatch, argument 2

Ce paramètre dans la COM bibliothèque de type est décrit dans la RIDL:

    HRESULT _stdcall OurMethod([in] BSTR strParamOne, [in, optional] OurCoClass* oParamTwo, [out, retval] VARIANT_BOOL* bResult);

La coclasse en question met en œuvre une interface unique descendant de IDispatch.

OriginalL'auteur David M | 2010-02-17