Методы, представляющие собой компоненты с интерфейсом ImaMethodDef, не имеют собственных фабрик, идентификаторов CLSID и не регистрируются в реестре. Роль фабрики методов берет на себя функция библиотеки CreateMethodDef.
HRESULT CreateMethodDef ( [in,string] maString aname, [in] int methodno, [out,retval] ImaMethodDef** method)Функция создает экземпляр метода по символьному имени алгоритма aname и номеру метода methodno. Методы нумеруются от 0 до N-1, где N — количество методов, которое определяет данная библиотека для данного алгоритма. По запросу N-го метода библиотека записывает в method нулевой указатель и возвращает код ошибки MA_ERR_METHODUNDEF.
Номера методов в библиотеке могут отличаться от номеров методов в структуре алгоритма, так как в общем случае несколько библиотек могут создавать методы для данного алгоритма, и итоговая нумерация методов внутри алгоритма будет зависеть от очередности загрузки библиотек. По этой причине для получения доступа к конкретному методу алгоритма следует пользоваться символьными именами методов.