callExternalFunction

En metod för ett makroskript att anropa inbyggd kod. Används ofta för att hämta ett anpassat grafiskt användargränssnitt som utvecklats i någon annan teknik än Flash.

När skriptet anropar callExternalFunction laddas det angivna DLL-filnamnet från den mapp som innehåller den skriptfil som för närvarande körs. DLL-tillägget läggs automatiskt till det angivna filnamnet. DLL-filnamnet får inte innehålla sökvägselement, utan endast ett filnamn utan något tillägg, t.ex. myMacroExtension.

GetProcAddress används för att hitta den funktion som identifieras av parametern sFunctionName.

Exempel på anrop:

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

Detta anrop hämtar en DLL som heter DesignerExtension.dll från den katalog där makrot har installerats, letar reda på en funktion som heter ShowMyDialog och skickar strängen "användardata här" som en bred teckensträng (const wchar_t *).

Funktionen kan returnera en sträng, som returneras från anropet designer.callExternalFunction. Strängen returneras som en HGLOBAL och innehåller en bred teckensträng.

Följande exempel på en funktion i en DLL visar vilken sträng som skickats in i en dialogruta, och returnerar "yes" eller "no" baserat på vad användaren klickar på: C-funktionen måste ha funktionsprototypen som i detta exempel.

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; 
}

Syntax

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

Parametrar

param1

En sträng som motsvarar DLL-namnet. Ange DLL-rotens filnamn utan något filnamnstillägg.

param2

En sträng som motsvarar funktionsnamnet.

param3

Den strängparameter som skickats till funktionen.

Returnerar

Sträng.