Struttura IMESTRUCT (ime.h)

Usato da SendIMEMessageEx per specificare la sottofunzione da eseguire nel messaggio IME (Input Method Editor) e nei relativi parametri. Questa struttura viene usata anche per ricevere valori restituiti da tali sottofunzioni.

Sintassi

typedef struct tagIMESTRUCT {
  UINT   fnc;
  WPARAM wParam;
  UINT   wCount;
  UINT   dchSource;
  UINT   dchDest;
  LPARAM lParam1;
  LPARAM lParam2;
  LPARAM lParam3;
} IMESTRUCT, *PIMESTRUCT, *NPIMESTRUCT, *LPIMESTRUCT;

Members

fnc

Sottofunzione. Uno dei valori seguenti.

IME_ENTERWORDREGISTERMODE

Usato per registrare parole. Le parole vengono registrate come applicazione invia una parola e la relativa lettura. I membri della struttura vengono interpretati come segue:

Membro Type Descrizione
lParam1 [Windows 3.1] LPARAM La parola a basso ordine specifica un handle per la memoria globale contenente una stringa di parole che termina con 0. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc .
lParam2 [Windows 3.1] LPARAM La parola a basso ordine specifica un handle per la memoria globale contenente una stringa di lettura che termina con 0. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc
lParam3 [Windows 3.1] LPARAM Deve essere NULL.
lParam1 [Windows NT] LPARAM Specifica un handle per la memoria globale contenente una stringa di parole che termina con 0. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc .
lParam2 [Windows NT] LPARAM Specifica un handle per la memoria globale contenente una stringa di lettura che termina con 0. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc .
lParam3 [Windows NT] LPARAM Usato per specificare informazioni su una parte della voce. Poiché tali informazioni non possono essere specificate con la specifica di Windows corrente, NULL viene impostato qui.
 

Il valore restituito indica il risultato della registrazione delle parole. TRUE se la registrazione è stata elaborata normalmente; in caso contrario, FALSE.

Se sono necessarie informazioni come una parte della voce, è necessario visualizzare una finestra di dialogo per richiedere all'utente l'input. NULL può essere specificato nei membri lParam1 e lParam2; in questo caso, non deve essere visualizzato alcun elemento nel campo voce associato nella finestra di dialogo.

IME_GETCONVERSIONMODE

Acquisisce la modalità di conversione corrente dell'IME. Questo sottogramma non usa parametri.

Si tratta dello stesso IME_GET_MODE.

Restituisce la modalità di conversione corrente dell'IME come combinazione di IME_MODE_ALPHANUMERIC in IME_MODE_NOCODEINPUT. Le modalità di conversione sono le seguenti:

Modalità di conversione Mode
IME_MODE_ALPHANUMERIC Alfanumerico
IME_MODE_KATAKANA Katakana
IME_MODE_HIRAGANA Hiragana
IME_MODE_SBCSCHAR Carattere a byte singolo
IME_MODE_DBCSCHAR Carattere a byte doppio
IME_MODE_ROMAN Carattere romano
IME_MODE_NOROMAN Carattere non romano
IME_MODE_CODEINPUT Input del codice
IME_MODE_NOCODEINPUT Input non codificato
 

IME_GET_MODE

Uguale a IME_GETCONVERSIONMODE.

IME_MOVECONVERTWINDOW

Uguale a IME_SETCONVERSIONWINDOW.

IME_SETCONVERSIONFONTEX

Tipo di carattere da utilizzare per visualizzare una stringa non determinata visualizzata nella finestra di conversione. I membri della struttura vengono interpretati come segue:

Membro Type Descrizione
lParam1 [Windows 3.1] LPARAM La parola a basso ordine specifica un handle per la memoria globale che contiene una struttura LOGFONT che specifica il tipo di carattere logico. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc . NULL indica un carattere di sistema.
lParam1 [Windows NT] LPARAM Specifica un handle per la memoria globale che contiene una struttura LOGFONT che specifica il tipo di carattere logico. La memoria globale è un blocco di memoria allocato specificando i flag di GMEM_MOVEABLE e GMEM_SHARE nella funzione GlobalAlloc . NULL indica un carattere di sistema.
 

Questa sottofunzione non ha alcun valore restituito.

Il tipo di carattere specificato da IME_SETCONVERSIONFONTEX può essere usato solo per visualizzare stringhe non specificate.

Per visualizzare stringhe non dichiarate nella posizione predefinita, usare un tipo di carattere di sistema. Se la posizione di visualizzazione non è più la posizione predefinita, abilitare il carattere specificato in precedenza.

La memoria globale contenente la struttura LOGFONT viene rilasciata dall'applicazione.

Se l'IME attualmente che visualizza la finestra di conversione riceve il comando IME_SETCONVERSIONFONTEX e in seguito all'elaborazione dei comandi la finestra di conversione è stata modificata, l'IME deve inviare un messaggio di WM_IME_REPORT :IR_CHANGECONVERT. Questo messaggio non deve essere inviato se il tipo di carattere specificato da IME_SETCONVERSIONFONTEX è uguale a quello usato dall'IME.

IME_SETCONVERSIONMODE

Imposta la modalità di conversione dell'IME. Il membro wParam specifica uno o più dei valori seguenti:

Valore Significato
IME_MODE_ALPHANUMERIC Modalità di conversione alfanumerica. Questo valore non può essere usato con IME_MODE_KATAKANA o IME_MODE_HIRAGANA.
IME_MODE_KATAKANA Modalità di conversione Katakana. Questo valore non può essere usato con IME_MODE_ALPHANUMERIC o IME_MODE_HIRAGANA.
IME_MODE_HIRAGANA Modalità di conversione Hiragana. Questo valore non può essere usato con IME_MODE_ALPHANUMERIC o IME_MODE_HIRAGANA.
IME_MODE_SBCSCHAR Modalità di conversione dei caratteri a byte singolo. Questo parametro non può essere usato con IME_MODE_DBCSCHAR.
IME_MODE_DBCSCHAR Modalità di conversione dei caratteri a byte doppio. Questo parametro non può essere usato con IME_MODE_SBCSCHAR.
IME_MODE_ROMAN Modalità di conversione dei caratteri romani. Questo parametro non può essere usato con IME_MODE_NOROMAN.
IME_MODE_NOROMAN Modalità di conversione dei caratteri non romani. Questo parametro non può essere usato con IME_MODE_ROMAN.
IME_MODE_CODEINPUT Modalità di conversione dell'input di codice. Questo parametro non può essere usato con IME_MODE_NOCODEINPUT. Il funzionamento di un IME in modalità di input del codice dipende dall'IME specifico.
IME_MODE_NOCODEINPUT Modalità di conversione di input non codificata. Questo parametro non può essere usato con IME_MODE_CODEINPUT.
 

Il valore restituito indica se la modalità di conversione specificata è stata configurata correttamente. Restituisce lo stato della modalità di conversione in precedenza se la nuova modalità di conversione è stata impostata; in caso contrario, NULL.

IME_SETCONVERSIONWINDOW

Dimensioni e posizione del rettangolo di delimitazione per l'IME e la posizione iniziale della finestra di conversione. L'IME visualizza una stringa non determinita nella posizione specificata da questa sottofunzione.

Il membro wParam specifica uno dei valori seguenti:

Valore Significato
MCW_DEFAULT Visualizza la finestra di conversione nella posizione predefinita, che è in genere la parte inferiore dello schermo.

Se lo stile di MCW_DEFAULT viene specificato in un messaggio di IME_SETCONVERSIONWINDOW, quando l'IME visualizza o disegna una finestra di conversione nella posizione predefinita, non deve inviare un IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT o IR_CLOSECONVERT messaggio.

MCW_WINDOW Visualizza la finestra di conversione in corrispondenza della coordinata specificata nel membro lParam1 , nella finestra specificata nel parametro wParam del messaggio WM_CONVERTREQUEST o WM_CONVERTREQUESTEX. Il valore in lParam1 indica le coordinate relative all'angolo superiore sinistro della finestra, con la parola in ordine basso che rappresenta la coordinata X e la parola di ordine elevato della coordinata Y. Il rettangolo di delimitazione è il rettangolo client della finestra specificata ed è il modo più tipico per richiamare una conversione kana-kanji.

Se lo stile MCW_WINDOW viene specificato in un messaggio di IME_SETCONVERSIONWINDOW, l'IME deve inviare un messaggio di IR_OPENCOVERT se lo stato della finestra di conversione è passato da chiuso a aperto. Se lo stato della finestra di conversione è passato da aperto a chiuso, l'IME deve inviare un messaggio di IR_CLOSECONVERT. Esiste tuttavia un'eccezione. Per informazioni dettagliate, vedere IME_WINDOWUPDATE.

MCW_WINDOW | MCW_RECT Uguale a MCW_WINDOW ad eccezione del fatto che il rettangolo di delimitazione viene specificato dai membri lParam2 e lParam3 . Il membro lParam2 specifica il punto superiore sinistro e lParam3 specifica il punto inferiore destro, ognuno con la parola in ordine basso che rappresenta la coordinata X e la parola in ordine elevato la coordinata Y. Le coordinate sono relative all'angolo superiore sinistro della finestra.
MCW_SCREEN Visualizza la finestra di conversione con l'angolo superiore sinistro designato dal membro lParam1 . Il membro lParam1 indica le coordinate assolute con l'origine nell'angolo superiore sinistro dello schermo. La parola di ordine basso rappresenta la coordinata X e la parola di ordine elevato coordinata Y. Il rettangolo di delimitazione è lo schermo intero.

Se lo stile MCW_SCREEN viene specificato in un messaggio di IME_SETCONVERSIONWINDOW, l'IME deve inviare un messaggio di IR_OPENCOVERT se lo stato della finestra di conversione è passato da chiuso a aperto. Se lo stato della finestra di conversione è passato da aperto a chiuso, l'IME deve inviare un messaggio di IR_CLOSECONVERT. Esiste tuttavia un'eccezione. Per informazioni dettagliate, vedere IME_WINDOWUPDATE.

MCW_SCREEN | MCW_RECT Uguale a MCW_SCREEN ad eccezione del fatto che il rettangolo di delimitazione viene specificato dai membri lParam2 e lParam3 . Il membro lParam2 specifica il punto superiore sinistro e lParam3 specifica il punto inferiore destro, ognuno con la parola in ordine basso che rappresenta la coordinata X e la parola in ordine elevato la coordinata Y. Le coordinate sono coordinate assolute con l'origine in alto a sinistra dello schermo.
MCW_HIDDEN [Windows 3.1] Quando questo flag viene specificato, l'IME non visualizza la finestra di conversione. L'applicazione visualizza invece stringhe non deterministiche. Il membro lParam1 specifica le coordinate della posizione del cursore visualizzata dall'applicazione o dal punto di interesse. I membri lParam2 e lParam3 specificano un'area in cui non è abilitata alcuna visualizzazione dall'IME. Un IME che visualizza candidati di stringa determinati in una finestra popup è in grado di utilizzare queste informazioni per determinare dove visualizzare la finestra dei candidati a stringa determinata. Una finestra per visualizzare le stringhe candidate viene considerata come una finestra di sistema. Pertanto, è dipendente dall'IME se visualizzare tale finestra, dove e come visualizzare la finestra e quale input della tastiera usare. I tre membri lParam1, lParam2 e lParam3 specificano le coordinate assolute dall'alto a sinistra dello schermo, ognuna con la parola in ordine basso che rappresenta la coordinata X e la parola di ordine elevato coordinata Y.

Quando viene specificato il flag MCW_HIDDEN, l'IME invia un messaggio di IR_UNDETERMINE per richiedere che l'applicazione visualizzi la stringa non determiniata. L'applicazione stessa visualizza la stringa non determinita contenuta in questo messaggio.

Dopo aver specificato il flag di MCW_HIDDEN, l'IME non invia un messaggio di IR_OPENCONVERT, IR_CHANGECONVERT o IR_CLOSECONVERT.

Se un'applicazione specifica MCW_HIDDEN e, allo stesso tempo, richiede un rettangolo troppo grande per visualizzare la finestra candidata per una stringa determinata, deve essere considerata come un errore. Il codice di errore deve essere IME_RD_TOOLONG.

Se lo stile di MCW_HIDDEN viene specificato in un messaggio di IME_SETCONVERSIONWINDOW, l'IME non deve mai inviare un IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT o IR_CLOSECONVERT.

MCW_VERTICAL Indica all'IME che l'applicazione visualizza stringhe di caratteri in formato di scrittura verticale. Se questo flag viene specificato, la finestra di conversione viene visualizzata per la scrittura verticale, con la posizione designata dal membro lParam1 che rappresenta l'angolo superiore destro. Questo flag può essere specificato con MCW_WINDOW, MCW_WINDOW|MCW_RECT, MCW_SCREEN o MCW_SCREEN|MCW_RECT. Un IME deve supportare MCW_VERTICAL. Se viene specificato MCW_VERTICAL e il tipo di carattere selezionato non è per la scrittura verticale, l'IME utilizza il tipo di carattere predefinito per la scrittura verticale. Questo tipo di carattere predefinito viene creato come segue:
  1. Le informazioni sul tipo di carattere vengono recuperate nella struttura LOGFONT dalla funzione GetObject usando l'handle del tipo di carattere di SYSTEM_FONT.
  2. Il tipo di carattere viene creato aggiungendo una e commerciale (@) all'inizio del nome del viso e impostando l'escape e l'orientamento su 270 gradi.
 

Il valore restituito indica se il comando è stato eseguito. TRUE se l'esecuzione del comando ha avuto esito positivo; in caso contrario, FALSE.

Se una stringa non deterministica sembra sovraflow del rettangolo di delimitazione, l'IME deve emettere il messaggio di report WM_IME_REPORT:IR_FULLCONVERT all'applicazione prima di visualizzare tale stringa. Se l'applicazione non gestisce questo messaggio, l'elaborazione successiva per la visualizzazione non viene formulata in questa specifica, ma viene lasciata all'IME. Ad esempio, la stringa non determinita potrebbe essere scorrevole all'interno del rettangolo di delimitazione oppure può essere spostata temporaneamente nella posizione predefinita.

Se viene chiamato un messaggio IME_SETCONVERSIONWINDOW quando l'IME contiene una stringa non definita, l'IME deve emettere un messaggio WM_IME_REPORT:IR_CLOSECONVERT; se la stringa rientra nella finestra specificata come parametro, l'IME deve emettere un messaggio WM_IME_REPORT:IR_OPENCONVERT. Solo allora deve essere disegnata la finestra di conversione. Se la stringa non rientra nella finestra, l'IME deve emettere un messaggio WM_IME_REPORT:IR_FULLCONVERT.

La posizione del rettangolo di delimitazione può essere specificata all'esterno dell'area dello schermo fisico. Se l'intero rettangolo di delimitazione si trova all'esterno dello schermo fisico, non devono essere visualizzate stringhe non deterministiche. Se parte del rettangolo di delimitazione si trova all'esterno dello schermo fisico, l'IME ritaglia il rettangolo di delimitazione in modo che nessuna parte della stringa non determinita sovraffonda lo schermo e regola anche la posizione iniziale dello schermo.

È consigliabile non impostare il numero massimo di righe di o il numero massimo di caratteri visualizzati nella finestra di conversione.

Se la finestra di conversione si sovrappone a una finestra di sistema, la finestra di conversione deve essere visibile. Ad esempio, alla finestra di conversione può essere assegnata la priorità superiore per la visualizzazione o la finestra di sistema può essere spostata altrove.

L'IME deve inviare un messaggio di IR_CHANGECONVERT se la finestra di conversione è cambiata in dimensioni, contenuto visualizzato o colore di visualizzazione. Tuttavia, se una stringa non determinita non rientra in una finestra specificata, l'IME deve inviare un messaggio di IR_FULLCONVERT anziché IR_CHANGECONVERT.

Quando l'IME è passato dalla modalità MCW_WINDOW o MCW_SCREEN a MCW_DEFAULT, deve inviare un messaggio di IR_CLOSECONVERT se esiste una stringa non determinata.

Quando l'IME è passato dalla modalità MCW_WINDOW o MCW_SCREEN a MCW_HIDDEN, deve inviare un messaggio di IR_CLOSECONVERT se esiste una stringa non determinata.

Quando l'IME è passato dalla modalità di MCW_HIDDEN a MCW_DEFAULT, MCW_SCREEN o MCW_WINDOW, l'IME deve trasmettere un messaggio di IR_UNDETERMINE con stringa non definita = 0 e determinata stringa = 0.

IME_SETLEVEL

Sottofunzione specifica del coreano che imposta il livello IME sull'applicazione corrente. Il membro wParam accetta uno dei valori di livello seguenti.

Level Significato
1 Nessun supporto IME. Tutti i messaggi specifici di IME vengono ignorati.
2 Supporto IME parziale. Supporta un subset di comportamento IME, inclusa la posizione delle finestre di composizione o candidato e la modalità di input o lo stato.
3 Supporto IME completo.
 

IME_SETOPEN

Imposta lo stato della funzionalità di conversione da kana a kanji dell'IME.

Il membro wParam è impostato su diverso da zero per aprire l'IME e zero per chiudere l'IME

Il valore restituito indica lo stato precedente della funzionalità di conversione da kana a kanji. Restituisce TRUE se aperto; in caso contrario, FALSE.

Non è necessario determinare una stringa non deterministica se la funzionalità di conversione kana-to-kanji è stata chiusa da IME_SETOPEN.

Quando la funzionalità di conversione kana-kanji deve essere chiusa da IME_SETOPEN, l'IME deve inviare un messaggio di IR_CLOSECONVERT se l'IME è in modalità MCW_WINDOW o MCW-SCREEN e se è aperta una finestra di conversione. Tuttavia, l'IME non deve eseguire IR_CLOSECONVERT se è in modalità MCW_HIDDEN e se esiste una stringa non deterministica.

IME_SET_MODEK

Versione specifica del coreano di IME_SETCONVERSIONMODE.

wParam

L'utilizzo dipende dalla sottofunzione specificata in fnc.

wCount

L'utilizzo dipende dalla sottofunzione specificata in fnc.

dchSource

L'utilizzo dipende dalla sottofunzione specificata in fnc.

dchDest

L'utilizzo dipende dalla sottofunzione specificata in fnc.

lParam1

L'utilizzo dipende dalla sottofunzione specificata in fnc.

lParam2

L'utilizzo dipende dalla sottofunzione specificata in fnc.

lParam3

L'utilizzo dipende dalla sottofunzione specificata in fnc.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ime.h

Vedi anche

Appunti

Informazioni concettuali

Riferimento

SetClipboardData