callExternalFunction

Fornece um método para um script de macros para chamar o código nativo. Geralmente, usada para chamar uma interface gráfica do usuário personalizada desenvolvida em uma tecnologia que não seja Flash.

Quando o script chamada callExternalFunction, o nome de arquivo DLL especificado é carregado da pasta contendo o arquivo de script atualmente em execução. A extensão DLL é adicionada automaticamente ao nome de arquivo especificado. O nome de arquivo DLL não pode incluir elementos de caminho e deve incluir um nome de arquivo sem uma extensão, como myMacroExtension.

GetProcAddress é usada para localizar a função identificada pelo parâmetro sFunctionName.

Chamada de amostra:

designer.callExternalFunction("DesignerExtension", "ShowMyDialog", "user data here");

Essa chamada carrega uma DLL denominada DesignerExtension.dll do mesmo diretório no qual a macro está instalada, consulta uma função denominada ShowMyDialog e passa a string "user data here" (dados de usuário aqui) como uma string ampla de caracteres (const wchar_t *).

A função pode retornar uma string, que é retornada da chamada designer.callExternalFunction. A string é retornada como uma HGLOBAL contendo uma string ampla de caracteres.

O exemplo a seguir de uma função em uma DLL mostra a string aprovada em uma caixa de diálogo, bem como retorna "yes" (sim) ou "no" (não), com base em qual opção o usuário clica. A função C deve ter a função protótipo como neste exemplo.

extern "C" __declspec(dllexport) HGLOBAL _cdecl ShowMyDialog(HWND hwndParent, const wchar_t *pszArgument) 
{ 
    int nResult = ::MessageBox(hwndParent, pszArgument, L"DLL Function Sample", MB_YESNO); 
// Allocate some memory for the result string 
    HGLOBAL hMem = GlobalAlloc(0, 64); 
    if (!hMem) 
        return 0; 
wchar_t *pMem = (wchar_t *)GlobalLock(hMem); 
    wcscpy_s(pMem, 30, nResult == IDYES ? L"yes" : L"no"); 
    ::GlobalUnlock(hMem); 
    return hMem; 
}

Sintaxe

designer.callExternalFunction ( STRING param1, STRING param2, STRING param3)

Parâmetros

param1

Uma string representando o nome da DLL. Especifique o nome do arquivo de raiz da DLL, sem a extensão de nome de arquivo.

param2

Uma string representando o nome da função.

param3

O parâmetro de string que é passado para a função.

Retorna

String.