void MainDialog::OnSelchangeListFilters() { const size_t FILE_NAME_LEN = 512; const CLSID *clsid; // Get the currently selected category name UINT nItem; m_FilterList.GetCurrentSelection(&nItem); // Read the CLSID pointer from the list box's item data clsid = (CLSID *) m_FilterList.GetItem(nItem); // Find the filter filename in the registry (by CLSID) if (clsid != 0) { // Display the DMO's server filename TCHAR szFileName[FILE_NAME_LEN]; HRESULT hr = GetFilenameByCLSID(clsid, szFileName, FILE_NAME_LEN); if (SUCCEEDED(hr)) { SetDlgItemText(IDC_STATIC_FILENAME, szFileName); } else { SetDlgItemText(IDC_STATIC_FILENAME, TEXT("<Unknown>")); } // Show media types/subtypes used by this DMO AddTypeInfo(clsid); // Display DMO-specific information ReleaseDMO(); ShowSelectedDMOInfo(clsid); } }
TypeConfig::TypeConfig() : nextTagId(0), nextTypeId(0) { // Make sure, that this is always registered first. // It assures that id 0 is always reserved for tagIgnore RegisterTagForInternalUse(""); RegisterTagForExternalUse("name"); RegisterTagForExternalUse("ref"); RegisterTagForExternalUse("bridge"); RegisterTagForExternalUse("tunnel"); RegisterTagForExternalUse("layer"); RegisterTagForExternalUse("type"); RegisterTagForExternalUse("width"); RegisterTagForExternalUse("oneway"); RegisterTagForExternalUse("addr:housenumber"); RegisterTagForExternalUse("addr:street"); RegisterTagForExternalUse("junction"); RegisterTagForExternalUse("maxspeed"); RegisterTagForExternalUse("restriction"); RegisterTagForExternalUse("surface"); RegisterTagForExternalUse("tracktype"); RegisterTagForExternalUse("place"); RegisterTagForExternalUse("place_name"); RegisterTagForExternalUse("boundary"); RegisterTagForExternalUse("admin_level"); RegisterTagForExternalUse("access"); RegisterTagForExternalUse("access:foward"); RegisterTagForExternalUse("access:backward"); RegisterTagForExternalUse("access:foot"); RegisterTagForExternalUse("access:foot:foward"); RegisterTagForExternalUse("access:foot:backward"); RegisterTagForExternalUse("access:bicycle"); RegisterTagForExternalUse("access:bicycle:foward"); RegisterTagForExternalUse("access:bicycle:backward"); RegisterTagForExternalUse("access:motor_vehicle"); RegisterTagForExternalUse("access:motor_vehicle:foward"); RegisterTagForExternalUse("access:motor_vehicle:backward"); RegisterTagForExternalUse("access:motorcar"); RegisterTagForExternalUse("access:motorcar:foward"); RegisterTagForExternalUse("access:motorcar:backward"); RegisterTagForInternalUse("area"); RegisterTagForInternalUse("natural"); TypeInfo ignore; TypeInfo route; TypeInfo tileLand; TypeInfo tileSea; TypeInfo tileCoast; TypeInfo tileUnknown; TypeInfo tileCoastline; // Make sure, that this is always registered first. // It assures that id 0 is always reserved for typeIgnore ignore.SetType(""); AddTypeInfo(ignore); // Internal type for showing routes route.SetType("_route") .CanBeWay(true); // Internal types for the land/sea/coast tiles building the base layer for map drawing tileLand.SetType("_tile_land") .CanBeArea(true); tileSea.SetType("_tile_sea") .CanBeArea(true); tileCoast.SetType("_tile_coast") .CanBeArea(true); tileUnknown.SetType("_tile_unknown") .CanBeArea(true); tileCoastline.SetType("_tile_coastline") .CanBeWay(true); AddTypeInfo(route); AddTypeInfo(tileLand); AddTypeInfo(tileSea); AddTypeInfo(tileCoast); AddTypeInfo(tileUnknown); AddTypeInfo(tileCoastline); typeTileLand=GetTypeId("_tile_land"); typeTileSea=GetTypeId("_tile_sea"); typeTileCoast=GetTypeId("_tile_coast"); typeTileUnknown=GetTypeId("_tile_unknown"); typeTileCoastline=GetTypeId("_tile_coastline"); tagRef=GetTagId("ref"); tagBridge=GetTagId("bridge"); tagTunnel=GetTagId("tunnel"); tagLayer=GetTagId("layer"); tagType=GetTagId("type"); tagWidth=GetTagId("width"); tagOneway=GetTagId("oneway"); tagHouseNr=GetTagId("addr:housenumber"); tagStreet=GetTagId("addr:street"); tagJunction=GetTagId("junction"); tagMaxSpeed=GetTagId("maxspeed"); tagRestriction=GetTagId("restriction"); tagSurface=GetTagId("surface"); tagTracktype=GetTagId("tracktype"); tagPlace=GetTagId("place"); tagBoundary=GetTagId("boundary"); tagAdminLevel=GetTagId("admin_level"); tagAccess=GetTagId("access"); tagAccessForward=GetTagId("access:foward"); tagAccessBackward=GetTagId("access:backward"); tagAccessFoot=GetTagId("access:foot"); tagAccessFootForward=GetTagId("access:foot:foward"); tagAccessFootBackward=GetTagId("access:foot:backward"); tagAccessBicycle=GetTagId("access:bicycle"); tagAccessBicycleForward=GetTagId("access:bicycle:foward"); tagAccessBicycleBackward=GetTagId("access:bicycle:backward"); tagAccessMotorVehicle=GetTagId("access:motor_vehicle"); tagAccessMotorVehicleForward=GetTagId("access:motor_vehicle:foward"); tagAccessMotorVehicleBackward=GetTagId("access:motor_vehicle:backward"); tagAccessMotorcar=GetTagId("access:motorcar"); tagAccessMotorcarForward=GetTagId("access:motorcar:foward"); tagAccessMotorcarBackward=GetTagId("access:motorcar:backward"); tagArea=GetTagId("area"); tagNatural=GetTagId("natural"); assert(tagRef!=tagIgnore); assert(tagBridge!=tagIgnore); assert(tagTunnel!=tagIgnore); assert(tagLayer!=tagIgnore); assert(tagType!=tagIgnore); assert(tagWidth!=tagIgnore); assert(tagOneway!=tagIgnore); assert(tagHouseNr!=tagIgnore); assert(tagStreet!=tagIgnore); assert(tagJunction!=tagIgnore); assert(tagMaxSpeed!=tagIgnore); assert(tagRestriction!=tagIgnore); assert(tagSurface!=tagIgnore); assert(tagTracktype!=tagIgnore); assert(tagPlace!=tagIgnore); assert(tagBoundary!=tagIgnore); assert(tagAdminLevel!=tagIgnore); assert(tagAccess!=tagIgnore); assert(tagAccessForward!=tagIgnore); assert(tagAccessBackward!=tagIgnore); assert(tagAccessFoot!=tagIgnore); assert(tagAccessFootForward!=tagIgnore); assert(tagAccessFootBackward!=tagIgnore); assert(tagAccessBicycle!=tagIgnore); assert(tagAccessBicycleForward!=tagIgnore); assert(tagAccessBicycleBackward!=tagIgnore); assert(tagAccessMotorVehicle!=tagIgnore); assert(tagAccessMotorVehicleForward!=tagIgnore); assert(tagAccessMotorVehicleBackward!=tagIgnore); assert(tagAccessMotorcar!=tagIgnore); assert(tagAccessMotorcarForward!=tagIgnore); assert(tagAccessMotorcarBackward!=tagIgnore); assert(tagArea!=tagIgnore); assert(tagNatural!=tagIgnore); }
TypeConfig::TypeConfig() : nextTagId(0), nextTypeId(0) { // Make sure, that this is always registered first. // It assures that id 0 is always reserved for tagIgnore RegisterTagForInternalUse(""); RegisterTagForExternalUse("admin_level"); RegisterTagForExternalUse("boundary"); RegisterTagForExternalUse("bridge"); RegisterTagForExternalUse("highway"); RegisterTagForExternalUse("layer"); RegisterTagForExternalUse("name"); RegisterTagForExternalUse("natural"); RegisterTagForExternalUse("oneway"); RegisterTagForExternalUse("place"); RegisterTagForExternalUse("place_name"); RegisterTagForExternalUse("ref"); RegisterTagForExternalUse("restriction"); RegisterTagForExternalUse("tunnel"); RegisterTagForExternalUse("type"); RegisterTagForExternalUse("width"); RegisterTagForExternalUse("area"); RegisterTagForExternalUse("addr:housenumber"); TypeInfo ignore; TypeInfo route; // Make sure, that this is always registered first. // It assures that id 0 is always reserved for typeIgnore ignore.SetType(""); AddTypeInfo(ignore); route.SetType("_route") .CanBeWay(true); AddTypeInfo(route); tagAdminLevel=GetTagId("admin_level"); tagBoundary=GetTagId("boundary"); tagBridge=GetTagId("bridge"); tagLayer=GetTagId("layer"); tagName=GetTagId("name"); tagOneway=GetTagId("oneway"); tagPlace=GetTagId("place"); tagPlaceName=GetTagId("place_name"); tagRef=GetTagId("ref"); tagTunnel=GetTagId("tunnel"); tagType=GetTagId("type"); tagWidth=GetTagId("width"); tagArea=GetTagId("area"); tagHouseNr=GetTagId("addr:housenumber"); assert(tagAdminLevel!=tagIgnore); assert(tagBoundary!=tagIgnore); assert(tagBridge!=tagIgnore); assert(tagLayer!=tagIgnore); assert(tagName!=tagIgnore); assert(tagOneway!=tagIgnore); assert(tagPlace!=tagIgnore); assert(tagPlaceName!=tagIgnore); assert(tagRef!=tagIgnore); assert(tagTunnel!=tagIgnore); assert(tagType!=tagIgnore); assert(tagWidth!=tagIgnore); assert(tagArea!=tagIgnore); assert(tagHouseNr!=tagIgnore); }