Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Speech API 5.4
Object: SpObjectToken
Type: Hidden
GetStorageFileName Method
The GetStorageFileName method creates a storage file for data associated with the object token.
SpObjectToken.GetStorageFileName(
ObjectStorageCLSID As String,
KeyName As String,
FileName As String,
Folder As SpeechTokenShellFolder) As String
Parameters
- ObjectStorageCLSID
Globally unique identifier (GUID) of the calling object. The method searches the registry for an entry key name of ObjectStorageCLSID, and then a corresponding Files subkey. If the registry entry is not present, one is created. - KeyName
The name of the attribute file for the registry entry of clsidCaller. This attribute stores the location of the resource file. - FileName
A specifier that is either "" or a path/file name for storage file.- If this starts with "X:\" or "\\" it is assumed to be a full path; otherwise it is assumed to be relative to special folders given in the nFolder parameter.
- If it ends with a "\", or is NULL, a unique file name will be created. The file name will be something like: "SP_7454901D23334AAF87707147726EC235.dat". "SP_" and ".dat" are the default prefix name and file extension name. The numbers in between are generated guid number to make sure the file name is unique.
- If the name contains a %d the %d is replaced by a number to give a unique file name. The default file extension is .dat, the user can specify anything else. Intermediate directories are created.
- If a relative file is used, the value stored in the registry includes the nFolder value as %nFolder% before the rest of the path.
- Folder
One or more SpeechTokenShellFolder constants specifying the Folder.
Return Value
A String variable containing the path of the storage file.
Example
The following Visual Basic form code demonstrates the GetStorageFileName and RemoveStorageFileName methods. To run this code, create a form with no controls and paste the code into the Declarations section of the form.
The operations performed in this example can best be viewed with REGEDIT.EXE. For a discussion of Registry issues, please see the ISpeechDataKey interface.
The Example code does the following:
- Creates a new SpObjectToken object and sets its ID property to a new subfolder called Demo within the Voices\Tokens folder. The True parameter of the SetId call forces the creation of this folder, if it does not already exist.
- Creates a data key object that references the new Demo folder and uses the data key to write a value into the folder.
- Calls the GetStorageFileName method. After this call, the Demo folder contains a subfolder called {CDD1141B-82FB-405c-99BE-69A793A92D87}. This is the CLSID used as a parameter of the GetStorageFileName method. Within this is a folder called Files, which contains the storage file path in a value called Demo.
- Calls the RemoveStorageFileName method to delete the storage file and remove the Demo value from the Files folder.
- Uses the ISpeechDataKey.Remove method to delete the {CDD1141B-82FB-405c-99BE-69A793A92D87} folder and Demo folders.
Option Explicit
Private Sub Form_Load()
On Error GoTo EH
Dim C As SpeechLib.SpObjectTokenCategory
Dim ID As String
Dim K As SpeechLib.ISpeechDataKey '
Dim SF As String
Dim T As SpeechLib.SpObjectToken
Dim TestCLSID As String
TestCLSID = "{CDD1141B-82FB-405c-99BE-69A793A92D87}"
' Create new category object, set it to Voices category:
Set C = New SpObjectTokenCategory
C.SetId SpeechCategoryVoices
' Create new token object, and set its ID
' to the path of a folder which does not exist
' ("True" parameter creates the folder):
Set T = New SpObjectToken
ID = SpeechCategoryVoices & "\Tokens\Demo"
T.SetId ID, , True
' Set data key object to demo voice's
' folder and write a CLSID value:
Set K = T.DataKey
K.SetStringValue "CLSID", TestCLSID
' Create storage file for token.
SF = T.GetStorageFileName(TestCLSID, "Demo", _
vbNullString, STSF_FlagCreate + STSF_AppData)
MsgBox SF, vbInformation
' Remove storage file.
Call T.RemoveStorageFileName(TestCLSID, "Demo", True)
' Remove "{CDD1141B-82FB-405c-99BE-69A793A92D87}"
' folder and "Demo" folder
T.Remove TestCLSID
T.Remove ""
EH:
If Err.Number Then ShowErrMsg
End Sub
Private Sub ShowErrMsg()
' Declare identifiers:
Dim T As String
T = "Desc: " & Err.Description & vbNewLine
T = T & "Err #: " & Err.Number
MsgBox T, vbExclamation, "Run-Time Error"
End
End Sub