DEVPROP_TYPE_STRING_INDIRECT
L'identificatore DEVPROP_TYPE_STRING_INDIRECT rappresenta l'identificatore del tipo di dati di base per una stringa Unicode con terminazione NULL contenente un riferimento stringa indiretto.
Commenti
Un riferimento stringa indiretto descrive una risorsa stringa che contiene la stringa effettiva. Il riferimento stringa indiretto può essere visualizzato in uno dei formati seguenti:
@[percorso\] FileName,-ResourceID
Windows estrae la stringa dal modulo specificato dalle voci path e FileName e l'identificatore di risorsa della stringa viene fornito dalla voce ResourceID (escluso il segno meno richiesto). La risorsa stringa viene caricata dalla sezione della risorsa del modulo che corrisponde meglio a una delle lingue preferite dell'interfaccia utente del chiamante. La voce di percorso è facoltativa. Se si specifica la voce di percorso , il modulo deve trovarsi in una directory che si trova nel percorso di ricerca definito dal sistema.
@
InfName,%strkey%
Windows estrae la stringa dalla sezione Stringhe INF del file INF nella directory %SystemRoot%\inf il cui nome viene fornito dalla voce InfName . L'identificatore del token strkey deve corrispondere alla chiave di una riga nella sezione Stringhe che corrisponde meglio a una delle lingue dell'interfaccia utente preferite del chiamante. Se non esistono sezioni stringhe specifiche della lingua, Windows usa la sezione Stringhe predefinita.
Non è possibile combinare DEVPROP_TYPE_STRING_INDIRECT con uno dei modificatori di tipo property-data.
Impostazione di una proprietà di questo tipo
Per impostare una proprietà il cui tipo di dati di base è DEVPROP_TYPE_STRING_INDIRECT, chiamare la funzione di proprietà SetupDiSetXxx corrispondente e impostare i parametri di input della funzione come indicato di seguito:
Impostare il parametro PropertyType su DEVPROP_TYPE_STRING_INDIRECT.
Impostare il parametro PropertyBuffer su un puntatore a un buffer che contiene la stringa con terminazione NULL che fornisce un riferimento stringa indiretto.
Impostare il parametro PropertyBufferSize sulle dimensioni, in byte, della stringa.
Impostare i parametri della funzione rimanenti in base alle esigenze per impostare la proprietà .
Recupero del valore di questo tipo di proprietà
Quando un'applicazione chiama una funzione della proprietà SetupDiGetXxx per recuperare il valore di una proprietà di questo tipo di dati di base, Windows tenta di individuare la stringa effettiva a cui fa riferimento la proprietà. Se Windows può recuperare la stringa effettiva, restituisce la stringa effettiva al chiamante e identifica il tipo di dati di base della proprietà recuperata come DEVPROP_TYPE_STRING. In caso contrario, Windows restituisce il riferimento indiretto alla stringa e identifica il tipo di dati di base della proprietà recuperata come DEVPROP_TYPE_STRING_INDIRECT.
Localizzazione del testo statico
A partire da Windows Vista è possibile localizzare le proprietà PnP statiche di tipo stringa standard e personalizzate usando le risorse delle tabelle stringa o delle risorse di un'immagine PE impostando i tipi di proprietà static-text su DEVPROP_TYPE_STRING_INDIRECT. È anche possibile aggiungere dati di tipo replacement-string non localizzati che possono essere formattati nel testo statico.
Le stringhe che si trovano nella risorsa STRINGTABLE di un'immagine PE (come in genere eseguito da LoadString) devono usare il formato seguente:
"@"System32\mydll.dll,-21[; Fallback" String]"
"@System32\mydll.dll,-21[; Stringa di fallback con %1, %2, ... to %n[;(Arg1,Arg2,...,ArgN)]]"
Le stringhe che si trovano nella risorsa tabella messaggi di un'immagine PE (come in genere eseguito da RtlFindMessage, più comunemente usato nei driver) devono usare il formato seguente:
"@System32\drivers\mydriver.sys,#21[; Stringa di fallback]"
"@System32\drivers\mydriver.sys,#21[; Stringa di fallback con %1, %2, ... to %n[;(Arg1,Arg2,...,ArgN)]]"
Una stringa di fallback è facoltativa ma utile perché può essere restituita se non è possibile trovare o caricare la risorsa. La stringa di fallback viene restituita anche ai processi di sistema non interattivi che non rappresentano un utente e, di conseguenza, non possono mostrare testo localizzato agli utenti.
Questa tecnica consente di localizzare il testo statico estratto dalla risorsa stringa o tabella messaggi che corrisponde meglio alle impostazioni locali del chiamante.
Windows formatterà gli argomenti finali nella stringa (o nella stringa di fallback) quando vengono recuperati dalla rispettiva tabella delle risorse, in modo analogo a RtlFormatMessage.
Il testo statico di tipo stringa personalizzato e standard viene localizzato quando si imposta la proprietà caricando la risorsa dal componente che esegue l'operazione di impostazione, che in genere si verifica nelle impostazioni locali predefinite del sistema per i componenti a livello di sistema.
Nota: le immagini PE possono usare il tipo di tabella delle risorse (risorse STRINGTABLE o risorse message-table).
Requisiti
Versione |
Windows Vista e versioni successive di Windows. |
Intestazione |
Devpropdef.h (includere Devpropdef.h) |