Any data dictionary tables that should not be exposed to browsers and should not participate in edit sessions.
[Visual Basic 6.0] Property DataDictionaryTableNames As IEnumBSTR
[Visual Basic .NET] Public ReadOnly Property DataDictionaryTableNames As IEnumBSTR
[C#] public IEnumBSTR DataDictionaryTableNames {get;}
[Java] public IEnumBSTR getDataDictionaryTableNames() throws IOException, AutomationException
[C++] HRESULT get_DataDictionaryTableNames( IEnumBSTR** ppPrivateNames );
The PrivateDatasetNames and DataDictionaryNames properties return the names of tables and datasets that are private to the extension and will not be exposed by the workspace to browsing clients. Since they return an EnumBSTR object that is not cocreatable, you must create your own object that implements IEnumBSTR.
Since this method returns an EnumBSTR object that is not cocreatable, you must create your own object that implements IEnumBSTR. Here is one example of how this could be done.
Implements IEnumBSTR
Private Const S_FALSE As Long = 1
Private m_index As Long
Private colStrings As Collection
'Helper sub to add a string to the EnumBSTR
Public Sub Add(ByVal sString As String)
colStrings.Add sString
End Sub
'Helper sub so don't have to QI to IEnumBSTR to reset
Public Sub Reset()
IEnumBSTR_Reset
End Sub
'Setup a new collection and reset to the beginning
Private Sub Class_Initialize()
m_index = 1
Set colStrings = New Collection
End Sub
'Free the collection of strings
Private Sub Class_Terminate()
Set colStrings = Nothing
End Sub
'Return the next String. Raise S_FALSE to signify at the end
Private Function IEnumBSTR_Next() As String
If m_index > colStrings.Count Or m_index < 1 Then
IEnumBSTR_Next = ""
Err.Raise S_FALSE
Else
IEnumBSTR_Next = colStrings.Item(m_index)
m_index = m_index + 1
End If
End Function
'Reset the Enumeration
Private Sub IEnumBSTR_Reset()
m_index = 1
End Sub