SndGetSoundDirectoriesList
9/9/2008
Essa função retorna uma matriz dos diretórios possíveis para som arquivos para o som especificado evento tipo e memória localidade.
Syntax
HRESULT SndGetSoundDirectoriesList(
SND_EVENT seSoundEvent,
DWORD grfLocations,
SNDDIRECTORYINFO** ppSoundDirectories,
int* pcSoundDirectories
);
Parameters
- seSoundEvent
[no] Indica o tipo de som evento a consulta para.
grfLocations
[no] Indica locais na memória que são procurados som diretórios. A seguinte tabela mostra os valores máscara de bits para esse parâmetro, com uma descrição da finalidade de cada.Máscara de bits Descrição SND_LOCATION_STORAGECARD
Recuperar som arquivos ou diretórios de cartão de armazenamento.
SND_LOCATION_USERDATA
Recuperar som arquivos de dados usuário pastas como
\Meus documentos
e\Application Data\Sounds
Ou\Storage de dados do aplicativo
.SND_LOCATION_ROM
Recuperar arquivos som do ROM.
SND_LOCATION_ALL
Recupera som arquivos a partir de todos os locais - cartão armazenamento, usuário dados pastas e ROM.
- ppSoundDirectories
[out] Um ponteiro para uma matriz de som diretórios. Essa função criará a matriz de SNDDIRECTORYINFO Estruturas e alocar o apropriado quantidade de memória.
- pcSoundDirectories
[out] Um ponteiro para um inteiro que indica o número de SNDDIRECTORYINFO Estruturas criado e retornado na ppSoundDirectories.
Return Value
A função pode retornar qualquer HRESULT e o aplicativo devem usar as macros teve êxito e falha para verificar os resultados.
Remarks
Essa função permite que um aplicativo para diretórios consulta onde som arquivos devem ser copiados para qualquer um do som eventos listados na SND_EVENT enumeração. O caminho totalmente qualificado para o Diretório é retornado. Essa função aloca memória para todos SNDDIRECTORYINFO Estruturas como contíguo um bloco. O usuário é responsável por liberando memória todos retornada por essa função por chamado LocalFree função no ponteiro retornado.
Exemplo de código
O seguinte exemplo de código demonstra como usar SndGetSoundDirectoriesList.
Observação
Para fazer o seguinte exemplo de código mais fácil de ler, verificação de segurança e manipulação de erro não estão incluídos.Esta exemplo de código não deve ser usado em uma configuração versão a menos que ele foi modificado para incluí-las.
void CopyAndSetRingtone(TCHAR* pszCurrentDirectory, TCHAR* pszFileName)
{
TCHAR szPathAndFile[MAX_PATH];
TCHAR szDestination[MAX_PATH];
// Initialize an empty SNDFILEINFO structure.
SNDFILEINFO sndFile = {0};
SNDDIRECTORYINFO* pSndDirectories = NULL;
int cSoundDirectories = 0;
// Build the path to the file.
StringCchPrintf(szPathAndFile, MAX_PATH, _T("%s\\%s"), pszCurrentDirectory, pszFileName);
// Get the list of User Data directories.
SndGetSoundDirectoriesList(SND_EVENT_RINGTONELINE1, SND_LOCATION_USERDATA, &pSndDirectories, &cSoundDirectories);
// Set the destination to the first User Data directory.
StringCchPrintf(szDestination, MAX_PATH, _T("%s\\%s"), pSndDirectories->szPathName, pszFileName);
CopyFile(szPathAndFile, szDestination, FALSE);
// Setup values in the SNDFILEINFO structure.
only need to set sndFile.szPathName, not sndFile.szDisplayName.
sndFile.sstType = SND_SOUNDTYPE_FILE;
StringCchCopy(sndFile.szPathName, MAX_PATH, szDestination);
// Set the ringtone.
SndSetSound(SND_EVENT_RINGTONELINE1, &sndFile, TRUE);
// Free memory.
LocalFree(pSndDirectories);
return;
}
Requirements
Header | soundfile.h |
Windows Embedded CE | Windows CE 5.0 and later |
Windows Mobile | Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later |