Compartilhar via


Função SetDefaultLayoutOrTip

Define o layout de teclado especificado ou um serviço de texto como o item de entrada padrão do usuário atual.

Sintaxe

BOOL CALLBACK SetDefaultLayoutOrTip(
  _In_ LPCWSTR           psz,
  _In_ LPCWSTR psz DWORD dwFlags
);

Parâmetros

psz [in]

Uma cadeia de caracteres que representa uma lista de layout de teclado ou uma lista de perfis de serviços de texto.

dwFlags [in]

Um campo de bits que especifica os sinalizadores a seguir.

Observação

Os identificadores a seguir não são definidos em um arquivo de cabeçalho público. Você deve usar o valor hexadecimal ou #define os identificadores. Por exemplo, para usar SDLOT_NOAPPLYTOCURRENTSESSION você deve incluir #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001 em seu código.

Valor Significado
SDLOT_NOAPPLYTOCURRENTSESSION
0x00000001
Armazena a configuração no registro, mas não atualiza a configuração de teclado de runtime da sessão atual. Se o caminho alternativo do Registro for definido em SetDefaultLayoutOrTipUserReg, este sinalizador deverá ser definido.
SDLOT_APPLYTOCURRENTTHREAD
0x00000002
Aplica a configuração imediatamente no thread atual.

Valor retornado

Código de retorno Descrição
TRUE
A função foi bem-sucedida.
FALSE
Ocorreu um erro não especificado.

Comentários

O formato de cadeia de caracteres da lista de layout é:

<LangID 1>:<KLID 1>;[...<LangID N>:<KLID N>

O formato de cadeia de caracteres da lista de perfis do serviço de texto é:

<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx};

Veja a seguir um exemplo de um valor para o parâmetro psz:

"0x0407:0x00000407"
"0x0407:0x00000407;0x040C:0x0000040C"
"0x0407:0x00000407;0x0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1};0x040C:0x0000040C"

Exemplos

Não há nenhuma biblioteca de importação disponível que defina essa função, portanto, é necessário obter um ponteiro para essa função usando LoadLibrary e GetProcAddress. O exemplo a seguir demonstra como obter um ponteiro para essa função.

Observação

Usar LoadLibrary incorretamente pode comprometer a segurança do aplicativo carregando a DLL errada. Confira Ordem de pesquisa da biblioteca de vínculo dinâmico para obter informações sobre como carregar corretamente DLLs com diferentes versões do Microsoft Windows.

typedef HRESULT (WINAPI *PTF_ SETDEFAULTLAYOUTORTIP)(LPCWSTR psz);

HMODULE hInputDLL = LoadLibrary(TEXT("input.dll"));
BOOL bRet = FALSE;

if(hInputDLL == NULL)
{
    // Error loading module; fail as securely as possible. 
}
else
{
    PTF_ SETDEFAULTLAYOUTORTIP pfnSetDefaultLayoutOrTip;
    
    pfnSetDefaultLayoutOrTip = (PTF_ SETDEFAULTLAYOUTORTIP)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTip");

    if(pfnSetDefaultLayoutOrTip)
    {
        bRet = (*pfnSetDefaultLayoutOrTip)(psz);
    }

    FreeLibrary(hInputDLL);
}

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
DLL
Input.dll