Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This function returns an array of possible directories for sound files for the specified sound event type and memory location.
Syntax
HRESULT SndGetSoundDirectoriesList( SND_EVENT seSoundEvent, DWORD grfLocations, SNDDIRECTORYINFO** ppSoundDirectories, int* pcSoundDirectories ); |
Parameters
- seSoundEvent
-
[in] Indicates the type of sound event to query for.
- grfLocations
-
[in] Indicates locations in memory that are searched for sound directories. The following table shows the bitmask values for this parameter, with a description of the purpose of each.
Bitmask Description SND_LOCATION_STORAGECARD
Retrieve sound files or directories from the storage card.
SND_LOCATION_USERDATA
Retrieve sound files from user data folders such as
\My Documents
and\Application Data\Sounds
or\Storage Application Data
.SND_LOCATION_ROM
Retrieve sound files from ROM.
SND_LOCATION_ALL
Retrieves sound files from all locations - storage card, user data folders, and ROM.
- ppSoundDirectories
-
[out] A pointer to an array of sound directories. This function will create the array of SNDDIRECTORYINFOstructures, and allocate the appropriate amount of memory.
- pcSoundDirectories
-
[out] A pointer to an integer which indicates the number of SNDDIRECTORYINFOstructures created and returned in ppSoundDirectories.
Return Value
The function may return any HRESULT and the application should use the SUCCEEDED and FAILED macros to check the results.
Remarks
This function enables an application to query directories where sound files should be copied to for any of the sound events listed in the SND_EVENTenumeration. The fully qualified path for the directory is returned. This function allocates memory for all SNDDIRECTORYINFOstructures as one contiguous block. The user is responsible for freeing all memory returned by this function by calling LocalFreefunction on the returned pointer.
Code Example
The following code example demonstrates how to use SndGetSoundDirectoriesList.
Note: |
---|
To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them. |
Copy Code | |
---|---|
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 |