Função PrivacySetZonePreferenceW (wininet.h)

Define as configurações de privacidade para uma determinada URLZONE e PrivacyType.

Sintaxe

DWORD PrivacySetZonePreferenceW(
  [in]           DWORD   dwZone,
  [in]           DWORD   dwType,
  [in]           DWORD   dwTemplate,
  [in, optional] LPCWSTR pszPreference
);

Parâmetros

[in] dwZone

Valor do tipo DWORD que especifica a URLZONE para a qual as configurações de privacidade estão sendo definidas.

[in] dwType

Valor do tipo DWORD que especifica o PrivacyType para o qual as configurações de privacidade estão sendo definidas.

[in] dwTemplate

Valor do tipo DWORD que especifica qual dos modelos de privacidade deve ser usado para definir as configurações de privacidade.

[in, optional] pszPreference

Se dwTemplate estiver definido como PRIVACY_TEMPLATE_CUSTOM, esse parâmetro será a representação de cadeia de caracteres das preferências personalizadas. Caso contrário, ele deverá ser definido como NULL. Uma descrição dessa representação de cadeia de caracteres está incluída na seção Comentários.

Retornar valor

Retorna zero se bem-sucedido. Caso contrário, um dos erros definidos em winerr.h será retornado.

Comentários

Essas configurações de privacidade para a zona da Internet são encontradas na guia Privacidade da caixa de diálogo Opções da Internet .

Definir as opções de privacidade para o URLZONE_INTERNET envolve a configuração dos modelos de privacidade para ambos os PrivacyTypes. O controle deslizante no Menu de Privacidade nas Opções da Internet só será movido se a privacidade estiver definida para ambos os PrivacyTypes.

As preferências de privacidade personalizadas para uma determinada URLZONE e PrivacyType podem ser definidas por meio do parâmetro pszPreference . O parâmetro pszPreference pode conter uma série de regras separadas por espaço em branco que descrevem as preferências de privacidade. É importante observar que as próprias regras não podem conter espaço em branco. O pszPreference tem a seguinte estrutura em que pode haver várias regras lógicas: < regralógica de><assinatura><special-rule>.

Atualmente, a assinatura deve ser definida como IE6-P3PSettings/V1:.

As regras lógicas têm o seguinte formato: /<expression>=<decision>/.

Uma expressão é uma instrução booliana composta de tokens de política compacta usando os operadores & (AND lógico) e ! (NOT lógico). O token de política compacta diferencia maiúsculas de minúsculas. (Para obter mais informações sobre políticas de privacidade P3P (Plataforma para Preferências de Privacidade) e tokens de política compacta, consulte a especificação do projeto W3C: Plataforma para Preferências de Privacidade (P3P ). A decisão é um único caractere minúsculo que define a ação a ser tomada no cookie cuja política compacta contém os tokens especificados. A tabela a seguir lista os caracteres de decisão válidos.

Caractere Definição
um Aceite o cookie.
p Solicitar que o usuário aceite ou negue o cookie.
r Rejeite o cookie.
l Coloque o cookie em coleira (envie-o apenas em um contexto de primeira parte).
d Faça downgrade do cookie, se for um cookie persistente, para um cookie de sessão.
 

As regras lógicas são avaliadas na ordem em que são listadas. A primeira regra lógica a ser correspondida, se houver, determina a ação do cookie.

Uma expressão vazia também é permitida. Se uma expressão estiver vazia, o lado esquerdo será avaliado como true. Essa forma de regra lógica pode ser usada no final de um conjunto de regras para capturar todas as situações que não se enquadraram nas outras categorias.

Os exemplos a seguir mostram regras lógicas válidas.

/DEM=d/
    Deny a cookie whose compact policy contains the DEM token
/CON&amp;!TEL=a/	
    Accept a cookie whose compact policy contains the CON token 
    and does not contain the TEL token
/=a/		
    Accept all cookies

Regras especiais são especificadas usando os símbolos nopolicy, session e always. O símbolo de nopolicy é usado para especificar a ação a ser tomada quando não há uma política compacta. Por exemplo, nopolicy=d especifica fazer downgrade de todos os cookies sem uma política compacta para cookies de sessão. O símbolo de sessão é usado para especificar a ação a ser executada em cookies de sessão e só pode ser definido como um. Quando session=a é especificado, todos os cookies de sessão são aceitos independentemente do conteúdo da política compacta. Se essa regra não for especificada, os cookies de sessão estarão sujeitos às mesmas regras que os cookies persistentes. Por fim, o símbolo always é usado para especificar para executar a mesma ação para tudo. Por exemplo, always=d especifica negar todos os cookies, independentemente da existência de uma política compacta. Observe que always=d é equivalente a /=d/.

O exemplo a seguir mostra uma cadeia de caracteres de preferências de privacidade que especifica aceitar cookies para os quais a política compacta contém um par de tokens FIN/CONi, rejeitar cookies com políticas compactas contendo pares de token FIN/CON, FIN/CONo, FIN/CONa e GOV/PUB ou um token TEL e solicitar ao usuário quando a política compacta de um cookie contiver o token UNR. Ele também especifica fazer downgrade de cookies sem uma política compacta para cookies de sessão e aceitar todos os cookies que não correspondem a uma das regras determinadas. Observe que a primeira regra avaliada como true determina a ação do cookie.

IE6-P3PSettings/V1: /FIN&amp;CONi=a/ /FIN&amp;CONo=r/ /FIN&amp;CONa=r/ /FIN&amp;CON=r/ 
/GOV&amp;PUB=r/ /TEL=r/ /UNR=p/ nopolicy=d /=a/

Como todos os outros aspectos da API WinINet, essa função não pode ser chamada com segurança de dentro de DllMain ou dos construtores e destruidores de objetos globais.

Nota O WinINet não dá suporte a implementações de servidor. Além disso, ele não deve ser usado de um serviço. Para implementações de servidor ou serviços, use Os Serviços HTTP do Microsoft Windows (WinHTTP).
 

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wininet.h (inclua Wininet.h)
Biblioteca Wininet.lib
DLL Wininet.dll

Confira também

InternetClearAllPerSiteCookieDecisions

InternetEnumPerSiteCookieDecision

InternetGetPerSiteCookieDecision

InternetSetPerSiteCookieDecision

PrivacyGetZonePreferenceW