Condividi tramite


GetAppcConfig

La funzione GetAppcConfig fornisce un punto di ingresso asincrono per il recupero dei sistemi remoti a cui può connettersi un particolare lu locale.

Sintassi

  
HANDLE WINAPI GetAppcConfig(   
HANDLE hWnd,  
LPSTR pLocalLu,  
LPSTR pMode,  
LPINT pNumRemLu,  
INT iMaxRemLu,  
PSTR pRemLu,  
LPINT pAsyncRetCode  
);  

Parametri

hWnd
Parametro fornito. Contiene l'handle della finestra che deve ricevere un messaggio di completamento asincrono al termine della chiamata. Se non null, il messaggio di completamento verrà inviato a questo handle di finestra. In questo caso , pAsyncRetCode (l'ultimo parametro) deve essere null. Il completamento asincrono dei messaggi è l'approccio consigliato per le applicazioni Windows per l'uso di questa funzione.

pLocalLu
Parametro fornito. Specifica l'indirizzo di un buffer contenente il nome lu locale per cui vengono restituite le informazioni. Questo nome lu locale deve essere specificato come segue:

  • Non bloccato

  • Terminazione Null

  • Stringa ASCII

  • Lunghezza massima di otto byte (escluso il terminatore)

    Per richiedere che venga usata l'unità lu locale predefinita dell'utente, il buffer deve contenere otto spazi seguiti da un valore Null.

    pMode
    Parametro fornito. Specifica l'indirizzo di un buffer contenente il nome della modalità per cui vengono restituite le informazioni. In Microsoft Host Integration Server questo parametro non viene usato, ma per compatibilità con le versioni precedenti di SNA Server è necessario specificare un nome di modalità come indicato di seguito:

  • Non bloccato

  • Terminazione Null

  • Stringa ASCII

  • Lunghezza massima di otto byte (escluso il terminatore)

    pNumRemLu
    Parametro fornito. Specifica l'indirizzo di una variabile di tipo integer che, al termine della funzione, conterrà il numero di unità LU remote che sarebbero state restituite, se il buffer specificato da pRemLu fosse sufficientemente grande da contenere tutte le unità di archiviazione remote.

    iMaxRemLu
    Parametro fornito. Specifica il numero di nomi lu remoti che possono essere mantenuti dal buffer indicato da pRemLu.

    pRemLu
    Parametro fornito. Specifica l'indirizzo del buffer che conterrà i nomi lu remoti al termine della funzione. Le informazioni verranno restituite come matrice di stringhe. Ogni nome lu remoto verrà archiviato nel buffer come indicato di seguito:

  • Non bloccato

  • Terminazione Null

  • Stringa ASCII

  • Lunghezza massima di otto byte (escluso il terminatore)

    Le stringhe iniziano ogni nove byte nel buffer e quindi (pRemLu + (i-1)*9) dà l'inizio della primastringa. Nel caso in cui il buffer sia troppo piccolo per contenere tutti i nomi, verranno restituite solo le stringhe iMaxRemLu .

    pAsyncRetCode
    Parametro fornito. Specifica l'indirizzo di una variabile integer utilizzata per archiviare il codice restituito da questa funzione, se l'indirizzo specificato è diverso da Null. I codici restituiti saranno uguali a quelli restituiti da un messaggio di completamento asincrono. Durante il completamento della chiamata, il valore di questa variabile verrà APPC_CFG_PENDING. Al termine di questa chiamata asincrona, il valore di questa variabile conterrà codice restituito diverso da APPC_CFG_PENDING.

    Questa variabile viene usata eseguendo il polling per il completamento quando il completamento asincrono del messaggio in un handle di finestra non viene usato.

    Si noti che se si usa pAsyncRetCode , hWnd deve essere null.

Valore restituito

Il significato del valore restituito immediato dipende dal fatto che la richiesta asincrona sia stata accettata o meno. Per testare l'accettazione, valutare l'espressione:

(<Handle >restituito & APPC_CFG_SUCCESS)

Se l'espressione è FALSE, la richiesta è stata rifiutata. Il valore restituito è quindi uno dei codici restituiti sincroni nell'elenco seguente. Se l'espressione è TRUE, la richiesta è stata accettata e verrà applicato uno dei casi seguenti.

  • Se hWnd è diverso da Null, un messaggio di completamento verrà visualizzato nel formato seguente:

    Parametro message Descrizione
    hWnd Handle della finestra di destinazione. Questo valore corrisponde al valore passato in hWnd nella chiamata iniziale.
    Umsg Corrisponde al numero restituito da una chiamata a RegisterWindowMessage, con WinAppcCfg usato come stringa di identificazione. Questa stringa è disponibile dal #define WIN_APPC_CFG_COMPLETION_MSG.
    wParam Corrisponde all'handle restituito dalla chiamata iniziale. Viene usato come correlatore.
    lParam Contiene uno dei codici restituiti asincroni nell'elenco seguente.
  • Se pAsyncRetCode non è null, la variabile integer specificata verrà impostata su APPC_CFG_PENDING. Al termine di questa funzione in modo asincrono, il relativo valore verrà modificato in uno dei codici restituiti asincroni elencati di seguito.

Codici restituiti sincroni

APPC_CFG_ERROR_NO_APPC_INIT
La libreria APPC di Windows deve essere inizializzata da una chiamata a WinAPPCStartup prima di chiamare GetAppcConfig e questa operazione non è stata eseguita.

APPC_CFG_ERROR_INVALID_HWND
L'handle passato in hWnd non era null, ma non un handle di finestra valido.

APPC_CFG_ERROR_BAD_POINTER
Il parametro hWnd è null, a indicare che il completamento è stato segnalato impostando la variabile integer a cui punta pAsyncRetCode, ma pAsyncRetCode non era un puntatore valido.

APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE
Sia hWnd che pAsyncCompletion erano non Null, quindi GetAppcConfig non è riuscito a decidere come deve essere segnalato il completamento.

APPC_CFG_ERROR_TOO_MANY_REQUESTS
Troppe chiamate GetAppcConfig sono già in corso di elaborazione (attualmente indica che sono in sospeso 16 richieste). Ripetere la chiamata dopo un ritardo. Per Microsoft Windows versione 3. x system, è necessario produrre durante questo periodo.

APPC_CFG_ERROR_GENERAL_FAILURE
Si è verificato un errore imprevisto, probabilmente di natura del sistema.

Codici restituiti asincroni

APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE
Le informazioni di configurazione sono state recuperate e non è stato definito alcun lu remoto predefinito oppure non è stato accessibile dall'lu locale specificato.

APPC_CFG_SUCCESS_DEFAULT_REMOTE
Le informazioni di configurazione sono state recuperate ed è presente un lu remoto predefinito accessibile dall'lu locale specificato.

APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU
È stato effettuato un tentativo di recupero di unità logiche remote associate all'lu locale predefinito, ma non è stato configurato alcun lu locale predefinito.

APPC_CFG_ERROR_BAD_LOCAL_LU
L'lu locale specificato non è configurato o non è valido per il verbo chiamante.

APPC_CFG_ERROR_GENERAL_FAILURE
Si è verificato un errore imprevisto, probabilmente di natura del sistema.

Commenti

WinAPPCStartup deve essere chiamato prima di usare GetAppcConfig.

Se un codice di errore rappresenta l'esito positivo o negativo può essere determinato valutando (RetCode&APPC_CFG_SUCCESS ) per verificare l'esito positivo o (RetCode& APPC_CFG_FAILURE) per verificare l'esito negativo.

Il frammento di codice seguente mostra come un'applicazione console può testare il completamento:

while (*pAsyncRetCode == APPC_CFG_PENDING)  
{  
    sleep(250);  
}