Partilhar via


Função SetDefaultLayoutOrTipUserReg

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

Sintaxe

BOOL CALLBACK SetDefaultLayoutOrTipUserReg(
  _In_opt_ LPCWSTR pszUserReg,
  _In_opt_ LPCWSTR pszSystemReg,
  _In_opt_ LPCWSTR pszSoftwareReg,
  _In_     LPCWSTR psz,
  _In_     DWORD   dwFlags
);

Parâmetros

pszUserReg [in, opcional]

O caminho do registro do usuário. Se esse parâmetro for NULL, HKEY_CURRENT_USER será usado.

pszSystemReg [in, opcional]

O caminho do registro do sistema. Se esse parâmetro for NULL, HKEY_LOCAL_MACHINE\System será usado.

pszSoftwareReg [in, opcional]

O caminho do registro do software. Se esse parâmetro for NULL, HKEY_LOCAL_MACHINE\Software será usado.

psz [in]

Uma cadeia de caracteres que representa a lista de layout de teclado ou 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_ SETDEFAULTLAYOUTORTIPUSERREG)( LPCWSTR pszUserReg, 
    LPCWSTR pszSystemReg, 
    LPCWSTR pszSoftwareReg, 
    LPCWSTR psz);

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

if(hInputDLL == NULL)
{
    //Error loading module -- fail as securely as possible 
}
else
{
    PTF_ SETDEFAULTLAYOUTORTIPUSERREG pfnSetDefaultLayoutOrTipUserReg;
    
    pfnSetDefaultLayoutOrTipUserReg = (PTF_ SETDEFAULTLAYOUTORTIPUSERREG)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTipUserReg");

    if(pfnSetDefaultLayoutOrTipUserReg)
    {
        bRet = (*pfnSetDefaultLayoutOrTipUserReg)( pszUserReg, pszSystemReg, pszSoftwareReg, 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