From dda7b664e70c0fbaa1176bb3fef66504a7e4eb5a Mon Sep 17 00:00:00 2001 From: will Date: Mon, 20 Apr 2026 08:42:38 -0500 Subject: [PATCH] Initial Commit of the PDM project (ready for DWS migration) --- .claude/settings.local.json | 11 + .gitignore | 36 + BATCH_NOTES.md | 202 + README.md | 469 + check_paths.py | 65 + check_var_clashing.py | 227 + config.json.template | 32 + db_utils.py | 257 + documentation/API_GB.chm | Bin 0 -> 5091445 bytes documentation/DWS_Migration.MD | 45 + documentation/api_extracted/64bit.htm | 62 + documentation/api_extracted/AccessBOM.gif | Bin 0 -> 8388 bytes .../api_extracted/AccessCustRefs.gif | Bin 0 -> 8145 bytes ...ccess_Bill_of_Materials_Example_CSharp.htm | 538 + ...Access_Bill_of_Materials_Example_VBNET.htm | 471 + ...lags_in_Check_in_Dialog_Example_CSharp.htm | 518 + ...Flags_in_Check_in_Dialog_Example_VBNET.htm | 438 + ..._Custom_File_References_Example_CSharp.htm | 400 + ...s_Custom_File_References_Example_VBNET.htm | 340 + ...ess_File_Card_Variables_Example_CSharp.htm | 375 + ...cess_File_Card_Variables_Example_VBNET.htm | 342 + documentation/api_extracted/AddCardVars.gif | Bin 0 -> 7383 bytes documentation/api_extracted/AddCustomRefs.gif | Bin 0 -> 10052 bytes documentation/api_extracted/AddDictionary.gif | Bin 0 -> 10849 bytes documentation/api_extracted/AddFile.gif | Bin 0 -> 6467 bytes documentation/api_extracted/AddFiles.gif | Bin 0 -> 8212 bytes documentation/api_extracted/AddFolder.gif | Bin 0 -> 8292 bytes .../api_extracted/AddInAdminMenu.gif | Bin 0 -> 8410 bytes .../api_extracted/AddInAdminMenu.htm | 46 + documentation/api_extracted/AddInApp.htm | 92 + documentation/api_extracted/AddItems.gif | Bin 0 -> 8928 bytes .../api_extracted/AddRemoveUsersGroups.gif | Bin 0 -> 10410 bytes documentation/api_extracted/AddUsers.gif | Bin 0 -> 7980 bytes ...d_Custom_File_Reference_Example_CSharp.htm | 347 + ...dd_Custom_File_Reference_Example_VBNET.htm | 311 + .../api_extracted/Add_File_Example_CSharp.htm | 398 + .../api_extracted/Add_File_Example_VBNET.htm | 348 + .../Add_Files_to_Vault_Example_CSharp.htm | 465 + .../Add_Files_to_Vault_Example_VBNET.htm | 433 + .../Add_Folder_Example_CSharp.htm | 395 + .../Add_Folder_Example_VBNET.htm | 325 + .../Add_Items_Example_CSharp.htm | 601 + .../api_extracted/Add_Items_Example_VBNET.htm | 562 + ...ow_to_Bill_of_Materials_Example_CSharp.htm | 443 + ...Row_to_Bill_of_Materials_Example_VBNET.htm | 383 + .../Add_Users_Example_CSharp.htm | 534 + .../api_extracted/Add_Users_Example_VBNET.htm | 480 + .../Add_Variables_to_Vault_Example_CSharp.htm | 361 + .../Add_Variables_to_Vault_Example_VBNET.htm | 314 + ...r_and_Group_from_Folder_Example_CSharp.htm | 756 + ...er_and_Group_from_Folder_Example_VBNET.htm | 758 + .../api_extracted/AddinMenuItems.gif | Bin 0 -> 2932 bytes documentation/api_extracted/AdminAddIns.gif | Bin 0 -> 11272 bytes documentation/api_extracted/AdminDlg.gif | Bin 0 -> 14338 bytes documentation/api_extracted/AdminDlg.htm | 46 + documentation/api_extracted/ApiHelp.css | 313 + ...er_Before_Browsing_Addin_Example_VBNET.htm | 870 + documentation/api_extracted/BatchAddFiles.gif | Bin 0 -> 10015 bytes .../api_extracted/BatchAddFolders.gif | Bin 0 -> 8560 bytes .../api_extracted/BatchAddItemRefs.gif | Bin 0 -> 6388 bytes .../api_extracted/BatchChangeFiles.gif | Bin 0 -> 8247 bytes .../api_extracted/BatchDeleteFiles.gif | Bin 0 -> 8813 bytes documentation/api_extracted/BatchGetFiles.gif | Bin 0 -> 8576 bytes documentation/api_extracted/BatchRefVars.gif | Bin 0 -> 9133 bytes .../api_extracted/BatchUnlockFiles.gif | Bin 0 -> 8393 bytes .../api_extracted/BatchUpdateVars.gif | Bin 0 -> 6477 bytes ...h_Add_Files_and_Folders_Example_CSharp.htm | 469 + ...ch_Add_Files_and_Folders_Example_VBNET.htm | 406 + .../Batch_Add_Folders_Example_CSharp.htm | 342 + .../Batch_Add_Folders_Example_VBNET.htm | 292 + ..._Remove_Item_References_Example_CSharp.htm | 306 + ...d_Remove_Item_References_Example_VBNET.htm | 259 + ...States_of_Files_As_User_Example_CSharp.htm | 441 + ..._States_of_Files_As_User_Example_VBNET.htm | 386 + ..._Change_States_of_Files_Example_CSharp.htm | 412 + ...h_Change_States_of_Files_Example_VBNET.htm | 362 + ...elete_Files_and_Folders_Example_CSharp.htm | 388 + ...Delete_Files_and_Folders_Example_VBNET.htm | 331 + .../Batch_Get_Files_Example_CSharp.htm | 405 + .../Batch_Get_Files_Example_VBNET.htm | 351 + ...Set_Reference_Variables_Example_CSharp.htm | 543 + ..._Set_Reference_Variables_Example_VBNET.htm | 436 + ...ke_Transitions_of_Files_Example_CSharp.htm | 391 + ...oke_Transitions_of_Files_Example_VBNET.htm | 340 + .../Batch_Unlock_Files_Example_CSharp.htm | 408 + .../Batch_Unlock_Files_Example_VBNET.htm | 348 + .../Batch_Update_Variables_Example_CSharp.htm | 375 + .../Batch_Update_Variables_Example_VBNET.htm | 310 + documentation/api_extracted/Bitmasks.htm | 394 + documentation/api_extracted/ButtonProps.gif | Bin 0 -> 7369 bytes documentation/api_extracted/CSharpAddIns.htm | 234 + documentation/api_extracted/CardView1.gif | Bin 0 -> 4537 bytes documentation/api_extracted/CardView2.gif | Bin 0 -> 8451 bytes ...ge_Card_Variables_Addin_Example_CSharp.htm | 331 + ...nge_Card_Variables_Addin_Example_VBNET.htm | 299 + documentation/api_extracted/CheckInFlags.gif | Bin 0 -> 6679 bytes documentation/api_extracted/CheckOutFile.gif | Bin 0 -> 4374 bytes ...Check_Out_and_Copy_File_Example_CSharp.htm | 237 + .../Check_Out_and_Copy_File_Example_VBNET.htm | 200 + documentation/api_extracted/CopyFile.gif | Bin 0 -> 4595 bytes documentation/api_extracted/CopyTree.gif | Bin 0 -> 8360 bytes .../Copy_Assembly_Tree_Example_CSharp.htm | 450 + .../Copy_Assembly_Tree_Example_VBNET.htm | 396 + .../Copy_File_Example_CSharp.htm | 271 + .../api_extracted/Copy_File_Example_VBNET.htm | 237 + .../api_extracted/CreateCardView.gif | Bin 0 -> 9365 bytes .../api_extracted/CreateCardViewEx.jpg | Bin 0 -> 19516 bytes documentation/api_extracted/CreateLabel.gif | Bin 0 -> 8148 bytes .../api_extracted/CreateMenuFlags.htm | 12 + documentation/api_extracted/CreateUserPic.gif | Bin 0 -> 7008 bytes documentation/api_extracted/CreateVault.gif | Bin 0 -> 6547 bytes .../Create_Card_View_Example_CSharp.htm | 533 + .../Create_Card_View_Example_VBNET.htm | 456 + ...Create_Custom_Card_View_Example_CSharp.htm | 510 + .../Create_Custom_Card_View_Example_VBNET.htm | 396 + .../Create_Label_Example_CSharp.htm | 366 + .../Create_Label_Example_VBNET.htm | 301 + .../Create_New_Vault_Example_CSharp.htm | 289 + .../Create_New_Vault_Example_VBNET.htm | 240 + .../Create_User_Picture_Example_CSharp.htm | 301 + .../Create_User_Picture_Example_VBNET.htm | 262 + ...te_Vault_View_Tab_Addin_Example_CSharp.htm | 487 + ...and_Delete_Dictionaries_Example_CSharp.htm | 716 + ..._and_Delete_Dictionaries_Example_VBNET.htm | 698 + .../api_extracted/CustomCardView.gif | Bin 0 -> 7570 bytes documentation/api_extracted/DebugAddIn.gif | Bin 0 -> 9828 bytes documentation/api_extracted/DebugAddins.htm | 86 + .../api_extracted/DestroyDeletedFiles.gif | Bin 0 -> 8053 bytes ..._Deleted_Files_in_Vault_Example_CSharp.htm | 1772 ++ ...y_Deleted_Files_in_Vault_Example_VBNET.htm | 301 + .../api_extracted/DictionaryTest.gif | Bin 0 -> 11570 bytes ...Display_Menu_of_Commands_Example_VBNET.htm | 174 + documentation/api_extracted/DotNet.htm | 94 + documentation/api_extracted/DotNetAddIns.htm | 508 + documentation/api_extracted/DotNetImport.gif | Bin 0 -> 14226 bytes .../EPDM.Interop.EPDMResultCode.html | 81 + ....EPDMResultCode.EdmResultErrorCodes_e.html | 403 + ...PDMResultCode.EdmResultSuccessCodes_e.html | 154 + ...EPDM.Interop.EPDMResultCode_namespace.html | 94 + ...op.EPDMResultCode_namespace_hierarchy.html | 103 + .../api_extracted/EPDM.Interop.epdm.html | 81 + ...pdm~EPDM.Interop.epdm.CreateMenuFlags.html | 148 + ...dm~EPDM.Interop.epdm.EdmAddAddInFlags.html | 138 + ...EPDM.Interop.epdm.EdmAddCallbackMsgID.html | 141 + ...m~EPDM.Interop.epdm.EdmAddFileDlgFlag.html | 136 + ...epdm~EPDM.Interop.epdm.EdmAddFileInfo.html | 156 + ...DM.Interop.epdm.EdmAddFileInfo_fields.html | 139 + ...M.Interop.epdm.EdmAddFileInfo_members.html | 166 + ...nterop.epdm.EdmAddFileInfo~mbsNewName.html | 150 + ...M.Interop.epdm.EdmAddFileInfo~mbsPath.html | 150 + ...rop.epdm.EdmAddFileInfo~mlEdmAddFlags.html | 150 + ....Interop.epdm.EdmAddFileInfo~mlFileID.html | 150 + ...p.epdm.EdmAddFileInfo~mlSrcDocumentID.html | 150 + ...op.epdm.EdmAddFileInfo~mlSrcProjectID.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmAddFlag.html | 145 + ...dm~EPDM.Interop.epdm.EdmAddInFileInfo.html | 156 + ...DM.Interop.epdm.EdmAddInFileInfoFlags.html | 140 + ....Interop.epdm.EdmAddInFileInfo_fields.html | 135 + ...Interop.epdm.EdmAddInFileInfo_members.html | 162 + ...rop.epdm.EdmAddInFileInfo~mbsFileName.html | 150 + ...AddInFileInfo~mlEdmAddInFileInfoFlags.html | 150 + ...p.epdm~EPDM.Interop.epdm.EdmAddInInfo.html | 164 + ....epdm~EPDM.Interop.epdm.EdmAddInInfo2.html | 179 + ...PDM.Interop.epdm.EdmAddInInfo2_fields.html | 141 + ...DM.Interop.epdm.EdmAddInInfo2_members.html | 168 + ...terop.epdm.EdmAddInInfo2~mbsAddInName.html | 150 + ...Interop.epdm.EdmAddInInfo2~mbsClassID.html | 150 + ...Interop.epdm.EdmAddInInfo2~mbsCompany.html | 150 + ...rop.epdm.EdmAddInInfo2~mbsDescription.html | 150 + ...erop.epdm.EdmAddInInfo2~mbsModulePath.html | 150 + ...rop.epdm.EdmAddInInfo2~mlAddInVersion.html | 150 + ....EdmAddInInfo2~mlRequiredVersionMajor.html | 150 + ....EdmAddInInfo2~mlRequiredVersionMinor.html | 150 + ...EPDM.Interop.epdm.EdmAddInInfo_fields.html | 139 + ...PDM.Interop.epdm.EdmAddInInfo_members.html | 166 + ...nterop.epdm.EdmAddInInfo~mbsAddInName.html | 150 + ....Interop.epdm.EdmAddInInfo~mbsCompany.html | 150 + ...erop.epdm.EdmAddInInfo~mbsDescription.html | 150 + ...erop.epdm.EdmAddInInfo~mlAddInVersion.html | 150 + ...m.EdmAddInInfo~mlRequiredVersionMajor.html | 150 + ...m.EdmAddInInfo~mlRequiredVersionMinor.html | 150 + ...dm~EPDM.Interop.epdm.EdmAddInMenuInfo.html | 156 + ....Interop.epdm.EdmAddInMenuInfo_fields.html | 140 + ...Interop.epdm.EdmAddInMenuInfo_members.html | 167 + ...erop.epdm.EdmAddInMenuInfo~mbsMenuStr.html | 150 + ...pdm.EdmAddInMenuInfo~mbsStatusBarHelp.html | 150 + ...dm.EdmAddInMenuInfo~mbsToolbarToolTip.html | 150 + ...Interop.epdm.EdmAddInMenuInfo~mlCmdID.html | 150 + ....epdm.EdmAddInMenuInfo~mlEdmMenuFlags.html | 150 + ...EdmAddInMenuInfo~mlToolbarButtonIndex.html | 150 + ...pdm.EdmAddInMenuInfo~mlToolbarImageID.html | 150 + ...dm~EPDM.Interop.epdm.EdmAttributeData.html | 156 + ....Interop.epdm.EdmAttributeData_fields.html | 136 + ...Interop.epdm.EdmAttributeData_members.html | 163 + ...p.epdm.EdmAttributeData~mbsAttribName.html | 150 + ...op.epdm.EdmAttributeData~mbsBlockName.html | 150 + ...p.epdm.EdmAttributeData~mbsExtensions.html | 150 + ...pdm~EPDM.Interop.epdm.EdmBatchAddFlag.html | 137 + ...DM.Interop.epdm.EdmBatchAddFolderFlag.html | 138 + ...Interop.epdm.EdmBatchCreateFolderFlag.html | 137 + ...~EPDM.Interop.epdm.EdmBatchDelErrInfo.html | 156 + ...nterop.epdm.EdmBatchDelErrInfo_fields.html | 137 + ...terop.epdm.EdmBatchDelErrInfo_members.html | 164 + ...p.epdm.EdmBatchDelErrInfo~mbsPathName.html | 150 + ...terop.epdm.EdmBatchDelErrInfo~mlDocID.html | 150 + ...p.epdm.EdmBatchDelErrInfo~mlErrorCode.html | 152 + ...erop.epdm.EdmBatchDelErrInfo~mlProjID.html | 150 + ....epdm~EPDM.Interop.epdm.EdmBatchError.html | 154 + ...epdm~EPDM.Interop.epdm.EdmBatchError2.html | 156 + ...DM.Interop.epdm.EdmBatchError2_fields.html | 137 + ...M.Interop.epdm.EdmBatchError2_members.html | 164 + ...terop.epdm.EdmBatchError2~mlErrorCode.html | 150 + ....Interop.epdm.EdmBatchError2~mlFileID.html | 150 + ...nterop.epdm.EdmBatchError2~mlFolderID.html | 150 + ...erop.epdm.EdmBatchError2~mlVariableID.html | 150 + ...PDM.Interop.epdm.EdmBatchError_fields.html | 136 + ...DM.Interop.epdm.EdmBatchError_members.html | 163 + ...nterop.epdm.EdmBatchError~mlErrorCode.html | 150 + ...M.Interop.epdm.EdmBatchError~mlFileID.html | 150 + ...terop.epdm.EdmBatchError~mlVariableID.html | 150 + ....epdm~EPDM.Interop.epdm.EdmBatchFlags.html | 139 + ...p.epdm~EPDM.Interop.epdm.EdmBomColumn.html | 156 + ...dm~EPDM.Interop.epdm.EdmBomColumnType.html | 160 + ...EPDM.Interop.epdm.EdmBomColumn_fields.html | 140 + ...PDM.Interop.epdm.EdmBomColumn_members.html | 167 + ....Interop.epdm.EdmBomColumn~mbsCaption.html | 150 + ...EPDM.Interop.epdm.EdmBomColumn~meType.html | 150 + ....Interop.epdm.EdmBomColumn~mlColumnID.html | 150 + ...PDM.Interop.epdm.EdmBomColumn~mlFlags.html | 150 + ...nterop.epdm.EdmBomColumn~mlVariableID.html | 150 + ...erop.epdm.EdmBomColumn~mlVariableType.html | 150 + ...PDM.Interop.epdm.EdmBomColumn~mlWidth.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmBomFlag.html | 137 + ...rop.epdm~EPDM.Interop.epdm.EdmBomInfo.html | 156 + ...m~EPDM.Interop.epdm.EdmBomInfo_fields.html | 136 + ...~EPDM.Interop.epdm.EdmBomInfo_members.html | 163 + ...DM.Interop.epdm.EdmBomInfo~mbsBomName.html | 150 + ...m~EPDM.Interop.epdm.EdmBomInfo~meType.html | 150 + ...~EPDM.Interop.epdm.EdmBomInfo~mlBomID.html | 150 + ...DM.Interop.epdm.EdmBomInsertRowOption.html | 138 + ...p.epdm~EPDM.Interop.epdm.EdmBomLayout.html | 156 + ....epdm~EPDM.Interop.epdm.EdmBomLayout2.html | 157 + ...PDM.Interop.epdm.EdmBomLayout2_fields.html | 136 + ...DM.Interop.epdm.EdmBomLayout2_members.html | 163 + ...erop.epdm.EdmBomLayout2~mbsLayoutName.html | 150 + ...PDM.Interop.epdm.EdmBomLayout2~meType.html | 150 + ...Interop.epdm.EdmBomLayout2~mlLayoutID.html | 150 + ...EPDM.Interop.epdm.EdmBomLayout_fields.html | 135 + ...PDM.Interop.epdm.EdmBomLayout_members.html | 162 + ...terop.epdm.EdmBomLayout~mbsLayoutName.html | 150 + ....Interop.epdm.EdmBomLayout~mlLayoutID.html | 150 + ...~EPDM.Interop.epdm.EdmBomSetVarOption.html | 138 + ...rop.epdm~EPDM.Interop.epdm.EdmBomType.html | 145 + ....epdm~EPDM.Interop.epdm.EdmBomVersion.html | 156 + ...m~EPDM.Interop.epdm.EdmBomVersionType.html | 138 + ...PDM.Interop.epdm.EdmBomVersion_fields.html | 138 + ...DM.Interop.epdm.EdmBomVersion_members.html | 165 + ...Interop.epdm.EdmBomVersion~mbsComment.html | 150 + ...PDM.Interop.epdm.EdmBomVersion~mbsTag.html | 150 + ...PDM.Interop.epdm.EdmBomVersion~meType.html | 150 + ....Interop.epdm.EdmBomVersion~mlVersion.html | 150 + ...PDM.Interop.epdm.EdmBomVersion~moDate.html | 150 + ...EPDM.Interop.epdm.EdmBrokenParentInfo.html | 154 + ...terop.epdm.EdmBrokenParentInfo_fields.html | 139 + ...erop.epdm.EdmBrokenParentInfo_members.html | 166 + ...epdm.EdmBrokenParentInfo~mbsChildName.html | 150 + ...pdm.EdmBrokenParentInfo~mbsParentName.html | 150 + ...pdm.EdmBrokenParentInfo~mlChildFileID.html | 150 + ...m.EdmBrokenParentInfo~mlChildFolderID.html | 150 + ...dm.EdmBrokenParentInfo~mlParentFileID.html | 150 + ....EdmBrokenParentInfo~mlParentFolderID.html | 150 + ....epdm~EPDM.Interop.epdm.EdmBrowseFlag.html | 142 + ...M.Interop.epdm.EdmBrowseForFolderFlag.html | 138 + ...epdm~EPDM.Interop.epdm.EdmButtonState.html | 138 + ...~EPDM.Interop.epdm.EdmCardControlType.html | 152 + ...op.epdm~EPDM.Interop.epdm.EdmCardFlag.html | 138 + ...op.epdm~EPDM.Interop.epdm.EdmCardType.html | 139 + ...pdm~EPDM.Interop.epdm.EdmCardViewFlag.html | 150 + ...m~EPDM.Interop.epdm.EdmCardViewParams.html | 156 + ...Interop.epdm.EdmCardViewParams_fields.html | 140 + ...nterop.epdm.EdmCardViewParams_members.html | 167 + ...epdm.EdmCardViewParams~mhParentWindow.html | 150 + ...terop.epdm.EdmCardViewParams~mlCardID.html | 150 + ....EdmCardViewParams~mlEdmCardViewFlags.html | 150 + ...terop.epdm.EdmCardViewParams~mlFileID.html | 150 + ...rop.epdm.EdmCardViewParams~mlFolderID.html | 150 + ...DM.Interop.epdm.EdmCardViewParams~mlX.html | 150 + ...DM.Interop.epdm.EdmCardViewParams~mlY.html | 150 + ...DM.Interop.epdm.EdmCardViewUpdateType.html | 137 + ...terop.epdm.EdmChangeStateFileListFlag.html | 138 + ...rop.epdm.EdmChangeStateTransitionInfo.html | 156 + ...m.EdmChangeStateTransitionInfo_fields.html | 139 + ....EdmChangeStateTransitionInfo_members.html | 166 + ...mChangeStateTransitionInfo~mbIsRevoke.html | 150 + ...hangeStateTransitionInfo~mlCommitsNum.html | 150 + ...angeStateTransitionInfo~mlRequiredNum.html | 150 + ...angeStateTransitionInfo~moDescription.html | 150 + ...m.EdmChangeStateTransitionInfo~moIcon.html | 150 + ...m.EdmChangeStateTransitionInfo~moName.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmCheckRef.html | 154 + ...~EPDM.Interop.epdm.EdmCheckRef_fields.html | 140 + ...EPDM.Interop.epdm.EdmCheckRef_members.html | 167 + ...nterop.epdm.EdmCheckRef~mbsParentPath.html | 150 + ...M.Interop.epdm.EdmCheckRef~mbsRefPath.html | 150 + ...terop.epdm.EdmCheckRef~mlParentFileID.html | 150 + ....Interop.epdm.EdmCheckRef~mlRefFileID.html | 150 + ...nterop.epdm.EdmCheckRef~mlRefFolderID.html | 150 + ...p.epdm.EdmCheckRef~mlRefLatestVersion.html | 150 + ...Interop.epdm.EdmCheckRef~mlRefVersion.html | 150 + ....epdm~EPDM.Interop.epdm.EdmClientType.html | 142 + ...Interop.epdm~EPDM.Interop.epdm.EdmCmd.html | 162 + ...rop.epdm~EPDM.Interop.epdm.EdmCmdData.html | 1649 ++ ...m~EPDM.Interop.epdm.EdmCmdData_fields.html | 144 + ...~EPDM.Interop.epdm.EdmCmdData_members.html | 171 + ...M.Interop.epdm.EdmCmdData~mbsStrData1.html | 150 + ...M.Interop.epdm.EdmCmdData~mbsStrData2.html | 150 + ...M.Interop.epdm.EdmCmdData~mbsStrData3.html | 150 + ...M.Interop.epdm.EdmCmdData~mlLongData1.html | 150 + ...M.Interop.epdm.EdmCmdData~mlLongData2.html | 150 + ...M.Interop.epdm.EdmCmdData~mlLongData3.html | 150 + ...M.Interop.epdm.EdmCmdData~mlObjectID1.html | 150 + ...M.Interop.epdm.EdmCmdData~mlObjectID2.html | 150 + ...M.Interop.epdm.EdmCmdData~mlObjectID3.html | 150 + ...M.Interop.epdm.EdmCmdData~mlObjectID4.html | 150 + ...EPDM.Interop.epdm.EdmCmdData~mpoExtra.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmCmdInfo.html | 156 + ...m~EPDM.Interop.epdm.EdmCmdInfo_fields.html | 139 + ...~EPDM.Interop.epdm.EdmCmdInfo_members.html | 166 + ...PDM.Interop.epdm.EdmCmdInfo~mbsCmdStr.html | 150 + ...erop.epdm.EdmCmdInfo~mbsStatusBarHelp.html | 150 + ...DM.Interop.epdm.EdmCmdInfo~mbsTooltip.html | 150 + ...~EPDM.Interop.epdm.EdmCmdInfo~mlCmdID.html | 150 + ...nterop.epdm.EdmCmdInfo~mlEdmMenuFlags.html | 150 + ...m~EPDM.Interop.epdm.EdmCmdInfo~moData.html | 150 + ...epdm~EPDM.Interop.epdm.EdmCmdNodeProp.html | 138 + ...rop.epdm~EPDM.Interop.epdm.EdmCmdType.html | 198 + ....epdm~EPDM.Interop.epdm.EdmCmd_fields.html | 143 + ...epdm~EPDM.Interop.epdm.EdmCmd_members.html | 170 + ...pdm~EPDM.Interop.epdm.EdmCmd~mbCancel.html | 150 + ...EPDM.Interop.epdm.EdmCmd~mbSilentMode.html | 150 + ...m~EPDM.Interop.epdm.EdmCmd~mbsComment.html | 150 + ...dm~EPDM.Interop.epdm.EdmCmd~meCmdType.html | 150 + ...epdm~EPDM.Interop.epdm.EdmCmd~mlCmdID.html | 150 + ...Interop.epdm.EdmCmd~mlCurrentFolderID.html | 150 + ...Interop.epdm.EdmCmd~mlEdmRefreshFlags.html | 150 + ...~EPDM.Interop.epdm.EdmCmd~mlParentWnd.html | 150 + ...pdm~EPDM.Interop.epdm.EdmCmd~mpoExtra.html | 150 + ...pdm~EPDM.Interop.epdm.EdmCmd~mpoVault.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmColType.html | 162 + ...p.epdm~EPDM.Interop.epdm.EdmColumnSet.html | 154 + ...EPDM.Interop.epdm.EdmColumnSet_fields.html | 135 + ...PDM.Interop.epdm.EdmColumnSet_members.html | 162 + ...op.epdm.EdmColumnSet~mbsColumnSetName.html | 150 + ...terop.epdm.EdmColumnSet~mlColumnSetID.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmCopyFlag.html | 137 + ...~EPDM.Interop.epdm.EdmCopyTreeOptions.html | 156 + ...nterop.epdm.EdmCopyTreeOptions_fields.html | 137 + ...terop.epdm.EdmCopyTreeOptions_members.html | 164 + ....EdmCopyTreeOptions~mbIncludeDrawings.html | 150 + ...EdmCopyTreeOptions~mbUseLatestVersion.html | 150 + ...rop.epdm.EdmCopyTreeOptions~mbsPrefix.html | 150 + ...rop.epdm.EdmCopyTreeOptions~mbsSuffix.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmCopyType.html | 137 + ...PDM.Interop.epdm.EdmCreateListExFlags.html | 143 + ....Interop.epdm.EdmCreateReferenceFlags.html | 136 + ...~EPDM.Interop.epdm.EdmCreateVaultFlag.html | 137 + ...M.Interop.epdm.EdmCreateVaultViewFlag.html | 137 + ...EPDM.Interop.epdm.EdmDataPropertyType.html | 144 + ...op.epdm~EPDM.Interop.epdm.EdmDataType.html | 142 + ....epdm~EPDM.Interop.epdm.EdmDefValComp.html | 138 + ...EPDM.Interop.epdm.EdmDefaultValueType.html | 256 + ...pdm~EPDM.Interop.epdm.EdmDeletedItems.html | 154 + ...M.Interop.epdm.EdmDeletedItems_fields.html | 137 + ....Interop.epdm.EdmDeletedItems_members.html | 164 + ...Interop.epdm.EdmDeletedItems~mlFileID.html | 150 + ...rop.epdm.EdmDeletedItems~mlObjectType.html | 150 + ...erop.epdm.EdmDeletedItems~mlProjectID.html | 150 + ...M.Interop.epdm.EdmDeletedItems~moName.html | 150 + ...erop.epdm~EPDM.Interop.epdm.EdmDocIDs.html | 154 + ...dm~EPDM.Interop.epdm.EdmDocIDs_fields.html | 135 + ...m~EPDM.Interop.epdm.EdmDocIDs_members.html | 162 + ...m~EPDM.Interop.epdm.EdmDocIDs~mlDocID.html | 150 + ...~EPDM.Interop.epdm.EdmDocIDs~mlProjID.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmFileInfo.html | 156 + ...~EPDM.Interop.epdm.EdmFileInfo_fields.html | 139 + ...EPDM.Interop.epdm.EdmFileInfo_members.html | 166 + ...EPDM.Interop.epdm.EdmFileInfo~mbsPath.html | 152 + ...PDM.Interop.epdm.EdmFileInfo~mhResult.html | 152 + ...m~EPDM.Interop.epdm.EdmFileInfo~mlArg.html | 150 + ...PDM.Interop.epdm.EdmFileInfo~mlFileID.html | 152 + ...M.Interop.epdm.EdmFileInfo~mlFolderID.html | 152 + ...DM.Interop.epdm.EdmFileInfo~mpoObject.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmFileType.html | 140 + ...pdm~EPDM.Interop.epdm.EdmFindUserProp.html | 140 + ...PDM.Interop.epdm.EdmFolderHistoryFlag.html | 138 + ....epdm~EPDM.Interop.epdm.EdmFolderInfo.html | 156 + ...m~EPDM.Interop.epdm.EdmFolderInfoFlag.html | 138 + ...PDM.Interop.epdm.EdmFolderInfo_fields.html | 138 + ...DM.Interop.epdm.EdmFolderInfo_members.html | 165 + ...DM.Interop.epdm.EdmFolderInfo~mbsPath.html | 150 + ...dm.EdmFolderInfo~mlEdmFolderInfoFlags.html | 150 + ...Interop.epdm.EdmFolderInfo~mlFolderID.html | 150 + ...DM.Interop.epdm.EdmFolderInfo~mlParam.html | 150 + ....Interop.epdm.EdmFolderInfo~mpoFolder.html | 150 + ...EPDM.Interop.epdm.EdmFolderPermission.html | 156 + ...terop.epdm.EdmFolderPermission_fields.html | 137 + ...erop.epdm.EdmFolderPermission_members.html | 164 + ....epdm.EdmFolderPermission~meOwnerType.html | 150 + ...dm.EdmFolderPermission~mlEdmRightFlag.html | 150 + ...p.epdm.EdmFolderPermission~mlFolderID.html | 150 + ...op.epdm.EdmFolderPermission~mlOwnerID.html | 150 + ...epdm~EPDM.Interop.epdm.EdmGenItemInfo.html | 156 + ...DM.Interop.epdm.EdmGenItemInfo_fields.html | 146 + ...M.Interop.epdm.EdmGenItemInfo_members.html | 173 + ....epdm.EdmGenItemInfo~mbsConfiguration.html | 150 + ...epdm.EdmGenItemInfo~mbsFileFolderPath.html | 150 + ...terop.epdm.EdmGenItemInfo~mbsFileName.html | 150 + ...EdmGenItemInfo~mbsItemAlternativeName.html | 150 + ...epdm.EdmGenItemInfo~mbsItemFolderPath.html | 150 + ...terop.epdm.EdmGenItemInfo~mbsItemName.html | 150 + ...nterop.epdm.EdmGenItemInfo~meLinkType.html | 150 + ....Interop.epdm.EdmGenItemInfo~mhResult.html | 150 + ....Interop.epdm.EdmGenItemInfo~mlFileID.html | 150 + ...m.EdmGenItemInfo~mlFileParentFolderID.html | 150 + ...rop.epdm.EdmGenItemInfo~mlFileVersion.html | 150 + ....Interop.epdm.EdmGenItemInfo~mlItemID.html | 150 + ...m.EdmGenItemInfo~mlItemParentFolderID.html | 150 + ...epdm~EPDM.Interop.epdm.EdmGetCmdFlags.html | 152 + ...EPDM.Interop.epdm.EdmGetConfirmReason.html | 137 + ...~EPDM.Interop.epdm.EdmGetFileListFlag.html | 139 + ...rop.epdm~EPDM.Interop.epdm.EdmGetFlag.html | 143 + ...EPDM.Interop.epdm.EdmGetMenuInfoFlags.html | 137 + ....epdm~EPDM.Interop.epdm.EdmGetMsgFlag.html | 139 + ....epdm~EPDM.Interop.epdm.EdmGetOpError.html | 139 + ...op.epdm~EPDM.Interop.epdm.EdmGetOpMsg.html | 139 + ....epdm~EPDM.Interop.epdm.EdmGetOpReply.html | 139 + ...epdm~EPDM.Interop.epdm.EdmGetPermFlag.html | 137 + ....epdm~EPDM.Interop.epdm.EdmGetVarData.html | 156 + ...m~EPDM.Interop.epdm.EdmGetVarDataFlag.html | 137 + ...PDM.Interop.epdm.EdmGetVarData_fields.html | 141 + ...DM.Interop.epdm.EdmGetVarData_members.html | 168 + ...nterop.epdm.EdmGetVarData~mbsCategory.html | 150 + ...nterop.epdm.EdmGetVarData~mbsRevision.html | 150 + ...M.Interop.epdm.EdmGetVarData~mbsState.html | 150 + ...nterop.epdm.EdmGetVarData~mbsWorkflow.html | 150 + ....Interop.epdm.EdmGetVarData~mlDateFmt.html | 150 + ...dm.EdmGetVarData~mlEdmGetVarDataFlags.html | 150 + ...op.epdm.EdmGetVarData~mlLatestVersion.html | 150 + ....Interop.epdm.EdmGetVarData~mlVersion.html | 150 + ...p.epdm~EPDM.Interop.epdm.EdmGroupData.html | 162 + ....epdm~EPDM.Interop.epdm.EdmGroupData2.html | 156 + ...PDM.Interop.epdm.EdmGroupData2_fields.html | 142 + ...DM.Interop.epdm.EdmGroupData2_members.html | 169 + ....Interop.epdm.EdmGroupData2~mbAutoAdd.html | 150 + ...rop.epdm.EdmGroupData2~mbsDescription.html | 150 + ...DM.Interop.epdm.EdmGroupData2~mbsName.html | 150 + ...M.Interop.epdm.EdmGroupData2~mhStatus.html | 150 + ...DM.Interop.epdm.EdmGroupData2~mlFlags.html | 150 + ....Interop.epdm.EdmGroupData2~mlGroupID.html | 150 + ....Interop.epdm.EdmGroupData2~moMembers.html | 150 + ...Interop.epdm.EdmGroupData2~moSysPerms.html | 150 + ...M.Interop.epdm.EdmGroupData2~mpoGroup.html | 150 + ...m~EPDM.Interop.epdm.EdmGroupDataFlags.html | 139 + ...EPDM.Interop.epdm.EdmGroupData_fields.html | 142 + ...PDM.Interop.epdm.EdmGroupData_members.html | 169 + ...M.Interop.epdm.EdmGroupData~mbAutoAdd.html | 150 + ...erop.epdm.EdmGroupData~mbsDescription.html | 150 + ...PDM.Interop.epdm.EdmGroupData~mbsName.html | 150 + ...DM.Interop.epdm.EdmGroupData~mhStatus.html | 150 + ...PDM.Interop.epdm.EdmGroupData~mlFlags.html | 150 + ...M.Interop.epdm.EdmGroupData~mlGroupID.html | 150 + ...Interop.epdm.EdmGroupData~mlSysRights.html | 150 + ...M.Interop.epdm.EdmGroupData~moMembers.html | 150 + ...DM.Interop.epdm.EdmGroupData~mpoGroup.html | 150 + ...pdm~EPDM.Interop.epdm.EdmGroupSetting.html | 138 + ...epdm~EPDM.Interop.epdm.EdmHistoryItem.html | 156 + ...DM.Interop.epdm.EdmHistoryItem_fields.html | 143 + ...M.Interop.epdm.EdmHistoryItem_members.html | 170 + ...nterop.epdm.EdmHistoryItem~mbsComment.html | 150 + ...terop.epdm.EdmHistoryItem~mbsItemName.html | 150 + ...terop.epdm.EdmHistoryItem~mbsUserName.html | 150 + ...DM.Interop.epdm.EdmHistoryItem~meType.html | 150 + ....Interop.epdm.EdmHistoryItem~mlFileID.html | 150 + ...nterop.epdm.EdmHistoryItem~mlFolderID.html | 150 + ....Interop.epdm.EdmHistoryItem~mlUserID.html | 150 + ...Interop.epdm.EdmHistoryItem~mlVersion.html | 150 + ...DM.Interop.epdm.EdmHistoryItem~moData.html | 481 + ...DM.Interop.epdm.EdmHistoryItem~moDate.html | 150 + ...epdm~EPDM.Interop.epdm.EdmHistoryType.html | 164 + ...epdm~EPDM.Interop.epdm.EdmIncRevFlags.html | 136 + ...EPDM.Interop.epdm.EdmInstallFileFlags.html | 137 + ...M.Interop.epdm.EdmItemGenerationFlags.html | 137 + ...pdm~EPDM.Interop.epdm.EdmItemLinkType.html | 138 + ...rop.epdm~EPDM.Interop.epdm.EdmItemRef.html | 158 + ...m~EPDM.Interop.epdm.EdmItemRef_fields.html | 138 + ...~EPDM.Interop.epdm.EdmItemRef_members.html | 165 + ...erop.epdm.EdmItemRef~mbsConfiguration.html | 150 + ...EPDM.Interop.epdm.EdmItemRef~mhResult.html | 150 + ...Interop.epdm.EdmItemRef~mlEdmRefFlags.html | 150 + ...nterop.epdm.EdmItemRef~moNamePathOrID.html | 150 + ...m.EdmItemRef~moParentNamePathOrItemID.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmLangCode.html | 149 + ...op.epdm~EPDM.Interop.epdm.EdmLanguage.html | 205 + ...PDM.Interop.epdm.EdmLaunchSearchFlags.html | 139 + ...erop.epdm~EPDM.Interop.epdm.EdmLibVer.html | 232 + ...rop.epdm~EPDM.Interop.epdm.EdmLicense.html | 156 + ...epdm~EPDM.Interop.epdm.EdmLicenseType.html | 139 + ...m~EPDM.Interop.epdm.EdmLicense_fields.html | 135 + ...~EPDM.Interop.epdm.EdmLicense_members.html | 162 + ...m~EPDM.Interop.epdm.EdmLicense~meType.html | 150 + ...M.Interop.epdm.EdmLicense~mlUserCount.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmListCol.html | 157 + ...m~EPDM.Interop.epdm.EdmListCol_fields.html | 139 + ...~EPDM.Interop.epdm.EdmListCol_members.html | 166 + ...DM.Interop.epdm.EdmListCol~mbsCaption.html | 150 + ...PDM.Interop.epdm.EdmListCol~meColType.html | 150 + ...PDM.Interop.epdm.EdmListCol~meVarType.html | 150 + ...rop.epdm.EdmListCol~mlEdmListColFlags.html | 150 + ....Interop.epdm.EdmListCol~mlVariableID.html | 150 + ...~EPDM.Interop.epdm.EdmListCol~mlWidth.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmListFile.html | 154 + ...p.epdm~EPDM.Interop.epdm.EdmListFile2.html | 157 + ...EPDM.Interop.epdm.EdmListFile2_fields.html | 148 + ...PDM.Interop.epdm.EdmListFile2_members.html | 175 + ...rop.epdm.EdmListFile2~mbHasLockRights.html | 153 + ...le2~mbLocalOverwrittenVersionObsolete.html | 153 + ...rop.epdm.EdmListFile2~mbsLockComputer.html | 150 + ...Interop.epdm.EdmListFile2~mbsLockPath.html | 150 + ...Interop.epdm.EdmListFile2~mbsLockUser.html | 150 + ...terop.epdm.EdmListFile2~mbsLockViewID.html | 150 + ...rop.epdm.EdmListFile2~mbsRevisionName.html | 150 + ...DM.Interop.epdm.EdmListFile2~mlFileID.html | 150 + ....Interop.epdm.EdmListFile2~mlFolderID.html | 150 + ...rop.epdm.EdmListFile2~mlLatestVersion.html | 150 + ...erop.epdm.EdmListFile2~mlLocalVersion.html | 150 + ...rop.epdm.EdmListFile2~mlLockProjectID.html | 150 + ...PDM.Interop.epdm.EdmListFile2~mlParam.html | 150 + ...nterop.epdm.EdmListFile2~moColumnData.html | 150 + ...erop.epdm.EdmListFile2~moCurrentState.html | 150 + ...dm~EPDM.Interop.epdm.EdmListFileFlags.html | 139 + ...~EPDM.Interop.epdm.EdmListFile_fields.html | 144 + ...EPDM.Interop.epdm.EdmListFile_members.html | 171 + ...erop.epdm.EdmListFile~mbsLockComputer.html | 150 + ....Interop.epdm.EdmListFile~mbsLockPath.html | 150 + ....Interop.epdm.EdmListFile~mbsLockUser.html | 150 + ...erop.epdm.EdmListFile~mbsRevisionName.html | 150 + ...PDM.Interop.epdm.EdmListFile~mlFileID.html | 150 + ...M.Interop.epdm.EdmListFile~mlFolderID.html | 150 + ...erop.epdm.EdmListFile~mlLatestVersion.html | 150 + ...terop.epdm.EdmListFile~mlLocalVersion.html | 150 + ...EPDM.Interop.epdm.EdmListFile~mlParam.html | 150 + ...Interop.epdm.EdmListFile~moColumnData.html | 150 + ...terop.epdm.EdmListFile~moCurrentState.html | 150 + ....epdm~EPDM.Interop.epdm.EdmListFolder.html | 154 + ...~EPDM.Interop.epdm.EdmListFolderFlags.html | 137 + ...PDM.Interop.epdm.EdmListFolder_fields.html | 137 + ...DM.Interop.epdm.EdmListFolder_members.html | 164 + ...DM.Interop.epdm.EdmListFolder~mbsPath.html | 150 + ...Interop.epdm.EdmListFolder~mlFolderID.html | 150 + ...DM.Interop.epdm.EdmListFolder~mlParam.html | 150 + ...terop.epdm.EdmListFolder~moColumnData.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmListRef.html | 155 + ...m~EPDM.Interop.epdm.EdmListRef_fields.html | 138 + ...~EPDM.Interop.epdm.EdmListRef_members.html | 165 + ...Interop.epdm.EdmListRef~mlChildFileID.html | 150 + ...terop.epdm.EdmListRef~mlChildFolderID.html | 150 + ...rop.epdm.EdmListRef~mlChildRefVersion.html | 150 + ...nterop.epdm.EdmListRef~mlParentFileID.html | 150 + ...erop.epdm.EdmListRef~mlParentFolderID.html | 150 + ...~EPDM.Interop.epdm.EdmListRetFileFlag.html | 140 + ...op.epdm~EPDM.Interop.epdm.EdmLockFlag.html | 136 + ....epdm~EPDM.Interop.epdm.EdmMBoxResult.html | 145 + ...op.epdm~EPDM.Interop.epdm.EdmMBoxType.html | 144 + ...pdm~EPDM.Interop.epdm.EdmMemberFolder.html | 156 + ...M.Interop.epdm.EdmMemberFolder_fields.html | 135 + ....Interop.epdm.EdmMemberFolder_members.html | 162 + ...terop.epdm.EdmMemberFolder~mlFolderID.html | 150 + ...Interop.epdm.EdmMemberFolder~mlUserID.html | 150 + ...p.epdm~EPDM.Interop.epdm.EdmMenuFlags.html | 154 + ...epdm~EPDM.Interop.epdm.EdmMenuStrType.html | 138 + ...rop.epdm~EPDM.Interop.epdm.EdmMsgType.html | 141 + ....epdm~EPDM.Interop.epdm.EdmObjectInfo.html | 156 + ...PDM.Interop.epdm.EdmObjectInfo_fields.html | 137 + ...DM.Interop.epdm.EdmObjectInfo_members.html | 164 + ...PDM.Interop.epdm.EdmObjectInfo~meType.html | 150 + ...M.Interop.epdm.EdmObjectInfo~mhResult.html | 150 + ...Interop.epdm.EdmObjectInfo~moObjectID.html | 150 + ....Interop.epdm.EdmObjectInfo~mpoObject.html | 150 + ....epdm~EPDM.Interop.epdm.EdmObjectType.html | 157 + ...terop.epdm~EPDM.Interop.epdm.EdmPoint.html | 156 + ...pdm~EPDM.Interop.epdm.EdmPoint_fields.html | 135 + ...dm~EPDM.Interop.epdm.EdmPoint_members.html | 162 + ...p.epdm~EPDM.Interop.epdm.EdmPoint~mlX.html | 150 + ...p.epdm~EPDM.Interop.epdm.EdmPoint~mlY.html | 150 + ...pdm~EPDM.Interop.epdm.EdmProgressType.html | 145 + ...epdm~EPDM.Interop.epdm.EdmRawRefFlags.html | 138 + ...pdm~EPDM.Interop.epdm.EdmRawReference.html | 157 + ...M.Interop.epdm.EdmRawReference_fields.html | 138 + ....Interop.epdm.EdmRawReference_members.html | 165 + ...p.epdm.EdmRawReference~mbsIncludePath.html | 150 + ...Interop.epdm.EdmRawReference~mbsRefID.html | 150 + ...terop.epdm.EdmRawReference~mbsRefName.html | 150 + ....Interop.epdm.EdmRawReference~mlCount.html | 150 + ....Interop.epdm.EdmRawReference~mlFlags.html | 150 + ...nterop.epdm~EPDM.Interop.epdm.EdmRect.html | 156 + ...epdm~EPDM.Interop.epdm.EdmRect_fields.html | 137 + ...pdm~EPDM.Interop.epdm.EdmRect_members.html | 164 + ...dm~EPDM.Interop.epdm.EdmRect~mlBottom.html | 150 + ...epdm~EPDM.Interop.epdm.EdmRect~mlLeft.html | 150 + ...pdm~EPDM.Interop.epdm.EdmRect~mlRight.html | 150 + ....epdm~EPDM.Interop.epdm.EdmRect~mlTop.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmRefFlags.html | 144 + ...~EPDM.Interop.epdm.EdmRefItemProperty.html | 170 + ...epdm~EPDM.Interop.epdm.EdmRefItemType.html | 137 + ...rop.epdm~EPDM.Interop.epdm.EdmRefType.html | 137 + ...erop.epdm~EPDM.Interop.epdm.EdmRefVar.html | 168 + ...dm~EPDM.Interop.epdm.EdmRefVar_fields.html | 141 + ...m~EPDM.Interop.epdm.EdmRefVar_members.html | 168 + ...nterop.epdm.EdmRefVar~mbsChildCfgName.html | 150 + ...terop.epdm.EdmRefVar~mbsParentCfgName.html | 150 + ...~EPDM.Interop.epdm.EdmRefVar~mhResult.html | 150 + ....Interop.epdm.EdmRefVar~mlChildFileID.html | 150 + ...Interop.epdm.EdmRefVar~mlParentFileID.html | 150 + ...nterop.epdm.EdmRefVar~mlParentVersion.html | 150 + ...m~EPDM.Interop.epdm.EdmRefVar~mlVarID.html | 150 + ...m~EPDM.Interop.epdm.EdmRefVar~moValue.html | 150 + ...epdm~EPDM.Interop.epdm.EdmRefreshFlag.html | 141 + ...epdm~EPDM.Interop.epdm.EdmRepaintType.html | 138 + ...dm~EPDM.Interop.epdm.EdmResolveAction.html | 143 + ...dm~EPDM.Interop.epdm.EdmResolveReason.html | 142 + ...pdm~EPDM.Interop.epdm.EdmRevComponent.html | 155 + ...dm~EPDM.Interop.epdm.EdmRevComponent2.html | 158 + ....Interop.epdm.EdmRevComponent2_fields.html | 139 + ...Interop.epdm.EdmRevComponent2_members.html | 166 + ...pdm.EdmRevComponent2~mbsComponentName.html | 150 + ...Interop.epdm.EdmRevComponent2~mbsData.html | 259 + ...p.epdm.EdmRevComponent2~mlComponentID.html | 150 + ...mRevComponent2~mlEdmRevComponentFlags.html | 150 + ...pdm.EdmRevComponent2~mlInitialCounter.html | 150 + ...p.epdm.EdmRevComponent2~mlRecipientID.html | 150 + ...PDM.Interop.epdm.EdmRevComponentFlags.html | 142 + ...M.Interop.epdm.EdmRevComponent_fields.html | 135 + ....Interop.epdm.EdmRevComponent_members.html | 162 + ...epdm.EdmRevComponent~mbsComponentName.html | 150 + ...op.epdm.EdmRevComponent~mlComponentID.html | 150 + ....epdm~EPDM.Interop.epdm.EdmRevCounter.html | 156 + ...PDM.Interop.epdm.EdmRevCounter_fields.html | 135 + ...DM.Interop.epdm.EdmRevCounter_members.html | 162 + ...p.epdm.EdmRevCounter~mbsComponentName.html | 150 + ....Interop.epdm.EdmRevCounter~mlCounter.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmRevError.html | 156 + ...~EPDM.Interop.epdm.EdmRevError_fields.html | 135 + ...EPDM.Interop.epdm.EdmRevError_members.html | 162 + ...EPDM.Interop.epdm.EdmRevError~mhError.html | 150 + ...PDM.Interop.epdm.EdmRevError~mlFileID.html | 150 + ...terop.epdm~EPDM.Interop.epdm.EdmRevNo.html | 156 + ...pdm~EPDM.Interop.epdm.EdmRevNo_fields.html | 136 + ...dm~EPDM.Interop.epdm.EdmRevNo_members.html | 163 + ...dm~EPDM.Interop.epdm.EdmRevNo~mbsData.html | 150 + ...DM.Interop.epdm.EdmRevNo~mbsRevNoName.html | 150 + ...~EPDM.Interop.epdm.EdmRevNo~mlRevNoID.html | 150 + ....epdm~EPDM.Interop.epdm.EdmRightFlags.html | 166 + ...epdm~EPDM.Interop.epdm.EdmSearchToken.html | 176 + ...rop.epdm~EPDM.Interop.epdm.EdmSelItem.html | 160 + ...op.epdm~EPDM.Interop.epdm.EdmSelItem2.html | 164 + ...~EPDM.Interop.epdm.EdmSelItem2_fields.html | 137 + ...EPDM.Interop.epdm.EdmSelItem2_members.html | 164 + ...~EPDM.Interop.epdm.EdmSelItem2~meType.html | 150 + ...dm~EPDM.Interop.epdm.EdmSelItem2~mlID.html | 150 + ...M.Interop.epdm.EdmSelItem2~mlParentID.html | 150 + ...DM.Interop.epdm.EdmSelItem2~mlVersion.html | 150 + ...m~EPDM.Interop.epdm.EdmSelItem_fields.html | 135 + ...~EPDM.Interop.epdm.EdmSelItem_members.html | 162 + ...~EPDM.Interop.epdm.EdmSelItem~mlDocID.html | 150 + ...EPDM.Interop.epdm.EdmSelItem~mlProjID.html | 150 + ...~EPDM.Interop.epdm.EdmSelectionObject.html | 156 + ...nterop.epdm.EdmSelectionObject_fields.html | 140 + ...terop.epdm.EdmSelectionObject_members.html | 167 + ...terop.epdm.EdmSelectionObject~mbsPath.html | 150 + ...nterop.epdm.EdmSelectionObject~meType.html | 150 + ....epdm.EdmSelectionObject~mlGetVersion.html | 150 + ....Interop.epdm.EdmSelectionObject~mlID.html | 150 + ...dm.EdmSelectionObject~mlLatestVersion.html | 150 + ...pdm.EdmSelectionObject~mlLocalVersion.html | 150 + ...p.epdm.EdmSelectionObject~mlProjectID.html | 150 + ...m~EPDM.Interop.epdm.EdmSimpleXRefInfo.html | 155 + ...Interop.epdm.EdmSimpleXRefInfo_fields.html | 137 + ...nterop.epdm.EdmSimpleXRefInfo_members.html | 164 + ...erop.epdm.EdmSimpleXRefInfo~VersionNo.html | 150 + ...epdm.EdmSimpleXRefInfo~XRefDocumentID.html | 150 + ....epdm.EdmSimpleXRefInfo~XRefProjectID.html | 150 + ....epdm.EdmSimpleXRefInfo~XRefVersionNo.html | 150 + ....epdm~EPDM.Interop.epdm.EdmStateFlags.html | 137 + ...~EPDM.Interop.epdm.EdmStatePermission.html | 154 + ...nterop.epdm.EdmStatePermission_fields.html | 137 + ...terop.epdm.EdmStatePermission_members.html | 164 + ...p.epdm.EdmStatePermission~meOwnerType.html | 150 + ...pdm.EdmStatePermission~mlEdmRightFlag.html | 150 + ...rop.epdm.EdmStatePermission~mlOwnerID.html | 150 + ...rop.epdm.EdmStatePermission~mlStateID.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmSysPerm.html | 182 + ...dm~EPDM.Interop.epdm.EdmSysRightFlags.html | 166 + ...op.epdm~EPDM.Interop.epdm.EdmTaskFlag.html | 142 + ...op.epdm~EPDM.Interop.epdm.EdmTaskInfo.html | 155 + ...~EPDM.Interop.epdm.EdmTaskInfo_fields.html | 137 + ...EPDM.Interop.epdm.EdmTaskInfo_members.html | 164 + ....Interop.epdm.EdmTaskInfo~mbsTaskName.html | 150 + ...PDM.Interop.epdm.EdmTaskInfo~mlTaskID.html | 150 + ...pdm.EdmTaskInfo~mllShortTaskInfoFlags.html | 150 + ...epdm~EPDM.Interop.epdm.EdmTaskMenuCmd.html | 157 + ...DM.Interop.epdm.EdmTaskMenuCmd_fields.html | 138 + ...M.Interop.epdm.EdmTaskMenuCmd_members.html | 165 + ...rop.epdm.EdmTaskMenuCmd~mbsMenuString.html | 150 + ....epdm.EdmTaskMenuCmd~mbsStatusBarHelp.html | 150 + ...M.Interop.epdm.EdmTaskMenuCmd~mlCmdID.html | 150 + ...op.epdm.EdmTaskMenuCmd~mlEdmMenuFlags.html | 150 + ...rop.epdm~EPDM.Interop.epdm.EdmTaskSel.html | 155 + ...m~EPDM.Interop.epdm.EdmTaskSel_fields.html | 139 + ...~EPDM.Interop.epdm.EdmTaskSel_members.html | 166 + ...erop.epdm.EdmTaskSel~mbsConfiguration.html | 150 + ...m~EPDM.Interop.epdm.EdmTaskSel~meType.html | 150 + ...pdm~EPDM.Interop.epdm.EdmTaskSel~mlID.html | 150 + ...DM.Interop.epdm.EdmTaskSel~mlParentID.html | 150 + ...PDM.Interop.epdm.EdmTaskSel~mlVersion.html | 150 + ...dm~EPDM.Interop.epdm.EdmTaskSetupPage.html | 157 + ....Interop.epdm.EdmTaskSetupPage_fields.html | 137 + ...Interop.epdm.EdmTaskSetupPage_members.html | 164 + ...rop.epdm.EdmTaskSetupPage~mbsPageName.html | 150 + ...erop.epdm.EdmTaskSetupPage~mlPageHwnd.html | 150 + ...rop.epdm.EdmTaskSetupPage~mpoPageImpl.html | 150 + ....epdm~EPDM.Interop.epdm.EdmTaskStatus.html | 147 + ....Interop.epdm.EdmTransitionPermission.html | 154 + ...p.epdm.EdmTransitionPermission_fields.html | 137 + ....epdm.EdmTransitionPermission_members.html | 164 + ...m.EdmTransitionPermission~meOwnerType.html | 150 + ...dmTransitionPermission~mlEdmRightFlag.html | 150 + ...pdm.EdmTransitionPermission~mlOwnerID.html | 150 + ...dmTransitionPermission~mlTransitionID.html | 150 + ....Interop.epdm.EdmTransitionRightFlags.html | 138 + ...m~EPDM.Interop.epdm.EdmTransitionType.html | 138 + ....Interop.epdm.EdmUnlockBuildTreeFlags.html | 152 + ...dm~EPDM.Interop.epdm.EdmUnlockErrInfo.html | 156 + ....Interop.epdm.EdmUnlockErrInfo_fields.html | 137 + ...Interop.epdm.EdmUnlockErrInfo_members.html | 164 + ...p.epdm.EdmUnlockErrInfo~mbsConfigName.html | 150 + ...erop.epdm.EdmUnlockErrInfo~mbsVarName.html | 150 + ...Interop.epdm.EdmUnlockErrInfo~mlDocID.html | 150 + ...Interop.epdm.EdmUnlockErrInfo~mlVarID.html | 150 + ...epdm~EPDM.Interop.epdm.EdmUnlockEvent.html | 138 + ...m~EPDM.Interop.epdm.EdmUnlockEventMsg.html | 136 + ...DM.Interop.epdm.EdmUnlockFileListFlag.html | 138 + ....epdm~EPDM.Interop.epdm.EdmUnlockFlag.html | 145 + ...epdm~EPDM.Interop.epdm.EdmUnlockOpMsg.html | 146 + ...dm~EPDM.Interop.epdm.EdmUnlockOpReply.html | 141 + ...EPDM.Interop.epdm.EdmUnlockStatusFlag.html | 137 + ...m~EPDM.Interop.epdm.EdmUpdatedRefPath.html | 154 + ...Interop.epdm.EdmUpdatedRefPath_fields.html | 135 + ...nterop.epdm.EdmUpdatedRefPath_members.html | 162 + ....epdm.EdmUpdatedRefPath~mbsRefNewPath.html | 150 + ....epdm.EdmUpdatedRefPath~mbsRefOldPath.html | 150 + ...op.epdm~EPDM.Interop.epdm.EdmUserData.html | 154 + ...p.epdm~EPDM.Interop.epdm.EdmUserData2.html | 158 + ...EPDM.Interop.epdm.EdmUserData2_fields.html | 145 + ...PDM.Interop.epdm.EdmUserData2_members.html | 172 + ...terop.epdm.EdmUserData2~mbsColumnView.html | 150 + ...rop.epdm.EdmUserData2~mbsCompleteName.html | 150 + ...DM.Interop.epdm.EdmUserData2~mbsEmail.html | 150 + ...Interop.epdm.EdmUserData2~mbsInitials.html | 150 + ...Interop.epdm.EdmUserData2~mbsPassword.html | 150 + ...Interop.epdm.EdmUserData2~mbsUserData.html | 150 + ...Interop.epdm.EdmUserData2~mbsUserName.html | 150 + ...DM.Interop.epdm.EdmUserData2~mhStatus.html | 150 + ...PDM.Interop.epdm.EdmUserData2~mlFlags.html | 150 + ...DM.Interop.epdm.EdmUserData2~mlUserID.html | 150 + ....Interop.epdm.EdmUserData2~moSysPerms.html | 150 + ...PDM.Interop.epdm.EdmUserData2~mpoUser.html | 150 + ....epdm~EPDM.Interop.epdm.EdmUserDataEx.html | 158 + ...m~EPDM.Interop.epdm.EdmUserDataExFlag.html | 151 + ...PDM.Interop.epdm.EdmUserDataEx_fields.html | 147 + ...DM.Interop.epdm.EdmUserDataEx_members.html | 174 + ...terop.epdm.EdmUserDataEx~mbsCellPhone.html | 151 + ...op.epdm.EdmUserDataEx~mbsCompleteName.html | 150 + ...M.Interop.epdm.EdmUserDataEx~mbsEmail.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsInitials.html | 150 + ...M.Interop.epdm.EdmUserDataEx~mbsPhone.html | 151 + ...rop.epdm.EdmUserDataEx~mbsPicturePath.html | 151 + ...op.epdm.EdmUserDataEx~mbsPresenceNote.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsUserData.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsWebSite1.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsWebSite2.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsWebSite3.html | 150 + ...nterop.epdm.EdmUserDataEx~mbsWebSite4.html | 150 + ...dm.EdmUserDataEx~mlEdmUserDataExFlags.html | 150 + ...M.Interop.epdm.EdmUserDataEx~mlUserID.html | 150 + ...dm~EPDM.Interop.epdm.EdmUserDataFlags.html | 139 + ...~EPDM.Interop.epdm.EdmUserData_fields.html | 145 + ...EPDM.Interop.epdm.EdmUserData_members.html | 172 + ...nterop.epdm.EdmUserData~mbsColumnView.html | 150 + ...erop.epdm.EdmUserData~mbsCompleteName.html | 150 + ...PDM.Interop.epdm.EdmUserData~mbsEmail.html | 150 + ....Interop.epdm.EdmUserData~mbsInitials.html | 150 + ....Interop.epdm.EdmUserData~mbsPassword.html | 150 + ....Interop.epdm.EdmUserData~mbsUserData.html | 150 + ....Interop.epdm.EdmUserData~mbsUserName.html | 150 + ...PDM.Interop.epdm.EdmUserData~mhStatus.html | 150 + ...EPDM.Interop.epdm.EdmUserData~mlFlags.html | 150 + ....Interop.epdm.EdmUserData~mlSysRights.html | 150 + ...PDM.Interop.epdm.EdmUserData~mlUserID.html | 150 + ...EPDM.Interop.epdm.EdmUserData~mpoUser.html | 150 + ...~EPDM.Interop.epdm.EdmUserPictureFlag.html | 136 + ...epdm~EPDM.Interop.epdm.EdmUserSetting.html | 138 + ...op.epdm~EPDM.Interop.epdm.EdmUserType.html | 139 + ...rop.epdm~EPDM.Interop.epdm.EdmUtility.html | 163 + ...terop.epdm~EPDM.Interop.epdm.EdmVarOp.html | 155 + ...erop.epdm~EPDM.Interop.epdm.EdmVarVal.html | 157 + ...dm~EPDM.Interop.epdm.EdmVarVal_fields.html | 137 + ...m~EPDM.Interop.epdm.EdmVarVal_members.html | 164 + ...terop.epdm.EdmVarVal~mlEdmVarValFlags.html | 150 + ...m~EPDM.Interop.epdm.EdmVarVal~moValue.html | 150 + ....Interop.epdm.EdmVarVal~moVarIDorName.html | 150 + ...pdm~EPDM.Interop.epdm.EdmVariableData.html | 156 + ...M.Interop.epdm.EdmVariableData_fields.html | 138 + ....Interop.epdm.EdmVariableData_members.html | 165 + ....epdm.EdmVariableData~mbsVariableName.html | 150 + ...M.Interop.epdm.EdmVariableData~meType.html | 150 + ...dm.EdmVariableData~mlEdmVariableFlags.html | 150 + ...rop.epdm.EdmVariableData~mlVariableID.html | 150 + ...op.epdm.EdmVariableData~mpoAttributes.html | 150 + ...dm~EPDM.Interop.epdm.EdmVariableFlags.html | 139 + ...pdm~EPDM.Interop.epdm.EdmVariableType.html | 141 + ...p.epdm~EPDM.Interop.epdm.EdmVaultType.html | 138 + ...op.epdm~EPDM.Interop.epdm.EdmViewInfo.html | 158 + ...~EPDM.Interop.epdm.EdmViewInfo_fields.html | 138 + ...EPDM.Interop.epdm.EdmViewInfo_members.html | 165 + ...M.Interop.epdm.EdmViewInfo~mbLoggedIn.html | 150 + ...EPDM.Interop.epdm.EdmViewInfo~mbsPath.html | 150 + ...M.Interop.epdm.EdmViewInfo~mbsVaultID.html | 150 + ...Interop.epdm.EdmViewInfo~mbsVaultName.html | 152 + ...DM.Interop.epdm.EdmViewInfo~mbsViewID.html | 150 + ...pdm~EPDM.Interop.epdm.EdmWorkflowInfo.html | 156 + ...M.Interop.epdm.EdmWorkflowInfo_fields.html | 136 + ....Interop.epdm.EdmWorkflowInfo_members.html | 163 + ...rop.epdm.EdmWorkflowInfo~mbsStateIcon.html | 150 + ...rop.epdm.EdmWorkflowInfo~mbsStateName.html | 150 + ....epdm.EdmWorkflowInfo~mbsWorkflowName.html | 150 + ...m~EPDM.Interop.epdm.IEdmAddCustomRefs.html | 150 + ...~EPDM.Interop.epdm.IEdmAddCustomRefs2.html | 136 + ...terop.epdm.IEdmAddCustomRefs2_members.html | 112 + ...terop.epdm.IEdmAddCustomRefs2_methods.html | 104 + ...m.IEdmAddCustomRefs2~AddReferencesID2.html | 172 + ...IEdmAddCustomRefs2~AddReferencesPath2.html | 172 + ...nterop.epdm.IEdmAddCustomRefs_members.html | 117 + ...nterop.epdm.IEdmAddCustomRefs_methods.html | 109 + ...mAddCustomRefs~AddReferencesClipboard.html | 159 + ...pdm.IEdmAddCustomRefs~AddReferencesID.html | 163 + ...m.IEdmAddCustomRefs~AddReferencesPath.html | 163 + ...dm.IEdmAddCustomRefs~CreateReferences.html | 150 + ...rop.epdm.IEdmAddCustomRefs~CreateTree.html | 158 + ...nterop.epdm.IEdmAddCustomRefs~ShowDlg.html | 158 + ...dmAddCustomRefs~ShowEditReferencesDlg.html | 165 + ...rop.epdm~EPDM.Interop.epdm.IEdmAddIn5.html | 151 + ...~EPDM.Interop.epdm.IEdmAddIn5_members.html | 113 + ...~EPDM.Interop.epdm.IEdmAddIn5_methods.html | 105 + ....Interop.epdm.IEdmAddIn5~GetAddInInfo.html | 172 + ...dm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html | 164 + ...PDM.Interop.epdm.IEdmAddInDrawButton5.html | 144 + ...rop.epdm.IEdmAddInDrawButton5_members.html | 112 + ...rop.epdm.IEdmAddInDrawButton5_methods.html | 104 + ...EdmAddInDrawButton5~DrawToolbarButton.html | 201 + ....epdm~EPDM.Interop.epdm.IEdmAddInMgr5.html | 140 + ...DM.Interop.epdm.IEdmAddInMgr5_members.html | 112 + ...DM.Interop.epdm.IEdmAddInMgr5_methods.html | 104 + ....Interop.epdm.IEdmAddInMgr5~AddAddIns.html | 169 + ...terop.epdm.IEdmAddInMgr5~GetAddInInfo.html | 171 + ....epdm~EPDM.Interop.epdm.IEdmAddInMgr6.html | 139 + ...DM.Interop.epdm.IEdmAddInMgr6_members.html | 114 + ...DM.Interop.epdm.IEdmAddInMgr6_methods.html | 106 + ...erop.epdm.IEdmAddInMgr6~GetAddInInfo2.html | 172 + ...rop.epdm.IEdmAddInMgr6~GetDebugAddIns.html | 159 + ....epdm.IEdmAddInMgr6~InstallDebugAddIn.html | 160 + ...p.epdm.IEdmAddInMgr6~RemoveDebugAddIn.html | 159 + ....epdm~EPDM.Interop.epdm.IEdmAddInMgr7.html | 139 + ...DM.Interop.epdm.IEdmAddInMgr7_members.html | 111 + ...DM.Interop.epdm.IEdmAddInMgr7_methods.html | 103 + ...epdm.IEdmAddInMgr7~GetInstalledAddIns.html | 156 + ....epdm~EPDM.Interop.epdm.IEdmAddInMgr8.html | 139 + ...DM.Interop.epdm.IEdmAddInMgr8_members.html | 113 + ...DM.Interop.epdm.IEdmAddInMgr8_methods.html | 105 + ...m.IEdmAddInMgr8~ExtractInstalledAddIn.html | 174 + ...Interop.epdm.IEdmAddInMgr8~GetCAFInfo.html | 187 + ....epdm.IEdmAddInMgr8~GetInstalledAddIn.html | 191 + ....epdm~EPDM.Interop.epdm.IEdmAddInMgr9.html | 138 + ...DM.Interop.epdm.IEdmAddInMgr9_members.html | 111 + ...DM.Interop.epdm.IEdmAddInMgr9_methods.html | 103 + ...nterop.epdm.IEdmAddInMgr9~RemoveAddIn.html | 156 + ...epdm~EPDM.Interop.epdm.IEdmAttribute5.html | 141 + ...M.Interop.epdm.IEdmAttribute5_members.html | 112 + ...nterop.epdm.IEdmAttribute5_properties.html | 108 + ...Interop.epdm.IEdmAttribute5~BlockName.html | 147 + ...nterop.epdm.IEdmAttribute5~Extensions.html | 147 + ...p.epdm~EPDM.Interop.epdm.IEdmBatchAdd.html | 142 + ....epdm~EPDM.Interop.epdm.IEdmBatchAdd2.html | 136 + ...DM.Interop.epdm.IEdmBatchAdd2_members.html | 111 + ...DM.Interop.epdm.IEdmBatchAdd2_methods.html | 103 + ...DM.Interop.epdm.IEdmBatchAdd2~ShowDlg.html | 179 + ...EPDM.Interop.epdm.IEdmBatchAddFolders.html | 144 + ...erop.epdm.IEdmBatchAddFolders_members.html | 112 + ...erop.epdm.IEdmBatchAddFolders_methods.html | 104 + ...op.epdm.IEdmBatchAddFolders~AddFolder.html | 196 + ...terop.epdm.IEdmBatchAddFolders~Create.html | 171 + ...PDM.Interop.epdm.IEdmBatchAdd_members.html | 119 + ...PDM.Interop.epdm.IEdmBatchAdd_methods.html | 111 + ...rop.epdm.IEdmBatchAdd~AddFileFromPath.html | 189 + ...dm.IEdmBatchAdd~AddFileFromPathToPath.html | 190 + ...op.epdm.IEdmBatchAdd~AddFileFromVault.html | 197 + ...m.IEdmBatchAdd~AddFileFromVaultToPath.html | 198 + ...M.Interop.epdm.IEdmBatchAdd~AddFolder.html | 197 + ...terop.epdm.IEdmBatchAdd~AddFolderPath.html | 189 + ...M.Interop.epdm.IEdmBatchAdd~CommitAdd.html | 179 + ...op.epdm.IEdmBatchAdd~SetFileNameSerNo.html | 173 + ...PDM.Interop.epdm.IEdmBatchChangeState.html | 145 + ...DM.Interop.epdm.IEdmBatchChangeState2.html | 141 + ...op.epdm.IEdmBatchChangeState2_members.html | 112 + ...op.epdm.IEdmBatchChangeState2_methods.html | 104 + ...BatchChangeState2~CreateTreeForRevoke.html | 157 + ...angeState2~GetAvailableTransitionList.html | 155 + ...DM.Interop.epdm.IEdmBatchChangeState3.html | 141 + ...op.epdm.IEdmBatchChangeState3_members.html | 112 + ...op.epdm.IEdmBatchChangeState3_methods.html | 104 + ...mBatchChangeState3~AllowAdminToRevoke.html | 155 + ...IEdmBatchChangeState3~SetRevokeUserID.html | 155 + ...DM.Interop.epdm.IEdmBatchChangeState4.html | 141 + ...op.epdm.IEdmBatchChangeState4_members.html | 111 + ...op.epdm.IEdmBatchChangeState4_methods.html | 103 + ...dm.IEdmBatchChangeState4~ChangeState2.html | 174 + ...DM.Interop.epdm.IEdmBatchChangeState5.html | 139 + ...op.epdm.IEdmBatchChangeState5_members.html | 111 + ...op.epdm.IEdmBatchChangeState5_methods.html | 103 + ...ngeState5~IncludeParentsForRevokeTree.html | 155 + ...DM.Interop.epdm.IEdmBatchChangeState6.html | 138 + ...op.epdm.IEdmBatchChangeState6_members.html | 111 + ...op.epdm.IEdmBatchChangeState6_methods.html | 103 + ....epdm.IEdmBatchChangeState6~RunAsUser.html | 168 + ...rop.epdm.IEdmBatchChangeState_members.html | 118 + ...rop.epdm.IEdmBatchChangeState_methods.html | 108 + ....epdm.IEdmBatchChangeState_properties.html | 107 + ...rop.epdm.IEdmBatchChangeState~AddFile.html | 164 + ...epdm.IEdmBatchChangeState~ChangeState.html | 164 + ...rop.epdm.IEdmBatchChangeState~Comment.html | 148 + ....epdm.IEdmBatchChangeState~CreateTree.html | 157 + ...epdm.IEdmBatchChangeState~GetFileList.html | 155 + ...erop.epdm.IEdmBatchChangeState~SetAux.html | 160 + ...rop.epdm.IEdmBatchChangeState~ShowDlg.html | 156 + ...pdm~EPDM.Interop.epdm.IEdmBatchDelete.html | 149 + ...dm~EPDM.Interop.epdm.IEdmBatchDelete2.html | 139 + ...Interop.epdm.IEdmBatchDelete2_members.html | 111 + ...Interop.epdm.IEdmBatchDelete2_methods.html | 103 + ...epdm.IEdmBatchDelete2~ShowWarningDlg2.html | 164 + ...dm~EPDM.Interop.epdm.IEdmBatchDelete3.html | 136 + ...Interop.epdm.IEdmBatchDelete3_members.html | 111 + ...Interop.epdm.IEdmBatchDelete3_methods.html | 103 + ...epdm.IEdmBatchDelete3~GetCommitErrors.html | 156 + ....Interop.epdm.IEdmBatchDelete_members.html | 117 + ....Interop.epdm.IEdmBatchDelete_methods.html | 109 + ...erop.epdm.IEdmBatchDelete~AddFileByID.html | 164 + ...op.epdm.IEdmBatchDelete~AddFileByPath.html | 156 + ...nterop.epdm.IEdmBatchDelete~AddFolder.html | 156 + ...rop.epdm.IEdmBatchDelete~CommitDelete.html | 165 + ...dm.IEdmBatchDelete~ComputePermissions.html | 165 + ...m.IEdmBatchDelete~ShowCommitErrorsDlg.html | 155 + ...p.epdm.IEdmBatchDelete~ShowWarningDlg.html | 155 + ...p.epdm~EPDM.Interop.epdm.IEdmBatchGet.html | 145 + ...PDM.Interop.epdm.IEdmBatchGet_members.html | 118 + ...PDM.Interop.epdm.IEdmBatchGet_methods.html | 108 + ....Interop.epdm.IEdmBatchGet_properties.html | 107 + ...nterop.epdm.IEdmBatchGet~AddSelection.html | 163 + ...erop.epdm.IEdmBatchGet~AddSelectionEx.html | 179 + ....Interop.epdm.IEdmBatchGet~CreateTree.html | 164 + ...M.Interop.epdm.IEdmBatchGet~FileCount.html | 147 + ...Interop.epdm.IEdmBatchGet~GetFileList.html | 155 + ...DM.Interop.epdm.IEdmBatchGet~GetFiles.html | 164 + ...PDM.Interop.epdm.IEdmBatchGet~ShowDlg.html | 155 + ....Interop.epdm.IEdmBatchItemGeneration.html | 146 + ...Interop.epdm.IEdmBatchItemGeneration2.html | 139 + ...epdm.IEdmBatchItemGeneration2_members.html | 111 + ...epdm.IEdmBatchItemGeneration2_methods.html | 103 + ...EdmBatchItemGeneration2~AddSelection2.html | 216 + ....epdm.IEdmBatchItemGeneration_members.html | 116 + ....epdm.IEdmBatchItemGeneration_methods.html | 106 + ...dm.IEdmBatchItemGeneration_properties.html | 107 + ....IEdmBatchItemGeneration~AddSelection.html | 163 + ...dm.IEdmBatchItemGeneration~CreateTree.html | 166 + ....IEdmBatchItemGeneration~DestFolderID.html | 148 + ...IEdmBatchItemGeneration~GenerateItems.html | 189 + ....epdm.IEdmBatchItemGeneration~ShowDlg.html | 155 + ...rop.epdm.IEdmBatchItemReferenceUpdate.html | 138 + ....IEdmBatchItemReferenceUpdate_members.html | 111 + ....IEdmBatchItemReferenceUpdate_methods.html | 103 + ...hItemReferenceUpdate~UpdateReferences.html | 163 + ...dm~EPDM.Interop.epdm.IEdmBatchListing.html | 147 + ...m~EPDM.Interop.epdm.IEdmBatchListing2.html | 139 + ...nterop.epdm.IEdmBatchListing2_members.html | 112 + ...nterop.epdm.IEdmBatchListing2_methods.html | 104 + ...rop.epdm.IEdmBatchListing2~AddFileCfg.html | 190 + ...p.epdm.IEdmBatchListing2~CreateListEx.html | 182 + ...m~EPDM.Interop.epdm.IEdmBatchListing3.html | 139 + ...nterop.epdm.IEdmBatchListing3_members.html | 112 + ...nterop.epdm.IEdmBatchListing3_methods.html | 104 + ...EdmBatchListing3~AddInternalComponent.html | 203 + ....epdm.IEdmBatchListing3~GetReferences.html | 155 + ...m~EPDM.Interop.epdm.IEdmBatchListing4.html | 138 + ...nterop.epdm.IEdmBatchListing4_members.html | 111 + ...nterop.epdm.IEdmBatchListing4_methods.html | 103 + ...erop.epdm.IEdmBatchListing4~GetFiles2.html | 159 + ...Interop.epdm.IEdmBatchListing_members.html | 116 + ...Interop.epdm.IEdmBatchListing_methods.html | 108 + ...Interop.epdm.IEdmBatchListing~AddFile.html | 180 + ...terop.epdm.IEdmBatchListing~AddFolder.html | 172 + ...erop.epdm.IEdmBatchListing~CreateList.html | 164 + ...dm.IEdmBatchListing~GetColumnSetNames.html | 143 + ...nterop.epdm.IEdmBatchListing~GetFiles.html | 156 + ...erop.epdm.IEdmBatchListing~GetFolders.html | 156 + ...dm~EPDM.Interop.epdm.IEdmBatchRefVars.html | 150 + ...Interop.epdm.IEdmBatchRefVars_members.html | 113 + ...Interop.epdm.IEdmBatchRefVars_methods.html | 105 + ...p.epdm.IEdmBatchRefVars~GetAllRefVars.html | 195 + ...erop.epdm.IEdmBatchRefVars~GetRefVars.html | 157 + ...erop.epdm.IEdmBatchRefVars~SetRefVars.html | 157 + ...pdm~EPDM.Interop.epdm.IEdmBatchUnlock.html | 154 + ...dm~EPDM.Interop.epdm.IEdmBatchUnlock2.html | 136 + ...Interop.epdm.IEdmBatchUnlock2_members.html | 111 + ...Interop.epdm.IEdmBatchUnlock2_methods.html | 103 + ...terop.epdm.IEdmBatchUnlock2~GetStatus.html | 155 + ....Interop.epdm.IEdmBatchUnlock_members.html | 117 + ....Interop.epdm.IEdmBatchUnlock_methods.html | 107 + ...terop.epdm.IEdmBatchUnlock_properties.html | 107 + ...rop.epdm.IEdmBatchUnlock~AddSelection.html | 165 + ....Interop.epdm.IEdmBatchUnlock~Comment.html | 148 + ...terop.epdm.IEdmBatchUnlock~CreateTree.html | 172 + ...erop.epdm.IEdmBatchUnlock~GetFileList.html | 156 + ....Interop.epdm.IEdmBatchUnlock~ShowDlg.html | 156 + ...erop.epdm.IEdmBatchUnlock~UnlockFiles.html | 164 + ...pdm~EPDM.Interop.epdm.IEdmBatchUpdate.html | 145 + ...dm~EPDM.Interop.epdm.IEdmBatchUpdate2.html | 148 + ...Interop.epdm.IEdmBatchUpdate2_members.html | 113 + ...Interop.epdm.IEdmBatchUpdate2_methods.html | 105 + ...op.epdm.IEdmBatchUpdate2~CommitUpdate.html | 163 + ...op.epdm.IEdmBatchUpdate2~SetFolderVar.html | 179 + ....Interop.epdm.IEdmBatchUpdate2~SetVar.html | 187 + ....Interop.epdm.IEdmBatchUpdate_members.html | 113 + ....Interop.epdm.IEdmBatchUpdate_methods.html | 105 + ...M.Interop.epdm.IEdmBatchUpdate~Commit.html | 161 + ...M.Interop.epdm.IEdmBatchUpdate~SetAux.html | 160 + ...M.Interop.epdm.IEdmBatchUpdate~SetVar.html | 188 + ...op.epdm~EPDM.Interop.epdm.IEdmBitmap5.html | 137 + ...EPDM.Interop.epdm.IEdmBitmap5_members.html | 117 + ...EPDM.Interop.epdm.IEdmBitmap5_methods.html | 106 + ...M.Interop.epdm.IEdmBitmap5_properties.html | 108 + ...dm~EPDM.Interop.epdm.IEdmBitmap5~Draw.html | 187 + ...nterop.epdm.IEdmBitmap5~GetBitmapInfo.html | 164 + ...op.epdm.IEdmBitmap5~GetBitmapInfoSize.html | 143 + ...~EPDM.Interop.epdm.IEdmBitmap5~Height.html | 147 + ...EPDM.Interop.epdm.IEdmBitmap5~SaveBmp.html | 156 + ...m~EPDM.Interop.epdm.IEdmBitmap5~Width.html | 147 + ...nterop.epdm~EPDM.Interop.epdm.IEdmBom.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmBomCell.html | 142 + ...p.epdm~EPDM.Interop.epdm.IEdmBomCell2.html | 136 + ...PDM.Interop.epdm.IEdmBomCell2_members.html | 111 + ...PDM.Interop.epdm.IEdmBomCell2_methods.html | 103 + ...M.Interop.epdm.IEdmBomCell2~IsVirtual.html | 140 + ...EPDM.Interop.epdm.IEdmBomCell_members.html | 117 + ...EPDM.Interop.epdm.IEdmBomCell_methods.html | 109 + ...DM.Interop.epdm.IEdmBomCell~GetItemID.html | 143 + ....Interop.epdm.IEdmBomCell~GetPathName.html | 143 + ...Interop.epdm.IEdmBomCell~GetTreeLevel.html | 143 + ...~EPDM.Interop.epdm.IEdmBomCell~GetVar.html | 201 + ...PDM.Interop.epdm.IEdmBomCell~IsLocked.html | 143 + ...~EPDM.Interop.epdm.IEdmBomCell~SetVar.html | 201 + ...rop.epdm~EPDM.Interop.epdm.IEdmBomMgr.html | 140 + ...op.epdm~EPDM.Interop.epdm.IEdmBomMgr2.html | 147 + ...EPDM.Interop.epdm.IEdmBomMgr2_members.html | 112 + ...EPDM.Interop.epdm.IEdmBomMgr2_methods.html | 104 + ...erop.epdm.IEdmBomMgr2~CanSeeBomLayout.html | 160 + ...terop.epdm.IEdmBomMgr2~GetBomLayouts2.html | 155 + ...op.epdm~EPDM.Interop.epdm.IEdmBomMgr3.html | 277 + ...EPDM.Interop.epdm.IEdmBomMgr3_members.html | 112 + ...EPDM.Interop.epdm.IEdmBomMgr3_methods.html | 104 + ...PDM.Interop.epdm.IEdmBomMgr3~AddSWBom.html | 176 + ...rop.epdm.IEdmBomMgr3~CreateEmptySWBom.html | 140 + ...~EPDM.Interop.epdm.IEdmBomMgr_members.html | 111 + ...~EPDM.Interop.epdm.IEdmBomMgr_methods.html | 103 + ...Interop.epdm.IEdmBomMgr~GetBomLayouts.html | 155 + ...op.epdm~EPDM.Interop.epdm.IEdmBomView.html | 141 + ...p.epdm~EPDM.Interop.epdm.IEdmBomView2.html | 141 + ...PDM.Interop.epdm.IEdmBomView2_members.html | 111 + ...PDM.Interop.epdm.IEdmBomView2_methods.html | 103 + ...M.Interop.epdm.IEdmBomView2~InsertRow.html | 174 + ...p.epdm~EPDM.Interop.epdm.IEdmBomView3.html | 141 + ...PDM.Interop.epdm.IEdmBomView3_members.html | 111 + ...PDM.Interop.epdm.IEdmBomView3_methods.html | 103 + ...M.Interop.epdm.IEdmBomView3~SaveToCSV.html | 160 + ...p.epdm~EPDM.Interop.epdm.IEdmBomView4.html | 137 + ...PDM.Interop.epdm.IEdmBomView4_members.html | 111 + ...PDM.Interop.epdm.IEdmBomView4_methods.html | 103 + ...EPDM.Interop.epdm.IEdmBomView4~Rename.html | 227 + ...EPDM.Interop.epdm.IEdmBomView_members.html | 114 + ...EPDM.Interop.epdm.IEdmBomView_methods.html | 106 + ...~EPDM.Interop.epdm.IEdmBomView~Commit.html | 173 + ...M.Interop.epdm.IEdmBomView~GetColumns.html | 155 + ...EPDM.Interop.epdm.IEdmBomView~GetRows.html | 155 + ...EPDM.Interop.epdm.IEdmBomView~SetRows.html | 155 + ...pdm~EPDM.Interop.epdm.IEdmBom_members.html | 123 + ...pdm~EPDM.Interop.epdm.IEdmBom_methods.html | 109 + ...~EPDM.Interop.epdm.IEdmBom_properties.html | 112 + ...EPDM.Interop.epdm.IEdmBom~ChangeState.html | 179 + ...pdm~EPDM.Interop.epdm.IEdmBom~CheckIn.html | 155 + ...dm~EPDM.Interop.epdm.IEdmBom~CheckOut.html | 143 + ...M.Interop.epdm.IEdmBom~CheckOutUserID.html | 147 + ...PDM.Interop.epdm.IEdmBom~CurrentState.html | 147 + ...M.Interop.epdm.IEdmBom~CurrentVersion.html | 147 + ...epdm~EPDM.Interop.epdm.IEdmBom~Delete.html | 143 + ...epdm~EPDM.Interop.epdm.IEdmBom~FileID.html | 147 + ...EPDM.Interop.epdm.IEdmBom~GetVersions.html | 155 + ...pdm~EPDM.Interop.epdm.IEdmBom~GetView.html | 157 + ...PDM.Interop.epdm.IEdmBom~IsCheckedOut.html | 147 + ...p.epdm~EPDM.Interop.epdm.IEdmCallback.html | 155 + ....epdm~EPDM.Interop.epdm.IEdmCallback6.html | 146 + ...DM.Interop.epdm.IEdmCallback6_members.html | 115 + ...DM.Interop.epdm.IEdmCallback6_methods.html | 107 + ...PDM.Interop.epdm.IEdmCallback6~MsgBox.html | 180 + ...DM.Interop.epdm.IEdmCallback6~Resolve.html | 194 + ...nterop.epdm.IEdmCallback6~SetProgress.html | 171 + ...p.epdm.IEdmCallback6~SetProgressRange.html | 163 + ...p.epdm.IEdmCallback6~SetStatusMessage.html | 163 + ....epdm~EPDM.Interop.epdm.IEdmCallback8.html | 136 + ...DM.Interop.epdm.IEdmCallback8_members.html | 113 + ...DM.Interop.epdm.IEdmCallback8_methods.html | 105 + ...llback8~ChangeMinorProgressVisibility.html | 152 + ...nterop.epdm.IEdmCallback8~SetMinorMax.html | 152 + ...p.epdm.IEdmCallback8~SetMinorProgress.html | 160 + ...PDM.Interop.epdm.IEdmCallback_members.html | 116 + ...PDM.Interop.epdm.IEdmCallback_methods.html | 108 + ...rop.epdm.IEdmCallback~SetModifiedFlag.html | 143 + ...erop.epdm.IEdmCallback~SetProgressPos.html | 156 + ...op.epdm.IEdmCallback~SetProgressRange.html | 164 + ...op.epdm.IEdmCallback~SetStatusMessage.html | 155 + ...erop.epdm~EPDM.Interop.epdm.IEdmCard5.html | 145 + ...m~EPDM.Interop.epdm.IEdmCard5_members.html | 115 + ...m~EPDM.Interop.epdm.IEdmCard5_methods.html | 107 + ...PDM.Interop.epdm.IEdmCard5~GetControl.html | 157 + ...M.Interop.epdm.IEdmCard5~GetControlID.html | 157 + ...pdm.IEdmCard5~GetFirstControlPosition.html | 148 + ...Interop.epdm.IEdmCard5~GetNextControl.html | 161 + ...m~EPDM.Interop.epdm.IEdmCard5~GetSize.html | 165 + ...erop.epdm~EPDM.Interop.epdm.IEdmCard6.html | 139 + ...m~EPDM.Interop.epdm.IEdmCard6_members.html | 111 + ...PDM.Interop.epdm.IEdmCard6_properties.html | 107 + ...~EPDM.Interop.epdm.IEdmCard6~CardType.html | 147 + ...erop.epdm~EPDM.Interop.epdm.IEdmCard7.html | 149 + ...m~EPDM.Interop.epdm.IEdmCard7_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmCard7_methods.html | 103 + ...Interop.epdm.IEdmCard7~GetAllControls.html | 152 + ...dm~EPDM.Interop.epdm.IEdmCardControl5.html | 142 + ...Interop.epdm.IEdmCardControl5_members.html | 120 + ...Interop.epdm.IEdmCardControl5_methods.html | 106 + ...erop.epdm.IEdmCardControl5_properties.html | 111 + ...rop.epdm.IEdmCardControl5~ControlType.html | 147 + ...pdm.IEdmCardControl5~GetButtonCommand.html | 157 + ...p.epdm.IEdmCardControl5~GetParentInfo.html | 163 + ...rop.epdm.IEdmCardControl5~GetPosition.html | 179 + ...p.epdm.IEdmCardControl5~GetValidation.html | 164 + ...rop.epdm.IEdmCardControl5~IsMultiLine.html | 147 + ...erop.epdm.IEdmCardControl5~IsReadOnly.html | 147 + ...p.epdm.IEdmCardControl5~ShowInPreview.html | 147 + ...erop.epdm.IEdmCardControl5~VariableID.html | 147 + ...dm~EPDM.Interop.epdm.IEdmCardControl6.html | 142 + ...Interop.epdm.IEdmCardControl6_members.html | 111 + ...erop.epdm.IEdmCardControl6_properties.html | 107 + ...CardControl6~UpdatesAllConfigurations.html | 150 + ...dm~EPDM.Interop.epdm.IEdmCardControl7.html | 139 + ...Interop.epdm.IEdmCardControl7_members.html | 111 + ...Interop.epdm.IEdmCardControl7_methods.html | 103 + ...dmCardControl7~GetControlVariableList.html | 171 + ....epdm~EPDM.Interop.epdm.IEdmCardView5.html | 140 + ...DM.Interop.epdm.IEdmCardView5_members.html | 114 + ...DM.Interop.epdm.IEdmCardView5_methods.html | 106 + ...nterop.epdm.IEdmCardView5~GetCardSize.html | 163 + ...erop.epdm.IEdmCardView5~GetCardWindow.html | 143 + ...M.Interop.epdm.IEdmCardView5~SaveData.html | 143 + ...Interop.epdm.IEdmCardView5~ShowWindow.html | 155 + ....epdm~EPDM.Interop.epdm.IEdmCardView6.html | 141 + ...epdm~EPDM.Interop.epdm.IEdmCardView61.html | 141 + ...M.Interop.epdm.IEdmCardView61_members.html | 111 + ...M.Interop.epdm.IEdmCardView61_methods.html | 103 + ....Interop.epdm.IEdmCardView61~SetFocus.html | 155 + ...epdm~EPDM.Interop.epdm.IEdmCardView63.html | 141 + ...M.Interop.epdm.IEdmCardView63_members.html | 111 + ...M.Interop.epdm.IEdmCardView63_methods.html | 103 + ...DM.Interop.epdm.IEdmCardView63~Update.html | 163 + ...epdm~EPDM.Interop.epdm.IEdmCardView64.html | 138 + ...M.Interop.epdm.IEdmCardView64_members.html | 112 + ...M.Interop.epdm.IEdmCardView64_methods.html | 104 + ...epdm.IEdmCardView64~IsFocusOnDataCard.html | 153 + ...dmCardView64~SetFlagIsFocusOnDataCard.html | 153 + ...DM.Interop.epdm.IEdmCardView6_members.html | 111 + ...DM.Interop.epdm.IEdmCardView6_methods.html | 103 + ...M.Interop.epdm.IEdmCardView6~OnCancel.html | 144 + ...DM.Interop.epdm.IEdmCardViewCallback6.html | 142 + ...op.epdm.IEdmCardViewCallback6_members.html | 115 + ...op.epdm.IEdmCardViewCallback6_methods.html | 107 + ...pdm.IEdmCardViewCallback6~GetCtrlData.html | 217 + ...iewCallback6~GetDefaultValueComponent.html | 156 + ...dm.IEdmCardViewCallback6~OnAddInInput.html | 157 + ...pdm.IEdmCardViewCallback6~SetCtrlData.html | 225 + ...IEdmCardViewCallback6~SetModifiedFlag.html | 144 + ....epdm~EPDM.Interop.epdm.IEdmCategory6.html | 141 + ...DM.Interop.epdm.IEdmCategory6_members.html | 111 + ...Interop.epdm.IEdmCategory6_properties.html | 107 + ...nterop.epdm.IEdmCategory6~Description.html | 147 + ...dm~EPDM.Interop.epdm.IEdmCategoryMgr6.html | 140 + ...Interop.epdm.IEdmCategoryMgr6_members.html | 113 + ...Interop.epdm.IEdmCategoryMgr6_methods.html | 105 + ...CategoryMgr6~GetFirstCategoryPosition.html | 144 + ...epdm.IEdmCategoryMgr6~GetNextCategory.html | 157 + ...EPDM.Interop.epdm.IEdmClearLocalCache.html | 146 + ...PDM.Interop.epdm.IEdmClearLocalCache2.html | 139 + ...rop.epdm.IEdmClearLocalCache2_members.html | 111 + ....epdm.IEdmClearLocalCache2_properties.html | 107 + ...dmClearLocalCache2~IgnoreToolboxFiles.html | 148 + ...PDM.Interop.epdm.IEdmClearLocalCache3.html | 136 + ...rop.epdm.IEdmClearLocalCache3_members.html | 111 + ....epdm.IEdmClearLocalCache3_properties.html | 107 + ...arLocalCache3~UseAutoClearCacheOption.html | 148 + ...erop.epdm.IEdmClearLocalCache_members.html | 113 + ...erop.epdm.IEdmClearLocalCache_methods.html | 105 + ...pdm.IEdmClearLocalCache~AddFileByPath.html | 158 + ...op.epdm.IEdmClearLocalCache~AddFolder.html | 164 + ....epdm.IEdmClearLocalCache~CommitClear.html | 157 + ...op.epdm~EPDM.Interop.epdm.IEdmCmdMgr5.html | 154 + ...EPDM.Interop.epdm.IEdmCmdMgr5_members.html | 116 + ...EPDM.Interop.epdm.IEdmCmdMgr5_methods.html | 108 + ...~EPDM.Interop.epdm.IEdmCmdMgr5~AddCmd.html | 214 + ...EPDM.Interop.epdm.IEdmCmdMgr5~AddHook.html | 163 + ...erop.epdm.IEdmCmdMgr5~AddToolbarImage.html | 215 + ...op.epdm~EPDM.Interop.epdm.IEdmCmdMgr6.html | 145 + ...EPDM.Interop.epdm.IEdmCmdMgr6_members.html | 113 + ...EPDM.Interop.epdm.IEdmCmdMgr6_methods.html | 105 + ...erop.epdm.IEdmCmdMgr6~AddVaultViewTab.html | 184 + ...op.epdm~EPDM.Interop.epdm.IEdmCmdNode.html | 138 + ...EPDM.Interop.epdm.IEdmCmdNode_members.html | 111 + ...EPDM.Interop.epdm.IEdmCmdNode_methods.html | 103 + ....Interop.epdm.IEdmCmdNode~GetProperty.html | 163 + ...terop.epdm~EPDM.Interop.epdm.IEdmData.html | 138 + ...dm~EPDM.Interop.epdm.IEdmData_members.html | 114 + ...dm~EPDM.Interop.epdm.IEdmData_methods.html | 104 + ...EPDM.Interop.epdm.IEdmData_properties.html | 107 + ...p.epdm~EPDM.Interop.epdm.IEdmData~Get.html | 157 + ...p.epdm~EPDM.Interop.epdm.IEdmData~Set.html | 164 + ....epdm~EPDM.Interop.epdm.IEdmData~Type.html | 148 + ...pdm~EPDM.Interop.epdm.IEdmDictionary5.html | 146 + ....Interop.epdm.IEdmDictionary5_members.html | 127 + ....Interop.epdm.IEdmDictionary5_methods.html | 119 + ...rop.epdm.IEdmDictionary5~LongFindKeys.html | 169 + ...p.epdm.IEdmDictionary5~LongFindValues.html | 162 + ...nterop.epdm.IEdmDictionary5~LongGetAt.html | 169 + ....IEdmDictionary5~LongGetFirstPosition.html | 148 + ...epdm.IEdmDictionary5~LongGetNextAssoc.html | 183 + ...rop.epdm.IEdmDictionary5~LongRemoveAt.html | 159 + ...nterop.epdm.IEdmDictionary5~LongSetAt.html | 168 + ...epdm.IEdmDictionary5~LongTestAndSetAt.html | 168 + ...epdm.IEdmDictionary5~RemoveDictionary.html | 145 + ...p.epdm.IEdmDictionary5~StringFindKeys.html | 161 + ...epdm.IEdmDictionary5~StringFindValues.html | 162 + ...erop.epdm.IEdmDictionary5~StringGetAt.html | 169 + ...EdmDictionary5~StringGetFirstPosition.html | 148 + ...dm.IEdmDictionary5~StringGetNextAssoc.html | 184 + ...p.epdm.IEdmDictionary5~StringRemoveAt.html | 159 + ...erop.epdm.IEdmDictionary5~StringSetAt.html | 166 + ...dm.IEdmDictionary5~StringTestAndSetAt.html | 169 + ...terop.epdm~EPDM.Interop.epdm.IEdmEnum.html | 137 + ...dm~EPDM.Interop.epdm.IEdmEnum_members.html | 117 + ...dm~EPDM.Interop.epdm.IEdmEnum_methods.html | 106 + ...EPDM.Interop.epdm.IEdmEnum_properties.html | 108 + ...p.epdm.IEdmEnumeratorCustomReference5.html | 147 + ...EdmEnumeratorCustomReference5_members.html | 114 + ...EdmEnumeratorCustomReference5_methods.html | 106 + ...umeratorCustomReference5~AddReference.html | 163 + ...rCustomReference5~GetFirstRefPosition.html | 145 + ...EnumeratorCustomReference5~GetNextRef.html | 174 + ...ratorCustomReference5~RemoveReference.html | 163 + ...p.epdm.IEdmEnumeratorCustomReference6.html | 141 + ...EdmEnumeratorCustomReference6_members.html | 112 + ...EdmEnumeratorCustomReference6_methods.html | 104 + ...meratorCustomReference6~AddReference2.html | 171 + ...numeratorCustomReference6~GetNextRef2.html | 189 + ...p.epdm.IEdmEnumeratorCustomReference7.html | 138 + ...EdmEnumeratorCustomReference7_members.html | 113 + ...EdmEnumeratorCustomReference7_methods.html | 105 + ...meratorCustomReference7~AddReference3.html | 179 + ...umeratorCustomReference7~GetShowInBOM.html | 163 + ...umeratorCustomReference7~SetShowInBOM.html | 169 + ...Interop.epdm.IEdmEnumeratorVariable10.html | 138 + ...epdm.IEdmEnumeratorVariable10_members.html | 112 + ...epdm.IEdmEnumeratorVariable10_methods.html | 104 + ...epdm.IEdmEnumeratorVariable10~GetVar2.html | 186 + ...IEdmEnumeratorVariable10~GetVarAsText.html | 186 + ....Interop.epdm.IEdmEnumeratorVariable5.html | 149 + ....epdm.IEdmEnumeratorVariable5_members.html | 116 + ....epdm.IEdmEnumeratorVariable5_methods.html | 108 + ...op.epdm.IEdmEnumeratorVariable5~Flush.html | 144 + ....IEdmEnumeratorVariable5~GetThumbnail.html | 147 + ...IEdmEnumeratorVariable5~GetUpdateVars.html | 167 + ...p.epdm.IEdmEnumeratorVariable5~GetVar.html | 177 + ...p.epdm.IEdmEnumeratorVariable5~SetVar.html | 191 + ...atorVariable5~StoreValuesFromDatabase.html | 174 + ....Interop.epdm.IEdmEnumeratorVariable6.html | 141 + ....epdm.IEdmEnumeratorVariable6_members.html | 111 + ....epdm.IEdmEnumeratorVariable6_methods.html | 103 + ....IEdmEnumeratorVariable6~GetVarFromDb.html | 172 + ....Interop.epdm.IEdmEnumeratorVariable7.html | 141 + ....epdm.IEdmEnumeratorVariable7_members.html | 113 + ....epdm.IEdmEnumeratorVariable7_methods.html | 105 + ...eratorVariable7~GenerateDefaultValues.html | 172 + ...m.IEdmEnumeratorVariable7~GetSerNoVar.html | 171 + ...EdmEnumeratorVariable7~GetVersionVars.html | 191 + ....Interop.epdm.IEdmEnumeratorVariable8.html | 143 + ....epdm.IEdmEnumeratorVariable8_members.html | 111 + ....epdm.IEdmEnumeratorVariable8_methods.html | 103 + ...pdm.IEdmEnumeratorVariable8~CloseFile.html | 158 + ....Interop.epdm.IEdmEnumeratorVariable9.html | 141 + ....epdm.IEdmEnumeratorVariable9_members.html | 111 + ....epdm.IEdmEnumeratorVariable9_methods.html | 103 + ...EnumeratorVariable9~SetValueVariables.html | 176 + ...M.Interop.epdm.IEdmEnumeratorVersion5.html | 142 + ...p.epdm.IEdmEnumeratorVersion5_members.html | 124 + ...p.epdm.IEdmEnumeratorVersion5_methods.html | 112 + ...pdm.IEdmEnumeratorVersion5_properties.html | 109 + ...dm.IEdmEnumeratorVersion5~CreateLabel.html | 165 + ...dm.IEdmEnumeratorVersion5~GetFileCopy.html | 190 + ...meratorVersion5~GetFirstLabelPosition.html | 145 + ...atorVersion5~GetFirstRevisionPosition.html | 145 + ...ratorVersion5~GetFirstVersionPosition.html | 147 + ...m.IEdmEnumeratorVersion5~GetNextLabel.html | 159 + ...EdmEnumeratorVersion5~GetNextRevision.html | 159 + ...IEdmEnumeratorVersion5~GetNextVersion.html | 161 + ...pdm.IEdmEnumeratorVersion5~GetVersion.html | 157 + ...pdm.IEdmEnumeratorVersion5~LabelCount.html | 147 + ....IEdmEnumeratorVersion5~RevisionCount.html | 147 + ....epdm.IEdmEnumeratorVersion5~Rollback.html | 160 + ...m.IEdmEnumeratorVersion5~VersionCount.html | 149 + ...M.Interop.epdm.IEdmEnumeratorVersion6.html | 139 + ...p.epdm.IEdmEnumeratorVersion6_members.html | 111 + ...p.epdm.IEdmEnumeratorVersion6_methods.html | 103 + ...epdm.IEdmEnumeratorVersion6~Rollback2.html | 168 + ...M.Interop.epdm.IEdmEnumeratorVersion7.html | 138 + ...p.epdm.IEdmEnumeratorVersion7_members.html | 111 + ...p.epdm.IEdmEnumeratorVersion7_methods.html | 103 + ...epdm.IEdmEnumeratorVersion7~Rollback3.html | 176 + ...epdm~EPDM.Interop.epdm.IEdmEnum~Count.html | 147 + ...dm~EPDM.Interop.epdm.IEdmEnum~Current.html | 147 + ...epdm~EPDM.Interop.epdm.IEdmEnum~GetAt.html | 156 + ...M.Interop.epdm.IEdmEnum~GetEnumerator.html | 140 + ...m~EPDM.Interop.epdm.IEdmEnum~MoveNext.html | 145 + ...epdm~EPDM.Interop.epdm.IEdmEnum~Reset.html | 144 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile10.html | 140 + ...~EPDM.Interop.epdm.IEdmFile10_members.html | 111 + ...~EPDM.Interop.epdm.IEdmFile10_methods.html | 103 + ....Interop.epdm.IEdmFile10~ChangeState2.html | 206 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile11.html | 142 + ...~EPDM.Interop.epdm.IEdmFile11_members.html | 111 + ...DM.Interop.epdm.IEdmFile11_properties.html | 107 + ...erop.epdm.IEdmFile11~PrivateStateFile.html | 152 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile12.html | 142 + ...~EPDM.Interop.epdm.IEdmFile12_members.html | 111 + ...~EPDM.Interop.epdm.IEdmFile12_methods.html | 103 + ...op.epdm.IEdmFile12~GetLocalVersionNo2.html | 165 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile13.html | 144 + ...~EPDM.Interop.epdm.IEdmFile13_members.html | 112 + ...~EPDM.Interop.epdm.IEdmFile13_methods.html | 104 + ....Interop.epdm.IEdmFile13~ChangeState3.html | 211 + ....Interop.epdm.IEdmFile13~GetThumbnail.html | 149 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile14.html | 142 + ...~EPDM.Interop.epdm.IEdmFile14_members.html | 113 + ...~EPDM.Interop.epdm.IEdmFile14_methods.html | 103 + ...DM.Interop.epdm.IEdmFile14_properties.html | 107 + ...EdmFile14~GenerateDefaultConfigValues.html | 191 + ...nterop.epdm.IEdmFile14~LockedOnViewID.html | 149 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile15.html | 140 + ...~EPDM.Interop.epdm.IEdmFile15_members.html | 111 + ...~EPDM.Interop.epdm.IEdmFile15_methods.html | 103 + ...Interop.epdm.IEdmFile15~GetThumbnail2.html | 154 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile16.html | 140 + ...~EPDM.Interop.epdm.IEdmFile16_members.html | 111 + ...~EPDM.Interop.epdm.IEdmFile16_methods.html | 103 + ...M.Interop.epdm.IEdmFile16~CreateLabel.html | 168 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile17.html | 140 + ...~EPDM.Interop.epdm.IEdmFile17_members.html | 111 + ...DM.Interop.epdm.IEdmFile17_properties.html | 107 + ...terop.epdm.IEdmFile17~HasCutlistItems.html | 149 + ...rop.epdm~EPDM.Interop.epdm.IEdmFile18.html | 137 + ...~EPDM.Interop.epdm.IEdmFile18_members.html | 111 + ...~EPDM.Interop.epdm.IEdmFile18_methods.html | 103 + ...Interop.epdm.IEdmFile18~GetThumbnail3.html | 154 + ...erop.epdm~EPDM.Interop.epdm.IEdmFile5.html | 153 + ...m~EPDM.Interop.epdm.IEdmFile5_members.html | 145 + ...m~EPDM.Interop.epdm.IEdmFile5_methods.html | 122 + ...PDM.Interop.epdm.IEdmFile5_properties.html | 120 + ...DM.Interop.epdm.IEdmFile5~ChangeState.html | 197 + ...nterop.epdm.IEdmFile5~CurrentRevision.html | 149 + ...M.Interop.epdm.IEdmFile5~CurrentState.html | 149 + ...Interop.epdm.IEdmFile5~CurrentVersion.html | 149 + ...erop.epdm.IEdmFile5~GetConfigurations.html | 160 + ....epdm.IEdmFile5~GetEnumeratorVariable.html | 160 + ...DM.Interop.epdm.IEdmFile5~GetFileCopy.html | 194 + ...epdm.IEdmFile5~GetFirstFolderPosition.html | 148 + ...terop.epdm.IEdmFile5~GetLocalFileDate.html | 164 + ...terop.epdm.IEdmFile5~GetLocalFileSize.html | 160 + ...M.Interop.epdm.IEdmFile5~GetLocalPath.html | 161 + ...p.epdm.IEdmFile5~GetLocalRevisionName.html | 163 + ...erop.epdm.IEdmFile5~GetLocalVersionNo.html | 160 + ....Interop.epdm.IEdmFile5~GetNextFolder.html | 161 + ...terop.epdm.IEdmFile5~GetReferenceTree.html | 169 + ...dm.IEdmFile5~GetRevisionGeneratorInfo.html | 156 + ...p.epdm~EPDM.Interop.epdm.IEdmFile5~ID.html | 147 + ...erop.epdm.IEdmFile5~IncrementRevision.html | 182 + ...~EPDM.Interop.epdm.IEdmFile5~IsKindOf.html | 154 + ...~EPDM.Interop.epdm.IEdmFile5~IsLocked.html | 151 + ...~EPDM.Interop.epdm.IEdmFile5~LockFile.html | 179 + ...~EPDM.Interop.epdm.IEdmFile5~LockPath.html | 149 + ...M.Interop.epdm.IEdmFile5~LockedByUser.html | 149 + ...Interop.epdm.IEdmFile5~LockedByUserID.html | 149 + ...Interop.epdm.IEdmFile5~LockedInFolder.html | 149 + ...terop.epdm.IEdmFile5~LockedInFolderID.html | 149 + ...terop.epdm.IEdmFile5~LockedOnComputer.html | 149 + ...epdm~EPDM.Interop.epdm.IEdmFile5~Name.html | 147 + ...PDM.Interop.epdm.IEdmFile5~ObjectType.html | 147 + ...m~EPDM.Interop.epdm.IEdmFile5~Refresh.html | 140 + ...dm~EPDM.Interop.epdm.IEdmFile5~Rename.html | 172 + ...M.Interop.epdm.IEdmFile5~UndoLockFile.html | 172 + ...PDM.Interop.epdm.IEdmFile5~UnlockFile.html | 201 + ...pdm~EPDM.Interop.epdm.IEdmFile5~Vault.html | 147 + ...erop.epdm~EPDM.Interop.epdm.IEdmFile6.html | 141 + ...m~EPDM.Interop.epdm.IEdmFile6_members.html | 115 + ...m~EPDM.Interop.epdm.IEdmFile6_methods.html | 104 + ...PDM.Interop.epdm.IEdmFile6_properties.html | 108 + ...~EPDM.Interop.epdm.IEdmFile6~Category.html | 147 + ...PDM.Interop.epdm.IEdmFile6~CategoryID.html | 147 + ...epdm~EPDM.Interop.epdm.IEdmFile6~Move.html | 183 + ...~EPDM.Interop.epdm.IEdmFile6~RenameEx.html | 171 + ...erop.epdm~EPDM.Interop.epdm.IEdmFile7.html | 142 + ...m~EPDM.Interop.epdm.IEdmFile7_members.html | 113 + ...m~EPDM.Interop.epdm.IEdmFile7_methods.html | 105 + ...Interop.epdm.IEdmFile7~GetComputedBOM.html | 180 + ...Interop.epdm.IEdmFile7~GetDerivedBOMs.html | 156 + ...erop.epdm.IEdmFile7~NeedsRegeneration.html | 165 + ...erop.epdm~EPDM.Interop.epdm.IEdmFile8.html | 140 + ...m~EPDM.Interop.epdm.IEdmFile8_members.html | 113 + ...m~EPDM.Interop.epdm.IEdmFile8_methods.html | 103 + ...PDM.Interop.epdm.IEdmFile8_properties.html | 107 + ...~EPDM.Interop.epdm.IEdmFile8~FileType.html | 147 + ...erateDefaultValuesForNewConfiguration.html | 182 + ...erop.epdm~EPDM.Interop.epdm.IEdmFile9.html | 139 + ...m~EPDM.Interop.epdm.IEdmFile9_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmFile9_methods.html | 103 + ...erop.epdm.IEdmFile9~GetLocalFileSize2.html | 162 + ...p.epdm~EPDM.Interop.epdm.IEdmFindUser.html | 140 + ...PDM.Interop.epdm.IEdmFindUser_members.html | 117 + ...PDM.Interop.epdm.IEdmFindUser_methods.html | 107 + ....Interop.epdm.IEdmFindUser_properties.html | 107 + ...~EPDM.Interop.epdm.IEdmFindUser~Clear.html | 143 + ...DM.Interop.epdm.IEdmFindUser~GetPropt.html | 155 + ...EPDM.Interop.epdm.IEdmFindUser~Result.html | 147 + ...DM.Interop.epdm.IEdmFindUser~SetPropt.html | 167 + ....Interop.epdm.IEdmFindUser~ShowFindUI.html | 174 + ....Interop.epdm.IEdmFindUser~SilentFind.html | 144 + ...p.epdm~EPDM.Interop.epdm.IEdmFolder10.html | 141 + ...PDM.Interop.epdm.IEdmFolder10_members.html | 111 + ...PDM.Interop.epdm.IEdmFolder10_methods.html | 103 + ...rop.epdm.IEdmFolder10~CreateCardView2.html | 202 + ...p.epdm~EPDM.Interop.epdm.IEdmFolder11.html | 138 + ...PDM.Interop.epdm.IEdmFolder11_members.html | 112 + ...PDM.Interop.epdm.IEdmFolder11_methods.html | 104 + ...rop.epdm.IEdmFolder11~GetDeletedItems.html | 160 + ...epdm.IEdmFolder11~RecoverDeletedItems.html | 155 + ...p.epdm~EPDM.Interop.epdm.IEdmFolder12.html | 139 + ...PDM.Interop.epdm.IEdmFolder12_members.html | 111 + ...PDM.Interop.epdm.IEdmFolder12_methods.html | 103 + ...op.epdm.IEdmFolder12~SetFileNameSerNo.html | 172 + ...p.epdm~EPDM.Interop.epdm.IEdmFolder13.html | 138 + ...PDM.Interop.epdm.IEdmFolder13_members.html | 111 + ...PDM.Interop.epdm.IEdmFolder13_methods.html | 103 + ...pdm.IEdmFolder13~DestroyDeletedItems2.html | 174 + ...op.epdm~EPDM.Interop.epdm.IEdmFolder5.html | 164 + ...EPDM.Interop.epdm.IEdmFolder5_members.html | 140 + ...EPDM.Interop.epdm.IEdmFolder5_methods.html | 125 + ...M.Interop.epdm.IEdmFolder5_properties.html | 112 + ...EPDM.Interop.epdm.IEdmFolder5~AddFile.html | 202 + ...nterop.epdm.IEdmFolder5~AddFileShared.html | 168 + ...DM.Interop.epdm.IEdmFolder5~AddFolder.html | 183 + ...PDM.Interop.epdm.IEdmFolder5~CopyFile.html | 195 + ...terop.epdm.IEdmFolder5~CreateCardView.html | 192 + ...rop.epdm.IEdmFolder5~CreateFolderPath.html | 173 + ....Interop.epdm.IEdmFolder5~CreateLabel.html | 177 + ...M.Interop.epdm.IEdmFolder5~DeleteFile.html | 179 + ...Interop.epdm.IEdmFolder5~DeleteFolder.html | 179 + ...EPDM.Interop.epdm.IEdmFolder5~GetCard.html | 161 + ...DM.Interop.epdm.IEdmFolder5~GetCardID.html | 158 + ...EPDM.Interop.epdm.IEdmFolder5~GetFile.html | 162 + ...epdm.IEdmFolder5~GetFirstFilePosition.html | 148 + ...pdm.IEdmFolder5~GetFirstLabelPosition.html | 147 + ...IEdmFolder5~GetFirstSubFolderPosition.html | 150 + ....Interop.epdm.IEdmFolder5~GetNextFile.html | 161 + ...Interop.epdm.IEdmFolder5~GetNextLabel.html | 161 + ...rop.epdm.IEdmFolder5~GetNextSubFolder.html | 163 + ...Interop.epdm.IEdmFolder5~GetSubFolder.html | 160 + ...DM.Interop.epdm.IEdmFolder5~HasRights.html | 165 + ....Interop.epdm.IEdmFolder5~HasRightsEx.html | 167 + ...epdm~EPDM.Interop.epdm.IEdmFolder5~ID.html | 147 + ...PDM.Interop.epdm.IEdmFolder5~IsKindOf.html | 152 + ...DM.Interop.epdm.IEdmFolder5~LocalPath.html | 149 + ...dm~EPDM.Interop.epdm.IEdmFolder5~Name.html | 147 + ...M.Interop.epdm.IEdmFolder5~ObjectType.html | 147 + ...Interop.epdm.IEdmFolder5~ParentFolder.html | 147 + ...EPDM.Interop.epdm.IEdmFolder5~Refresh.html | 140 + ...m~EPDM.Interop.epdm.IEdmFolder5~Vault.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmFolder6.html | 139 + ...EPDM.Interop.epdm.IEdmFolder6_members.html | 113 + ...EPDM.Interop.epdm.IEdmFolder6_methods.html | 105 + ...PDM.Interop.epdm.IEdmFolder6~AddFiles.html | 177 + ...dm~EPDM.Interop.epdm.IEdmFolder6~Move.html | 172 + ...~EPDM.Interop.epdm.IEdmFolder6~Rename.html | 172 + ...op.epdm~EPDM.Interop.epdm.IEdmFolder7.html | 139 + ...EPDM.Interop.epdm.IEdmFolder7_members.html | 111 + ...EPDM.Interop.epdm.IEdmFolder7_methods.html | 103 + ....epdm.IEdmFolder7~DestroyDeletedItems.html | 180 + ...op.epdm~EPDM.Interop.epdm.IEdmFolder8.html | 143 + ...EPDM.Interop.epdm.IEdmFolder8_members.html | 112 + ...EPDM.Interop.epdm.IEdmFolder8_methods.html | 104 + ...PDM.Interop.epdm.IEdmFolder8~AddFile2.html | 247 + ...DM.Interop.epdm.IEdmFolder8~CopyFile2.html | 206 + ...op.epdm~EPDM.Interop.epdm.IEdmFolder9.html | 141 + ...EPDM.Interop.epdm.IEdmFolder9_members.html | 111 + ...EPDM.Interop.epdm.IEdmFolder9_methods.html | 103 + ...erop.epdm.IEdmFolder9~HasRenameRights.html | 186 + ...pdm~EPDM.Interop.epdm.IEdmFolderData5.html | 138 + ....Interop.epdm.IEdmFolderData5_members.html | 114 + ....Interop.epdm.IEdmFolderData5_methods.html | 106 + ...DM.Interop.epdm.IEdmFolderData5~Clear.html | 142 + ...op.epdm.IEdmFolderData5~SetCardSource.html | 163 + ...p.epdm.IEdmFolderData5~SetGroupRights.html | 164 + ...op.epdm.IEdmFolderData5~SetUserRights.html | 164 + ...M.Interop.epdm.IEdmGetCSVersionDialog.html | 135 + ...p.epdm.IEdmGetCSVersionDialog_members.html | 112 + ...p.epdm.IEdmGetCSVersionDialog_methods.html | 104 + ...erop.epdm.IEdmGetCSVersionDialog~Init.html | 208 + ...erop.epdm.IEdmGetCSVersionDialog~Show.html | 160 + ...m~EPDM.Interop.epdm.IEdmGetOpCallback.html | 139 + ...~EPDM.Interop.epdm.IEdmGetOpCallback2.html | 139 + ...terop.epdm.IEdmGetOpCallback2_members.html | 112 + ...terop.epdm.IEdmGetOpCallback2_methods.html | 104 + ...dm.IEdmGetOpCallback2~ReportFailureEx.html | 204 + ...Interop.epdm.IEdmGetOpCallback2~Reset.html | 140 + ...~EPDM.Interop.epdm.IEdmGetOpCallback3.html | 136 + ...terop.epdm.IEdmGetOpCallback3_members.html | 112 + ...terop.epdm.IEdmGetOpCallback3_methods.html | 104 + ...dm.IEdmGetOpCallback3~IsCancelPressed.html | 140 + ...IEdmGetOpCallback3~SetProgressMessage.html | 152 + ...nterop.epdm.IEdmGetOpCallback_members.html | 117 + ...nterop.epdm.IEdmGetOpCallback_methods.html | 109 + ...epdm.IEdmGetOpCallback~ConfirmReplace.html | 163 + ...rop.epdm.IEdmGetOpCallback~LogMessage.html | 171 + ....epdm.IEdmGetOpCallback~ProgressBegin.html | 164 + ...op.epdm.IEdmGetOpCallback~ProgressEnd.html | 155 + ...p.epdm.IEdmGetOpCallback~ProgressStep.html | 172 + ....epdm.IEdmGetOpCallback~ReportFailure.html | 181 + ...op.epdm~EPDM.Interop.epdm.IEdmHistory.html | 141 + ...p.epdm~EPDM.Interop.epdm.IEdmHistory2.html | 140 + ...PDM.Interop.epdm.IEdmHistory2_members.html | 111 + ...PDM.Interop.epdm.IEdmHistory2_methods.html | 103 + ...DM.Interop.epdm.IEdmHistory2~Rollback.html | 156 + ...p.epdm~EPDM.Interop.epdm.IEdmHistory3.html | 143 + ...PDM.Interop.epdm.IEdmHistory3_members.html | 112 + ...PDM.Interop.epdm.IEdmHistory3_methods.html | 104 + ...epdm.IEdmHistory3~GetEventDescription.html | 160 + ...op.epdm.IEdmHistory3~GetSortedHistory.html | 169 + ...m~EPDM.Interop.epdm.IEdmHistoryUpdate.html | 143 + ...nterop.epdm.IEdmHistoryUpdate_members.html | 113 + ...nterop.epdm.IEdmHistoryUpdate_methods.html | 105 + ....epdm.IEdmHistoryUpdate~CommitUpdates.html | 143 + ...dmHistoryUpdate~UpdateRevisionComment.html | 180 + ...EdmHistoryUpdate~UpdateVersionComment.html | 172 + ...EPDM.Interop.epdm.IEdmHistory_members.html | 113 + ...EPDM.Interop.epdm.IEdmHistory_methods.html | 105 + ...EPDM.Interop.epdm.IEdmHistory~AddFile.html | 155 + ...DM.Interop.epdm.IEdmHistory~AddFolder.html | 165 + ...M.Interop.epdm.IEdmHistory~GetHistory.html | 166 + ...erop.epdm~EPDM.Interop.epdm.IEdmImage.html | 138 + ...m~EPDM.Interop.epdm.IEdmImage_members.html | 113 + ...m~EPDM.Interop.epdm.IEdmImage_methods.html | 105 + ...DM.Interop.epdm.IEdmImage~GetPosition.html | 154 + ...pdm~EPDM.Interop.epdm.IEdmImage~Paint.html | 163 + ...PDM.Interop.epdm.IEdmImage~Reposition.html | 163 + ...rop.epdm~EPDM.Interop.epdm.IEdmInbox5.html | 138 + ...~EPDM.Interop.epdm.IEdmInbox5_members.html | 113 + ...~EPDM.Interop.epdm.IEdmInbox5_methods.html | 105 + ...dm.IEdmInbox5~GetFirstMessagePosition.html | 160 + ...nterop.epdm.IEdmInbox5~GetNextMessage.html | 161 + ...~EPDM.Interop.epdm.IEdmInbox5~SendMsg.html | 165 + ...terop.epdm~EPDM.Interop.epdm.IEdmItem.html | 143 + ...dm~EPDM.Interop.epdm.IEdmItem_members.html | 114 + ...dm~EPDM.Interop.epdm.IEdmItem_methods.html | 104 + ...EPDM.Interop.epdm.IEdmItem_properties.html | 107 + ...M.Interop.epdm.IEdmItem~GetReferences.html | 167 + ...rop.epdm.IEdmItem~ItemDescriptiveName.html | 148 + ...nterop.epdm.IEdmItem~UpdateReferences.html | 166 + ...rop.epdm~EPDM.Interop.epdm.IEdmLabel5.html | 145 + ...~EPDM.Interop.epdm.IEdmLabel5_members.html | 126 + ...~EPDM.Interop.epdm.IEdmLabel5_methods.html | 113 + ...DM.Interop.epdm.IEdmLabel5_properties.html | 112 + ...~EPDM.Interop.epdm.IEdmLabel5~AddFile.html | 155 + ...PDM.Interop.epdm.IEdmLabel5~AddFolder.html | 163 + ...~EPDM.Interop.epdm.IEdmLabel5~Comment.html | 147 + ....epdm.IEdmLabel5~GetFirstFilePosition.html | 145 + ...pdm.IEdmLabel5~GetFirstFolderPosition.html | 145 + ...M.Interop.epdm.IEdmLabel5~GetNextFile.html | 168 + ...Interop.epdm.IEdmLabel5~GetNextFileID.html | 166 + ...Interop.epdm.IEdmLabel5~GetNextFolder.html | 160 + ...terop.epdm.IEdmLabel5~GetNextFolderID.html | 158 + ....Interop.epdm.IEdmLabel5~GetVersionNo.html | 155 + ...pdm~EPDM.Interop.epdm.IEdmLabel5~Time.html | 147 + ...pdm~EPDM.Interop.epdm.IEdmLabel5~User.html | 147 + ...m~EPDM.Interop.epdm.IEdmLabel5~UserID.html | 147 + ...rop.epdm~EPDM.Interop.epdm.IEdmLabel6.html | 136 + ...~EPDM.Interop.epdm.IEdmLabel6_members.html | 113 + ...~EPDM.Interop.epdm.IEdmLabel6_methods.html | 105 + ...Interop.epdm.IEdmLabel6~ChangeComment.html | 163 + ...m~EPDM.Interop.epdm.IEdmLabel6~Delete.html | 155 + ...m~EPDM.Interop.epdm.IEdmLabel6~Rename.html | 163 + ...erop.epdm~EPDM.Interop.epdm.IEdmMenu5.html | 139 + ...m~EPDM.Interop.epdm.IEdmMenu5_members.html | 117 + ...m~EPDM.Interop.epdm.IEdmMenu5_methods.html | 109 + ...m~EPDM.Interop.epdm.IEdmMenu5~Compare.html | 155 + ...nterop.epdm.IEdmMenu5~GetButtonImages.html | 172 + ...EPDM.Interop.epdm.IEdmMenu5~GetString.html | 162 + ...erop.epdm.IEdmMenu5~GetToolbarItemIDs.html | 155 + ...PDM.Interop.epdm.IEdmMenu5~OnMenuItem.html | 189 + ...PDM.Interop.epdm.IEdmMenu5~OnUpdateUI.html | 169 + ...erop.epdm~EPDM.Interop.epdm.IEdmMenu6.html | 139 + ...m~EPDM.Interop.epdm.IEdmMenu6_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmMenu6_methods.html | 103 + ...~EPDM.Interop.epdm.IEdmMenu6~GetItems.html | 163 + ...erop.epdm~EPDM.Interop.epdm.IEdmMenu7.html | 137 + ...m~EPDM.Interop.epdm.IEdmMenu7_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmMenu7_methods.html | 103 + ...DM.Interop.epdm.IEdmMenu7~OnMenuItem2.html | 183 + ...p.epdm~EPDM.Interop.epdm.IEdmMessage5.html | 139 + ...PDM.Interop.epdm.IEdmMessage5_members.html | 121 + ...PDM.Interop.epdm.IEdmMessage5_methods.html | 105 + ....Interop.epdm.IEdmMessage5_properties.html | 115 + ...m~EPDM.Interop.epdm.IEdmMessage5~Body.html | 147 + ...m~EPDM.Interop.epdm.IEdmMessage5~Date.html | 147 + ...EPDM.Interop.epdm.IEdmMessage5~IsRead.html | 148 + ...Interop.epdm.IEdmMessage5~MessageType.html | 147 + ...EPDM.Interop.epdm.IEdmMessage5~Remove.html | 140 + ...DM.Interop.epdm.IEdmMessage5~SenderID.html | 147 + ....Interop.epdm.IEdmMessage5~SenderName.html | 147 + ...PDM.Interop.epdm.IEdmMessage5~Subject.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmObject5.html | 139 + ...EPDM.Interop.epdm.IEdmObject5_members.html | 117 + ...EPDM.Interop.epdm.IEdmObject5_methods.html | 104 + ...M.Interop.epdm.IEdmObject5_properties.html | 110 + ...epdm~EPDM.Interop.epdm.IEdmObject5~ID.html | 153 + ...PDM.Interop.epdm.IEdmObject5~IsKindOf.html | 154 + ...dm~EPDM.Interop.epdm.IEdmObject5~Name.html | 153 + ...M.Interop.epdm.IEdmObject5~ObjectType.html | 151 + ...EPDM.Interop.epdm.IEdmObject5~Refresh.html | 145 + ...m~EPDM.Interop.epdm.IEdmObject5~Vault.html | 147 + ...terop.epdm~EPDM.Interop.epdm.IEdmPos5.html | 216 + ...dm~EPDM.Interop.epdm.IEdmPos5_members.html | 113 + ...dm~EPDM.Interop.epdm.IEdmPos5_methods.html | 103 + ...EPDM.Interop.epdm.IEdmPos5_properties.html | 107 + ...epdm~EPDM.Interop.epdm.IEdmPos5~Clone.html | 142 + ...pdm~EPDM.Interop.epdm.IEdmPos5~IsNull.html | 153 + ...EPDM.Interop.epdm.IEdmRawReferenceMgr.html | 137 + ...erop.epdm.IEdmRawReferenceMgr_members.html | 114 + ...erop.epdm.IEdmRawReferenceMgr_methods.html | 106 + ...nterop.epdm.IEdmRawReferenceMgr~Close.html | 140 + ...pdm.IEdmRawReferenceMgr~GetReferences.html | 154 + ...Interop.epdm.IEdmRawReferenceMgr~Open.html | 156 + ....IEdmRawReferenceMgr~UpdateReferences.html | 153 + ...op.epdm~EPDM.Interop.epdm.IEdmRefItem.html | 142 + ...p.epdm~EPDM.Interop.epdm.IEdmRefItem2.html | 136 + ...PDM.Interop.epdm.IEdmRefItem2_members.html | 111 + ...PDM.Interop.epdm.IEdmRefItem2_methods.html | 103 + ...rop.epdm.IEdmRefItem2~GetUpdatedPaths.html | 152 + ...PDM.Interop.epdm.IEdmRefItemContainer.html | 140 + ...rop.epdm.IEdmRefItemContainer_members.html | 111 + ...rop.epdm.IEdmRefItemContainer_methods.html | 103 + ...op.epdm.IEdmRefItemContainer~GetItems.html | 166 + ...EPDM.Interop.epdm.IEdmRefItem_members.html | 113 + ...EPDM.Interop.epdm.IEdmRefItem_methods.html | 105 + ....Interop.epdm.IEdmRefItem~GetProperty.html | 163 + ...EPDM.Interop.epdm.IEdmRefItem~GetRefs.html | 162 + ....Interop.epdm.IEdmRefItem~SetProperty.html | 167 + ...pdm~EPDM.Interop.epdm.IEdmReference10.html | 141 + ....Interop.epdm.IEdmReference10_members.html | 111 + ....Interop.epdm.IEdmReference10_methods.html | 103 + ...EdmReference10~GetFirstChildPosition4.html | 206 + ...epdm~EPDM.Interop.epdm.IEdmReference5.html | 147 + ...M.Interop.epdm.IEdmReference5_members.html | 134 + ...M.Interop.epdm.IEdmReference5_methods.html | 111 + ...nterop.epdm.IEdmReference5_properties.html | 123 + ...EPDM.Interop.epdm.IEdmReference5~File.html | 147 + ...DM.Interop.epdm.IEdmReference5~FileID.html | 147 + ...DM.Interop.epdm.IEdmReference5~Folder.html | 147 + ....Interop.epdm.IEdmReference5~FolderID.html | 147 + ...Interop.epdm.IEdmReference5~FoundPath.html | 149 + ...rop.epdm.IEdmReference5~GetCustomData.html | 164 + ....IEdmReference5~GetFirstChildPosition.html | 179 + ...IEdmReference5~GetFirstParentPosition.html | 162 + ...erop.epdm.IEdmReference5~GetNextChild.html | 156 + ...rop.epdm.IEdmReference5~GetNextParent.html | 156 + ....Interop.epdm.IEdmReference5~IsLocked.html | 147 + ....Interop.epdm.IEdmReference5~LockPath.html | 147 + ...erop.epdm.IEdmReference5~LockedByUser.html | 147 + ...op.epdm.IEdmReference5~LockedInFolder.html | 147 + ....epdm.IEdmReference5~LockedOnComputer.html | 147 + ...EPDM.Interop.epdm.IEdmReference5~Name.html | 147 + ...erop.epdm.IEdmReference5~ReferencedAs.html | 147 + ...rop.epdm.IEdmReference5~SetCustomData.html | 161 + ...erop.epdm.IEdmReference5~VersionLocal.html | 148 + ...nterop.epdm.IEdmReference5~VersionRef.html | 147 + ...epdm~EPDM.Interop.epdm.IEdmReference6.html | 143 + ...M.Interop.epdm.IEdmReference6_members.html | 113 + ...nterop.epdm.IEdmReference6_properties.html | 109 + ....Interop.epdm.IEdmReference6~RefCount.html | 148 + ...epdm~EPDM.Interop.epdm.IEdmReference7.html | 144 + ...M.Interop.epdm.IEdmReference7_members.html | 116 + ...M.Interop.epdm.IEdmReference7_methods.html | 106 + ...nterop.epdm.IEdmReference7_properties.html | 109 + ...terop.epdm.IEdmReference7~EdmRefFlags.html | 147 + ...IEdmReference7~GetFirstChildPosition2.html | 187 + ...EdmReference7~GetFirstParentPosition2.html | 170 + ...epdm~EPDM.Interop.epdm.IEdmReference8.html | 141 + ...M.Interop.epdm.IEdmReference8_members.html | 111 + ...nterop.epdm.IEdmReference8_properties.html | 107 + ...op.epdm.IEdmReference8~RefCountEdited.html | 149 + ...epdm~EPDM.Interop.epdm.IEdmReference9.html | 140 + ...M.Interop.epdm.IEdmReference9_members.html | 113 + ...M.Interop.epdm.IEdmReference9_methods.html | 103 + ...nterop.epdm.IEdmReference9_properties.html | 107 + ...IEdmReference9~GetFirstChildPosition3.html | 196 + ....epdm.IEdmReference9~RefConfiguration.html | 147 + ....epdm~EPDM.Interop.epdm.IEdmRevision5.html | 141 + ...DM.Interop.epdm.IEdmRevision5_members.html | 119 + ...DM.Interop.epdm.IEdmRevision5_methods.html | 104 + ...Interop.epdm.IEdmRevision5_properties.html | 112 + ...nterop.epdm.IEdmRevision5~GetFileCopy.html | 182 + ...~EPDM.Interop.epdm.IEdmRevision5~Name.html | 149 + ...M.Interop.epdm.IEdmRevision5~Rollback.html | 144 + ...~EPDM.Interop.epdm.IEdmRevision5~Time.html | 147 + ...~EPDM.Interop.epdm.IEdmRevision5~User.html | 147 + ...PDM.Interop.epdm.IEdmRevision5~UserID.html | 147 + ...DM.Interop.epdm.IEdmRevision5~Version.html | 147 + ....Interop.epdm.IEdmRevision5~VersionNo.html | 149 + ....epdm~EPDM.Interop.epdm.IEdmRevision6.html | 140 + ...DM.Interop.epdm.IEdmRevision6_members.html | 111 + ...DM.Interop.epdm.IEdmRevision6_methods.html | 103 + ....Interop.epdm.IEdmRevision6~Rollback2.html | 158 + ....epdm~EPDM.Interop.epdm.IEdmRevision7.html | 138 + ...DM.Interop.epdm.IEdmRevision7_members.html | 111 + ...DM.Interop.epdm.IEdmRevision7_methods.html | 103 + ....Interop.epdm.IEdmRevision7~Rollback3.html | 168 + ...pdm~EPDM.Interop.epdm.IEdmRevisionMgr.html | 146 + ...dm~EPDM.Interop.epdm.IEdmRevisionMgr2.html | 141 + ...Interop.epdm.IEdmRevisionMgr2_members.html | 114 + ...Interop.epdm.IEdmRevisionMgr2_methods.html | 106 + ...sionMgr2~GetRevisionNumberComponents2.html | 165 + ...isionMgr2~GetRevisionNumberIDFromFile.html | 165 + ...sionMgr2~GetRevisionNumberIDFromState.html | 156 + ...m.IEdmRevisionMgr2~GetRevisionNumbers.html | 164 + ...dm~EPDM.Interop.epdm.IEdmRevisionMgr3.html | 137 + ...Interop.epdm.IEdmRevisionMgr3_members.html | 112 + ...Interop.epdm.IEdmRevisionMgr3_methods.html | 104 + ...RevisionMgr3~VerUpgrade_BumpRevisions.html | 156 + ...evisionMgr3~VerUpgrade_ReferenceCheck.html | 163 + ....Interop.epdm.IEdmRevisionMgr_members.html | 114 + ....Interop.epdm.IEdmRevisionMgr_methods.html | 106 + ...M.Interop.epdm.IEdmRevisionMgr~Commit.html | 164 + ...visionMgr~GetRevisionNumberComponents.html | 154 + ...pdm.IEdmRevisionMgr~IncrementRevision.html | 159 + ...m.IEdmRevisionMgr~SetRevisionCounters.html | 167 + ...erop.epdm~EPDM.Interop.epdm.IEdmSWBom.html | 135 + ....epdm~EPDM.Interop.epdm.IEdmSWBomCell.html | 135 + ...DM.Interop.epdm.IEdmSWBomCell_members.html | 113 + ...Interop.epdm.IEdmSWBomCell_properties.html | 109 + ...EPDM.Interop.epdm.IEdmSWBomCell~ColNr.html | 147 + ...EPDM.Interop.epdm.IEdmSWBomCell~RowNr.html | 147 + ...~EPDM.Interop.epdm.IEdmSWBomCell~Text.html | 148 + ...pdm~EPDM.Interop.epdm.IEdmSWBomColumn.html | 136 + ....Interop.epdm.IEdmSWBomColumn_members.html | 116 + ...terop.epdm.IEdmSWBomColumn_properties.html | 112 + ...DM.Interop.epdm.IEdmSWBomColumn~ColNr.html | 147 + ...p.epdm.IEdmSWBomColumn~CustomPropName.html | 148 + ...DM.Interop.epdm.IEdmSWBomColumn~Flags.html | 150 + ...PDM.Interop.epdm.IEdmSWBomColumn~Name.html | 148 + ...PDM.Interop.epdm.IEdmSWBomColumn~Type.html | 157 + ...DM.Interop.epdm.IEdmSWBomColumn~Width.html | 148 + ...p.epdm~EPDM.Interop.epdm.IEdmSWBomRow.html | 136 + ...PDM.Interop.epdm.IEdmSWBomRow_members.html | 116 + ....Interop.epdm.IEdmSWBomRow_properties.html | 112 + ...nterop.epdm.IEdmSWBomRow~ComponentRep.html | 148 + ...terop.epdm.IEdmSWBomRow~Configuration.html | 148 + ...~EPDM.Interop.epdm.IEdmSWBomRow~DocID.html | 148 + ...M.Interop.epdm.IEdmSWBomRow~ProjectID.html | 148 + ...~EPDM.Interop.epdm.IEdmSWBomRow~RowNr.html | 147 + ...PDM.Interop.epdm.IEdmSWBomRow~Version.html | 148 + ...m~EPDM.Interop.epdm.IEdmSWBom_members.html | 127 + ...m~EPDM.Interop.epdm.IEdmSWBom_methods.html | 111 + ...PDM.Interop.epdm.IEdmSWBom_properties.html | 113 + ...M.Interop.epdm.IEdmSWBom~DeleteColumn.html | 152 + ...EPDM.Interop.epdm.IEdmSWBom~DeleteRow.html | 152 + ...m~EPDM.Interop.epdm.IEdmSWBom~GetCell.html | 160 + ...EPDM.Interop.epdm.IEdmSWBom~GetColumn.html | 152 + ...nterop.epdm.IEdmSWBom~GetColumnsCount.html | 140 + ...dm~EPDM.Interop.epdm.IEdmSWBom~GetRow.html | 152 + ...M.Interop.epdm.IEdmSWBom~GetRowsCount.html | 140 + ...nterop.epdm.IEdmSWBom~IncrementNumber.html | 148 + ...M.Interop.epdm.IEdmSWBom~InsertColumn.html | 160 + ...EPDM.Interop.epdm.IEdmSWBom~InsertRow.html | 152 + ...epdm~EPDM.Interop.epdm.IEdmSWBom~Name.html | 148 + ...m~EPDM.Interop.epdm.IEdmSWBom~RefCfgs.html | 148 + ...~EPDM.Interop.epdm.IEdmSWBom~RefDocID.html | 148 + ...EPDM.Interop.epdm.IEdmSWBom~SheetName.html | 148 + ...DM.Interop.epdm.IEdmSWBom~StartNumber.html | 148 + ...EPDM.Interop.epdm.IEdmSWBom~TableType.html | 150 + ...p.epdm~EPDM.Interop.epdm.IEdmSearch10.html | 139 + ...PDM.Interop.epdm.IEdmSearch10_members.html | 111 + ...PDM.Interop.epdm.IEdmSearch10_methods.html | 103 + ...m.IEdmSearch10~GetFirstFavoriteResult.html | 161 + ...op.epdm~EPDM.Interop.epdm.IEdmSearch5.html | 142 + ...EPDM.Interop.epdm.IEdmSearch5_members.html | 125 + ...EPDM.Interop.epdm.IEdmSearch5_methods.html | 106 + ...M.Interop.epdm.IEdmSearch5_properties.html | 116 + ....Interop.epdm.IEdmSearch5~AddVariable.html | 168 + ...m~EPDM.Interop.epdm.IEdmSearch5~Clear.html | 142 + ...PDM.Interop.epdm.IEdmSearch5~FileName.html | 162 + ...DM.Interop.epdm.IEdmSearch5~FindFiles.html | 150 + ....Interop.epdm.IEdmSearch5~FindFolders.html | 148 + ...p.epdm.IEdmSearch5~FindHistoricStates.html | 148 + ...erop.epdm.IEdmSearch5~FindLockedFiles.html | 148 + ...op.epdm.IEdmSearch5~FindUnlockedFiles.html | 148 + ...terop.epdm.IEdmSearch5~GetFirstResult.html | 151 + ...nterop.epdm.IEdmSearch5~GetNextResult.html | 145 + ...DM.Interop.epdm.IEdmSearch5~Recursive.html | 148 + ...nterop.epdm.IEdmSearch5~StartFolderID.html | 148 + ...m~EPDM.Interop.epdm.IEdmSearch5~State.html | 161 + ...terop.epdm.IEdmSearch5~VersionComment.html | 160 + ...op.epdm~EPDM.Interop.epdm.IEdmSearch6.html | 143 + ...EPDM.Interop.epdm.IEdmSearch6_members.html | 112 + ...EPDM.Interop.epdm.IEdmSearch6_methods.html | 104 + ...PDM.Interop.epdm.IEdmSearch6~GetToken.html | 155 + ...PDM.Interop.epdm.IEdmSearch6~SetToken.html | 164 + ...op.epdm~EPDM.Interop.epdm.IEdmSearch7.html | 139 + ...EPDM.Interop.epdm.IEdmSearch7_members.html | 112 + ...EPDM.Interop.epdm.IEdmSearch7_methods.html | 104 + ....Interop.epdm.IEdmSearch7~GetMenuInfo.html | 178 + ...DM.Interop.epdm.IEdmSearch7~LaunchApp.html | 178 + ...op.epdm~EPDM.Interop.epdm.IEdmSearch8.html | 145 + ...EPDM.Interop.epdm.IEdmSearch8_members.html | 115 + ...EPDM.Interop.epdm.IEdmSearch8_methods.html | 107 + ...Interop.epdm.IEdmSearch8~AddVariable2.html | 185 + ...PDM.Interop.epdm.IEdmSearch8~BeginAND.html | 141 + ...EPDM.Interop.epdm.IEdmSearch8~BeginOR.html | 141 + ...~EPDM.Interop.epdm.IEdmSearch8~EndAND.html | 140 + ...m~EPDM.Interop.epdm.IEdmSearch8~EndOR.html | 140 + ...op.epdm~EPDM.Interop.epdm.IEdmSearch9.html | 155 + ...EPDM.Interop.epdm.IEdmSearch9_members.html | 112 + ...EPDM.Interop.epdm.IEdmSearch9_methods.html | 104 + ...IEdmSearch9~AddMultiVariableCondition.html | 172 + ...erop.epdm.IEdmSearch9~GetSyntaxErrors.html | 148 + ...m~EPDM.Interop.epdm.IEdmSearchResult5.html | 153 + ...nterop.epdm.IEdmSearchResult5_members.html | 120 + ...rop.epdm.IEdmSearchResult5_properties.html | 116 + ...terop.epdm.IEdmSearchResult5~FileDate.html | 147 + ...terop.epdm.IEdmSearchResult5~FileSize.html | 147 + ...terop.epdm.IEdmSearchResult5~LockPath.html | 147 + ...epdm.IEdmSearchResult5~LockedByUserID.html | 147 + ...dm.IEdmSearchResult5~LockedByUserName.html | 147 + ...dm.IEdmSearchResult5~LockedOnComputer.html | 147 + ...epdm.IEdmSearchResult5~ParentFolderID.html | 147 + ...M.Interop.epdm.IEdmSearchResult5~Path.html | 147 + ...erop.epdm.IEdmSearchResult5~StateName.html | 147 + ...nterop.epdm.IEdmSearchResult5~Version.html | 147 + ...m~EPDM.Interop.epdm.IEdmSearchResult6.html | 145 + ...nterop.epdm.IEdmSearchResult6_members.html | 114 + ...nterop.epdm.IEdmSearchResult6_methods.html | 104 + ...rop.epdm.IEdmSearchResult6_properties.html | 107 + ...erop.epdm.IEdmSearchResult6~FileSize2.html | 148 + ...dmSearchResult6~GetCustomColumnValues.html | 162 + ...EdmSearchResult6~GetCustomColumnsInfo.html | 162 + ...~EPDM.Interop.epdm.IEdmSelectionList5.html | 140 + ...terop.epdm.IEdmSelectionList5_members.html | 117 + ...terop.epdm.IEdmSelectionList5_methods.html | 105 + ...op.epdm.IEdmSelectionList5_properties.html | 109 + ...terop.epdm.IEdmSelectionList5~AddTail.html | 170 + ...dm.IEdmSelectionList5~AllInSameFolder.html | 147 + ...Interop.epdm.IEdmSelectionList5~Count.html | 147 + ...dm.IEdmSelectionList5~GetHeadPosition.html | 144 + ...terop.epdm.IEdmSelectionList5~GetNext.html | 183 + ...terop.epdm.IEdmSelectionList5~IsEmpty.html | 147 + ...~EPDM.Interop.epdm.IEdmSelectionList6.html | 137 + ...terop.epdm.IEdmSelectionList6_members.html | 112 + ...terop.epdm.IEdmSelectionList6_methods.html | 104 + ...erop.epdm.IEdmSelectionList6~AddTail2.html | 155 + ...erop.epdm.IEdmSelectionList6~GetNext2.html | 173 + ....epdm~EPDM.Interop.epdm.IEdmSerNoGen6.html | 138 + ...DM.Interop.epdm.IEdmSerNoGen6_members.html | 111 + ...DM.Interop.epdm.IEdmSerNoGen6_methods.html | 103 + ...erop.epdm.IEdmSerNoGen6~GenerateSerNo.html | 205 + ....epdm~EPDM.Interop.epdm.IEdmSerNoGen7.html | 141 + ...DM.Interop.epdm.IEdmSerNoGen7_members.html | 112 + ...DM.Interop.epdm.IEdmSerNoGen7_methods.html | 104 + ...op.epdm.IEdmSerNoGen7~AllocSerNoValue.html | 207 + ...dm.IEdmSerNoGen7~GetSerialNumberNames.html | 154 + ....epdm~EPDM.Interop.epdm.IEdmSerNoGen8.html | 136 + ...DM.Interop.epdm.IEdmSerNoGen8_members.html | 111 + ...DM.Interop.epdm.IEdmSerNoGen8_methods.html | 103 + ....IEdmSerNoGen8~SetSerNoNextCounterVal.html | 239 + ...epdm~EPDM.Interop.epdm.IEdmSerNoValue.html | 137 + ...M.Interop.epdm.IEdmSerNoValue_members.html | 113 + ...M.Interop.epdm.IEdmSerNoValue_methods.html | 103 + ...nterop.epdm.IEdmSerNoValue_properties.html | 107 + ....Interop.epdm.IEdmSerNoValue~Rollback.html | 143 + ...PDM.Interop.epdm.IEdmSerNoValue~Value.html | 149 + ...rop.epdm~EPDM.Interop.epdm.IEdmState5.html | 148 + ...~EPDM.Interop.epdm.IEdmState5_members.html | 118 + ...~EPDM.Interop.epdm.IEdmState5_methods.html | 108 + ...DM.Interop.epdm.IEdmState5_properties.html | 108 + ....epdm.IEdmState5~GetFirstFilePosition.html | 147 + ...IEdmState5~GetFirstTransitionPosition.html | 158 + ...M.Interop.epdm.IEdmState5~GetNextFile.html | 161 + ...rop.epdm.IEdmState5~GetNextTransition.html | 161 + ...Interop.epdm.IEdmState5~GetTransition.html | 158 + ...EPDM.Interop.epdm.IEdmState5~IconName.html | 147 + ...rop.epdm~EPDM.Interop.epdm.IEdmState6.html | 141 + ...~EPDM.Interop.epdm.IEdmState6_members.html | 111 + ...DM.Interop.epdm.IEdmState6_properties.html | 107 + ...DM.Interop.epdm.IEdmState6~WorkflowID.html | 147 + ...rop.epdm~EPDM.Interop.epdm.IEdmState7.html | 138 + ...~EPDM.Interop.epdm.IEdmState7_members.html | 111 + ...~EPDM.Interop.epdm.IEdmState7_methods.html | 103 + ...~EPDM.Interop.epdm.IEdmState7~GetRect.html | 156 + ...op.epdm~EPDM.Interop.epdm.IEdmStrLst5.html | 142 + ...EPDM.Interop.epdm.IEdmStrLst5_members.html | 116 + ...EPDM.Interop.epdm.IEdmStrLst5_methods.html | 105 + ...M.Interop.epdm.IEdmStrLst5_properties.html | 108 + ...EPDM.Interop.epdm.IEdmStrLst5~AddTail.html | 154 + ...m~EPDM.Interop.epdm.IEdmStrLst5~Count.html | 147 + ...erop.epdm.IEdmStrLst5~GetHeadPosition.html | 144 + ...EPDM.Interop.epdm.IEdmStrLst5~GetNext.html | 159 + ...EPDM.Interop.epdm.IEdmStrLst5~IsEmpty.html | 147 + ...dm~EPDM.Interop.epdm.IEdmTaskInstance.html | 145 + ...Interop.epdm.IEdmTaskInstance_members.html | 126 + ...Interop.epdm.IEdmTaskInstance_methods.html | 113 + ...erop.epdm.IEdmTaskInstance_properties.html | 113 + ...terop.epdm.IEdmTaskInstance~GetStatus.html | 145 + ...nterop.epdm.IEdmTaskInstance~GetValEx.html | 164 + ....Interop.epdm.IEdmTaskInstance~GetVar.html | 161 + ...EPDM.Interop.epdm.IEdmTaskInstance~ID.html | 147 + ...op.epdm.IEdmTaskInstance~InstanceGUID.html | 147 + ....epdm.IEdmTaskInstance~SetProgressPos.html | 165 + ...pdm.IEdmTaskInstance~SetProgressRange.html | 172 + ...terop.epdm.IEdmTaskInstance~SetStatus.html | 188 + ...nterop.epdm.IEdmTaskInstance~SetValEx.html | 171 + ....Interop.epdm.IEdmTaskInstance~SetVar.html | 167 + ...nterop.epdm.IEdmTaskInstance~TaskGUID.html | 147 + ...nterop.epdm.IEdmTaskInstance~TaskName.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmTaskMgr.html | 138 + ...EPDM.Interop.epdm.IEdmTaskMgr_members.html | 114 + ...EPDM.Interop.epdm.IEdmTaskMgr_methods.html | 106 + ...PDM.Interop.epdm.IEdmTaskMgr~GetTasks.html | 140 + ...EPDM.Interop.epdm.IEdmTaskMgr~RunTask.html | 168 + ...~EPDM.Interop.epdm.IEdmTaskProperties.html | 145 + ...terop.epdm.IEdmTaskProperties_members.html | 134 + ...terop.epdm.IEdmTaskProperties_methods.html | 115 + ...op.epdm.IEdmTaskProperties_properties.html | 119 + ...rop.epdm.IEdmTaskProperties~AddInName.html | 147 + ...erop.epdm.IEdmTaskProperties~FormName.html | 147 + ...p.epdm.IEdmTaskProperties~GetMenuCmds.html | 156 + ...nterop.epdm.IEdmTaskProperties~GetSel.html | 157 + ...epdm.IEdmTaskProperties~GetSetupPages.html | 155 + ...erop.epdm.IEdmTaskProperties~GetValEx.html | 165 + ...nterop.epdm.IEdmTaskProperties~GetVar.html | 158 + ...p.epdm.IEdmTaskProperties~IsScheduled.html | 147 + ...op.epdm.IEdmTaskProperties~RetryCount.html | 147 + ...p.epdm.IEdmTaskProperties~SetMenuCmds.html | 155 + ...nterop.epdm.IEdmTaskProperties~SetSel.html | 158 + ...epdm.IEdmTaskProperties~SetSetupPages.html | 157 + ...erop.epdm.IEdmTaskProperties~SetValEx.html | 176 + ...nterop.epdm.IEdmTaskProperties~SetVar.html | 170 + ...rop.epdm.IEdmTaskProperties~TaskFlags.html | 148 + ...erop.epdm.IEdmTaskProperties~TaskGUID.html | 147 + ...nterop.epdm.IEdmTaskProperties~TaskID.html | 147 + ...erop.epdm.IEdmTaskProperties~TaskName.html | 147 + ...m.IEdmTaskProperties~TimeoutInSeconds.html | 147 + ...erop.epdm.IEdmTaskProperties~UserName.html | 147 + ....epdm~EPDM.Interop.epdm.IEdmTemplate5.html | 140 + ...epdm~EPDM.Interop.epdm.IEdmTemplate53.html | 141 + ...M.Interop.epdm.IEdmTemplate53_members.html | 111 + ...M.Interop.epdm.IEdmTemplate53_methods.html | 103 + ...PDM.Interop.epdm.IEdmTemplate53~RunEx.html | 172 + ...DM.Interop.epdm.IEdmTemplate5_members.html | 113 + ...DM.Interop.epdm.IEdmTemplate5_methods.html | 105 + ...p.epdm.IEdmTemplate5~GetIconExtension.html | 144 + ...erop.epdm.IEdmTemplate5~GetMenuString.html | 145 + ...m~EPDM.Interop.epdm.IEdmTemplate5~Run.html | 165 + ....epdm~EPDM.Interop.epdm.IEdmTemplate6.html | 136 + ...DM.Interop.epdm.IEdmTemplate6_members.html | 111 + ...DM.Interop.epdm.IEdmTemplate6_methods.html | 103 + ....IEdmTemplate6~GetTemplateFixedFolder.html | 140 + ...dm~EPDM.Interop.epdm.IEdmTemplateMgr5.html | 138 + ...Interop.epdm.IEdmTemplateMgr5_members.html | 112 + ...Interop.epdm.IEdmTemplateMgr5_methods.html | 104 + ...TemplateMgr5~GetFirstTemplatePosition.html | 146 + ...epdm.IEdmTemplateMgr5~GetNextTemplate.html | 160 + ...dm~EPDM.Interop.epdm.IEdmTransition10.html | 138 + ...Interop.epdm.IEdmTransition10_members.html | 111 + ...erop.epdm.IEdmTransition10_properties.html | 107 + ....epdm.IEdmTransition10~Authentication.html | 149 + ...pdm~EPDM.Interop.epdm.IEdmTransition5.html | 143 + ....Interop.epdm.IEdmTransition5_members.html | 116 + ....Interop.epdm.IEdmTransition5_methods.html | 103 + ...terop.epdm.IEdmTransition5_properties.html | 110 + ....epdm.IEdmTransition5~CheckPermission.html | 143 + ...nterop.epdm.IEdmTransition5~FromState.html | 147 + ...erop.epdm.IEdmTransition5~FromStateID.html | 147 + ....Interop.epdm.IEdmTransition5~ToState.html | 147 + ...nterop.epdm.IEdmTransition5~ToStateID.html | 147 + ...pdm~EPDM.Interop.epdm.IEdmTransition6.html | 139 + ....Interop.epdm.IEdmTransition6_members.html | 111 + ...terop.epdm.IEdmTransition6_properties.html | 107 + ...terop.epdm.IEdmTransition6~WorkflowID.html | 147 + ...pdm~EPDM.Interop.epdm.IEdmTransition7.html | 141 + ....Interop.epdm.IEdmTransition7_members.html | 112 + ....Interop.epdm.IEdmTransition7_methods.html | 104 + ...epdm.IEdmTransition7~GetArrowVertices.html | 155 + ....Interop.epdm.IEdmTransition7~GetRect.html | 155 + ...pdm~EPDM.Interop.epdm.IEdmTransition8.html | 139 + ....Interop.epdm.IEdmTransition8_members.html | 111 + ....Interop.epdm.IEdmTransition8_methods.html | 103 + ...EdmTransition8~CheckProjectPermission.html | 152 + ...pdm~EPDM.Interop.epdm.IEdmTransition9.html | 139 + ....Interop.epdm.IEdmTransition9_members.html | 115 + ....Interop.epdm.IEdmTransition9_methods.html | 103 + ...terop.epdm.IEdmTransition9_properties.html | 109 + ...Transition9~GetParallelTransitionInfo.html | 184 + ...9~HideIfParallelSiblingTransitionUsed.html | 147 + ...p.epdm.IEdmTransition9~TransitionType.html | 147 + ...Transition9~UserPartOfTransitionRoles.html | 157 + ...PDM.Interop.epdm.IEdmUnlockOpCallback.html | 144 + ...rop.epdm.IEdmUnlockOpCallback_members.html | 115 + ...rop.epdm.IEdmUnlockOpCallback_methods.html | 107 + ...erop.epdm.IEdmUnlockOpCallback~MsgBox.html | 186 + ...dm.IEdmUnlockOpCallback~ProgressBegin.html | 171 + ...epdm.IEdmUnlockOpCallback~ProgressEnd.html | 155 + ...pdm.IEdmUnlockOpCallback~ProgressStep.html | 171 + ...EdmUnlockOpCallback~ProgressStepEvent.html | 171 + ...PDM.Interop.epdm.IEdmUpdateReferences.html | 141 + ...rop.epdm.IEdmUpdateReferences_members.html | 112 + ...rop.epdm.IEdmUpdateReferences_methods.html | 104 + ...rop.epdm.IEdmUpdateReferences~AddFile.html | 156 + ...rop.epdm.IEdmUpdateReferences~ShowDlg.html | 172 + ...rop.epdm~EPDM.Interop.epdm.IEdmUser10.html | 141 + ...~EPDM.Interop.epdm.IEdmUser10_members.html | 114 + ...~EPDM.Interop.epdm.IEdmUser10_methods.html | 104 + ...DM.Interop.epdm.IEdmUser10_properties.html | 107 + ...dm~EPDM.Interop.epdm.IEdmUser10~Email.html | 147 + ...Interop.epdm.IEdmUser10~GetUserDataEx.html | 156 + ...Interop.epdm.IEdmUser10~SetUserDataEx.html | 158 + ...rop.epdm~EPDM.Interop.epdm.IEdmUser11.html | 140 + ...~EPDM.Interop.epdm.IEdmUser11_members.html | 111 + ...~EPDM.Interop.epdm.IEdmUser11_methods.html | 103 + ...nterop.epdm.IEdmUser11~SetSettingsVar.html | 250 + ...erop.epdm~EPDM.Interop.epdm.IEdmUser5.html | 155 + ...m~EPDM.Interop.epdm.IEdmUser5_members.html | 114 + ...m~EPDM.Interop.epdm.IEdmUser5_methods.html | 104 + ...PDM.Interop.epdm.IEdmUser5_properties.html | 107 + ...DM.Interop.epdm.IEdmUser5~HasSysRight.html | 158 + ...PDM.Interop.epdm.IEdmUser5~IsLoggedIn.html | 151 + ...m~EPDM.Interop.epdm.IEdmUser5~SendMsg.html | 172 + ...erop.epdm~EPDM.Interop.epdm.IEdmUser6.html | 141 + ...m~EPDM.Interop.epdm.IEdmUser6_members.html | 113 + ...PDM.Interop.epdm.IEdmUser6_properties.html | 109 + ...~EPDM.Interop.epdm.IEdmUser6~FullName.html | 147 + ...~EPDM.Interop.epdm.IEdmUser6~Initials.html | 147 + ...~EPDM.Interop.epdm.IEdmUser6~UserData.html | 148 + ...erop.epdm~EPDM.Interop.epdm.IEdmUser7.html | 141 + ...m~EPDM.Interop.epdm.IEdmUser7_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmUser7_methods.html | 103 + ....Interop.epdm.IEdmUser7~HasSysRightEx.html | 159 + ...erop.epdm~EPDM.Interop.epdm.IEdmUser8.html | 139 + ...m~EPDM.Interop.epdm.IEdmUser8_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmUser8_methods.html | 103 + ...op.epdm.IEdmUser8~GetGroupMemberships.html | 156 + ...erop.epdm~EPDM.Interop.epdm.IEdmUser9.html | 141 + ...m~EPDM.Interop.epdm.IEdmUser9_members.html | 111 + ...m~EPDM.Interop.epdm.IEdmUser9_methods.html | 103 + ...IEdmUser9~GetGroupMembershipsInFolder.html | 157 + ...epdm~EPDM.Interop.epdm.IEdmUserGroup5.html | 148 + ...M.Interop.epdm.IEdmUserGroup5_members.html | 115 + ...M.Interop.epdm.IEdmUserGroup5_methods.html | 107 + ...m.IEdmUserGroup5~GetFirstUserPosition.html | 146 + ...terop.epdm.IEdmUserGroup5~GetNextUser.html | 160 + ...terop.epdm.IEdmUserGroup5~HasSysRight.html | 158 + ...M.Interop.epdm.IEdmUserGroup5~SendMsg.html | 176 + ...epdm~EPDM.Interop.epdm.IEdmUserGroup6.html | 140 + ...M.Interop.epdm.IEdmUserGroup6_members.html | 112 + ...M.Interop.epdm.IEdmUserGroup6_methods.html | 104 + ...nterop.epdm.IEdmUserGroup6~AddMembers.html | 157 + ...rop.epdm.IEdmUserGroup6~HasSysRightEx.html | 157 + ...epdm~EPDM.Interop.epdm.IEdmUserGroup7.html | 140 + ...M.Interop.epdm.IEdmUserGroup7_members.html | 111 + ...M.Interop.epdm.IEdmUserGroup7_methods.html | 103 + ....IEdmUserGroup7~AddMembersWithFolders.html | 156 + ...epdm~EPDM.Interop.epdm.IEdmUserGroup8.html | 141 + ...M.Interop.epdm.IEdmUserGroup8_members.html | 111 + ...M.Interop.epdm.IEdmUserGroup8_methods.html | 103 + ...rop.epdm.IEdmUserGroup8~RemoveMembers.html | 156 + ...epdm~EPDM.Interop.epdm.IEdmUserGroup9.html | 140 + ...M.Interop.epdm.IEdmUserGroup9_members.html | 111 + ...M.Interop.epdm.IEdmUserGroup9_methods.html | 103 + ...op.epdm.IEdmUserGroup9~SetSettingsVar.html | 250 + ....epdm~EPDM.Interop.epdm.IEdmUserMgr10.html | 138 + ...DM.Interop.epdm.IEdmUserMgr10_members.html | 111 + ...DM.Interop.epdm.IEdmUserMgr10_methods.html | 103 + ....Interop.epdm.IEdmUserMgr10~AddUsers3.html | 163 + ...p.epdm~EPDM.Interop.epdm.IEdmUserMgr5.html | 144 + ...PDM.Interop.epdm.IEdmUserMgr5_members.html | 121 + ...PDM.Interop.epdm.IEdmUserMgr5_methods.html | 113 + ...UserMgr5~GetFirstLoggedInUserPosition.html | 159 + ...EdmUserMgr5~GetFirstUserGroupPosition.html | 148 + ...pdm.IEdmUserMgr5~GetFirstUserPosition.html | 148 + ...rop.epdm.IEdmUserMgr5~GetLoggedInUser.html | 146 + ...epdm.IEdmUserMgr5~GetNextLoggedInUser.html | 192 + ...Interop.epdm.IEdmUserMgr5~GetNextUser.html | 161 + ...op.epdm.IEdmUserMgr5~GetNextUserGroup.html | 161 + ...PDM.Interop.epdm.IEdmUserMgr5~GetUser.html | 160 + ...nterop.epdm.IEdmUserMgr5~GetUserGroup.html | 162 + ...p.epdm~EPDM.Interop.epdm.IEdmUserMgr6.html | 140 + ...PDM.Interop.epdm.IEdmUserMgr6_members.html | 112 + ...PDM.Interop.epdm.IEdmUserMgr6_methods.html | 104 + ...M.Interop.epdm.IEdmUserMgr6~AddGroups.html | 155 + ...DM.Interop.epdm.IEdmUserMgr6~AddUsers.html | 155 + ...p.epdm~EPDM.Interop.epdm.IEdmUserMgr7.html | 142 + ...PDM.Interop.epdm.IEdmUserMgr7_members.html | 116 + ...PDM.Interop.epdm.IEdmUserMgr7_methods.html | 108 + ....Interop.epdm.IEdmUserMgr7~AddGroups2.html | 157 + ...M.Interop.epdm.IEdmUserMgr7~AddUsers2.html | 157 + ...pdm.IEdmUserMgr7~GetFolderPermissions.html | 187 + ...nterop.epdm.IEdmUserMgr7~RemoveGroups.html | 158 + ...Interop.epdm.IEdmUserMgr7~RemoveUsers.html | 160 + ...pdm.IEdmUserMgr7~SetFolderPermissions.html | 155 + ...p.epdm~EPDM.Interop.epdm.IEdmUserMgr8.html | 141 + ...PDM.Interop.epdm.IEdmUserMgr8_members.html | 112 + ...PDM.Interop.epdm.IEdmUserMgr8_methods.html | 104 + ...p.epdm.IEdmUserMgr8~CreateUserPicture.html | 187 + ...terop.epdm.IEdmUserMgr8~ShowUserPopup.html | 176 + ...p.epdm~EPDM.Interop.epdm.IEdmUserMgr9.html | 141 + ...PDM.Interop.epdm.IEdmUserMgr9_members.html | 114 + ...PDM.Interop.epdm.IEdmUserMgr9_methods.html | 106 + ...epdm.IEdmUserMgr9~GetStatePermissions.html | 179 + ...IEdmUserMgr9~GetTransitionPermissions.html | 179 + ...epdm.IEdmUserMgr9~SetStatePermissions.html | 156 + ...IEdmUserMgr9~SetTransitionPermissions.html | 156 + ....epdm~EPDM.Interop.epdm.IEdmVariable5.html | 143 + ...DM.Interop.epdm.IEdmVariable5_members.html | 117 + ...DM.Interop.epdm.IEdmVariable5_methods.html | 106 + ...Interop.epdm.IEdmVariable5_properties.html | 110 + ...EPDM.Interop.epdm.IEdmVariable5~Flags.html | 149 + ...dmVariable5~GetFirstAttributePosition.html | 159 + ...p.epdm.IEdmVariable5~GetNextAttribute.html | 160 + ...terop.epdm.IEdmVariable5~VariableType.html | 149 + ...dm~EPDM.Interop.epdm.IEdmVariableMgr5.html | 142 + ...Interop.epdm.IEdmVariableMgr5_members.html | 116 + ...Interop.epdm.IEdmVariableMgr5_methods.html | 108 + ...p.epdm.IEdmVariableMgr5~EditVariables.html | 157 + ...VariableMgr5~GetFirstVariablePosition.html | 146 + ...epdm.IEdmVariableMgr5~GetNextVariable.html | 160 + ...rop.epdm.IEdmVariableMgr5~GetVariable.html | 158 + ...dm~EPDM.Interop.epdm.IEdmVariableMgr6.html | 142 + ...Interop.epdm.IEdmVariableMgr6_members.html | 111 + ...Interop.epdm.IEdmVariableMgr6_methods.html | 103 + ...op.epdm.IEdmVariableMgr6~AddVariables.html | 155 + ...dm~EPDM.Interop.epdm.IEdmVariableMgr7.html | 136 + ...Interop.epdm.IEdmVariableMgr7_members.html | 111 + ...Interop.epdm.IEdmVariableMgr7_methods.html | 103 + ...bleMgr7~GetDrawingPropSheetAttributes.html | 171 + ...~EPDM.Interop.epdm.IEdmVariableValue5.html | 140 + ...terop.epdm.IEdmVariableValue5_members.html | 115 + ...terop.epdm.IEdmVariableValue5_methods.html | 105 + ...op.epdm.IEdmVariableValue5_properties.html | 107 + ...iableValue5~GetFirstAttributePosition.html | 144 + ...m.IEdmVariableValue5~GetNextAttribute.html | 158 + ...erop.epdm.IEdmVariableValue5~GetValue.html | 156 + ...op.epdm.IEdmVariableValue5~VariableID.html | 147 + ...~EPDM.Interop.epdm.IEdmVariableValue6.html | 138 + ...terop.epdm.IEdmVariableValue6_members.html | 113 + ...op.epdm.IEdmVariableValue6_properties.html | 109 + ...epdm.IEdmVariableValue6~VariableFlags.html | 147 + ....epdm.IEdmVariableValue6~VariableName.html | 147 + ....epdm.IEdmVariableValue6~VariableType.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmVault10.html | 139 + ...EPDM.Interop.epdm.IEdmVault10_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault10_methods.html | 103 + ...op.epdm.IEdmVault10~CreateCardViewEx2.html | 166 + ...op.epdm~EPDM.Interop.epdm.IEdmVault11.html | 143 + ...EPDM.Interop.epdm.IEdmVault11_members.html | 122 + ...EPDM.Interop.epdm.IEdmVault11_methods.html | 111 + ...M.Interop.epdm.IEdmVault11_properties.html | 108 + ...rop.epdm.IEdmVault11~BrowseForFolder2.html | 184 + ...terop.epdm.IEdmVault11~CreateNewVault.html | 352 + ...p.epdm.IEdmVault11~CreateNewVaultView.html | 200 + ...erop.epdm.IEdmVault11~GetErrorMessage.html | 160 + ...Interop.epdm.IEdmVault11~GetErrorName.html | 158 + ...M.Interop.epdm.IEdmVault11~GetLicense.html | 160 + ....IEdmVault11~GetLoggedInWindowsUserID.html | 155 + ...terop.epdm.IEdmVault11~InstallLicense.html | 179 + ...terop.epdm.IEdmVault11~ItemRootFolder.html | 147 + ...rop.epdm.IEdmVault11~ItemRootFolderID.html | 147 + ...rop.epdm.IEdmVault11~LogInWindowsUser.html | 175 + ...op.epdm~EPDM.Interop.epdm.IEdmVault12.html | 140 + ...EPDM.Interop.epdm.IEdmVault12_members.html | 112 + ...EPDM.Interop.epdm.IEdmVault12_methods.html | 104 + ...op.epdm.IEdmVault12~CreatePluginMenu2.html | 197 + ....Interop.epdm.IEdmVault12~InstallFile.html | 170 + ...op.epdm~EPDM.Interop.epdm.IEdmVault13.html | 139 + ...EPDM.Interop.epdm.IEdmVault13_members.html | 116 + ...EPDM.Interop.epdm.IEdmVault13_methods.html | 108 + ...EPDM.Interop.epdm.IEdmVault13~LoginEx.html | 189 + ...op.epdm~EPDM.Interop.epdm.IEdmVault14.html | 139 + ...EPDM.Interop.epdm.IEdmVault14_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault14_methods.html | 103 + ...erop.epdm.IEdmVault14~InstallLicense2.html | 183 + ...op.epdm~EPDM.Interop.epdm.IEdmVault15.html | 141 + ...EPDM.Interop.epdm.IEdmVault15_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault15_methods.html | 103 + ...Interop.epdm.IEdmVault15~GetClientLog.html | 154 + ...op.epdm~EPDM.Interop.epdm.IEdmVault16.html | 142 + ...EPDM.Interop.epdm.IEdmVault16_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault16_methods.html | 103 + ...Interop.epdm.IEdmVault16~GetVaultType.html | 142 + ...op.epdm~EPDM.Interop.epdm.IEdmVault17.html | 139 + ...EPDM.Interop.epdm.IEdmVault17_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault17_methods.html | 103 + ...t17~IgnoreSecondaryDatabaseConnection.html | 152 + ...op.epdm~EPDM.Interop.epdm.IEdmVault18.html | 139 + ...EPDM.Interop.epdm.IEdmVault18_members.html | 111 + ...M.Interop.epdm.IEdmVault18_properties.html | 107 + ....IEdmVault18~MinimumSupportedClientSP.html | 147 + ...op.epdm~EPDM.Interop.epdm.IEdmVault19.html | 145 + ...EPDM.Interop.epdm.IEdmVault19_members.html | 113 + ...EPDM.Interop.epdm.IEdmVault19_methods.html | 105 + ...PDM.Interop.epdm.IEdmVault19~CopyTree.html | 200 + ....IEdmVault19~GetRevisionTableSettings.html | 176 + ...dmVault19~UpdateRevTableWithSetRevCmd.html | 152 + ...op.epdm~EPDM.Interop.epdm.IEdmVault20.html | 141 + ...EPDM.Interop.epdm.IEdmVault20_members.html | 113 + ...EPDM.Interop.epdm.IEdmVault20_methods.html | 105 + ....epdm.IEdmVault20~GetArchiveServerLog.html | 152 + ...PDM.Interop.epdm.IEdmVault20~GetFiles.html | 152 + ...ult20~GetTransitionCommentPermissions.html | 187 + ...op.epdm~EPDM.Interop.epdm.IEdmVault21.html | 142 + ...EPDM.Interop.epdm.IEdmVault21_members.html | 111 + ...EPDM.Interop.epdm.IEdmVault21_methods.html | 103 + ...nterop.epdm.IEdmVault21~CreateSearch2.html | 160 + ...op.epdm~EPDM.Interop.epdm.IEdmVault22.html | 146 + ...EPDM.Interop.epdm.IEdmVault22_members.html | 115 + ...EPDM.Interop.epdm.IEdmVault22_methods.html | 107 + ...DM.Interop.epdm.IEdmVault22~ADRunSync.html | 152 + ...DM.Interop.epdm.IEdmVault22~ClearLogs.html | 140 + ...nterop.epdm.IEdmVault22~GetColumnSets.html | 154 + ....epdm.IEdmVault22~GetCurrentColumnSet.html | 154 + ...terop.epdm.IEdmVault22~SetColumnSetID.html | 155 + ...rop.epdm~EPDM.Interop.epdm.IEdmVault5.html | 163 + ...~EPDM.Interop.epdm.IEdmVault5_members.html | 136 + ...~EPDM.Interop.epdm.IEdmVault5_methods.html | 119 + ...DM.Interop.epdm.IEdmVault5_properties.html | 114 + ...Interop.epdm.IEdmVault5~BrowseForFile.html | 218 + ...terop.epdm.IEdmVault5~BrowseForFolder.html | 165 + ...PDM.Interop.epdm.IEdmVault5~CommandID.html | 147 + ...erop.epdm.IEdmVault5~CreatePluginMenu.html | 204 + ....Interop.epdm.IEdmVault5~CreateSearch.html | 147 + ...Interop.epdm.IEdmVault5~GetDictionary.html | 170 + ...nterop.epdm.IEdmVault5~GetErrorString.html | 175 + ...terop.epdm.IEdmVault5~GetFileFromPath.html | 171 + ...rop.epdm.IEdmVault5~GetFolderFromPath.html | 160 + ...PDM.Interop.epdm.IEdmVault5~GetObject.html | 168 + ....epdm.IEdmVault5~GetVaultNameFromPath.html | 158 + ...DM.Interop.epdm.IEdmVault5~GetVersion.html | 165 + ...DM.Interop.epdm.IEdmVault5~IsLoggedIn.html | 149 + ...EPDM.Interop.epdm.IEdmVault5~Language.html | 147 + ...dm~EPDM.Interop.epdm.IEdmVault5~Login.html | 180 + ...PDM.Interop.epdm.IEdmVault5~LoginAuto.html | 167 + ...m~EPDM.Interop.epdm.IEdmVault5~MsgBox.html | 183 + ...pdm~EPDM.Interop.epdm.IEdmVault5~Name.html | 149 + ...Interop.epdm.IEdmVault5~RefreshFolder.html | 162 + ...DM.Interop.epdm.IEdmVault5~RootFolder.html | 151 + ....Interop.epdm.IEdmVault5~RootFolderID.html | 147 + ...nterop.epdm.IEdmVault5~RootFolderPath.html | 151 + ...M.Interop.epdm.IEdmVault5~SetAddInWnd.html | 163 + ...DM.Interop.epdm.IEdmVault5~SilentMode.html | 147 + ...Interop.epdm.IEdmVault5~VerifyVersion.html | 166 + ...rop.epdm~EPDM.Interop.epdm.IEdmVault6.html | 139 + ...~EPDM.Interop.epdm.IEdmVault6_members.html | 112 + ...~EPDM.Interop.epdm.IEdmVault6_methods.html | 104 + ...erop.epdm.IEdmVault6~CreateCardViewEx.html | 197 + ...PDM.Interop.epdm.IEdmVault6~GetCardID.html | 172 + ...rop.epdm~EPDM.Interop.epdm.IEdmVault7.html | 147 + ...~EPDM.Interop.epdm.IEdmVault7_members.html | 111 + ...~EPDM.Interop.epdm.IEdmVault7_methods.html | 103 + ...Interop.epdm.IEdmVault7~CreateUtility.html | 164 + ...rop.epdm~EPDM.Interop.epdm.IEdmVault8.html | 147 + ...~EPDM.Interop.epdm.IEdmVault8_members.html | 115 + ...~EPDM.Interop.epdm.IEdmVault8_methods.html | 105 + ...DM.Interop.epdm.IEdmVault8_properties.html | 107 + ...DM.Interop.epdm.IEdmVault8~ClientType.html | 147 + ...Interop.epdm.IEdmVault8~GetVaultViews.html | 163 + ...nterop.epdm.IEdmVault8~GetWin32Window.html | 152 + ....epdm.IEdmVault8~OpenContainingFolder.html | 186 + ...rop.epdm~EPDM.Interop.epdm.IEdmVault9.html | 141 + ...~EPDM.Interop.epdm.IEdmVault9_members.html | 111 + ...~EPDM.Interop.epdm.IEdmVault9_methods.html | 103 + ...DM.Interop.epdm.IEdmVault9~GetObjects.html | 154 + ...p.epdm~EPDM.Interop.epdm.IEdmVersion5.html | 143 + ...PDM.Interop.epdm.IEdmVersion5_members.html | 123 + ...PDM.Interop.epdm.IEdmVersion5_methods.html | 106 + ....Interop.epdm.IEdmVersion5_properties.html | 114 + ...PDM.Interop.epdm.IEdmVersion5~Comment.html | 149 + ...DM.Interop.epdm.IEdmVersion5~FileDate.html | 147 + ...DM.Interop.epdm.IEdmVersion5~FileSize.html | 147 + ...Interop.epdm.IEdmVersion5~GetFileCopy.html | 185 + ...IEdmVersion5~GetFirstRevisionPosition.html | 149 + ...rop.epdm.IEdmVersion5~GetNextRevision.html | 161 + ...Interop.epdm.IEdmVersion5~HasRevision.html | 147 + ...DM.Interop.epdm.IEdmVersion5~Rollback.html | 146 + ...m~EPDM.Interop.epdm.IEdmVersion5~User.html | 149 + ...EPDM.Interop.epdm.IEdmVersion5~UserID.html | 147 + ...Interop.epdm.IEdmVersion5~VersionDate.html | 149 + ...M.Interop.epdm.IEdmVersion5~VersionNo.html | 149 + ...p.epdm~EPDM.Interop.epdm.IEdmVersion6.html | 139 + ...PDM.Interop.epdm.IEdmVersion6_members.html | 111 + ...PDM.Interop.epdm.IEdmVersion6_methods.html | 103 + ...M.Interop.epdm.IEdmVersion6~Rollback2.html | 159 + ...p.epdm~EPDM.Interop.epdm.IEdmVersion7.html | 139 + ...PDM.Interop.epdm.IEdmVersion7_members.html | 111 + ....Interop.epdm.IEdmVersion7_properties.html | 107 + ...M.Interop.epdm.IEdmVersion7~FileSize2.html | 149 + ...p.epdm~EPDM.Interop.epdm.IEdmVersion8.html | 138 + ...PDM.Interop.epdm.IEdmVersion8_members.html | 111 + ...PDM.Interop.epdm.IEdmVersion8_methods.html | 103 + ...M.Interop.epdm.IEdmVersion8~Rollback3.html | 167 + ....epdm~EPDM.Interop.epdm.IEdmWorkflow5.html | 135 + ...DM.Interop.epdm.IEdmWorkflow5_members.html | 118 + ...DM.Interop.epdm.IEdmWorkflow5_methods.html | 108 + ...Interop.epdm.IEdmWorkflow5_properties.html | 107 + ...m.IEdmWorkflow5~GetFirstStatePosition.html | 140 + ...mWorkflow5~GetFirstTransitionPosition.html | 140 + ...terop.epdm.IEdmWorkflow5~GetNextState.html | 152 + ....epdm.IEdmWorkflow5~GetNextTransition.html | 152 + ...M.Interop.epdm.IEdmWorkflow5~GetState.html | 152 + ...erop.epdm.IEdmWorkflow5~GetTransition.html | 152 + ...terop.epdm.IEdmWorkflow5~InitialState.html | 147 + ....epdm~EPDM.Interop.epdm.IEdmWorkflow6.html | 140 + ...DM.Interop.epdm.IEdmWorkflow6_members.html | 119 + ...DM.Interop.epdm.IEdmWorkflow6_methods.html | 108 + ...Interop.epdm.IEdmWorkflow6_properties.html | 108 + ...nterop.epdm.IEdmWorkflow6~Description.html | 147 + ...m.IEdmWorkflow6~GetFirstStatePosition.html | 144 + ...mWorkflow6~GetFirstTransitionPosition.html | 146 + ...terop.epdm.IEdmWorkflow6~GetNextState.html | 159 + ....epdm.IEdmWorkflow6~GetNextTransition.html | 161 + ...M.Interop.epdm.IEdmWorkflow6~GetState.html | 157 + ...erop.epdm.IEdmWorkflow6~GetTransition.html | 156 + ...terop.epdm.IEdmWorkflow6~InitialState.html | 147 + ...dm~EPDM.Interop.epdm.IEdmWorkflowMgr6.html | 137 + ...Interop.epdm.IEdmWorkflowMgr6_members.html | 112 + ...Interop.epdm.IEdmWorkflowMgr6_methods.html | 104 + ...WorkflowMgr6~GetFirstWorkflowPosition.html | 144 + ...epdm.IEdmWorkflowMgr6~GetNextWorkflow.html | 159 + ...erop.epdm~EPDM.Interop.epdm_namespace.html | 509 + ...EPDM.Interop.epdm_namespace_hierarchy.html | 103 + documentation/api_extracted/EditAuthor.gif | Bin 0 -> 4689 bytes .../api_extracted/ExecuteTemplate.gif | Bin 0 -> 5887 bytes .../Execute_Template_2_Example_CSharp.htm | 335 + .../Execute_Template_2_Example_VBNET.htm | 284 + .../Execute_Template_Example_CSharp.htm | 278 + .../Execute_Template_Example_VBNET.htm | 257 + .../api_extracted/FavoriteSearch.gif | Bin 0 -> 4788 bytes .../Favorite_Search_Example_CSharp.htm | 1525 ++ .../Favorite_Search_Example_VBNET.htm | 1889 ++ documentation/api_extracted/FileInfo.gif | Bin 0 -> 8200 bytes documentation/api_extracted/FileTypes.gif | Bin 0 -> 4129 bytes documentation/api_extracted/FileVarData.gif | Bin 0 -> 8022 bytes .../api_extracted/FileVersionInformation.gif | Bin 0 -> 7618 bytes .../api_extracted/FindCardsDescription.gif | Bin 0 -> 5229 bytes documentation/api_extracted/FindKeyRange.gif | Bin 0 -> 3788 bytes documentation/api_extracted/FindRevisions.gif | Bin 0 -> 5494 bytes .../api_extracted/FindStringValues.gif | Bin 0 -> 3502 bytes documentation/api_extracted/FindUsers.gif | Bin 0 -> 8336 bytes ...th_Description_Variable_Example_CSharp.htm | 303 + ...ith_Description_Variable_Example_VBNET.htm | 263 + ...visions_Using_Component_Example_CSharp.htm | 245 + ...evisions_Using_Component_Example_VBNET.htm | 224 + .../Find_Users_Example_CSharp.htm | 410 + .../Find_Users_Example_VBNET.htm | 304 + .../api_extracted/FolderPermissions.gif | Bin 0 -> 22212 bytes .../api_extracted/GenConfigValues.gif | Bin 0 -> 10141 bytes .../Generate_Config_Values_Example_CSharp.htm | 443 + .../Generate_Config_Values_Example_VBNET.htm | 420 + documentation/api_extracted/GetAndRunTask.gif | Bin 0 -> 6735 bytes .../api_extracted/GetCardControls.gif | Bin 0 -> 8416 bytes documentation/api_extracted/GetCardVars.gif | Bin 0 -> 8228 bytes documentation/api_extracted/GetCategories.gif | Bin 0 -> 6153 bytes documentation/api_extracted/GetFileRef.gif | Bin 0 -> 8653 bytes .../api_extracted/GetFilesInState.gif | Bin 0 -> 6219 bytes documentation/api_extracted/GetHistories.gif | Bin 0 -> 7964 bytes documentation/api_extracted/GetMessages.gif | Bin 0 -> 3877 bytes documentation/api_extracted/GetParentRefs.gif | Bin 0 -> 8103 bytes documentation/api_extracted/GetThumbnail.gif | Bin 0 -> 5104 bytes ..._Bitmap_Preview_of_File_Example_CSharp.htm | 342 + ...t_Bitmap_Preview_of_File_Example_VBNET.htm | 280 + .../Get_Card_Control_Info_Example_CSharp.htm | 405 + .../Get_Card_Control_Info_Example_VBNET.htm | 363 + .../Get_Categories_Example_CSharp.htm | 248 + .../Get_Categories_Example_VBNET.htm | 216 + .../Get_File_Info_Example_CSharp.htm | 495 + .../Get_File_Info_Example_VBNET.htm | 448 + ...ile_References_for_File_Example_CSharp.htm | 596 + ...File_References_for_File_Example_VBNET.htm | 567 + ..._Handle_by_File_Version_Example_CSharp.htm | 268 + ...le_Thumbnail_by_Version_Example_CSharp.htm | 276 + .../Get_File_Variable_Data_Example_CSharp.htm | 351 + .../Get_File_Variable_Data_Example_VBNET.htm | 293 + ...ile_Version_Information_Example_CSharp.htm | 341 + ...File_Version_Information_Example_VBNET.htm | 283 + ...Files_State_Transitions_Example_CSharp.htm | 418 + ..._Files_State_Transitions_Example_VBNET.htm | 400 + .../Get_Files_in_State_Example_CSharp.htm | 289 + .../Get_Files_in_State_Example_VBNET.htm | 249 + .../Get_Histories_of_Files_Example_CSharp.htm | 449 + .../Get_Histories_of_Files_Example_VBNET.htm | 382 + .../Get_Menu_Command_Items_Example_CSharp.htm | 204 + .../Get_Menu_Command_Items_Example_VBNET.htm | 181 + .../Get_Messages_Example_CSharp.htm | 293 + .../Get_Messages_Example_VBNET.htm | 262 + .../Get_Parent_References_Example_CSharp.htm | 336 + .../Get_Parent_References_Example_VBNET.htm | 296 + ...r_Local_Version_of_File_Example_CSharp.htm | 376 + ...or_Local_Version_of_File_Example_VBNET.htm | 322 + ...t_and_Run_a_Task_Add-in_Example_CSharp.htm | 317 + ..._Set_Folder_Permissions_Example_CSharp.htm | 650 + ...d_Set_Folder_Permissions_Example_VBNET.htm | 553 + ...and_Set_Item_References_Example_CSharp.htm | 506 + ..._and_Set_Item_References_Example_VBNET.htm | 440 + ...and_Set_Key_Value_Pairs_Example_CSharp.htm | 582 + ..._and_Set_Key_Value_Pairs_Example_VBNET.htm | 518 + .../api_extracted/GettingStarted-epdmapi.html | 135 + documentation/api_extracted/GraphWorkflow.gif | Bin 0 -> 8508 bytes .../Graph_Workflow_Example_CSharp.htm | 412 + .../Graph_Workflow_Example_VBNET.htm | 362 + documentation/api_extracted/HelloWorld.gif | Bin 0 -> 3064 bytes .../api_extracted/InitialRevision.gif | Bin 0 -> 5316 bytes documentation/api_extracted/ItemRefs.gif | Bin 0 -> 7286 bytes documentation/api_extracted/Items.htm | 93 + .../api_extracted/KeepWindowInfront.htm | 61 + documentation/api_extracted/LoadAddin.gif | Bin 0 -> 8406 bytes .../Load_Addin_Example_CSharp.htm | 536 + .../Load_Addin_Example_VBNET.htm | 475 + .../api_extracted/LogInVaultDisplayInfo.gif | Bin 0 -> 4557 bytes ...and_Display_Information_Example_CSharp.htm | 257 + ..._and_Display_Information_Example_VBNET.htm | 239 + documentation/api_extracted/MenuCommands.gif | Bin 0 -> 4515 bytes .../api_extracted/NewDotNetAddRef.gif | Bin 0 -> 5279 bytes .../api_extracted/NewDotNetAddRefDlg.gif | Bin 0 -> 16453 bytes documentation/api_extracted/NewDotNetOpen.gif | Bin 0 -> 9376 bytes .../api_extracted/NewDotNetProjDlg.gif | Bin 0 -> 13515 bytes .../api_extracted/NewDotNetProjMenu.gif | Bin 0 -> 11389 bytes .../api_extracted/NewDotNetRefDlg.gif | Bin 0 -> 16308 bytes .../api_extracted/NewDotNetRefMenu.gif | Bin 0 -> 6014 bytes documentation/api_extracted/NotWritten.png | Bin 0 -> 33903 bytes ...When_File_Changes_State_Example_CSharp.htm | 210 + ..._When_File_Changes_State_Example_VBNET.htm | 181 + ...n_from_Checking_In_File_Example_CSharp.htm | 543 + ...in_from_Checking_In_File_Example_VBNET.htm | 456 + documentation/api_extracted/PreviewBitmap.gif | Bin 0 -> 8428 bytes .../api_extracted/ReleaseNotes-epdmapi.html | 484 + documentation/api_extracted/ReturnCodes.htm | 51 + documentation/api_extracted/Revision.gif | Bin 0 -> 7434 bytes .../api_extracted/RevokeTransitions.gif | Bin 0 -> 8799 bytes .../Roll_Back_Revisions_Example_CSharp.htm | 386 + .../Roll_Back_Revisions_Example_VBNET.htm | 336 + documentation/api_extracted/SWHeader.png | Bin 0 -> 83731 bytes .../Schedule_Task_Addin_Example_CSharp.htm | 356 + .../Schedule_Task_Addin_Example_VBNET.htm | 383 + ...nd_Files_in_State_Addin_Example_CSharp.htm | 831 + ...ind_Files_in_State_Addin_Example_VBNET.htm | 798 + .../api_extracted/SearchSyntax-epdmapi.html | 325 + documentation/api_extracted/SecondCommand.gif | Bin 0 -> 7234 bytes documentation/api_extracted/SendMessage.gif | Bin 0 -> 7382 bytes .../Send_Message_to_Users_Example_CSharp.htm | 255 + .../Send_Message_to_Users_Example_VBNET.htm | 235 + documentation/api_extracted/SerialNumbers.gif | Bin 0 -> 6219 bytes .../Set_Initial_Revision_Example_CSharp.htm | 216 + .../Set_Initial_Revision_Example_VBNET.htm | 400 + ..._Default_Serial_Numbers_Example_CSharp.htm | 374 + ...g_Default_Serial_Numbers_Example_VBNET.htm | 343 + documentation/api_extracted/SetupPage.png | Bin 0 -> 6723 bytes .../api_extracted/SetupPageResult.png | Bin 0 -> 104782 bytes .../api_extracted/ShowTransitions.gif | Bin 0 -> 5863 bytes documentation/api_extracted/StandAloneApp.htm | 205 + .../api_extracted/StandAloneAppCSharp.htm | 216 + .../api_extracted/StandAloneAppCpp.htm | 169 + .../api_extracted/StandardTaskAddIn.htm | 186 + .../api_extracted/StateTransitions.gif | Bin 0 -> 5351 bytes .../api_extracted/StringDicSearch.gif | Bin 0 -> 3737 bytes .../api_extracted/TaskDetailsPage.png | Bin 0 -> 9005 bytes .../api_extracted/TaskDetailsPageResult.png | Bin 0 -> 9979 bytes documentation/api_extracted/TaskList.png | Bin 0 -> 26540 bytes documentation/api_extracted/TaskSample.htm | 514 + .../api_extracted/TaskSample_CSharp.htm | 1743 ++ documentation/api_extracted/Tasks.htm | 138 + .../api_extracted/TraverseFilesFolders.gif | Bin 0 -> 11602 bytes ...ders_and_Files_in_Vault_Example_CSharp.htm | 334 + ...lders_and_Files_in_Vault_Example_VBNET.htm | 309 + ...ers_and_Groups_in_Vault_Example_CSharp.htm | 355 + ...sers_and_Groups_in_Vault_Example_VBNET.htm | 429 + .../api_extracted/Troubleshooting_Guide.htm | 249 + documentation/api_extracted/UpdateAtts.gif | Bin 0 -> 7637 bytes .../api_extracted/UpdateFileRefs.gif | Bin 0 -> 9160 bytes documentation/api_extracted/UpdateRefs.gif | Bin 0 -> 5125 bytes ...ate_File_Raw_References_Example_CSharp.htm | 487 + ...date_File_Raw_References_Example_VBNET.htm | 418 + .../Update_References_Example_CSharp.htm | 332 + .../Update_References_Example_VBNET.htm | 285 + documentation/api_extracted/UserPopup.png | Bin 0 -> 71575 bytes .../api_extracted/UsersAndGroups.gif | Bin 0 -> 9952 bytes ...ing_Basic_Search_Syntax_Example_CSharp.htm | 1244 ++ ...sing_Basic_Search_Syntax_Example_VBNET.htm | 1180 ++ .../Using_NET_Framework_in_Addins.htm | 151 + .../Using_NET_Framework_in_Applications.htm | 159 + .../api_extracted/VaultUtilities.gif | Bin 0 -> 11069 bytes .../Vault_Utilities_Example_CSharp.htm | 962 + .../Vault_Utilities_Example_VBNET.htm | 839 + documentation/api_extracted/Vista.htm | 64 + .../api_extracted/Welcome-epdmapi.html | 98 + .../api_extracted/WorkflowStates.gif | Bin 0 -> 4562 bytes documentation/api_extracted/advancedmenu.gif | Bin 0 -> 5504 bytes documentation/api_extracted/assydlg.gif | Bin 0 -> 52384 bytes documentation/api_extracted/assyview.gif | Bin 0 -> 69833 bytes documentation/api_extracted/collapse.gif | Bin 0 -> 872 bytes documentation/api_extracted/contextmenu.gif | Bin 0 -> 3183 bytes documentation/api_extracted/copycode.gif | Bin 0 -> 978 bytes .../api_extracted/copycodeHighlight.gif | Bin 0 -> 978 bytes documentation/api_extracted/cppaddin.htm | 297 + .../api_extracted/cppaddin_newobj.gif | Bin 0 -> 11325 bytes .../api_extracted/cppaddin_newobj2.gif | Bin 0 -> 9799 bytes .../api_extracted/cppaddin_newobj3.gif | Bin 0 -> 9294 bytes .../api_extracted/cppaddin_newobj4.gif | Bin 0 -> 11389 bytes .../api_extracted/cppaddin_newobj5.gif | Bin 0 -> 13196 bytes .../api_extracted/cppaddin_newobj6.gif | Bin 0 -> 10340 bytes .../api_extracted/cppaddin_newproj.gif | Bin 0 -> 15769 bytes .../api_extracted/cppaddin_newproj2.gif | Bin 0 -> 16979 bytes .../api_extracted/cppaddin_resource.gif | Bin 0 -> 7733 bytes documentation/api_extracted/cppmenuitem.htm | 151 + documentation/api_extracted/cppreactor.htm | 155 + .../api_extracted/csharpcardbutton.htm | 253 + .../api_extracted/csharpmenuitem.htm | 402 + documentation/api_extracted/csharpreactor.htm | 200 + documentation/api_extracted/csharpserno.htm | 235 + .../api_extracted/custombutton_cold.gif | Bin 0 -> 5276 bytes .../api_extracted/custombutton_hot.gif | Bin 0 -> 8068 bytes documentation/api_extracted/defvalserno.gif | Bin 0 -> 40640 bytes .../api_extracted/dotnetimages/Event.gif | Bin 0 -> 900 bytes .../dotnetimages/InternalConstructor.gif | Bin 0 -> 942 bytes .../dotnetimages/InternalEvent.gif | Bin 0 -> 919 bytes .../dotnetimages/InternalField.gif | Bin 0 -> 917 bytes .../dotnetimages/InternalMethod.gif | Bin 0 -> 942 bytes .../dotnetimages/InternalProperty.gif | Bin 0 -> 1012 bytes .../api_extracted/dotnetimages/Method.gif | Bin 0 -> 910 bytes .../dotnetimages/PrivateConstructor.gif | Bin 0 -> 965 bytes .../dotnetimages/PrivateEvent.gif | Bin 0 -> 937 bytes .../dotnetimages/PrivateField.gif | Bin 0 -> 935 bytes .../dotnetimages/PrivateMethod.gif | Bin 0 -> 963 bytes .../dotnetimages/PrivateProperty.gif | Bin 0 -> 1018 bytes .../api_extracted/dotnetimages/Property.gif | Bin 0 -> 990 bytes .../Protected InternalConstructor.gif | Bin 0 -> 942 bytes .../dotnetimages/Protected InternalEvent.gif | Bin 0 -> 923 bytes .../dotnetimages/Protected InternalField.gif | Bin 0 -> 920 bytes .../dotnetimages/Protected InternalMethod.gif | Bin 0 -> 942 bytes .../Protected InternalProperty.gif | Bin 0 -> 1012 bytes .../dotnetimages/ProtectedConstructor.gif | Bin 0 -> 942 bytes .../dotnetimages/ProtectedEvent.gif | Bin 0 -> 923 bytes .../dotnetimages/ProtectedField.gif | Bin 0 -> 920 bytes .../dotnetimages/ProtectedMethod.gif | Bin 0 -> 942 bytes .../dotnetimages/ProtectedProperty.gif | Bin 0 -> 1012 bytes .../dotnetimages/PublicConstructor.gif | Bin 0 -> 910 bytes .../dotnetimages/PublicEvent.gif | Bin 0 -> 900 bytes .../dotnetimages/PublicField.gif | Bin 0 -> 888 bytes .../dotnetimages/PublicMethod.gif | Bin 0 -> 910 bytes .../dotnetimages/PublicOperator.gif | Bin 0 -> 898 bytes .../dotnetimages/PublicProperty.gif | Bin 0 -> 990 bytes .../api_extracted/dotnetimages/collapse.gif | Bin 0 -> 872 bytes .../api_extracted/dotnetimages/copycode.gif | Bin 0 -> 978 bytes .../dotnetimages/copycodeHighlight.gif | Bin 0 -> 978 bytes .../api_extracted/dotnetimages/drpdown.gif | Bin 0 -> 923 bytes .../dotnetimages/drpdown_orange.gif | Bin 0 -> 944 bytes .../api_extracted/dotnetimages/expand.gif | Bin 0 -> 873 bytes .../api_extracted/dotnetimages/gradient.png | Bin 0 -> 168 bytes .../api_extracted/dotnetimages/isnew.gif | Bin 0 -> 834 bytes .../api_extracted/dotnetimages/static.gif | Bin 0 -> 972 bytes documentation/api_extracted/drpdown.gif | Bin 0 -> 118 bytes .../api_extracted/drpdown_orange.gif | Bin 0 -> 91 bytes documentation/api_extracted/epdmapi.hhc | 8773 +++++++++ documentation/api_extracted/epdmapi.hhk | 15429 ++++++++++++++++ documentation/api_extracted/expand.gif | Bin 0 -> 873 bytes .../api_extracted/flash/expressinstall.swf | Bin 0 -> 727 bytes documentation/api_extracted/gradient.png | Bin 0 -> 165 bytes documentation/api_extracted/hs-caution.gif | Bin 0 -> 983 bytes documentation/api_extracted/hs-collapsed.gif | Bin 0 -> 862 bytes documentation/api_extracted/hs-enlarge.gif | Bin 0 -> 948 bytes documentation/api_extracted/hs-expanded.gif | Bin 0 -> 861 bytes .../api_extracted/hs-heading-collapsed.gif | Bin 0 -> 873 bytes .../api_extracted/hs-heading-expanded.gif | Bin 0 -> 872 bytes documentation/api_extracted/hs-note.gif | Bin 0 -> 864 bytes documentation/api_extracted/hs-shrink.gif | Bin 0 -> 944 bytes .../api_extracted/hs-simpletableft.png | Bin 0 -> 210 bytes .../api_extracted/hs-simpletabright.png | Bin 0 -> 209 bytes documentation/api_extracted/hs-tip.gif | Bin 0 -> 934 bytes .../api_extracted/images/collapse.gif | Bin 0 -> 872 bytes .../api_extracted/images/copycode.gif | Bin 0 -> 978 bytes .../images/copycodeHighlight.gif | Bin 0 -> 978 bytes .../api_extracted/images/drpdown.gif | Bin 0 -> 118 bytes .../api_extracted/images/drpdown_orange.gif | Bin 0 -> 91 bytes documentation/api_extracted/images/expand.gif | Bin 0 -> 873 bytes .../api_extracted/images/gradient.png | Bin 0 -> 165 bytes .../api_extracted/images/hs-caution.gif | Bin 0 -> 900 bytes .../api_extracted/images/hs-collapsed.gif | Bin 0 -> 854 bytes .../api_extracted/images/hs-enlarge.gif | Bin 0 -> 948 bytes .../api_extracted/images/hs-expanded.gif | Bin 0 -> 856 bytes .../images/hs-heading-collapsed.gif | Bin 0 -> 873 bytes .../images/hs-heading-expanded.gif | Bin 0 -> 872 bytes .../api_extracted/images/hs-note.gif | Bin 0 -> 222 bytes .../api_extracted/images/hs-shrink.gif | Bin 0 -> 944 bytes .../api_extracted/images/hs-simpletableft.png | Bin 0 -> 210 bytes .../images/hs-simpletabright.png | Bin 0 -> 209 bytes .../images/hs-tab-active-leftend.png | Bin 0 -> 210 bytes .../images/hs-tab-active-rightend.png | Bin 0 -> 209 bytes .../api_extracted/images/hs-tab-leftend.png | Bin 0 -> 213 bytes .../api_extracted/images/hs-tab-rightend.png | Bin 0 -> 215 bytes documentation/api_extracted/images/hs-tip.gif | Bin 0 -> 905 bytes documentation/api_extracted/main.htm | 45 + documentation/api_extracted/mybutton.gif | Bin 0 -> 31771 bytes documentation/api_extracted/popupmenu.gif | Bin 0 -> 2483 bytes documentation/api_extracted/refmsg.gif | Bin 0 -> 4095 bytes .../api_extracted/script/dotnet2005.js | 1927 ++ .../api_extracted/script/helpstudio.js | 1698 ++ .../api_extracted/script/hs-common.js | 97 + .../api_extracted/script/hs-enlargeimage.js | 77 + .../api_extracted/script/hs-expandcollapse.js | 87 + .../script/hs-heading-expandcollapse.js | 237 + .../api_extracted/script/hs-tabstrip.js | 210 + .../api_extracted/script/languagefilter.js | 438 + .../api_extracted/script/swfobject.js | 4 + documentation/api_extracted/serno.gif | Bin 0 -> 11490 bytes documentation/api_extracted/slntree.gif | Bin 0 -> 14598 bytes .../api_extracted/stylesheets/dotnet2005.css | 734 + .../stylesheets/dotnet2005.css_TEST_FONTS | 706 + .../api_extracted/stylesheets/helpstudio.css | 793 + .../api_extracted/stylesheets/hs-boxes.css | 24 + .../stylesheets/hs-expandcollapse.css | 18 + .../stylesheets/hs-heading-expandcollapse.css | 26 + .../stylesheets/hs-simpletab.css | 80 + .../api_extracted/stylesheets/hs-tabstrip.css | 92 + .../stylesheets/languagefilter.css | 20 + documentation/api_extracted/tb_cold.gif | Bin 0 -> 2533 bytes documentation/api_extracted/tb_hot.gif | Bin 0 -> 2593 bytes documentation/api_extracted/tb_inexplorer.gif | Bin 0 -> 7063 bytes .../api_extracted/tb_inexplorer_hot.gif | Bin 0 -> 7920 bytes documentation/api_extracted/txtcard.gif | Bin 0 -> 8356 bytes documentation/api_extracted/txtpropserno.gif | Bin 0 -> 12313 bytes documentation/api_extracted/vb6projprops.gif | Bin 0 -> 9295 bytes documentation/api_extracted/vbaddin.htm | 24 + .../api_extracted/vbaddin_newdll.gif | Bin 0 -> 11636 bytes .../api_extracted/vbaddin_selinterface.gif | Bin 0 -> 8195 bytes documentation/api_extracted/vbapp_newexe.gif | Bin 0 -> 16607 bytes documentation/api_extracted/vbapp_refs.gif | Bin 0 -> 16146 bytes documentation/api_extracted/vbcardbutton.htm | 252 + documentation/api_extracted/vbmenuitem.htm | 379 + documentation/api_extracted/vbreactor.htm | 181 + documentation/api_extracted/vbresedit.gif | Bin 0 -> 6118 bytes documentation/api_extracted/vbserno.htm | 233 + documentation/api_extracted/vermsg.gif | Bin 0 -> 3526 bytes documentation/api_extracted/xref.gif | Bin 0 -> 10410 bytes helpers/batch_copy_tree.py | 828 + helpers/batch_workflows_paths.py | 864 + helpers/db_helper.py | 788 + helpers/queries/DWS_GET_VV-57.sql | 14 + helpers/queries/DWS_VV-57_FullList.sql | 24 + helpers/queries/Find_Duplicate_Rows.sql | 14 + helpers/queries/Get_All_VV_Per_DocID.sql | 6 + helpers/queries/INSERT_VV50_Copy.sql | 9 + helpers/samples/README.md | 42 + helpers/samples/sample_filenames.csv | 4 + helpers/samples/sample_full_paths.csv | 5 + helpers/samples/sample_part_numbers.csv | 6 + helpers/test_batch_api.py | 184 + migrate_filedata.py | 1080 ++ migrate_folderdata.py | 734 + requirements.txt | 3 + rollback_filedata.py | 235 + 2721 files changed, 442772 insertions(+) create mode 100644 .claude/settings.local.json create mode 100644 .gitignore create mode 100644 BATCH_NOTES.md create mode 100644 README.md create mode 100644 check_paths.py create mode 100644 check_var_clashing.py create mode 100644 config.json.template create mode 100644 db_utils.py create mode 100644 documentation/API_GB.chm create mode 100644 documentation/DWS_Migration.MD create mode 100644 documentation/api_extracted/64bit.htm create mode 100644 documentation/api_extracted/AccessBOM.gif create mode 100644 documentation/api_extracted/AccessCustRefs.gif create mode 100644 documentation/api_extracted/Access_Bill_of_Materials_Example_CSharp.htm create mode 100644 documentation/api_extracted/Access_Bill_of_Materials_Example_VBNET.htm create mode 100644 documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_CSharp.htm create mode 100644 documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_VBNET.htm create mode 100644 documentation/api_extracted/Access_Custom_File_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Access_Custom_File_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/Access_File_Card_Variables_Example_CSharp.htm create mode 100644 documentation/api_extracted/Access_File_Card_Variables_Example_VBNET.htm create mode 100644 documentation/api_extracted/AddCardVars.gif create mode 100644 documentation/api_extracted/AddCustomRefs.gif create mode 100644 documentation/api_extracted/AddDictionary.gif create mode 100644 documentation/api_extracted/AddFile.gif create mode 100644 documentation/api_extracted/AddFiles.gif create mode 100644 documentation/api_extracted/AddFolder.gif create mode 100644 documentation/api_extracted/AddInAdminMenu.gif create mode 100644 documentation/api_extracted/AddInAdminMenu.htm create mode 100644 documentation/api_extracted/AddInApp.htm create mode 100644 documentation/api_extracted/AddItems.gif create mode 100644 documentation/api_extracted/AddRemoveUsersGroups.gif create mode 100644 documentation/api_extracted/AddUsers.gif create mode 100644 documentation/api_extracted/Add_Custom_File_Reference_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Custom_File_Reference_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Files_to_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Files_to_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Folder_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Folder_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Items_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Items_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Users_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Users_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_Variables_to_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_Variables_to_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_CSharp.htm create mode 100644 documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_VBNET.htm create mode 100644 documentation/api_extracted/AddinMenuItems.gif create mode 100644 documentation/api_extracted/AdminAddIns.gif create mode 100644 documentation/api_extracted/AdminDlg.gif create mode 100644 documentation/api_extracted/AdminDlg.htm create mode 100644 documentation/api_extracted/ApiHelp.css create mode 100644 documentation/api_extracted/Assign_Columnset_To_Folder_Before_Browsing_Addin_Example_VBNET.htm create mode 100644 documentation/api_extracted/BatchAddFiles.gif create mode 100644 documentation/api_extracted/BatchAddFolders.gif create mode 100644 documentation/api_extracted/BatchAddItemRefs.gif create mode 100644 documentation/api_extracted/BatchChangeFiles.gif create mode 100644 documentation/api_extracted/BatchDeleteFiles.gif create mode 100644 documentation/api_extracted/BatchGetFiles.gif create mode 100644 documentation/api_extracted/BatchRefVars.gif create mode 100644 documentation/api_extracted/BatchUnlockFiles.gif create mode 100644 documentation/api_extracted/BatchUpdateVars.gif create mode 100644 documentation/api_extracted/Batch_Add_Files_and_Folders_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Add_Files_and_Folders_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Add_Folders_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Add_Folders_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Change_States_of_Files_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Change_States_of_Files_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Get_Files_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Get_Files_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Unlock_Files_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Unlock_Files_Example_VBNET.htm create mode 100644 documentation/api_extracted/Batch_Update_Variables_Example_CSharp.htm create mode 100644 documentation/api_extracted/Batch_Update_Variables_Example_VBNET.htm create mode 100644 documentation/api_extracted/Bitmasks.htm create mode 100644 documentation/api_extracted/ButtonProps.gif create mode 100644 documentation/api_extracted/CSharpAddIns.htm create mode 100644 documentation/api_extracted/CardView1.gif create mode 100644 documentation/api_extracted/CardView2.gif create mode 100644 documentation/api_extracted/Change_Card_Variables_Addin_Example_CSharp.htm create mode 100644 documentation/api_extracted/Change_Card_Variables_Addin_Example_VBNET.htm create mode 100644 documentation/api_extracted/CheckInFlags.gif create mode 100644 documentation/api_extracted/CheckOutFile.gif create mode 100644 documentation/api_extracted/Check_Out_and_Copy_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Check_Out_and_Copy_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/CopyFile.gif create mode 100644 documentation/api_extracted/CopyTree.gif create mode 100644 documentation/api_extracted/Copy_Assembly_Tree_Example_CSharp.htm create mode 100644 documentation/api_extracted/Copy_Assembly_Tree_Example_VBNET.htm create mode 100644 documentation/api_extracted/Copy_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Copy_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/CreateCardView.gif create mode 100644 documentation/api_extracted/CreateCardViewEx.jpg create mode 100644 documentation/api_extracted/CreateLabel.gif create mode 100644 documentation/api_extracted/CreateMenuFlags.htm create mode 100644 documentation/api_extracted/CreateUserPic.gif create mode 100644 documentation/api_extracted/CreateVault.gif create mode 100644 documentation/api_extracted/Create_Card_View_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_Card_View_Example_VBNET.htm create mode 100644 documentation/api_extracted/Create_Custom_Card_View_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_Custom_Card_View_Example_VBNET.htm create mode 100644 documentation/api_extracted/Create_Label_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_Label_Example_VBNET.htm create mode 100644 documentation/api_extracted/Create_New_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_New_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/Create_User_Picture_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_User_Picture_Example_VBNET.htm create mode 100644 documentation/api_extracted/Create_Vault_View_Tab_Addin_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_and_Delete_Dictionaries_Example_CSharp.htm create mode 100644 documentation/api_extracted/Create_and_Delete_Dictionaries_Example_VBNET.htm create mode 100644 documentation/api_extracted/CustomCardView.gif create mode 100644 documentation/api_extracted/DebugAddIn.gif create mode 100644 documentation/api_extracted/DebugAddins.htm create mode 100644 documentation/api_extracted/DestroyDeletedFiles.gif create mode 100644 documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/DictionaryTest.gif create mode 100644 documentation/api_extracted/Display_Menu_of_Commands_Example_VBNET.htm create mode 100644 documentation/api_extracted/DotNet.htm create mode 100644 documentation/api_extracted/DotNetAddIns.htm create mode 100644 documentation/api_extracted/DotNetImport.gif create mode 100644 documentation/api_extracted/EPDM.Interop.EPDMResultCode.html create mode 100644 documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultErrorCodes_e.html create mode 100644 documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultSuccessCodes_e.html create mode 100644 documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace.html create mode 100644 documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace_hierarchy.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.CreateMenuFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddAddInFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddCallbackMsgID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileDlgFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsNewName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlEdmAddFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcDocumentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfoFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mbsFileName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mlEdmAddInFileInfoFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsAddInName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsClassID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsCompany.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsModulePath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlAddInVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMajor.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMinor.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsAddInName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsCompany.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlAddInVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMajor.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMinor.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsMenuStr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsStatusBarHelp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsToolbarToolTip.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlCmdID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlEdmMenuFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarButtonIndex.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarImageID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsAttribName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsBlockName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsExtensions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFolderFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchCreateFolderFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mbsPathName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlDocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlErrorCode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlProjID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlErrorCode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlVariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlErrorCode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlVariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumnType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mbsCaption.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlColumnID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlWidth.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mbsBomName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mlBomID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInsertRowOption.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mbsLayoutName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mlLayoutID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mbsLayoutName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mlLayoutID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomSetVarOption.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersionType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsTag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mlVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~moDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsChildName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsParentName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseForFolderFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmButtonState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardControlType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mhParentWindow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlCardID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlEdmCardViewFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlX.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlY.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewUpdateType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateFileListFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mbIsRevoke.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlCommitsNum.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlRequiredNum.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moIcon.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsParentPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsRefPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlParentFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmClientType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData1.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData1.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID1.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mpoExtra.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsCmdStr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsStatusBarHelp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsTooltip.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlCmdID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlEdmMenuFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~moData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdNodeProp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbCancel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbSilentMode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbsComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~meCmdType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCmdID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCurrentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlEdmRefreshFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlParentWnd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoExtra.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoVault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mbsColumnSetName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mlColumnSetID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbIncludeDrawings.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbUseLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsPrefix.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsSuffix.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateListExFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateReferenceFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultViewFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataPropertyType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefValComp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefaultValueType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlObjectType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~moName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlDocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlProjID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mhResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlArg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mpoObject.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFindUserProp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderHistoryFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfoFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlEdmFolderInfoFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlParam.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mpoFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~meOwnerType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlEdmRightFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlOwnerID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsConfiguration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileFolderPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemAlternativeName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemFolderPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~meLinkType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mhResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileParentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemParentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetCmdFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetConfirmReason.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFileListFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMenuInfoFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMsgFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpError.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpReply.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetPermFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarDataFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsCategory.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsWorkflow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlDateFmt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlEdmGetVarDataFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbAutoAdd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mhStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlGroupID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moMembers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moSysPerms.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mpoGroup.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupDataFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbAutoAdd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mhStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlGroupID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlSysRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~moMembers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mpoGroup.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupSetting.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsItemName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsUserName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmIncRevFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmInstallFileFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemGenerationFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemLinkType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mbsConfiguration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mhResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mlEdmRefFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moNamePathOrID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moParentNamePathOrItemID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLangCode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLanguage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLaunchSearchFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLibVer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicenseType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~mlUserCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mbsCaption.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meColType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meVarType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlEdmListColFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlVariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlWidth.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbHasLockRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbLocalOverwrittenVersionObsolete.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockComputer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockViewID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsRevisionName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLocalVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLockProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlParam.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moColumnData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moCurrentState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFileFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockComputer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsRevisionName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLocalVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlParam.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moColumnData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moCurrentState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolderFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlParam.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~moColumnData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildRefVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRetFileFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLockFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuStrType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMsgType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mhResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~moObjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mpoObject.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlX.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlY.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmProgressType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawRefFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsIncludePath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlBottom.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlLeft.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlRight.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlTop.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemProperty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsChildCfgName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsParentCfgName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mhResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlChildFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlVarID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~moValue.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefreshFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRepaintType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveAction.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveReason.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsComponentName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlComponentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlEdmRevComponentFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlInitialCounter.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlRecipientID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponentFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mbsComponentName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mlComponentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mbsComponentName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mlCounter.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mhError.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mlFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsRevNoName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mlRevNoID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRightFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSearchToken.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlParentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlDocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlProjID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlGetVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLatestVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLocalVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~VersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefDocumentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefVersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStateFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~meOwnerType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlEdmRightFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlOwnerID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlStateID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysPerm.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysRightFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mbsTaskName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mlTaskID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mllShortTaskInfoFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsMenuString.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsStatusBarHelp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlCmdID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlEdmMenuFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mbsConfiguration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlParentID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mbsPageName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mlPageHwnd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mpoPageImpl.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~meOwnerType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlEdmRightFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlOwnerID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlTransitionID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionRightFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockBuildTreeFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsConfigName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsVarName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlDocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlVarID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEvent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEventMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFileListFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpReply.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockStatusFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefNewPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefOldPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsColumnView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsCompleteName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsEmail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsInitials.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsPassword.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mhStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~moSysPerms.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mpoUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataExFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCellPhone.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCompleteName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsEmail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsInitials.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPhone.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPicturePath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPresenceNote.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsUserData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite1.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlEdmUserDataExFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsColumnView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsCompleteName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsEmail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsInitials.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsPassword.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mhStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlSysRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mpoUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserPictureFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserSetting.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUtility.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarOp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~mlEdmVarValFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moValue.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moVarIDorName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mbsVariableName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~meType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlEdmVariableFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlVariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mpoAttributes.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVaultType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbLoggedIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsViewID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_fields.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateIcon.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsWorkflowName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesID2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesPath2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesClipboard.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowEditReferencesDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~GetAddInInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5~DrawToolbarButton.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~AddAddIns.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~GetAddInInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetAddInInfo2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetDebugAddIns.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~InstallDebugAddIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~RemoveDebugAddIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7~GetInstalledAddIns.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~ExtractInstalledAddIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetCAFInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetInstalledAddIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9~RemoveAddIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~BlockName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~Extensions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~Create.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPathToPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVaultToPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolderPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~CommitAdd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~SetFileNameSerNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~CreateTreeForRevoke.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~GetAvailableTransitionList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~AllowAdminToRevoke.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~SetRevokeUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4~ChangeState2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5~IncludeParentsForRevokeTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6~RunAsUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ChangeState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~Comment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~CreateTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~GetFileList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~SetAux.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2~ShowWarningDlg2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3~GetCommitErrors.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~CommitDelete.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ComputePermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowCommitErrorsDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowWarningDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelection.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelectionEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~CreateTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~FileCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFileList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2~AddSelection2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~AddSelection.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~CreateTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~DestFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~GenerateItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate~UpdateReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~AddFileCfg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~CreateListEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~AddInternalComponent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~GetReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4~GetFiles2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~CreateList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetColumnSetNames.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFolders.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetAllRefVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetRefVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~SetRefVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2~GetStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~AddSelection.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~Comment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~CreateTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~GetFileList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~UnlockFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~CommitUpdate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetFolderVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~Commit.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetAux.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Draw.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfoSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Height.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~SaveBmp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Width.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2~IsVirtual.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetItemID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetPathName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetTreeLevel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~IsLocked.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~CanSeeBomLayout.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~GetBomLayouts2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~AddSWBom.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~CreateEmptySWBom.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr~GetBomLayouts.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2~InsertRow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3~SaveToCSV.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4~Rename.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~Commit.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetColumns.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetRows.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~SetRows.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~ChangeState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOut.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOutUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~Delete.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~FileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetVersions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~IsCheckedOut.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~MsgBox.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~Resolve.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgress.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgressRange.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetStatusMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~ChangeMinorProgressVisibility.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorMax.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorProgress.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetModifiedFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressPos.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressRange.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetStatusMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControl.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControlID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetFirstControlPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetNextControl.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6~CardType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7~GetAllControls.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ControlType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetButtonCommand.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetParentInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetValidation.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsMultiLine.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsReadOnly.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ShowInPreview.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~VariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6~UpdatesAllConfigurations.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7~GetControlVariableList.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardWindow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~SaveData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~ShowWindow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61~SetFocus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63~Update.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~IsFocusOnDataCard.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~SetFlagIsFocusOnDataCard.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6~OnCancel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetCtrlData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetDefaultValueComponent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~OnAddInInput.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetCtrlData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetModifiedFlag.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6~Description.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetFirstCategoryPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetNextCategory.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2~IgnoreToolboxFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3~UseAutoClearCacheOption.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFileByPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~CommitClear.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddCmd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddHook.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddToolbarImage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6~AddVaultViewTab.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode~GetProperty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Get.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Set.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Type.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindKeys.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindValues.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetFirstPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetNextAssoc.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongRemoveAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongSetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongTestAndSetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~RemoveDictionary.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindKeys.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindValues.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetFirstPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetNextAssoc.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringRemoveAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringSetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringTestAndSetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~AddReference.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetFirstRefPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetNextRef.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~RemoveReference.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~AddReference2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~GetNextRef2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~AddReference3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~GetShowInBOM.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~SetShowInBOM.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVar2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVarAsText.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~Flush.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetThumbnail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetUpdateVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~StoreValuesFromDatabase.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6~GetVarFromDb.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GenerateDefaultValues.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetSerNoVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetVersionVars.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8~CloseFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9~SetValueVariables.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~CreateLabel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFileCopy.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstLabelPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstRevisionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstVersionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextLabel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~LabelCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~RevisionCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~Rollback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~VersionCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6~Rollback2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7~Rollback3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Count.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Current.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetAt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetEnumerator.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~MoveNext.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Reset.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10~ChangeState2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11~PrivateStateFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12~GetLocalVersionNo2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~ChangeState3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~GetThumbnail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~GenerateDefaultConfigValues.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~LockedOnViewID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15~GetThumbnail2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16~CreateLabel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17~HasCutlistItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18~GetThumbnail3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ChangeState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetConfigurations.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetEnumeratorVariable.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFileCopy.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFirstFolderPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalRevisionName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalVersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetNextFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetReferenceTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetRevisionGeneratorInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IncrementRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsKindOf.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsLocked.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedOnComputer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ObjectType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Refresh.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Rename.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UndoLockFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Vault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Category.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~CategoryID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Move.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~RenameEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetComputedBOM.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetDerivedBOMs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~NeedsRegeneration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~FileType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~GenerateDefaultValuesForNewConfiguration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9~GetLocalFileSize2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Clear.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~GetPropt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Result.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SetPropt.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~ShowFindUI.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SilentFind.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10~CreateCardView2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~GetDeletedItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~RecoverDeletedItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12~SetFileNameSerNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13~DestroyDeletedItems2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFileShared.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateCardView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateFolderPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateLabel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCard.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCardID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstFilePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstLabelPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstSubFolderPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextLabel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextSubFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetSubFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRightsEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~IsKindOf.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~LocalPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ObjectType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ParentFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Refresh.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Vault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~AddFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Move.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Rename.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7~DestroyDeletedItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~AddFile2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9~HasRenameRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~Clear.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetCardSource.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetGroupRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetUserRights.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Init.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Show.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~ReportFailureEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~Reset.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~IsCancelPressed.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~SetProgressMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ConfirmReplace.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~LogMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressBegin.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressEnd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressStep.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ReportFailure.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2~Rollback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetEventDescription.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetSortedHistory.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~CommitUpdates.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateRevisionComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateVersionComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~GetHistory.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~GetPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Paint.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Reposition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetFirstMessagePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetNextMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~SendMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~GetReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~ItemDescriptiveName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~UpdateReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Comment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFilePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFolderPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetVersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Time.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~User.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~UserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~ChangeComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Delete.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Rename.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~Compare.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetButtonImages.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetString.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetToolbarItemIDs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnMenuItem.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnUpdateUI.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6~GetItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7~OnMenuItem2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Body.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Date.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~IsRead.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~MessageType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Remove.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Subject.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~IsKindOf.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ObjectType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Refresh.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Vault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~Clone.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~IsNull.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Close.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~GetReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Open.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~UpdateReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2~GetUpdatedPaths.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer~GetItems.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetProperty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetRefs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~SetProperty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10~GetFirstChildPosition4.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~File.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FileID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Folder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FoundPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetCustomData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstChildPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstParentPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextChild.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextParent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~IsLocked.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedByUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedInFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedOnComputer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~ReferencedAs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~SetCustomData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionLocal.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionRef.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6~RefCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~EdmRefFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstChildPosition2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstParentPosition2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8~RefCountEdited.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~GetFirstChildPosition3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~RefConfiguration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~GetFileCopy.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Rollback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Time.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~User.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~UserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Version.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~VersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6~Rollback2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7~Rollback3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberComponents2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumbers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_BumpRevisions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_ReferenceCheck.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~Commit.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~GetRevisionNumberComponents.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~IncrementRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~SetRevisionCounters.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~ColNr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~RowNr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~Text.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~ColNr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~CustomPropName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Flags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Type.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Width.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ComponentRep.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Configuration.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~DocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ProjectID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~RowNr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Version.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteColumn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteRow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetCell.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumnsCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRowsCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~IncrementNumber.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertColumn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertRow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefCfgs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefDocID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~SheetName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~StartNumber.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~TableType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10~GetFirstFavoriteResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~AddVariable.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Clear.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FileName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFolders.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindHistoricStates.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindLockedFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindUnlockedFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetFirstResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetNextResult.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Recursive.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~StartFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~State.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~VersionComment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~GetToken.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~SetToken.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~GetMenuInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~LaunchApp.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~AddVariable2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginAND.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginOR.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndAND.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndOR.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~AddMultiVariableCondition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~GetSyntaxErrors.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedOnComputer.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~ParentFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Path.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~StateName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Version.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~FileSize2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnValues.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnsInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AddTail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AllInSameFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~Count.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetHeadPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetNext.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~IsEmpty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~AddTail2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~GetNext2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6~GenerateSerNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~AllocSerNoValue.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~GetSerialNumberNames.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8~SetSerNoNextCounterVal.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Rollback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Value.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstFilePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstTransitionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~IconName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6~WorkflowID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7~GetRect.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~AddTail.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~Count.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetHeadPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetNext.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~IsEmpty.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetValEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~ID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~InstanceGUID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressPos.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressRange.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetStatus.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetValEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskGUID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~GetTasks.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~RunTask.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~AddInName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~FormName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetMenuCmds.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSetupPages.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetValEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~IsScheduled.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~RetryCount.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetMenuCmds.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSel.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSetupPages.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetValEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskGUID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TimeoutInSeconds.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~UserName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53~RunEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetIconExtension.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetMenuString.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~Run.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6~GetTemplateFixedFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetFirstTemplatePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetNextTemplate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10~Authentication.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~CheckPermission.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromStateID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToStateID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6~WorkflowID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetArrowVertices.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetRect.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8~CheckProjectPermission.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~GetParallelTransitionInfo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~HideIfParallelSiblingTransitionUsed.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~TransitionType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~UserPartOfTransitionRoles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~MsgBox.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressBegin.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressEnd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStep.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStepEvent.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~AddFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~ShowDlg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~Email.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~GetUserDataEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~SetUserDataEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11~SetSettingsVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~HasSysRight.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~IsLoggedIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~SendMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~FullName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~Initials.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~UserData.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7~HasSysRightEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8~GetGroupMemberships.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9~GetGroupMembershipsInFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetFirstUserPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetNextUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~HasSysRight.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~SendMsg.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~AddMembers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~HasSysRightEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7~AddMembersWithFolders.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8~RemoveMembers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9~SetSettingsVar.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10~AddUsers3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstLoggedInUserPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserGroupPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetLoggedInUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextLoggedInUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUserGroup.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUserGroup.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddGroups.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddUsers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddGroups2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddUsers2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~GetFolderPermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveGroups.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveUsers.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~SetFolderPermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~CreateUserPicture.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~ShowUserPopup.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetStatePermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetTransitionPermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetStatePermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetTransitionPermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~Flags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetFirstAttributePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetNextAttribute.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~VariableType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~EditVariables.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetFirstVariablePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetNextVariable.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetVariable.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6~AddVariables.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7~GetDrawingPropSheetAttributes.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetFirstAttributePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetNextAttribute.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetValue.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~VariableID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableFlags.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10~CreateCardViewEx2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~BrowseForFolder2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVault.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVaultView.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorMessage.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorName.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLicense.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLoggedInWindowsUserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~InstallLicense.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~LogInWindowsUser.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~CreatePluginMenu2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~InstallFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13~LoginEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14~InstallLicense2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15~GetClientLog.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16~GetVaultType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17~IgnoreSecondaryDatabaseConnection.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18~MinimumSupportedClientSP.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~CopyTree.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~GetRevisionTableSettings.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~UpdateRevTableWithSetRevCmd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetArchiveServerLog.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetFiles.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetTransitionCommentPermissions.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21~CreateSearch2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ADRunSync.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ClearLogs.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetColumnSets.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetCurrentColumnSet.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~SetColumnSetID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFile.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CommandID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreatePluginMenu.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreateSearch.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetDictionary.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetErrorString.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFileFromPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFolderFromPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetObject.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVaultNameFromPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~IsLoggedIn.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Language.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Login.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~LoginAuto.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~MsgBox.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Name.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RefreshFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderPath.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SetAddInWnd.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SilentMode.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~VerifyVersion.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~CreateCardViewEx.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~GetCardID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7~CreateUtility.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~ClientType.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetVaultViews.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetWin32Window.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~OpenContainingFolder.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9~GetObjects.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Comment.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileSize.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFileCopy.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFirstRevisionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetNextRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~HasRevision.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Rollback.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~User.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~UserID.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionDate.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionNo.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6~Rollback2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7~FileSize2.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8~Rollback3.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstStatePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstTransitionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~InitialState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_properties.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~Description.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstStatePosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstTransitionPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetTransition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~InitialState.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_members.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_methods.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetFirstWorkflowPosition.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetNextWorkflow.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace.html create mode 100644 documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace_hierarchy.html create mode 100644 documentation/api_extracted/EditAuthor.gif create mode 100644 documentation/api_extracted/ExecuteTemplate.gif create mode 100644 documentation/api_extracted/Execute_Template_2_Example_CSharp.htm create mode 100644 documentation/api_extracted/Execute_Template_2_Example_VBNET.htm create mode 100644 documentation/api_extracted/Execute_Template_Example_CSharp.htm create mode 100644 documentation/api_extracted/Execute_Template_Example_VBNET.htm create mode 100644 documentation/api_extracted/FavoriteSearch.gif create mode 100644 documentation/api_extracted/Favorite_Search_Example_CSharp.htm create mode 100644 documentation/api_extracted/Favorite_Search_Example_VBNET.htm create mode 100644 documentation/api_extracted/FileInfo.gif create mode 100644 documentation/api_extracted/FileTypes.gif create mode 100644 documentation/api_extracted/FileVarData.gif create mode 100644 documentation/api_extracted/FileVersionInformation.gif create mode 100644 documentation/api_extracted/FindCardsDescription.gif create mode 100644 documentation/api_extracted/FindKeyRange.gif create mode 100644 documentation/api_extracted/FindRevisions.gif create mode 100644 documentation/api_extracted/FindStringValues.gif create mode 100644 documentation/api_extracted/FindUsers.gif create mode 100644 documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_CSharp.htm create mode 100644 documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_VBNET.htm create mode 100644 documentation/api_extracted/Find_Revisions_Using_Component_Example_CSharp.htm create mode 100644 documentation/api_extracted/Find_Revisions_Using_Component_Example_VBNET.htm create mode 100644 documentation/api_extracted/Find_Users_Example_CSharp.htm create mode 100644 documentation/api_extracted/Find_Users_Example_VBNET.htm create mode 100644 documentation/api_extracted/FolderPermissions.gif create mode 100644 documentation/api_extracted/GenConfigValues.gif create mode 100644 documentation/api_extracted/Generate_Config_Values_Example_CSharp.htm create mode 100644 documentation/api_extracted/Generate_Config_Values_Example_VBNET.htm create mode 100644 documentation/api_extracted/GetAndRunTask.gif create mode 100644 documentation/api_extracted/GetCardControls.gif create mode 100644 documentation/api_extracted/GetCardVars.gif create mode 100644 documentation/api_extracted/GetCategories.gif create mode 100644 documentation/api_extracted/GetFileRef.gif create mode 100644 documentation/api_extracted/GetFilesInState.gif create mode 100644 documentation/api_extracted/GetHistories.gif create mode 100644 documentation/api_extracted/GetMessages.gif create mode 100644 documentation/api_extracted/GetParentRefs.gif create mode 100644 documentation/api_extracted/GetThumbnail.gif create mode 100644 documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Card_Control_Info_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Card_Control_Info_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Categories_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Categories_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_File_Info_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_Info_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_File_References_for_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_References_for_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_File_Thumbnail_Handle_by_File_Version_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_Thumbnail_by_Version_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_Variable_Data_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_Variable_Data_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_File_Version_Information_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_File_Version_Information_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Files_State_Transitions_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Files_State_Transitions_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Files_in_State_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Files_in_State_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Histories_of_Files_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Histories_of_Files_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Menu_Command_Items_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Menu_Command_Items_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Messages_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Messages_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Parent_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Parent_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_and_Run_a_Task_Add-in_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_and_Set_Item_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_and_Set_Item_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_CSharp.htm create mode 100644 documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_VBNET.htm create mode 100644 documentation/api_extracted/GettingStarted-epdmapi.html create mode 100644 documentation/api_extracted/GraphWorkflow.gif create mode 100644 documentation/api_extracted/Graph_Workflow_Example_CSharp.htm create mode 100644 documentation/api_extracted/Graph_Workflow_Example_VBNET.htm create mode 100644 documentation/api_extracted/HelloWorld.gif create mode 100644 documentation/api_extracted/InitialRevision.gif create mode 100644 documentation/api_extracted/ItemRefs.gif create mode 100644 documentation/api_extracted/Items.htm create mode 100644 documentation/api_extracted/KeepWindowInfront.htm create mode 100644 documentation/api_extracted/LoadAddin.gif create mode 100644 documentation/api_extracted/Load_Addin_Example_CSharp.htm create mode 100644 documentation/api_extracted/Load_Addin_Example_VBNET.htm create mode 100644 documentation/api_extracted/LogInVaultDisplayInfo.gif create mode 100644 documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_CSharp.htm create mode 100644 documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_VBNET.htm create mode 100644 documentation/api_extracted/MenuCommands.gif create mode 100644 documentation/api_extracted/NewDotNetAddRef.gif create mode 100644 documentation/api_extracted/NewDotNetAddRefDlg.gif create mode 100644 documentation/api_extracted/NewDotNetOpen.gif create mode 100644 documentation/api_extracted/NewDotNetProjDlg.gif create mode 100644 documentation/api_extracted/NewDotNetProjMenu.gif create mode 100644 documentation/api_extracted/NewDotNetRefDlg.gif create mode 100644 documentation/api_extracted/NewDotNetRefMenu.gif create mode 100644 documentation/api_extracted/NotWritten.png create mode 100644 documentation/api_extracted/Notify_User_When_File_Changes_State_Example_CSharp.htm create mode 100644 documentation/api_extracted/Notify_User_When_File_Changes_State_Example_VBNET.htm create mode 100644 documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_CSharp.htm create mode 100644 documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_VBNET.htm create mode 100644 documentation/api_extracted/PreviewBitmap.gif create mode 100644 documentation/api_extracted/ReleaseNotes-epdmapi.html create mode 100644 documentation/api_extracted/ReturnCodes.htm create mode 100644 documentation/api_extracted/Revision.gif create mode 100644 documentation/api_extracted/RevokeTransitions.gif create mode 100644 documentation/api_extracted/Roll_Back_Revisions_Example_CSharp.htm create mode 100644 documentation/api_extracted/Roll_Back_Revisions_Example_VBNET.htm create mode 100644 documentation/api_extracted/SWHeader.png create mode 100644 documentation/api_extracted/Schedule_Task_Addin_Example_CSharp.htm create mode 100644 documentation/api_extracted/Schedule_Task_Addin_Example_VBNET.htm create mode 100644 documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_CSharp.htm create mode 100644 documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_VBNET.htm create mode 100644 documentation/api_extracted/SearchSyntax-epdmapi.html create mode 100644 documentation/api_extracted/SecondCommand.gif create mode 100644 documentation/api_extracted/SendMessage.gif create mode 100644 documentation/api_extracted/Send_Message_to_Users_Example_CSharp.htm create mode 100644 documentation/api_extracted/Send_Message_to_Users_Example_VBNET.htm create mode 100644 documentation/api_extracted/SerialNumbers.gif create mode 100644 documentation/api_extracted/Set_Initial_Revision_Example_CSharp.htm create mode 100644 documentation/api_extracted/Set_Initial_Revision_Example_VBNET.htm create mode 100644 documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_CSharp.htm create mode 100644 documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_VBNET.htm create mode 100644 documentation/api_extracted/SetupPage.png create mode 100644 documentation/api_extracted/SetupPageResult.png create mode 100644 documentation/api_extracted/ShowTransitions.gif create mode 100644 documentation/api_extracted/StandAloneApp.htm create mode 100644 documentation/api_extracted/StandAloneAppCSharp.htm create mode 100644 documentation/api_extracted/StandAloneAppCpp.htm create mode 100644 documentation/api_extracted/StandardTaskAddIn.htm create mode 100644 documentation/api_extracted/StateTransitions.gif create mode 100644 documentation/api_extracted/StringDicSearch.gif create mode 100644 documentation/api_extracted/TaskDetailsPage.png create mode 100644 documentation/api_extracted/TaskDetailsPageResult.png create mode 100644 documentation/api_extracted/TaskList.png create mode 100644 documentation/api_extracted/TaskSample.htm create mode 100644 documentation/api_extracted/TaskSample_CSharp.htm create mode 100644 documentation/api_extracted/Tasks.htm create mode 100644 documentation/api_extracted/TraverseFilesFolders.gif create mode 100644 documentation/api_extracted/Traverse_Folders_and_Files_in_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Traverse_Folders_and_Files_in_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_CSharp.htm create mode 100644 documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_VBNET.htm create mode 100644 documentation/api_extracted/Troubleshooting_Guide.htm create mode 100644 documentation/api_extracted/UpdateAtts.gif create mode 100644 documentation/api_extracted/UpdateFileRefs.gif create mode 100644 documentation/api_extracted/UpdateRefs.gif create mode 100644 documentation/api_extracted/Update_File_Raw_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Update_File_Raw_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/Update_References_Example_CSharp.htm create mode 100644 documentation/api_extracted/Update_References_Example_VBNET.htm create mode 100644 documentation/api_extracted/UserPopup.png create mode 100644 documentation/api_extracted/UsersAndGroups.gif create mode 100644 documentation/api_extracted/Using_Basic_Search_Syntax_Example_CSharp.htm create mode 100644 documentation/api_extracted/Using_Basic_Search_Syntax_Example_VBNET.htm create mode 100644 documentation/api_extracted/Using_NET_Framework_in_Addins.htm create mode 100644 documentation/api_extracted/Using_NET_Framework_in_Applications.htm create mode 100644 documentation/api_extracted/VaultUtilities.gif create mode 100644 documentation/api_extracted/Vault_Utilities_Example_CSharp.htm create mode 100644 documentation/api_extracted/Vault_Utilities_Example_VBNET.htm create mode 100644 documentation/api_extracted/Vista.htm create mode 100644 documentation/api_extracted/Welcome-epdmapi.html create mode 100644 documentation/api_extracted/WorkflowStates.gif create mode 100644 documentation/api_extracted/advancedmenu.gif create mode 100644 documentation/api_extracted/assydlg.gif create mode 100644 documentation/api_extracted/assyview.gif create mode 100644 documentation/api_extracted/collapse.gif create mode 100644 documentation/api_extracted/contextmenu.gif create mode 100644 documentation/api_extracted/copycode.gif create mode 100644 documentation/api_extracted/copycodeHighlight.gif create mode 100644 documentation/api_extracted/cppaddin.htm create mode 100644 documentation/api_extracted/cppaddin_newobj.gif create mode 100644 documentation/api_extracted/cppaddin_newobj2.gif create mode 100644 documentation/api_extracted/cppaddin_newobj3.gif create mode 100644 documentation/api_extracted/cppaddin_newobj4.gif create mode 100644 documentation/api_extracted/cppaddin_newobj5.gif create mode 100644 documentation/api_extracted/cppaddin_newobj6.gif create mode 100644 documentation/api_extracted/cppaddin_newproj.gif create mode 100644 documentation/api_extracted/cppaddin_newproj2.gif create mode 100644 documentation/api_extracted/cppaddin_resource.gif create mode 100644 documentation/api_extracted/cppmenuitem.htm create mode 100644 documentation/api_extracted/cppreactor.htm create mode 100644 documentation/api_extracted/csharpcardbutton.htm create mode 100644 documentation/api_extracted/csharpmenuitem.htm create mode 100644 documentation/api_extracted/csharpreactor.htm create mode 100644 documentation/api_extracted/csharpserno.htm create mode 100644 documentation/api_extracted/custombutton_cold.gif create mode 100644 documentation/api_extracted/custombutton_hot.gif create mode 100644 documentation/api_extracted/defvalserno.gif create mode 100644 documentation/api_extracted/dotnetimages/Event.gif create mode 100644 documentation/api_extracted/dotnetimages/InternalConstructor.gif create mode 100644 documentation/api_extracted/dotnetimages/InternalEvent.gif create mode 100644 documentation/api_extracted/dotnetimages/InternalField.gif create mode 100644 documentation/api_extracted/dotnetimages/InternalMethod.gif create mode 100644 documentation/api_extracted/dotnetimages/InternalProperty.gif create mode 100644 documentation/api_extracted/dotnetimages/Method.gif create mode 100644 documentation/api_extracted/dotnetimages/PrivateConstructor.gif create mode 100644 documentation/api_extracted/dotnetimages/PrivateEvent.gif create mode 100644 documentation/api_extracted/dotnetimages/PrivateField.gif create mode 100644 documentation/api_extracted/dotnetimages/PrivateMethod.gif create mode 100644 documentation/api_extracted/dotnetimages/PrivateProperty.gif create mode 100644 documentation/api_extracted/dotnetimages/Property.gif create mode 100644 documentation/api_extracted/dotnetimages/Protected InternalConstructor.gif create mode 100644 documentation/api_extracted/dotnetimages/Protected InternalEvent.gif create mode 100644 documentation/api_extracted/dotnetimages/Protected InternalField.gif create mode 100644 documentation/api_extracted/dotnetimages/Protected InternalMethod.gif create mode 100644 documentation/api_extracted/dotnetimages/Protected InternalProperty.gif create mode 100644 documentation/api_extracted/dotnetimages/ProtectedConstructor.gif create mode 100644 documentation/api_extracted/dotnetimages/ProtectedEvent.gif create mode 100644 documentation/api_extracted/dotnetimages/ProtectedField.gif create mode 100644 documentation/api_extracted/dotnetimages/ProtectedMethod.gif create mode 100644 documentation/api_extracted/dotnetimages/ProtectedProperty.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicConstructor.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicEvent.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicField.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicMethod.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicOperator.gif create mode 100644 documentation/api_extracted/dotnetimages/PublicProperty.gif create mode 100644 documentation/api_extracted/dotnetimages/collapse.gif create mode 100644 documentation/api_extracted/dotnetimages/copycode.gif create mode 100644 documentation/api_extracted/dotnetimages/copycodeHighlight.gif create mode 100644 documentation/api_extracted/dotnetimages/drpdown.gif create mode 100644 documentation/api_extracted/dotnetimages/drpdown_orange.gif create mode 100644 documentation/api_extracted/dotnetimages/expand.gif create mode 100644 documentation/api_extracted/dotnetimages/gradient.png create mode 100644 documentation/api_extracted/dotnetimages/isnew.gif create mode 100644 documentation/api_extracted/dotnetimages/static.gif create mode 100644 documentation/api_extracted/drpdown.gif create mode 100644 documentation/api_extracted/drpdown_orange.gif create mode 100644 documentation/api_extracted/epdmapi.hhc create mode 100644 documentation/api_extracted/epdmapi.hhk create mode 100644 documentation/api_extracted/expand.gif create mode 100644 documentation/api_extracted/flash/expressinstall.swf create mode 100644 documentation/api_extracted/gradient.png create mode 100644 documentation/api_extracted/hs-caution.gif create mode 100644 documentation/api_extracted/hs-collapsed.gif create mode 100644 documentation/api_extracted/hs-enlarge.gif create mode 100644 documentation/api_extracted/hs-expanded.gif create mode 100644 documentation/api_extracted/hs-heading-collapsed.gif create mode 100644 documentation/api_extracted/hs-heading-expanded.gif create mode 100644 documentation/api_extracted/hs-note.gif create mode 100644 documentation/api_extracted/hs-shrink.gif create mode 100644 documentation/api_extracted/hs-simpletableft.png create mode 100644 documentation/api_extracted/hs-simpletabright.png create mode 100644 documentation/api_extracted/hs-tip.gif create mode 100644 documentation/api_extracted/images/collapse.gif create mode 100644 documentation/api_extracted/images/copycode.gif create mode 100644 documentation/api_extracted/images/copycodeHighlight.gif create mode 100644 documentation/api_extracted/images/drpdown.gif create mode 100644 documentation/api_extracted/images/drpdown_orange.gif create mode 100644 documentation/api_extracted/images/expand.gif create mode 100644 documentation/api_extracted/images/gradient.png create mode 100644 documentation/api_extracted/images/hs-caution.gif create mode 100644 documentation/api_extracted/images/hs-collapsed.gif create mode 100644 documentation/api_extracted/images/hs-enlarge.gif create mode 100644 documentation/api_extracted/images/hs-expanded.gif create mode 100644 documentation/api_extracted/images/hs-heading-collapsed.gif create mode 100644 documentation/api_extracted/images/hs-heading-expanded.gif create mode 100644 documentation/api_extracted/images/hs-note.gif create mode 100644 documentation/api_extracted/images/hs-shrink.gif create mode 100644 documentation/api_extracted/images/hs-simpletableft.png create mode 100644 documentation/api_extracted/images/hs-simpletabright.png create mode 100644 documentation/api_extracted/images/hs-tab-active-leftend.png create mode 100644 documentation/api_extracted/images/hs-tab-active-rightend.png create mode 100644 documentation/api_extracted/images/hs-tab-leftend.png create mode 100644 documentation/api_extracted/images/hs-tab-rightend.png create mode 100644 documentation/api_extracted/images/hs-tip.gif create mode 100644 documentation/api_extracted/main.htm create mode 100644 documentation/api_extracted/mybutton.gif create mode 100644 documentation/api_extracted/popupmenu.gif create mode 100644 documentation/api_extracted/refmsg.gif create mode 100644 documentation/api_extracted/script/dotnet2005.js create mode 100644 documentation/api_extracted/script/helpstudio.js create mode 100644 documentation/api_extracted/script/hs-common.js create mode 100644 documentation/api_extracted/script/hs-enlargeimage.js create mode 100644 documentation/api_extracted/script/hs-expandcollapse.js create mode 100644 documentation/api_extracted/script/hs-heading-expandcollapse.js create mode 100644 documentation/api_extracted/script/hs-tabstrip.js create mode 100644 documentation/api_extracted/script/languagefilter.js create mode 100644 documentation/api_extracted/script/swfobject.js create mode 100644 documentation/api_extracted/serno.gif create mode 100644 documentation/api_extracted/slntree.gif create mode 100644 documentation/api_extracted/stylesheets/dotnet2005.css create mode 100644 documentation/api_extracted/stylesheets/dotnet2005.css_TEST_FONTS create mode 100644 documentation/api_extracted/stylesheets/helpstudio.css create mode 100644 documentation/api_extracted/stylesheets/hs-boxes.css create mode 100644 documentation/api_extracted/stylesheets/hs-expandcollapse.css create mode 100644 documentation/api_extracted/stylesheets/hs-heading-expandcollapse.css create mode 100644 documentation/api_extracted/stylesheets/hs-simpletab.css create mode 100644 documentation/api_extracted/stylesheets/hs-tabstrip.css create mode 100644 documentation/api_extracted/stylesheets/languagefilter.css create mode 100644 documentation/api_extracted/tb_cold.gif create mode 100644 documentation/api_extracted/tb_hot.gif create mode 100644 documentation/api_extracted/tb_inexplorer.gif create mode 100644 documentation/api_extracted/tb_inexplorer_hot.gif create mode 100644 documentation/api_extracted/txtcard.gif create mode 100644 documentation/api_extracted/txtpropserno.gif create mode 100644 documentation/api_extracted/vb6projprops.gif create mode 100644 documentation/api_extracted/vbaddin.htm create mode 100644 documentation/api_extracted/vbaddin_newdll.gif create mode 100644 documentation/api_extracted/vbaddin_selinterface.gif create mode 100644 documentation/api_extracted/vbapp_newexe.gif create mode 100644 documentation/api_extracted/vbapp_refs.gif create mode 100644 documentation/api_extracted/vbcardbutton.htm create mode 100644 documentation/api_extracted/vbmenuitem.htm create mode 100644 documentation/api_extracted/vbreactor.htm create mode 100644 documentation/api_extracted/vbresedit.gif create mode 100644 documentation/api_extracted/vbserno.htm create mode 100644 documentation/api_extracted/vermsg.gif create mode 100644 documentation/api_extracted/xref.gif create mode 100644 helpers/batch_copy_tree.py create mode 100644 helpers/batch_workflows_paths.py create mode 100644 helpers/db_helper.py create mode 100644 helpers/queries/DWS_GET_VV-57.sql create mode 100644 helpers/queries/DWS_VV-57_FullList.sql create mode 100644 helpers/queries/Find_Duplicate_Rows.sql create mode 100644 helpers/queries/Get_All_VV_Per_DocID.sql create mode 100644 helpers/queries/INSERT_VV50_Copy.sql create mode 100644 helpers/samples/README.md create mode 100644 helpers/samples/sample_filenames.csv create mode 100644 helpers/samples/sample_full_paths.csv create mode 100644 helpers/samples/sample_part_numbers.csv create mode 100644 helpers/test_batch_api.py create mode 100644 migrate_filedata.py create mode 100644 migrate_folderdata.py create mode 100644 requirements.txt create mode 100644 rollback_filedata.py diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..320d533 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,11 @@ +{ + "permissions": { + "allow": [ + "WebSearch", + "WebFetch(domain:help.solidworks.com)", + "WebFetch(domain:www.cadoverflow.com)", + "WebFetch(domain:forum.solidworks.com)", + "WebFetch(domain:3dswym.3dexperience.3ds.com)" + ] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb8c809 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# Secrets +config.json + +# Python bytecode +__pycache__/ +*.pyc +*.pyo + +# Logs (anywhere in the tree) +logs/ +*.log + +# Generated migration outputs (timestamped) +mapping_documents_filedata_*.csv +mapping_variables_filedata_*.csv +filedata_migration_*.log + +# Generated helper outputs (timestamped) +helpers/failed_transitions_*.txt +helpers/not_available_*.txt +helpers/not_found_*.txt +helpers/has_vv50_*.txt +helpers/failed_copies_*.txt + +# Environment-specific input data (kept locally, not committed) +helpers/*.csv +helpers/*.xlsx +# ...but keep the reference/sample files +!helpers/samples/ +!helpers/samples/*.csv + +# IDE / OS +.vscode/ +.idea/ +.DS_Store +Thumbs.db diff --git a/BATCH_NOTES.md b/BATCH_NOTES.md new file mode 100644 index 0000000..a159641 --- /dev/null +++ b/BATCH_NOTES.md @@ -0,0 +1,202 @@ +# Batch Workflow Transition — Implementation Notes + +## The Problem + +`IEdmFile5::ChangeState(toStateID, folderID, comment, flags)` only accepts a **destination state ID**. +When a vault has multiple transitions leading from State A → State B, the API picks one arbitrarily. + +In this project, there were 3 transitions from "Under Editing" → "Approved" (IDs 8, 83, 268). +The API consistently selected ID 8 or 83, both of which had folder-location conditions that failed +silently — the call returned no error but the file never moved states. + +--- + +## The Solution: `IEdmFile13::ChangeState3` + +The PDM API provides a newer method that accepts **both** a destination state ID and a **specific transition ID**: + +``` +void ChangeState3( + ref object poStateIdOrName, // destination state ID or name + ref object poTransitionIdOrName, // specific transition ID or name ↠key parameter + int lFolderID, + string bsComment, + int lParentWnd, + int lEdmStateFlags, + string bsPasswd +) +``` + +By passing the specific transition ID (268, the admin "AA" transition with no conditions), +the ambiguous transitions are bypassed entirely. + +--- + +## Why ChangeState3 Was Difficult to Call + +`ChangeState3` is marked `[restricted]` in the PDM type library. This means: + +- It **has** a dispatch ID (DISPID 48) in the type library. +- The COM object's `IDispatch::Invoke` rejects it with **"Member not found"** regardless of how + it is called through normal IDispatch. +- It can **only** be called via the COM vtable directly — not through Python's win32com/IDispatch path. + +### Why `[restricted]` Was Used + +The `[restricted]` flag in COM/IDL signals: *"this method is for vtable callers (C++/.NET), not +scripting clients (VBA, VBScript, Python via IDispatch)."* + +The primary reason is the parameter types. `ChangeState3` takes `VARIANT*` (by-reference variants), +which are awkward to marshal cleanly through `IDispatch::Invoke`. Rather than risk broken behavior +from scripting clients passing wrong types, the method was restricted to vtable-only access. + +### Who the API Was Designed For + +SolidWorks PDM's primary API consumers are C++ and .NET: +- In **C++**, vtable methods are called directly with no additional effort. +- In **.NET**, `ref object` parameters map naturally to `VARIANT*` and the interop layer handles + everything transparently. +- **Python via win32com** was never a first-class target. The `[restricted]` flag is invisible to + C++/.NET developers and so was likely never considered a problem. + +### Why There Is No Simpler Alternative + +`ChangeState` (original, no number) came first and was widely used, so it was kept for +compatibility. `ChangeState3` was added as the correct replacement for cases involving multiple +transitions to the same state, but was never made scripting-accessible. This is a common rough +edge with older Windows COM APIs designed primarily for C++. + +--- + +## How We Called It From Python + +### Step 1 — Find the vtable offset + +Inspected the win32com gen_py stub file generated by `EnsureDispatch("ConisioLib.EdmVault")`: + +``` +C:\Users\youngwa\AppData\Local\Temp\gen_py\3.12\ + 5FA2C692-8393-4F31-9BDB-05E6F807D0D3x0x5x27\IEdmFile13.py +``` + +That file contains `IEdmFile13_vtables_` which lists: + +```python +IEdmFile13_vtables_ = [ + (('ChangeState3', ...), 48, (..., 432, ...), )), +] +``` + +- **DISPID**: 48 +- **oVft (vtable byte offset)**: 432 → slot 54 + - IUnknown: slots 0–2 (3 methods) + - IDispatch: slots 3–6 (4 methods) + - Base interface methods (IEdmObject5 … IEdmFile12): slots 7–53 (47 methods) + - **ChangeState3**: slot 54 + +### Step 2 — Find the IEdmFile13 interface IID + +Also from `IEdmFile13.py`: + +```python +class IEdmFile13(DispatchBaseClass): + CLSID = IID('{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}') +``` + +**IEdmFile13 IID: `{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}`** + +### Step 3 — Define the interface in comtypes + +Built a `comtypes` class inheriting from `IDispatch`, with 47 placeholder methods to occupy +slots 7–53, then `ChangeState3` at slot 54: + +```python +class _IEdmFile13_CT(CT_IDispatch): + _iid_ = GUID("{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}") + _methods_ = [COMMETHOD([], HRESULT, f"_ph{i}") for i in range(47)] + [ + COMMETHOD( + [], HRESULT, "ChangeState3", + (["in"], POINTER(VARIANT), "poStateIdOrName"), + (["in"], POINTER(VARIANT), "poTransitionIdOrName"), + (["in"], c_long, "lFolderID"), + (["in"], c_wchar_p, "bsComment"), + (["in"], c_long, "lParentWnd"), + (["in"], c_long, "lEdmStateFlags"), + (["in"], c_wchar_p, "bsPasswd"), + ), + ] +``` + +### Step 4 — Extract the raw COM pointer + +Used `ctypes` to read the raw `IEdmFile13*` out of the pythoncom wrapper's memory. +CPython 64-bit stores the COM pointer at offset 16 in the Python object struct: + +```python +py_disp = file_obj._oleobj_.QueryInterface(pythoncom.MakeIID(IID_IEdmFile13)) +raw_ptr = ctypes.c_uint64.from_address(id(py_disp) + 16).value +ct_unk = ctypes.cast(raw_ptr, ctypes.POINTER(comtypes.IUnknown)) +file13 = ct_unk.QueryInterface(_IEdmFile13_CT) # properly AddRef'd +``` + +### Step 5 — Call ChangeState3 + +Constructed `VARIANT` structs (VT_I4) for the state and transition IDs, then called through +the vtable: + +```python +v_state = _make_i4_variant(to_state_id) +v_trans = _make_i4_variant(transition_id) + +file13.ChangeState3( + ctypes.byref(v_state), + ctypes.byref(v_trans), + ctypes.c_long(folder_id), + comment, + ctypes.c_long(0), + ctypes.c_long(0), + password, # PDM login password — required by this transition +) +``` + +HRESULT `0x00000000` = success. + +--- + +## How Transition IDs Are Resolved in the Batch Script + +No IDs are hardcoded. The script resolves the transition by **name** at runtime: + +```python +# In transition_file() — batch_workflows_paths.py +while not trans_pos.IsNull: + transition = current_state.GetNextTransition(trans_pos) + if transition.Name.lower() == transition_name.lower(): + target_transition = transition # .ID and .ToState.ID are both available + break +``` + +The user passes `--transition "AA"` (or whatever the transition name is), and the script passes +`target_transition.ID` directly to `ChangeState3`. This means the same script works for any +transition name, including ones where multiple transitions lead to the same destination state. + +--- + +## Key Files + +| File | Purpose | +|------|---------| +| `helpers/batch_workflows_paths.py` | Production batch script — run this | +| `helpers/test_batch_api.py` | Diagnostic/prototype used during development | +| `documentation/API_GB.chm` | PDM API reference (local copy) | + +## PDM Type Library Reference + +| Item | Value | +|------|-------| +| TypeLib GUID | `{5FA2C692-8393-4F31-9BDB-05E6F807D0D3}` | +| TypeLib version | 5.27 | +| TypeLib name | PDMWorks Enterprise 2024 Type Library | +| IEdmFile13 IID | `{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}` | +| ChangeState3 DISPID | 48 (restricted — not callable via IDispatch) | +| ChangeState3 vtable offset | 432 bytes (slot 54) | diff --git a/README.md b/README.md new file mode 100644 index 0000000..60d967b --- /dev/null +++ b/README.md @@ -0,0 +1,469 @@ +# PDM Vault Data Migration Tool + +A collection of Python scripts for migrating and managing SOLIDWORKS PDM +Professional vault data. The project began as a pair of SQL-to-SQL migration +scripts (for folder and file variable values) and has grown to include a +suite of PDM API helpers for batch workflow transitions, Copy Tree exports, +and interactive SQL tasks. + +## Overview + +The project is split into two layers: + +1. **Top-level migration scripts** — one-shot SQL migrations between source + and target PDM databases (`migrate_folderdata.py`, `migrate_filedata.py`, + `rollback_filedata.py`), plus verification utilities + (`check_var_clashing.py`, `check_paths.py`). +2. **`helpers/` toolkit** — a newer set of scripts for live vault operations + and ad-hoc SQL work: + - Batch workflow state transitions via the PDM COM API + - Batch "Copy Tree" exports + - Interactive SQL helper with named query files and preview-and-confirm + on every write + +## Prerequisites + +- Python 3.x (3.12 tested) +- SQL Server access to both source and target databases (ODBC Driver 17+) +- SOLIDWORKS PDM Professional client (for `helpers/batch_*` scripts only — + these use the local `ConisioLib.EdmVault` COM component) +- Required packages (see `requirements.txt`): + - `pyodbc` — SQL Server connections + - `pywin32` — PDM COM API via `win32com.client` / `pythoncom` + - `comtypes` — vtable-level COM calls (used for `ChangeState3`) + +Install dependencies: +```bash +pip install -r requirements.txt +``` + +## Project Structure + +``` +data_migration_project/ +├── config.json # Your real config (DB credentials, mappings) +├── config.json.template # Template for new installs — copy to config.json +├── db_utils.py # Shared SQL Server connection wrapper +├── migrate_folderdata.py # Folder/project variable value migration +├── migrate_filedata.py # File variable value migration (latest revision) +├── rollback_filedata.py # Rolls back a filedata migration +├── check_var_clashing.py # Finds variable name conflicts before migration +├── check_paths.py # Verifies folder path mapping +├── requirements.txt # Python dependencies +├── BATCH_NOTES.md # Deep-dive on PDM COM ChangeState3 internals +├── README.md # This file +│ +├── helpers/ +│ ├── batch_workflows_paths.py # Batch workflow state transitions +│ ├── batch_copy_tree.py # Batch Copy Tree export +│ ├── db_helper.py # Interactive SQL helper + tasks +│ ├── test_batch_api.py # Dev-time prototype for PDM COM bridging +│ └── queries/ # Reusable named SQL queries (.sql files) +│ +├── documentation/ # PDM API reference (.chm files) +└── logs/ # Migration log files +``` + +## Configuration Setup + +### 1. Create `config.json` + +Copy the template and fill in your real values: + +```bash +cp config.json.template config.json +``` + +The project supports both **SQL Authentication** and **Windows Authentication**: + +```json +{ + "source_db": { + "driver": "{ODBC Driver 17 for SQL Server}", + "server": "your-server", + "database": "source-database", + "username": "sql-user", + "password": "sql-password", + "trusted_connection": false + }, + "target_db": { + "driver": "{ODBC Driver 17 for SQL Server}", + "server": "your-server", + "database": "target-database", + "trusted_connection": true + } +} +``` + +- Set `trusted_connection: true` to use Windows Authentication (ignores + username/password). +- Set `trusted_connection: false` and provide `username`/`password` for SQL + Server Authentication. + +### 2. Path Mapping (for folder data) + +```json +{ + "path_mapping": { + "target_root_folder": "DWS", + "case_sensitive": false + } +} +``` + +- `target_root_folder`: Root folder name in your target vault. Source folder + paths are prepended with this folder name. + +### 3. Migration Settings + +```json +{ + "migration": { + "duplicate_handling": "ignore", + "batch_size": 500, + "commit_interval": 10, + "document_status_batch_size": 5000 + } +} +``` + +### 4. Configuration Mapping Overrides (file data migration only) + +```json +{ + "configuration_mapping_overrides": { + "165": 11250, + "167": 11359 + } +} +``` + +Required when duplicate configuration names exist in the target database. +Format: `"source_id": target_id`. + +**To find duplicates:** +```sql +SELECT ConfigurationID, ConfigurationName +FROM DocumentConfiguration +WHERE ConfigurationName IN ( + SELECT ConfigurationName + FROM DocumentConfiguration + GROUP BY ConfigurationName + HAVING COUNT(*) > 1 +) +ORDER BY ConfigurationName, ConfigurationID; +``` + +--- + +## Top-Level Migration Scripts + +### Folder Data Migration + +Migrates variable values for folders/projects (DocumentID = 1). + +```bash +python migrate_folderdata.py +``` + +**What it does:** +- Maps ProjectIDs based on folder paths +- Maps VariableIDs based on variable names +- Migrates all revisions of folder-level variable values +- Validates the migration +- Creates mapping CSV files for review + +**Output files:** +- `mapping_projects_{timestamp}.csv` +- `mapping_variables_{timestamp}.csv` +- `folderdata_migration_{timestamp}.log` +- `validation_missing_folderdata_{timestamp}.csv` (if issues) + +--- + +### File Data Migration + +Migrates variable values for files (ProjectID = 2, DocumentID != 1). + +**IMPORTANT:** Only migrates the **latest revision** of each variable for +each file configuration. + +```bash +python migrate_filedata.py +``` + +**What it does:** +- Maps VariableIDs by name, DocumentIDs by full file path, ConfigurationIDs + (with manual overrides from `config.json` if specified) +- Fetches only the latest revision per VariableID+DocumentID+ConfigurationID +- Inserts all records with `RevisionNo = 1` +- Validates the migration and emits mapping CSVs + +**You will be prompted** to confirm configuration mapping overrides before +the migration runs — review carefully. + +**Output files:** +- `mapping_variables_filedata_{timestamp}.csv` +- `mapping_documents_filedata_{timestamp}.csv` +- `filedata_migration_{timestamp}.log` +- `validation_missing_filedata_{timestamp}.csv` (if issues) +- Progress files (auto-deleted on success) + +--- + +### Rollback File Data Migration + +```bash +python rollback_filedata.py mapping_documents_filedata_YYYYMMDD_HHMMSS.csv +``` + +Reads the document mapping CSV from a previous migration and deletes all +VariableValue records for those documents from the target database. +**Shows preview and prompts for confirmation before deleting.** + +> **WARNING:** This permanently deletes data from the target database. +> Always back up first. + +--- + +## Helper Scripts (`helpers/`) + +The helpers are live-vault tools that talk to PDM directly via the COM API, +plus an interactive SQL runner. They are independent of the top-level +migration scripts and can be used any time. + +### `batch_workflows_paths.py` — Batch Workflow Transitions + +Drives `IEdmFile13::ChangeState3` against hundreds or thousands of files at +once, transitioning each through a named workflow transition. Implements +escalating-backoff retries and vault reconnect to handle PDM's in-process +DLL state corruption on large batches. + +```bash +python helpers/batch_workflows_paths.py -v "Drilling_Test" -c files.csv -t "AA" +``` + +**Options:** +- `-v, --vault` — PDM vault name +- `-c, --csv` — Path to a text/CSV file with one full vault path per line + (e.g. `C:\PDM\Drilling_Test\DWS\Parts\widget.sldprt`) +- `-t, --transition` — Name of the workflow transition (e.g. `"AA"`) +- `--comment` — Optional transition comment +- `-u, --username` — PDM username (prompts if omitted) + +**Output files:** +- `batch_workflow_paths_{timestamp}.log` — detailed log +- `failed_transitions_{timestamp}.txt` — real failures worth retrying +- `not_available_{timestamp}.txt` — files whose transition wasn't valid + (typically already in the target state from a prior run) + +For implementation details on the restricted `ChangeState3` COM method and +why it requires ctypes/comtypes vtable access, see +[BATCH_NOTES.md](BATCH_NOTES.md). + +--- + +### `batch_copy_tree.py` — Batch Copy Tree Export + +Reads part numbers from a CSV, runs PDM's Copy Tree function for each, and +exports each part's file tree to its own subfolder. + +```bash +python helpers/batch_copy_tree.py -c parts.csv -o "C:\Temp\Output" --vault "Drilling_Test" +``` + +--- + +### `db_helper.py` — Interactive SQL Helper + +Runs SELECT queries, multi-step tasks, and confirmed INSERTs against either +database from `config.json`. Queries are stored as `.sql` files in +`helpers/queries/` and referenced by name. + +**List saved queries:** +```bash +python helpers/db_helper.py --list-queries +``` + +**Run a saved query by name:** +```bash +python helpers/db_helper.py --db target_db --query get_var47 +``` + +**Run raw SQL (anything with a space in it is treated as a literal query):** +```bash +python helpers/db_helper.py --db target_db --query "SELECT TOP 10 * FROM Documents" +``` + +**Run a predefined task:** +```bash +python helpers/db_helper.py --db target_db --task copy_57_to_50 --dry-run +python helpers/db_helper.py --db target_db --task copy_57_to_50 +``` + +#### Safety features + +- Every INSERT or UPDATE goes through `preview_and_confirm` — you see the + SQL, the row count, and a sample of the data and must type `y` before it + executes. +- `--dry-run` shows the preview but skips execution entirely. +- All writes run inside a transaction. On any per-row error you're asked + whether to commit or rollback. +- Every query, parameter set, and decision is logged to + `db_helper_{timestamp}.log`. + +#### Saved SQL Queries + +Drop a `.sql` file into `helpers/queries/` and it becomes callable by its +filename (without extension). Leave a comment on the first line for an +inline description — it shows up in `--list-queries`. + +Current queries: +- `DWS_GET_VV-57.sql` — Documents in DWS paths that have VariableID=57 +- `DWS_VV-57_FullList.sql` — Full VariableValue rows for VV-57 in DWS paths +- `Get_All_VV_Per_DocID.sql` — All distinct VariableIDs for a given + DocumentID (parameterized with `?`) +- `INSERT_VV50_Copy.sql` — Inserts a VV-50 copy of a VV-57 row + +#### Tasks + +Tasks are Python functions in `db_helper.py` that chain multiple queries +and transforms together — e.g. run a SELECT, loop the results, run a +second parameterized SELECT per row, validate, then INSERT filtered rows +with confirmation. + +Each task is registered in `TASK_REGISTRY` near the bottom of the file. +Current tasks: + +| Task | Purpose | +|------|---------| +| `check_vv50` | For every doc with VV-57, check whether it also has VV-50. Writes `has_vv50_{timestamp}.txt`. | +| `copy_57_to_50` | Insert VV-50 rows mirroring existing VV-57 rows, skipping any DocumentIDs already in a `has_vv50_*.txt` file. | +| `copy_with_new_id` | Example/template task — copy rows with a transformed ID. | + +**Adding a new task:** write a function `def task_foo(db, args): ...` and +add it to `TASK_REGISTRY`. The building blocks `run_select`, `load_query`, +`preview_and_confirm`, and `run_insert` are all at the top of the file. + +--- + +## Understanding the Logs + +### Migration Progress +``` +Processing batch 10/100 (500 records)... +Batch 10 complete: inserted=450, updated=50, errors=0 +[COMMIT] Transaction committed at batch 10 +``` + +### Validation Results +``` +================================================== +$ Migration Validation Completed! +================================================== +Gross Success rate: 95.39% +Success rate w/o Ignored Files: 100.00% +371630 of 397043 Rows were found +-------------------------------------------------- +MISSING ROW COUNT: 0 - See CSV output for details +We ignored a total of 25413 rows. We couldn't map these to the TargetDB +``` + +- **Gross Success rate** — % of all source records found in target +- **Success rate w/o Ignored Files** — % of mappable records found (should + be 100%) +- **MISSING ROW COUNT** — Records that should exist but don't (should be 0) +- **Ignored** — Records that couldn't be mapped (unmapped variables, + documents, or configurations) + +## Important Notes + +### File Data Migration Behavior + +1. **Only Latest Revisions** — File data migration only migrates the most + recent revision of each variable for each file configuration. Historical + revisions are not migrated. +2. **RevisionNo Reset** — All migrated file data is inserted with + `RevisionNo = 1` in the target database. +3. **Configuration Mapping** — You MUST verify manual overrides in + `config.json` before running. + +### Progress Tracking and Resume + +Both migration scripts support automatic resume: +- Progress is saved every 10 batches. +- If a migration fails, re-run the script and it will offer to resume. +- Progress files are automatically cleaned up on success. + +### Validation + +All migrations include automatic validation: +- Compares source records (after mapping) to target records using set-based + comparison. +- Reports any missing records to CSV. +- Should show 100% success rate for mappable records. + +## Troubleshooting + +### "Migration failed at batch X" +Check the log file, then re-run and choose `y` to resume from the last +checkpoint. + +### "We ignored a total of X rows" +Expected for unmapped variables, documents, or configurations. Check the +mapping CSV files to see what was skipped. + +### "MISSING ROW COUNT: X" (where X > 0) +Indicates a real problem: +1. Check `validation_missing_*.csv` for details. +2. Verify ID mappings in the mapping CSV files. +3. Check the migration log for insert errors. + +### Configuration Mapping Issues +If you see warnings about duplicate ConfigurationNames: +1. Run the SQL query above to find duplicates. +2. Determine the correct target ID for each source configuration. +3. Add manual overrides to `config.json`. +4. Re-run the migration. + +### Database Connection Timeouts +- Progress is saved automatically — re-run to resume. +- Consider reducing `batch_size` in `config.json`. + +### Batch Workflow Transition Failures + +If you see `[CS3] Phase-2 access violation ...` warnings in +`batch_workflow_paths_*.log`: + +- The script automatically retries with escalating backoff (3s → 10s → 30s). +- After 3 consecutive persistent failures it automatically reconnects the + vault to reset PDM's in-process DLL state. +- Genuine failures end up in `failed_transitions_{timestamp}.txt` — feed + that file straight back in to retry just the failures. +- Files that appear in `not_available_{timestamp}.txt` aren't really + failures; they were already in the target state (e.g. from a previous + successful run). + +See [BATCH_NOTES.md](BATCH_NOTES.md) for full background on why +`ChangeState3` is difficult to call and how the COM bridging works. + +## Best Practices + +1. **Always back up** the target database before running migrations. +2. **Test on a dev/test environment first**. +3. **Review mapping CSV files** to verify ID mappings are correct. +4. **Check validation results** — 100% success for mappable records. +5. **Keep `config.json`** with any manual overrides for future reference. +6. **Use `--dry-run`** with `db_helper.py` tasks before real runs. +7. **Save the `has_vv50_*.txt` / `failed_transitions_*.txt` output files** + — they let you incrementally mop up residual work without re-processing + everything. + +## Support + +For issues or questions: +1. Check the log files for detailed error messages. +2. Review the mapping CSV files to verify ID mappings. +3. Ensure `config.json` is properly configured. +4. Verify database connectivity and permissions. +5. For PDM COM API internals, see [BATCH_NOTES.md](BATCH_NOTES.md). diff --git a/check_paths.py b/check_paths.py new file mode 100644 index 0000000..7583747 --- /dev/null +++ b/check_paths.py @@ -0,0 +1,65 @@ +"""Quick diagnostic script to check sample paths in both databases.""" + +import json +from db_utils import DatabaseConnection + +# Load configuration +with open('config.json', 'r') as f: + config = json.load(f) + +# Connect to databases +print("Connecting to source database...") +source_conn = DatabaseConnection(config['source_db']) + +print("Connecting to target database...") +target_conn = DatabaseConnection(config['target_db']) + +# Get sample paths from source +print("\n" + "="*50) +print("SAMPLE PATHS FROM SOURCE (_Citadel_CS_Test)") +print("="*50) +source_samples = source_conn.execute_query(""" + SELECT TOP 10 + d.DocumentID, + d.Filename, + p.Path AS FolderPath, + p.Path + '\\' + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + ORDER BY d.DocumentID +""") + +for doc in source_samples: + print(f"DocID: {doc['DocumentID']}") + print(f" Filename: {doc['Filename']}") + print(f" FolderPath: [{doc['FolderPath']}]") + print(f" FullVaultPath: [{doc['FullVaultPath']}]") + print() + +# Get sample paths from target +print("\n" + "="*50) +print("SAMPLE PATHS FROM TARGET (IDSVault_Test)") +print("="*50) +target_samples = target_conn.execute_query(""" + SELECT TOP 10 + d.DocumentID, + d.Filename, + p.Path AS FolderPath, + p.Path + '\\' + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + ORDER BY d.DocumentID +""") + +for doc in target_samples: + print(f"DocID: {doc['DocumentID']}") + print(f" Filename: {doc['Filename']}") + print(f" FolderPath: [{doc['FolderPath']}]") + print(f" FullVaultPath: [{doc['FullVaultPath']}]") + print() + +# Close connections +source_conn.close() +target_conn.close() diff --git a/check_var_clashing.py b/check_var_clashing.py new file mode 100644 index 0000000..1c27053 --- /dev/null +++ b/check_var_clashing.py @@ -0,0 +1,227 @@ +""" +Pre-migration check script to identify variable name clashes between source and target databases. + +This script compares Variable names from both databases and identifies any matching names, +which could cause conflicts during migration. Results are exported to a CSV file for review. +""" + +import json +import logging +import csv +from datetime import datetime +from db_utils import DatabaseConnection + + +class VariableClashChecker: + """Checks for variable name clashes between source and target databases.""" + + def __init__(self, config_file='config.json'): + """Initialize with configuration file.""" + # Load configuration + with open(config_file, 'r') as f: + self.config = json.load(f) + + # Setup logging + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + log_filename = f'variable_clash_check_{timestamp}.log' + + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler(log_filename), + logging.StreamHandler() + ] + ) + self.logger = logging.getLogger(__name__) + self.timestamp = timestamp + + def is_system_variable(self, variable_name): + """Check if a variable is a system variable (name in curly brackets).""" + if not variable_name: + return False + return variable_name.startswith('{') and variable_name.endswith('}') + + def check_variable_clashes(self): + """ + Check for variable name clashes between source and target databases. + + Returns: + list: List of dictionaries containing clash information + """ + self.logger.info("=" * 50) + self.logger.info("Variable Clash Check") + self.logger.info("=" * 50) + + # Connect to databases + self.logger.info("Connecting to source database...") + source_conn = DatabaseConnection(self.config['source_db']) + source_db_name = self.config['source_db']['database'] + + self.logger.info("Connecting to target database...") + target_conn = DatabaseConnection(self.config['target_db']) + target_db_name = self.config['target_db']['database'] + + try: + # Fetch all variables from source + self.logger.info("Fetching variables from source database...") + source_variables = source_conn.execute_query( + "SELECT VariableID, VariableName, IsDeleted FROM Variable" + ) + self.logger.info(f"Found {len(source_variables)} variables in source database") + + # Fetch all variables from target + self.logger.info("Fetching variables from target database...") + target_variables = target_conn.execute_query( + "SELECT VariableID, VariableName, IsDeleted FROM Variable" + ) + self.logger.info(f"Found {len(target_variables)} variables in target database") + + # Create name-to-variable mapping for target (case-insensitive) + target_var_map = {} + for var in target_variables: + var_name = var['VariableName'] + if var_name: + # Use lowercase for case-insensitive comparison + key = var_name.lower() + if key not in target_var_map: + target_var_map[key] = [] + target_var_map[key].append(var) + + # Find clashes + clashes = [] + for source_var in source_variables: + source_name = source_var['VariableName'] + if not source_name: + continue + + # Check if this name exists in target + key = source_name.lower() + if key in target_var_map: + # Found a clash - could be multiple targets with same name + for target_var in target_var_map[key]: + clash = { + 'SourceDatabase': source_db_name, + 'TargetDatabase': target_db_name, + 'VariableName': source_name, + 'SourceID': source_var['VariableID'], + 'TargetID': target_var['VariableID'], + 'TargetName': target_var['VariableName'], # Show actual casing + 'IsSystemVariable': self.is_system_variable(source_name), + 'SourceIsDeleted': bool(source_var.get('IsDeleted', 0)), + 'TargetIsDeleted': bool(target_var.get('IsDeleted', 0)) + } + clashes.append(clash) + + # Summary statistics + total_clashes = len(clashes) + active_clashes = [c for c in clashes if not c['SourceIsDeleted'] and not c['TargetIsDeleted']] + system_clashes = [c for c in clashes if c['IsSystemVariable']] + user_clashes = [c for c in clashes if not c['IsSystemVariable']] + active_user_clashes = [c for c in active_clashes if not c['IsSystemVariable']] + + self.logger.info("") + self.logger.info("=" * 50) + self.logger.info("CLASH SUMMARY") + self.logger.info("=" * 50) + self.logger.info(f"Total variable clashes found: {total_clashes}") + self.logger.info(f" - Active clashes (both non-deleted): {len(active_clashes)}") + self.logger.info(f" - System variable clashes: {len(system_clashes)}") + self.logger.info(f" - User variable clashes: {len(user_clashes)}") + self.logger.info(f" - Active user variable clashes: {len(active_user_clashes)}") + self.logger.info("") + + if len(active_user_clashes) > 0: + self.logger.warning("WARNING: Active user variable clashes detected!") + self.logger.warning("These will cause the migration to map source variables to existing target variables.") + self.logger.warning("Review the output CSV file to determine if this is expected.") + else: + self.logger.info("No active user variable clashes found - migration should proceed safely.") + + return clashes + + finally: + # Close connections + source_conn.close() + target_conn.close() + + def export_clashes_to_csv(self, clashes): + """ + Export clashes to CSV file. + + Args: + clashes (list): List of clash dictionaries + """ + if not clashes: + self.logger.info("No clashes to export.") + return + + csv_filename = f'Variable_Clashes_{self.timestamp}.csv' + + with open(csv_filename, 'w', newline='', encoding='utf-8') as csvfile: + fieldnames = [ + 'SourceDatabase', + 'TargetDatabase', + 'VariableName', + 'SourceID', + 'TargetID', + 'TargetName', + 'IsSystemVariable', + 'SourceIsDeleted', + 'TargetIsDeleted', + 'ConflictSeverity' + ] + writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + + writer.writeheader() + + for clash in clashes: + # Determine conflict severity + if clash['SourceIsDeleted'] or clash['TargetIsDeleted']: + severity = 'LOW (deleted)' + elif clash['IsSystemVariable']: + severity = 'LOW (system)' + else: + severity = 'HIGH (active user variable)' + + writer.writerow({ + 'SourceDatabase': clash['SourceDatabase'], + 'TargetDatabase': clash['TargetDatabase'], + 'VariableName': clash['VariableName'], + 'SourceID': clash['SourceID'], + 'TargetID': clash['TargetID'], + 'TargetName': clash['TargetName'], + 'IsSystemVariable': 'Yes' if clash['IsSystemVariable'] else 'No', + 'SourceIsDeleted': 'Yes' if clash['SourceIsDeleted'] else 'No', + 'TargetIsDeleted': 'Yes' if clash['TargetIsDeleted'] else 'No', + 'ConflictSeverity': severity + }) + + self.logger.info(f"Clashes exported to: {csv_filename}") + + def run(self): + """Run the complete clash check process.""" + try: + clashes = self.check_variable_clashes() + self.export_clashes_to_csv(clashes) + + self.logger.info("") + self.logger.info("=" * 50) + self.logger.info("Variable clash check completed successfully!") + self.logger.info("=" * 50) + + return len(clashes) + + except Exception as e: + self.logger.error(f"Error during clash check: {e}", exc_info=True) + raise + + +def main(): + """Main entry point.""" + checker = VariableClashChecker() + checker.run() + + +if __name__ == '__main__': + main() diff --git a/config.json.template b/config.json.template new file mode 100644 index 0000000..862fc7a --- /dev/null +++ b/config.json.template @@ -0,0 +1,32 @@ +{ + "source_db": { + "driver": "{ODBC Driver 17 for SQL Server}", + "server": "source-server-name", + "database": "source-database-name", + "username": "your-username", + "password": "your-password", + "trusted_connection": false + }, + "target_db": { + "driver": "{ODBC Driver 17 for SQL Server}", + "server": "target-server-name", + "database": "target-database-name", + "username": "your-username", + "password": "your-password", + "trusted_connection": false + }, + "path_mapping": { + "target_root_folder": "DWS", + "case_sensitive": false + }, + "migration": { + "duplicate_handling": "ignore", + "batch_size": 500, + "commit_interval": 10, + "document_status_batch_size": 5000 + }, + "configuration_mapping_overrides": { + "165": 11250, + "167": 11359 + } +} diff --git a/db_utils.py b/db_utils.py new file mode 100644 index 0000000..a1ab468 --- /dev/null +++ b/db_utils.py @@ -0,0 +1,257 @@ +""" +Database connection utilities for SQL Server. +""" +import pyodbc +import logging + + +class DatabaseConnection: + """Wrapper class for SQL Server database connections.""" + + def __init__(self, config): + """ + Initialize database connection. + + Args: + config (dict): Database configuration with keys: + - driver: ODBC driver name + - server: Server name/address + - database: Database name + - username: Username (if not using trusted connection) + - password: Password (if not using trusted connection) + - trusted_connection: Boolean for Windows authentication + """ + self.config = config + self.connection = None + self.logger = logging.getLogger(__name__) + self._connect() + + def _connect(self): + """Establish database connection.""" + try: + if self.config.get('trusted_connection', False): + # Windows Authentication + connection_string = ( + f"DRIVER={self.config['driver']};" + f"SERVER={self.config['server']};" + f"DATABASE={self.config['database']};" + f"Trusted_Connection=yes;" + ) + else: + # SQL Server Authentication + connection_string = ( + f"DRIVER={self.config['driver']};" + f"SERVER={self.config['server']};" + f"DATABASE={self.config['database']};" + f"UID={self.config['username']};" + f"PWD={self.config['password']};" + ) + + self.connection = pyodbc.connect(connection_string) + self.connection.autocommit = False # Use transactions + self.logger.info(f"Connected to {self.config['database']} on {self.config['server']}") + + except pyodbc.Error as e: + self.logger.error(f"Database connection failed: {e}") + raise + + def execute_query(self, query, params=None): + """ + Execute a SELECT query and return results as list of dictionaries. + + Args: + query (str): SQL SELECT query + params (tuple): Query parameters + + Returns: + list: List of dictionaries representing rows + """ + try: + cursor = self.connection.cursor() + if params: + cursor.execute(query, params) + else: + cursor.execute(query) + + # Get column names + columns = [column[0] for column in cursor.description] + + # Fetch all rows and convert to dictionaries + results = [] + for row in cursor.fetchall(): + results.append(dict(zip(columns, row))) + + cursor.close() + return results + + except pyodbc.Error as e: + self.logger.error(f"Query execution failed: {e}") + self.logger.error(f"Query: {query}") + raise + + def execute_non_query(self, query, params=None): + """ + Execute an INSERT, UPDATE, or DELETE query. + + Args: + query (str): SQL query + params (tuple): Query parameters + + Returns: + int: Number of affected rows + """ + try: + cursor = self.connection.cursor() + if params: + cursor.execute(query, params) + else: + cursor.execute(query) + + affected_rows = cursor.rowcount + self.connection.commit() + cursor.close() + + return affected_rows + + except pyodbc.Error as e: + self.logger.error(f"Non-query execution failed: {e}") + self.logger.error(f"Query: {query}") + self.connection.rollback() + raise + + def execute_many(self, query, params_list): + """ + Execute a query multiple times with different parameters (batch insert). + + Args: + query (str): SQL query + params_list (list): List of parameter tuples + + Returns: + int: Number of affected rows + """ + try: + cursor = self.connection.cursor() + cursor.executemany(query, params_list) + + affected_rows = cursor.rowcount + self.connection.commit() + cursor.close() + + return affected_rows + + except pyodbc.Error as e: + self.logger.error(f"Batch execution failed: {e}") + self.logger.error(f"Query: {query}") + self.connection.rollback() + raise + + def execute_many_with_duplicate_handling(self, query, params_list, duplicate_handling='ignore'): + """ + Execute batch insert with duplicate key handling. + + Args: + query (str): SQL INSERT query + params_list (list): List of parameter tuples + duplicate_handling (str): 'ignore' or 'update' + + Returns: + dict: Statistics with 'inserted', 'updated', 'skipped', 'errors' + """ + stats = {'inserted': 0, 'updated': 0, 'skipped': 0, 'errors': 0} + + if not params_list: + return stats + + try: + # Try batch insert first + cursor = self.connection.cursor() + cursor.executemany(query, params_list) + stats['inserted'] = cursor.rowcount + cursor.close() + return stats + + except pyodbc.IntegrityError as e: + # Batch failed due to duplicate keys, fall back to individual inserts + self.logger.warning(f"Batch insert encountered duplicates, falling back to individual inserts") + + for params in params_list: + try: + cursor = self.connection.cursor() + cursor.execute(query, params) + stats['inserted'] += cursor.rowcount + cursor.close() + + except pyodbc.IntegrityError: + # Duplicate key violation + if duplicate_handling == 'ignore': + stats['skipped'] += 1 + self.logger.debug(f"Skipped duplicate record") + elif duplicate_handling == 'update': + # For update, we need to construct an UPDATE or MERGE statement + # This is handled in the migration logic + stats['skipped'] += 1 + self.logger.debug(f"Duplicate record found (update not implemented in this method)") + + except pyodbc.Error as e: + stats['errors'] += 1 + self.logger.error(f"Error inserting record: {e}") + + except pyodbc.Error as e: + self.logger.error(f"Unexpected error during batch insert: {e}") + raise + + return stats + + def execute_non_query_no_commit(self, query, params=None): + """ + Execute an INSERT, UPDATE, or DELETE query without committing. + Useful for manual transaction control. + + Args: + query (str): SQL query + params (tuple): Query parameters + + Returns: + int: Number of affected rows + """ + try: + cursor = self.connection.cursor() + if params: + cursor.execute(query, params) + else: + cursor.execute(query) + + affected_rows = cursor.rowcount + cursor.close() + + return affected_rows + + except pyodbc.Error as e: + self.logger.error(f"Non-query execution failed: {e}") + self.logger.error(f"Query: {query}") + raise + + def commit(self): + """Commit current transaction.""" + self.connection.commit() + + def rollback(self): + """Rollback current transaction.""" + self.connection.rollback() + + def close(self): + """Close database connection.""" + if self.connection: + self.connection.close() + self.logger.info(f"Connection to {self.config['database']} closed") + + def __enter__(self): + """Context manager entry.""" + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Context manager exit.""" + if exc_type: + self.rollback() + self.close() diff --git a/documentation/API_GB.chm b/documentation/API_GB.chm new file mode 100644 index 0000000000000000000000000000000000000000..4f22bfed7f7a56c77d9500764c7c33f3fbc98258 GIT binary patch literal 5091445 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 +hl{KZ37T7xsNz1199g1wIJTn~3 znT9P{lL~0AGpYia(E@gET|P36=17PU1!w5i!bT|*sXQ}73phy+PJe4Bs1QfuGVe^j z@f|fsIPKdO zB393%MiB`8=3Kjz9%4Z7`D}>`JN`YDA%gSamk0FAnp~MmEhW$rvD-YHQ`f&xmO4{U z2;uAk@ zLXp?20$BhLLr9VG$U1WY)yfzUcvsQVH+RaOPo+Cyj=^epu?V|E8khc{eQq!%H7pA6 zX`69J4mZyxe5M$(2VuMe!>I?YG8N=4B!IhQ4n-Ogl_MVmv+0s1CL;h>n2h}u;!@vg z&)LyQ2M~0qd`LRd3fq^~pj#6c4I^MOsZm0XW@xir$t|;^L;*Tp`Oac#h}jY8e!d5J zn+I+*x)~Pp+tmR@{mBo68iorD;m*CY&NLDSgPX#g&*q;Ze8?0OD+4uQ;8Al9D(=oq z{yT>|5)s4z51~;hLO2&uaJ~J_f#elABQd~`jZ>@q!DBu+i&&_idQnBbk!u!e0=y57 z1g~hLOZfnic*(zd7l{obY86v?+?&^;Ua=qAM83 zB?yBH(eG*XjfuM|EA!F+JGquJw7Pv&y@QgEOb}`Ma7H_aN&s&uXn&%5C8M z{;GEw#eq*p&|X$>7dvKm&fqg{lL?b_d3O3|bYSk)K){Z;-$E1=; z(^NlGKSm%5NQ&NbkSl&du$3TH?HqQgA?8EJHBS#YU}d?(oe=`NeYAtI!6 zJEd2?qU1K5B(@Dywy=76A3Aa2f{Z=+(~BMHzFlzTJZA6uHfh7?)_Q>H{>R?3=_zvZ zR0}e604NozrN+lP#Fbs?m)D4n52)K=%)Z6W5oI&z7$InN7__@WQtYZ&+=a+tm3|_r zbJ4hghdsz$<=o>J<1X%=ne&4pKBFG$Z0)`zZyu7W^mA*7ds9FkZF`Oq!{aCw@qTMQ_iy1C( zBWZa~rzqO3;xM=mNnhOJ1Vy`50}K;c0@AR+>q>-k*)TeBXC}r$O_nRAhK-Rc=d0&U zp^J7|FnAOPK5YvHlvlS-%d?`BCxinm6_28;Pkf6-EIVgb(sO4Q&nB-Va*Q5;9&#FU zbkVHh_Vf%H&|4rkM=R^4X+`4Tf^%$n^_2PKM=*@@feGzMm2WU-eXcJKJlk9ZWBRfy z9CIvh!P)k_zE3fv`~RQnIoGSSRoFbS)>_@JHK%5G%fjjlQ2#$Sl>fuMf7lC91j~dQ zZO1o!oknrZ-oP@5gR}m4`TP_qP2G^SAOrd$M}So0`qi4}9Yipm+iN?KASvxGf-S<` zwiDOu9vv?d2WQL4bu-eZlHXuAu(uxwaTtO0P(s52Uq>9ekvb~B2b~Ln#$!M~M#dEq z|IY#6jMNrVG&(nsD$wO4Yn5qpMF@gGo{pRgNUb4a0m8r|MI_(>(OiY%+R0`Glj+If z%1NB1JXt=ds69>jh!t-GjDSg}ew~)px@vH^l%0AsC!-TxW&>ryKpo@lv}y(Bqi&v6 zza9QPMIl%)VF>9Y^Mg-{19?O+Xvx99PI@c9_XQRC1v^gKj3j#~naip!O3(oZsmAT? zZ7Zt82H*u8`E0oTapXr8`2~MdGGXc3v{HKKeg6U*ns7}k^H-@uIcYq7;HwfPjZmZE z0x3KbWt$d66NhjxL4p?WF=vkbFZD~B%05B@8=D$mwLHk!k0kDH_K2K%G=V=01uE_w zch0I#J^6&lPUR;O9 z#qgn-dM83gdUWsl_ZK>oA0Kd3$RuiT+7sLvm-q&tZMGQw@tPHG6h%iq2zS0JbJ@JY z(G(>I0g7NfGjBSk`;*^c7fh^=X@M$heb=A4kIqgA5AQ@x2?QCfQlXBZ=NGhJVtE8Ow%Rl~INejI1Ge!PiTrZ?K=A8Y<-d9Av) zMSte}{}7b_!@d76zz-F_Aaw$rC`g=~MsW=g$S?xInO>09H$_HKbYVeYR0B5s;gf{8 z8ve82Bp0m7p7{><)Q!nXOu^sHi@K1~)u&@WMk za#p_RW1mXGr)4wCZv+smW$}gnw|kNcBt{7U!k4tp)r{>hxhXQg36ZUIhPO*h>bnB^sf%LxHO8q^_m$dCP5J-Ca;r! zEbC65n3zF@xrx0-qw+-}`udLT{Xp>xf}Y04&H7DIXzBOj83;7Tz`#GZj=#`f{8YU_ zXF+=<=!1bFeymk#D-IDoZPK70h`rYNJmnM?;K{E?xPO9Ih+m-btFI<_$70UI8M4yK)RaqK=WPfP^b$HHdkYgA>zW~BS??JX|yB5fCH1lSOM@2 zeD@X~xx8PgioB%v&))$p0{992OJh2nK{4nyHi&G5iY)R=kJd^(eOW5xq-ZuL-o@5m`64@ zru+vsi8-vp9xHS3a6?KRTPQu>0mWkfaR2{Py@~bL*1c@gu+9mqcC{00R=516x`#zy zCjXy+@_)GZ-yHn>C!_*jFC=y04y*Gr@_i4ZesCv~diP={8gpUCa*gh@DEO)A&AWCWAfv&~Q#Hc}C+2|%2SuaFlsCr@zA z!GRU_3J4DLQGzE?BGg5{T9iy7-yHr7D%)ucNDoTv;}^Y|S}7A_<2mhPE^2^35Sfch zhu`g8H9TM=jCcu0f?jz~5#isA^m&3fR>tOj@QJ{%mgFPRpyFwK;y#bdu2qq9E-tCO z{$267s)(g9Ah~>?UiuGJ1;pk2^21rFepL}nCP)B`W!Q*H*YQaStuEKB3In;N+W}N?#N6oSv{_dqJNhuS{0NnJSs91IT=GWMH$g_FT0PrtkV75TY6jEii40WL(j8R>ks zmMEu%a0EQOSvK}+$139CEWC9n=&X$>0p#d2sR-SUnRncpywGOKI7l^Siaz-Va z5O4!sr4)X_Jymf_F~t=V^3e+d{1xfe=e`l;GO!82w4dP)GEOTKdR_QYl*P3mx6EKs z!524qj+;2@+9eKI^??iulWL0me?z?sw!LiDS~s!st5s>)v&MRhUQGV)iSmEA_um5i zi1G;r+EsWjl=#(eY|0#}B(_Kdc)YkUKF_WS-hd0_Z|f~{XH>y@3*-1Zi9Sa}6+qD( zAs+4x?&N%x<}9j&z^(>(3^!U0u7t4e*J>9#Re^I{1b;W&x43Qr0U?WHjwVCjhabj~8jj{Lei!wEN4hzvR(G?ky%_sW$}P6c!V z;trL>|9r1ujwgA~Rv3;OYKQmE{8T!R{IDH6RuJ~xU!h2+Xj)*vz?J)c@x)X$d0NF{ zpoTb1|1eIc*I$)=7(&Sm?yB8`g`+OIQZhq$&F;a?#%UCHw3vzXHa)icaP90=inFjR zOxQTJJOmswXBYxsLISp-vQ1%4N}eEo#yl*oeQ7==PlRoG9__PC^A>@D3&^9pz9|9Z z#Y%=DeW1oNhvtz>aaVC-vT;|3OM@s`f{b6x;|*i445plp@SOMKkCw;Uion2G@+7^( zkuH=v13K0Qz&>4!h;Y_?Q}pytw$wm?x58rW=BR+O)|6cB#|ml8lb3Fl!IT^k-Y9%p z>~K;d0t4sjv*h-vL&@*`FoM?4RDqvm%}DJ+o=mVXKwf!eGH@3i+}g*_@5FDuSo76T z@&i=}m+ceop@gSzxt0m>TM9?y_NH7du5|G1Q|-%cl$;iJSbARRl^!Sp17EEdE9_H4 z$am2gb}+fIL3BBbuyxf>rQ<2N!G+E*3I|>tPB{}{xcqWYNZOAgFmP_XyfZ09P9D@S z+yMQ9)H2{S@Jx8?BZtcVl)T`A;aBU2Umr&~4`BfO>QntRZ%Q2;XsUy+QuFY&wGY+ww`^G>5%vFrd;ahr{C`XELr*Hs^0$BVfBX&k4Lx?YCRNLK>!+8G zr_+c2xT8mL;IB8rUc1uy4gkZp*X61(2!f?z~Ps} z4qqLUOBpe9&Gt+>UIC*Wxz%gcioX{H|925Wh?eUk!kRSWy;~CNrBo(_)x4Pg)7kD$w zhs6VSH4)IBH33)bMR4A5Xc0cuhQoT><VIcA|4R;4!fT#Mg(Sz78(ertxs zGz6+CJE!Vu(DK|x>8q9ng4S;wU1)my_K&?^gU*rm2aQ6;f{P{|+}Y7T*0>jcO^?Aw z;fRiuM?VxdrxkD(!66iOUPm~o$Aa^_(ppd)$H3;axHh@ph(mHw^29N%bY%WiT5)7) z;*bnfrEhAR>nsinv?&1{F@nLf))BALAINgY)2_qVAT*Mz(G2~KhS~Zvm8iom$<-l|M>wdH>F+QFZE$+e6Z(i3TzhKAChq>2^0FK3V z%a~6W7;{PFyH`Dm?CF+6m_xqTDRr&sA@G3pL#$2O3_3oVXd%(hj9c`l%D=wQlWv8$f=TSpi{&X&I^Q;kdF~13Rn9CQk!LZTsx$y=47|E0I<=}& zyMqQ=ObrxuE=6m9df&L)L3GQ74vxkCtaCeO-@pEYx{NaQ8a}g{@5h%sIHp2IA$4f9Kz5`4v`eFS79pDz_3i~waM_LiqfJUE`5k)>1y$;~ z26&uKXYK#`@A=exL7U#O(RZ7l_o3#CVB0%3=H%R?6Gfrme2IDQkv@Z(FTJ6)W1rq7 z#Y^_tf3&%vq9~TJE8ZJulP`$>)MgNK;_IEarsgzSr`XuTJk~1}9&~8HP!jGe`(&QX0F@i1i z*tpA`(zMi!5%k!NjbG6+Wj^^4NTiy5VUtDh%$87GXgK}MJwE+m1M((EEF{`4iH$G# z;x5Gl57A(O)mn6DdicUH3dh2581C2NGPC&j)YtVWQgsAk;&2lV1e~F`+K;9LFO$M( z21#7rZ;IzFDE2Z~VmJ`b0Ps`@)a^Gue@)E_2MULYK{3A~it?Y2df-nhe_%5M9QwxQ zRZ!XU`ON>b_ug?)9bdrrf~ZJUW3L3U#0Fx+5*0xdBZ`2%AY~~E3ob=8N~EKpQ8c#L zTa3MhE+W!Jnlx!D_TGDYX6D?xd-sC*-Pt_v=Y9Tg^C4gN?!D*EoH^6ZGzxbY6Bro7 zWorf|MEUvcUTM%4rzk{ZJQ&o@aat9m>DMiwsK*sT#vNTQJfK?VL2XCO`HUP@6-7wu zD0U8I?Fh0cd}9<<^kCG@uGHBBS36kajF95X^D4#kX2b}QIV`Rm8e2L`sjzTVbLC6N ziV3t;9~oMJks_4Oc;iGRWlkl!wB@2)B1wOq$kM~oVhiE(;@R{=3L}BE^>buwRN+LH z)uo?J%KFmVDH2PDRpdoX*%jxSITXGM#^4!2T#GM1HM)8^eMV#?$s)=aTE*HC*IOwS zu6mN5OsSwa6_ZT?G(*D1-PO&Pb;VrGbf}n3uW^|enWL<7*NE#KD4cbS#$|b@dc%r~ zo%&l!kjLN4yT91m*|R_1#tdf+h5r9y-LKkyS~{BBn~hhmYO)xe{}-z|L&b#5|NjMd z{?P}I{dYot^d&lPu&DCuwEUU$U^7gq_6s~qgH=I#}nmsNTDfaDWQ@h@{ zLCx)!nd9m04-R4isf;Dp9+{P+MPJq_jzLuA_sg)RaIr9o;d?jzQww@IdM6Y*9^MEoAqGO01Gy^^gtaSmZ~^R>j~_eHdZrrgLD4*>g%8MD|Bg-gz=h3{GQx4e-dqy@ciZx>sC7@wpK<6x6QmRJs`dd z#Y7UKilGhlCYUU9qh!ECeOkRRzUqi|pWBo;(ng8rt&Uh<6p*B?j1aC~V%9WHXhUnN zCT#Pa?OD~Gw+)JVxkm-mtwr<1j;olabnvjhUP0X5T^%YYS`DbpYG%vKb24{#@bGelf-B;W zO8bkp!lPMV4$mq!?KDnW@gL=JGtZ_g`rz-rwRmkKJSR3F47<^p zBLCjwc7@A@H*k=!Dc+_KbgM`mlQw$esba;D7eJ#+2Lw-`RtRwQcTJmy~@Fs3OnexSXPYU~{by8CE ztbcUdVed=UN@|PmCEfOBOwxk?Ad9Q{KTqo=xGSmofoM)093q7d1@-ZfIpdzjOt{!s zxKltu^8;~#h{mv7u|zBMC)<60_0v+TY%AgJLItrr+udAao#mjsD6Rsx92k(XP`H~$ zAylXlgBAx#(I%zd9uBg~cE`; zHx+mO(Fc$HcSe6yRgApgMQbs^4sCtK-c0ZwZF9ReR9ST@6jZFh4_)h~2yeGeKxJV?CloW0@+Ig;L>=fbcIyNk_ zRqc#6U+n8xVnMACwvgWW(!ZnwbyWDp^RDdXNfe{8OjP)TSi3`{35$f6E36dk&>rWH z2HoqO7`FPwTZfuq!ZR*cqAjXl#m>wXM%6D%JKS^?-rZpy<{8iSJ{FJ6j4_7S;lJD%Bz&oCLxPzO2T$(Z-)iXXgY_{m zfqS;ILjlF9%}n5k5Yka&#XO!-ZYO-qixq=1B=b*3&hv~uH54=7I0q0#?2Ybld8F`e z1bLKao_nuOKR2CT1lKJ0ZSI>yv9yzf0+&m?v7@K!v811AX?g<~3wyySV8Yfv>vcsVAQiHG16+o10c%&cii8%5L+kT_fUFusS? zAA%Q_&k}wV0-i(!`7PqW=3Ye-;m&aUBrk~$+;5W_KrMlrKnD-&#Cr;_=SUdpO}aQ( z_iOBO;RO&Dg40;GK#Z*gK2)03It%Y$5IOjNvL*%E`UXuNVv4g*e~!J}lfq7LsMxB6 zIh%nE*vEvPbsdFgMKV0gX2rj@E-7g&+{WNpUONBvczLyf5;C|ceJEG&GDT&>griQ0i5CpZ^hG89^Nqg=#!1__kGcAK?udCM0b6gh#e` zh0~W+dIfI6r!w#bl4_kV@~V1aYvH*|E|NFp;OpO=uXhygcd9Rk?FvV&TxC+-NNGu& zrc2by+as#9g?o&6VIq=bp$bZ!Q05@ql`ogYTR9sQy!oemgVoCR|7~>3wHIr((#&Z# zU%f@s^No9|C8#Ni@C&sF?%;M*_;It6k;2!nScxTmY*lq+i_4|P z!rx9F<<(S2ZZ66)pclcdsE!`d&FDud0(UCC(X>lOjS<1W74{Kc^^=I;7RgvYUtcc? zX^%5ie^kVk-nA5my~;$vfo4p2B2QVDHx)i)BNM_N^@^G%mga1TRz=RBSttX-rbsYx zV~GjUs!G#`6NJ~ntQ2SyiF=Fl=g}A>8G_;M`xS9AZgT!? zrKE5baw@!6ys_}61RIn3iylv<%+BgUlQ69!EbhE>S}?y?&C4;QPif)Ah&Kp+rtMF40_>vlSc}8v7IjGE4xOvJ< zOSUFD{-|ZyFT!h9jsTujC4{s}pjdOGD2QuO3CUyP1`8hxFT%YBxlasS2C}G%x z17UrNEIhm3x5?C_C;~XTLB}09%h&Hj?LI#wcd_t+6OMvV*#_rP<2l5Py0?B(DRrPI zP~_o4(#XJ_LN;NfZYy%U?;?Eionjb?R9NK0<~~O3pGgyHrc=~83W3EQauQZX*!Hbm zD*G#|M=T72$Vz)Tsq$x~48_t1??A@RTa4PXx@Tr@rQ!%;xO@6V?J1m^qau8^4JREy z7`urc6Un_>ZF2exA3>=nj=zsy)ZUw-tRIxp8V(;PQ|vqZLv|abiXKkOecy|pvO6fH zdRa`JO<70L{zS7(u~O!R=k}9h<2l)MM}D&sJEelg40s@YIk1h%13|sAepaT)4`hU) z=rR^@AX}WhREgSB9XxlcZQ?>DqEvs&xrlR*R1(@KVUu{>nG5G^ zny7>8=jSS;8`fW#a-eN7#Z(`e4f36aDQ_30J1U`LzUT0KvQ_dTC3IYWL-mOB?@i*} zgbxMEqZWu(;i7LA9uBT-MmrQM%Jf#Et|1%C)vv)=2j{`+880c$UEl>?!wBzgtkhgW&^vuT}W&lXQo6gVM zIrPc<62+NNGR?E==q@~;SwwLfm;8BN3p*_>Fx5*5P2(kb+!pr55YPDON@#jm{TBAc zWV5(2O4vHt$F07t4`ej{cedf@wo26N!yp0i*&+)2>O~#Su*mck?%G62ARn!YxcI73 z{t)3q3(Uhz{))&*GRhk$+zrS+%}e{t2&aTLYzgyk{r}xM{k6|(4$-JocWipIv6b3g zRUefhr2o(E|A)u^_0XSEVdC0RX6n+ou2d}wtWFM^HKvCV_>DYge;^u$wB zdfKpaL#diwI7qzwk^a>?X$-Y?(5e+*G!2v8k~t#tUAuzr)Y_3r;YBPf>*s{F|4AA* z<+4}W#pzKMkXTK!u<^$rkKNI(RikR5U~yQAHQLTXEcIoFn~p>eFaLo$`LG~l4y+*^ zxoK5qP9GXrVZ{y2(Zm)t-G&O@@ROYb&N^1I<9rMI()9S@Y*oI;IVV!Dpr>+TxJjN< zK0c`pO@E&aO+DXpZp^%khBVa&BMJOi+*2Q-j;FV{{hROsaG8b!Ih~{vubi@}{8wyn z*h4d!I_JdU=DD`YgoQIL>SS`jMGIwQaAroGS~)6%Vmn8vb=Q;`Q7NF!|#vfT~mv9S56GKgt@%gGnV3{OV;G-oxvJ) z=6+!H5E}147@d4v>2kh(@d)9AbZkhF0JhOqu-`PlIelq~CGaZlf)`USI4doQtKY)2 zgU@@;pstQ^n4pFPHBI*ObQDYRlr=OQDDm}S`+;%CmtB)i|Gy;O(%eGoMYgA63X=G> z9#!4`Zv`Htb52`|ihrP6Y$*KvX>N+w*A3f{NJt)4HB%`w8VIqDD14=#XQ))-^OsK+ zrA|$rrL-ij85Mo*o#<$*Ogaz5?zU;(u2KhQvHe&-Pj6O@tilqvv?*I;_n$?hwwzch zmN<#c+{8|c7z0Xts&dVYzRX3|&&!bcdpe{|QC1LFk@+{>Q)kk2$7RJ7vkH-k+1boN zl{2R)qqX{`E6>)9@PGDbm9(Z9eHP0D`HgdiqW*dPV?|4)@*3X7fVCOom_+B7GvSQA zJn#m^_U*Q4hjJ%3*>G=hyjDdc;XO9?X`W?VS*M$zrIZw|SzO8K7}r|3df2c)>sac8 zcI@!?lDhkfxm%w{CFPsfb`;eAkJ0(0<)-;hvuWz@nrv_Uvs#U+Gt>X?j{5xggU9}V zM1R8FArMBkUsJNusCcgMP8#ztPuC?^w61qoMhI8crDq15pCUX5vLUJ0qbYqUDsU8D zBrtODnjpo)@S>8B+Lw0_KD&t(#My8^>RiauEDc&CM5DWCH4vv$l=8-=QcZZ1jtvOj zlb*93MqeiXmdis5P6tQ@8tPnG4@=f*T%KChYD+s(YEdTf_6_3Lk#r%7cMK zZY(dHYLiVdD9IHD=PZd8ly>2L+iYFoV+pJ{)=RID@6TOoR54k2Uz;Nf4+txWO4&E{ ziVD3+pgrULq(10~8m6F5yU-(h7JZ0N>Y>eu6xU2$T=iR)D}8R^w)-v?xs)uT*EQ2S zRa`-nesF4u32mXsc2LXG91D8VmS_C#X?aYuM2dC&klOstY58SQ0)=mv5rV59JFi8u zd0purn-%HP7DGdD1<#d|k=LiXH?2z9-fcy=D3@aUL5K*yZ(C95mgG&FF8qPUtI;zP zmeLl3WH=A6R*;_-8I^fx+Km;od2ndpBnLl`n6t+!dzNq)AS(oI{Ui@a&VwE~3uy~RlRzXx7L44p%`;cf zng}~!S+&jl`WRXh;cxs|^-(Qph%!RBCQ={PU<+>hEd18JKNWX#fbDH`Po7$=o_$+|9=D#jGr(WVwu&1{pp`svatH`+>-5y5L% z*IaTaq!^R~jj^KYwTx@Gi}HV=tzQ{wq)p0M2$c7CtIWy&MV9;!<*2-;jycnW?*pX} z%Rp!W!n`!ue8|fQL(>-t-z?c)bcNCXNZ*5B5#sfL8NxN(prSs zB)leFL7rolD{YUAwHMCxxx$T>7rkjSC@Y6F5IMYX1Xbt z*V&e0?So$`mMIq+etYrS#c^o^*+QF~|F>MXsg9qPNOM;+Q}qW;Ha8xjc0qL}v;JQX z_4)Bf5B=$*Kjp)~EupW61tj(mJ}}MAHx0~nyPn!5Zi;g0K7^DvoFf6Fu59U+HC*_V zdxfCk_ApF(H1qQC^OX2-T5&};$5agwzF*kC%7p_V8S5%e@xR)SrtRQ?7Vn{2Z4%o4 zkgZCtzx6EaLQ_6)W$@~f8`+w9TK_>7*G}p-woUO9KIOnxtPrkx6;s_6tz<`KgNEA& zc4%W2a-OnqkEPh$$ z0;NNT%y3?(Y<7%(!!Vo zWQA318F)`$_$V|v9uJ*s%PRa<(VR=a(R6Cj>3aBaUSV^4$Lz!o%8B8s`F6Q)d^Z}+ zFrh&OKAhCcIsGr{>dI+vd(vx$^qElO4*D<>jT>sLTetG<=t47keY38OyX6j- zDYnaH4VmxUxOc!Pp%uNp`RUH8HLe zjh~Jc#oI7Bs^+zQ4wVm8CWxcysM-|!TsPqxRFQ5A+l+e{<5H$dQ4{*24LA5R2Or*Z z%e7NN1~+vcof(-%lcgXW^-|{18_hT`;S;(+74jj`dRyH^U0XH2q&W-F}d`5;-DIHie8Z{cvy}+bd0ncn**+EQ#eXx(&|fk z*SIu*!YK!mESHja& zX|KIk(_Eum-LFptV{qzfa0 zYiBR(n&p^K4090?_3GkRM@%z+qG)7eDQ04J=a-0A&lhG>Y~@R|h#%*v<8@-sa});= z$;H%*&+E71q=gi=!Nv!9Sv)37nJV^KMZb&%$_TOXS|Stje5ZECY>FaL77{zTJLUOJ z*Q_SOCqIK;h>H?p67lBDlpITnMlcBk5x`5KH=o;Obf$2Aa0Jy$qqk{;FH&ss$BC6f zD!n-DnX#B+8j(Cmf#A%wM(d3@Etwb3=I8oSGyypBxGR2NCfVfvM42zat;}7>@+$1t ztd7b_;p}hs>T;V)RI3WKl-GPq3B}bWJZGUG+me^kB&!R^-|}MbxPg zcLj}dbtq%R>|+dhib<)vXAELLfmQBoChXrvFA8 zDcP)a@E$Vh^r(1#Zb#Z6SxS7++EWFidH9b{Q7c-b0XcI0Jc?*~X$FOdj-)uJR(iaB zX%59!-jG6Q(S(_cY!8aZclzgQQWh5~t=b7*F~ z5nZ5uuGCi{eV?ZH%vnYo7CQ$=4>6}|e75$-TrJ_2Z|C5%2qmqr16qj!W)|`O>Y{RQ z;f@%t1YX_t;nbX~OO=+y?G${Bvddk@_W$4L?9?8mbxR|>nZ9~_lNpUaH#(&{MP)cy z|8I;t|LB9q{teKd@D83rJnGf1AIm1EQj8LFh2e4qJ2m{+0f6^gTU=f)yhz~7Lf%*Q zq|>PPceSs13U58s7sYlBK4dPtY9QS96a>lY*RK(+GTem^z9zhW7oRUrt#($@E{G`BF1{QdTy3vpm~dp}$r-(J!;s7_|3Q?zz>Qvc)h@G@aF-em z2wEe@ly9Fl&Cb`RGxhol>^|LcO*U6X2)9)Gyr)m1mGHJC6AfIR;D0h!9UZjGEw>4E zPy%iIBv=Y4B|7N7q`JHCx)eW&yP2qI;m!_hMtrUcDDO#^7vwT{RmYbzU0=BT2U%P- ze?8dv%CB_A5+_{ss)DZ{M1>l{hdmTkh5eY8oNI#Y>dd910w#z>E$}x4hBhzr+;H!e+8k*nue({gh4wOCMV&H?gyy2fH&@ z^y({`nGVXDFKX}lN|$oFM$u7QJu=;t4jxJco{fZkUS4XdwC0dJxs8Nh`T1&FrEP?W z;@L>VQM-zcO4|sM$hDEkP_LW+DW-B8iM(f2L$M7iFE`+?9M@cQ)OEW{x=P0qOXF12 z(MOyzDb8ANAZTm@E;{;!QRdM96fRELwkF;+v!C!K$NX@iW4*lme9w|5 zw#pi$bO@)Rt~DowYcnTgS_mI=uoHWtv)|E-1}HZoSLSNu2MF&`%N`%dJRiJaM1B+D z?g9DpidAo9@D0;=v66B))ox_SwjQw(iq;LQj)Ayo!uD{Y*RRyS;Ue7CD~lB`QbAi) zQ`#vfh8w4#@(#&AQWTzSoN${BPcRr4;44OxGQ60b<)eRJqjO10VSikCxE$u5fffDx zRng^f!u@zMRbhQIb=SIshv;N;6cmB}_kNxAl0O*q(2Zo#Ep(TssM8apdv05EMn(0h> zS-1zF<;N^|5DwU)~6mA+$Sa`Y$ z-{g_tD}37(ZkVvT$X=Q3Ma4-=(J_bAuIN*=4LE_sqREsa<{D$`F&}$W`%)xsQL%zT8;ad5GEY?;dx0)9$qHssZLc}-K$oqzw-pUH%=IT`^yT;M$qi=Lv4c`36S}gT+_uY||l2vc+Ui9Wa40H9B(GW9%FEXlbP7%dsQu6H2o5dFy zeYSU!molp6P0Ndne%3xAfTA*xshaFpV2TztFG0Iwpi)leOxS#FYH5F^f`)4s`E0-F zEoXnbGFBOFGxPf+*Bow9K;ycV#f>+^KXT1`zl2fBM2R=YKXUDvfpO!7FENy-zX?;m z!7zNiVs2}sX|9?ws$y1yMy`FZtXNf<81k0!NB*9?JcD9yBzX*ZyN*Y$3!Wc0RhfKS zf7|iMb%}=OOeq>uGD9G1_|eK`2M-UihdiwE#huYxi^tV=oF{lUHo1&pffL-F#g;Ct zbX#{v4|j>H{07t|W_Fa1-ga_9=1&xTB~JL|^5i3%(c9iO%j&P3K5$1J1=)9si(E3= z8CRD3|4bR0>m$6Y3L7F#@is#mc64BO?~7db*1O10xMP?vh1VoppCi7wnj{!N)^e-K9E zj+$RfJcN(-eN&>XFFP?Rdgp1^x(>oi!haPx&L6e2nV|0aL*@2h3j6bRMlC$q4w8&R zJTj(WZowD|i{VM(+24j;ozAuUPtv&dx1oAa(vNtNmzQ^cvA45le|)kZ+tuT@r2c3B z|GCa=?Ly5y8gc5DP46^zS9_24{~tug{~dAXAARuHe-HGhd<5`FjeN07^sWy>iUR+G zG+Q^XCFUNkOoH#u8&sn!d_4s&zhu46jhm;HsS6*fgJ*e(yYcb7R7WLbaFg_p>pUmU2Lb(Lc3F;NLxCo;*))m4m!pP54F zuWfxV`A}*FC9lL8H3k?F2a}|=!|9Th?RRf|DbDXp_jZ0gu`R8|xh`~R(m-E(+gHP+ ziF8>7ZNq|23FZv_{B@^mhBd7WO9|Sp%fW*k&pvd-D`PUP44ky`6YHW6J^wk&h%PPi(cV#-nX$xNrO++-L55?0pqYpp*p}f2B zQCBRMXqc^?c72wVQEZSdf1X!G?JluM8!UX(RY4BdZ1!yWHFcEmVRE?~tSd4AgD>$0 zUyfv&Txl!Zt)VCs553?kOqFqT>y(=AO3A8U4<3EvTS>7uHYZ$))!4Bjvzz`(7y(sWD6dq>|m1X_&>u+R4DpAZ2lP1 zV5xj!)$psvN+_DGr1otw%x|lNg7`JnzB?8PeU+5MRrLN{(zwCG2Zv>fM*Gd6-8-R> zp5gB624ll)S$(3;qkOm$T4F1({pCGNOqGZozZN@i#4UcQl5)6OI&jM&PWAs@|Nn!| zM(sXY$2BaQeQA2KiF0F3wFK1#D#J+seq8rD(BEs_t@X)TA?H~I9KDC`3z)A&og&@ zYdQ*FVajNQZCm_((5+||UH_(m=^cN+Gc9bXloYN?4rkluceE8eWWdHm)~aCpp7;k| z>*8#NZmkK0R~1Z$?4BTNun^ni$^B>F_|ona4&a95@xv5wfw z%}Qod_`Ep*#Eq&3B*yJ=dSgoGz+%J4Yo^6-F{q(9UYMKStR#{qOjP4vyVm|jZ-iKJ zSTrLgp~R)E1zo#_jUJZ54N&6YC0Bo=&Y5h3@5m-e?iA|i@SA%_Zv1@CRw*gmoOyIt z^Q5_SH3Cu!Y3dP$u&s`yQ2#4KsLM_w2P;=5rlRi^O=`um4ZNe39);bgRl;xH9Xq0% zrKXe=u40e9_#s1^x)vZ!J5a1KW46ghhL%z6M#tnOB8X^~m2)m=N_i9N0u7E_CzB85 zL-1^BovWDkqB(VrLdO}BCX#~vq~waPNT|ymRutES&hNA>ovTDVks}@&()Htc{*_^w zF|}2)4eH}@dc~^L_QY>apID`z+(aoUT&p~h(JN6`_^>)-OlT^GRE!1<@mFhiCtp7) zJ3}lr*Wm@lRxbV!K6&N0)CEdO z;cEHRM*9?Z>Z%z|Pr%df>RVvifmsh*(fO}XF-;`OCoR+$dvTrTBQqreidV}t9MFrO zjY^aWD3bVZ0ZlJ5FIgeHgTS6@!M24@U71iaO?d4jdz{xnIDM#dW=G}3aLwcN6O*I` z!pk~&XzC4ro;lnuX|V9sn=(m(+yy|Hb+) zIA~h)tMI}`K`?Fx%H%TgGDAn!w*9Z;{~vVb>fF)t(bU#ht!~uxN@F{NUZABFc3*~f`I))Lu^JVVURpH`wJyqII9 zu%fXovey_>%-QQuOEJHNeVUcXerKfRu3TEyT`2=$yA=N7Z1zr zA$%net8kt~&b*R>?e;ll|5+fXAyaTiKhH||&MDI!&1d zOS~OTgO`MWS8km9T^c)&#uA7SrVni9Aa$PZE?zP&fOV`Cp7y#)u|+dPjGeA`E^|sb z#p#>O!#u5|>>OP|v7d}w2)8CmdE4l+iEvLKE2LgAdOm$bB307}Yj;54ShTFh2b~Zk z1t$!v+@ej>AOA*E0)RB|S4nyd{8!->xbyplQdeG8i67v!PB zoE(p6CHC<_TaqxsO3u5N8q>5+6oql}ed!+^OB|_F64x=4(4r=^XwAuQk2q;7-~vV6s8_fjv$-^awZ z;;LPi#V4@ES7(ueFDttGfj6TfmkLSMQJfXpGJ+@Pw%lpsWA2 z{{Mr{B{cuPRMSnPb+hoMFB`j|`TtUt!DRej5B2%+2ao;#g#LuP@4*_30~ssjO#QFC zC8@NhO}c?hTrOO8E~7Y!7(y|Sr;xP$T@op_d6f&{CS6*sPyBq^^dE>05=Chyn^swM z-s)x}T3rlcba8R>)QVBGAsEEd#l>g3@f16ugD$WTt}fCKEsgb|E%pbow!xHOtPxl5 zwXW+d&E;5@Bli&Lby7~cpDHqhqm@2L)&H^?r1F&G8Cq) zs|ocho=B?@w!@Hl-1f#;S|j0?AX)2L$15d-tB|bh8L_|6DunF&K@`ksb=Q=S&QqsV z2FSOS zK4NrUwFHj#WXz^^-}pRZS}n0dbU6hBuKUtPkUv6~d$M~%8`@@b;lRNyTi-_FB@&mu|EwCZlOKVt;qM*#_A;84X&IrAmy7 zub(ie9ZEBhf-QVl;523_r9Y90Cv+mY=sjpFMMm(AHFGXmQl_1;5j-4uIZX3DZOhHr zh*xi3eyW~Aao#;qI}yT7yZmDlk}YZc5lBDAMz}v=Ds^&m_eZ6G)L$%>R~0v|8eF!d zGzJie8)&SHwCr$8MH~qItTI}w0P)7nPZIk zi}?ylm&RKwBZQlDg=;NiX9=I_0qH-0X}QDk&TNC{W_6!y(`hxr_GJn)^xwG9Muy*) zDN0tqXrzn~u11Q!np_x0GZu`E**MVD9PO88yHw)DWbIqYD!CMA1%YBwm&ilxfHMMX z!?(jnW!ciEk1@_#u(>}fab%+MTNKZt&7~m9Pbx*3Kqiri;+@?Ki-%Em(vhZ6kYti% z-Re6pyOqoqzA~1mi)}0yr!Kx@PvekADaLOrU-`@WtBMjbxRz6LaO!OdrR6lR8niTe zbaorc2IgRnn@x5UWAxpu6+x>yQl=1B6nAgBdqwRkJ5!d)Xe%pJemY2;W$FAX^Owx- zlwB+&h0IctI|>*BynkfyM@x49|6#gUwB59HH4ii!q+Zm-rtzmn2UVvr^Z&cz&OiF# zvH#xakFx*I1^~)C=H(9#1{Rx8Clkt;=4hf7YG|M~FDvQ&kXsIvd7SjHh_g{)v&VDR<;c+wv4cdVF8Z9XVuQylSWJ&dXz ze;##Rm$D2aVIloPqf|6{K&IW@L7yE;QtVI2rw2kpE?hLyZ_MqiUS&T0cX!wa&{8eadaA^O7wpc_hA8 zUe0VE?p;B*oGH|4hVrAk%TmQ$`SL+vl@(>9f^|5RmQ2eYN7*3Y`UinU|iaiFgvnY*hD5KVCzV06GzHIIN;nAq7mXz9H-BT6iD@u(iwZZpJ zT|H))-d713TqC>sd`|K}%ADJPgRAnmPV918F{sOf{lpx<=;tSWvwbMjhHP>`QW_8A zvR$5!S=LpWy`}PaEiBBf;^hO4#smTP z_yPf@kY~Gp)rXc8Q*4vQKFxE4Re$Vz)s&)WgytWAw4|oQGqop0_0CGEH`${0k5<`+ z^uZzhEtH$UXx9XN7@RwjB7Kz3^@|xiE#hHzi6l3eYj1?2I+Bd_UB44wi zVY(;S)yrhYuhITAt0vea$L)5qHk5Vt@}}~AeWy{jh@!{C2_T-t$4X_CzcSzNnu-$9 zMH^c1B!v{t%N(zS{?TTZoSi7w1Re9w8%@z5XQPK_c`$Jb-E5F&LeW9tieTFhYeH|% z&D2mrF-$UY3^VL+ms}f_h?N(uN=!%TW@yjXYNolb*;Mt*uS{|csLL$2by-_umP4_0jCnb~eR=KRxCC?RLIO+S7UI{g zH;c2P*2oZa{w-J+1-JGA~--HkuT z#kHbV%1}~r;v$b#O2qmext*z%!nO}@6wfMbPOTJv3$bpmd%V3;Qn+SPS2ZEljanmU z+YH7`1~NrRM3vc99pNj!W_U>#xp;UjVQc%FF-GYs!plP0M9aN27vdTvu}T{a>@{LeES7!kgChWXS``nAqwyo%1Y&o2r69ZopPwb;_M0yzi|b zr(U3<_8VX7s*J{%4FS0Ui+VaWb1{7$Vr!q=k@y)f(09>9eCumOPM5c3d0Zt#%fDb|eD1R{#5^ zI>^@8pgj8sC3TopklQq6-ttS|;4th>O+ zewq(*Guop;cW*BVasxH^{xf%-gDP|f2z`|E(o?tk2UU#e0#9PEfKNj&2syO3YsgB? z&JEor7Z!4$dSq~hQ+sk3Q6oozBte2sC7B-bY(Z}LMZDC8oUe|P;o09-J0|&hdZ?^n z`~OFDvvnS8+i3@Dg=wm5ELT@+x}kAXwPUKYRmPI}|0cNek3M+pzc2c0NrcMO2CqAl zEII7on*0J|>SO^PV>4^J{@EWJk_2{gBTs}J__ObY=1mP=6<_zQ=Qyw1bZ}hgH7j^*th+C&OYE(sXlkl>iM^MLJuclEjNJKPNpOx0q~HH| zjPtVOa?9W&-Lakcl9CLYmao*y!yXrW4ZSD$W06nDB~h>c@r3*p!S7B^4cViw&phBO zc186;!&Vy-_Ej46e&~YVTB=mqsP-PRilc?ld;SI?s=@jy@yB?8Q|4xp`wCD*T zS$0P98#&g5DuHimKBywnF>F&`un+Qve|u2=!k{Z#mWDochYUcTvvc$Fbd;d;E9@PS zbwLHxP#T1-KVuN|*6?R}P~}ffKzSEg2ogX<{+pE3)!IQ1OmMM+@+>whS)D~Hwg%b@ zp|u+|g3JBET>j+|c_c%xKN1BeOyFph4H2hiZ77bxai`3JFLvi>_1_+pzc4uAm0R!` zjUKXC`PiePi}WEHdQIr+FUx{AkL><$x66fxt_ofh^hsA9C?7_$yl>H9aUA?8$u{Id zd&tvRZ~yk3{B^-kKY4_#8VV^i!QICfat>1pH29{_yhy8%OQw)Q|MH0ZC7}f+Iw600 z!%OfIJluA`6ZY(Jk=pP}D!&*76}E<#{L3SpmsIDE3pzd(av`%ewn5RsU$^@NpSJHx z(xcvua)BX11vbGE9uNd{f){S-aI#%Pw!7=bg5Vo7q2T)V6Y^Jt?$|RwI8}8F2@2a# zu*WlteC%;~Fv-iw!9$i!|E*}wJJKy=jp1nJ1jz#wl2c$BT;Eb7_u_C=f^QdN*&P6No5@N&X%ye>~C~m)mMi%Rx{G|ncL}qp5q0r)|fhnEH+u7t~ z-cdekXLs^;NDTBA2v_L#x}oQL5>c{ZjXV;z;jryr-ktC}@X`$Qa=aF%pRB)y+k;_w zA+1tvv<+RQ4$gQ^L4R+FtID(JWkKCh1tfLwcC%-DjSZFt>t1Vw??y{f<@md~&x~;^81gE6K^#YwaTjHOF^DM~l6=Vr2Nd_V}`!7)4v+ z+RsT*SdneGdpqv$ijU_m3U|}OKTEvOfG>Gbx@PzS9el~hP3kTIBYT=WC&H*Tx#*5N zsc5y9hu8&F{4}XqkWCwf-=ySR8m#}P2_`{PHSv$W?%p8(bjyey>W1!~XwIS!Za24L z|ILP++!mH{baA*F=Qr=API#6W4q{l!nOPAwo#oHLZxhg4J;q+#5bpTcMAaei&s5)#&T4|ng{ zz-Jen4-|&4zn(W3y0YOt`35|^q2~?1D*fMBZ zN1h}_5l6cO&5)S_7QxtYT*xxU0|K=Gum269Kkt3wi%)NW8xW zxk#qIsGPr}ziUVv!(YT=ZCuMi-_JM^{}@li$}1wE@vwVA26JclYu3a9B!u z0*ni!p)xaQ*Y);6pBD_H6(J8=(4Ly5LH8PUz!EGaBmm62aT^hoxi4e+J}YkjKSuYk zjqi3%C~!DIjZ z&|fn{bWj{Q@Jc20=B+O4mbEa%Eg7cm!_<(k4~*E?P213ODcS+i*9*#x#|cY<-gRtc zh&CWG_dPRy|k+SXSWKRyGw22qYC z8T!s;jo?Tx9Yb%tZ>%R9!#fExHVhnUhp;YYRiB3Jk>3e7E%w4~A zFtib)1zbL26gx4hr&(t(X`JNL8U*k6ZjNq2`|P4wfzGf{Q6+Wjl=Ta>(PdbG3NI*# zw@K7!gD-k55_38j(aJ|{Rq(&Jz6mx~Yj=e$pFf!iqF?Wpu2ZdK?Y zp*KOV?VAN((5*dc;a__Gtc(~=U~0qrg>RdoZV2OlxG~b2{kOB1uSAU2sTvLLztBe| zEd7Od@O6poS2wYTw~w!%v%44hH6?FuaQ3oR?6atra6%m^RBE6{6ZYE27qot0%4gow9 z&%5XnoT}Rr-QwgWK^+m&l?0PbePkFv_9yfU>RU2>0eh6@-}E8}9XVhT^ii$X|9FCv zlz(6PIjFK(bMgT52J-5lW4k9NOvizeqI2~oBQFbbu8?1X%Mx3j{6)hM6@e0{YHpwR zzv_tJ>5B>$at@y?Yc*K?J*gTIl4gan%D+9p3FE_TuaKBYW61sZ=xKWh4&%2s7rT%O z7(&YY)?k(nF4;CAc-O?y$_bJOD7a{^ZSY$^9W2Ms+Zrz-!fp23Q3KDKwUS@75&NKq z0r{!6LL7d2GWrc|^vy4qY7Yk0a-qiX-4G(! zw_d>+eDj0G->xX|C_6}8(Ly}V2vW_T_B+~Z8~XSzMIIVAF6a{ih5hC!yJ-fHVQ1;{m0u?2WUID1C zz&FGd>W9tH=l{+t1IUf9^@0cX=HK{@LIXdLu+u-py)*v-SreVSJwDQ4%`8+-DTYo~ zykIejn@9id+Ew8eULk|;3QN1L9XvqW(00ZI)MrH{4>r1rHIu^D{?N)0C#N~;U%Gqv z$PBVPt7~Sz4*Z`uW?A;$;PS89xGEJvpGsXydTtf4B`pBHsTLx>2v6kjLav3yEH1 z8Is?!JNp!Be2bBf(y8HbkKos5&4Xil8T`xLa?!yr!@C6^|52B@8SP06x+*>~D{0yf z%vG#O^iHN5^Ly2ttO@J`vdh75Gd&J9)-l9MW=+m&z*#VV<=D^@ZIK*w)dzVQnUg$l zK_2uz?U&07kS53o^H>KTcPDmKADRLU)sJBtip|2J-TMl7N*>3sE!X;n7IxET9zt^) z>@B3o@wx=f1jPnPnuL&_gLWP7d&;xdH}CZJ_HcJ1aeQP-C z;pM@RCpzeV^Imy?LvF2_5^>Sx2e?%xm6&75%`+{_er{pt?>Ge6<3eJSW z&~*pgwI}6J+Lsn#dOxt2>?PtQ&S>-)D?hLLw@TmkvR{0}9_|voPx}-U`@6?hef_E%EI**D$?XJbmP1$bjb~@ZGorhNf+J zl3-nYsOnPXt7(Xe zH@2sgQ)K_Ag@)mDR7^WS`5V`AL*LehGsGUK%`E0MDRWMH9vRB*|9k7I=|<}0YpZLE zQQv>9Mk|d!o849Kt-il$_oiK%1T?Nw8?I*8C`R?MimJ*|kw5AGx79&aIr`wS|F7ut zgCXm*CA|!$ys4?1v(KiPVF1z-(Q3}h!9~4W4IhpN#BA||Aw%r{$JL8SG_n`>x-HTQ zYC9QP*`hWt8T%JI8)82^>a~g_aPw~jFLoLjVO@<9J>Nm`M;DCMu2AHFNjWr(H&&bHs$ZXhval_1p znyo;NFqERGn8Pu^Z728tk6(eRe{{GA_Ct$;nq;}vn>+Qr{|`;=@BM$C|5RRd2Yv7V z4z5h?<(|_;(`*}0HqwoEHG#el*YnNF2z!qeVV6`MV3A&Qpm?R3C%q8QP@eZ ziC}?fIRu_ugB>7PL-^mOco0*9+caK|K?1O2 z1?$Ebhld@Imj$Gm;5381aUf#eUYzX@HH5ABML|JtH}mqt=1Jn9DQs;bdeC;Mj}4wb zCqKSQOW5{F=vi>B1$&fq}& zZ#yq9v)`9;22)~)qY!U6EMK}zaY8l`gr=?rqA=Q`DI#PCP!bx7 zV}^(jq+UFU7w@9W{F8`jDQNv-e@modR3@N>l!{ULLHPC%W@t&1Bc5}@RRzUX8F-2^ z-lJ=X;&CReg+~DGpFSBC!U`7FM)*G8<0O8bcqNsW)XWdfsz;fH8J-!6m5Rr;EhS^8 zSP`|h6}}EyE|yuVFj%(r1rgOw_|7}H6j9t+sy*GqihF%^5T3X&{)TrZ{RJ&`o8m%3 z-ceY^g>4I&_!Mu}LITlDHdiTH2xsdnCZ0%-PQuCoENPO1qu66`pq;xXY#-HG_?l)k zt|v=VWa(rRHWHC8!WDr8;3`Eimvj}ryE#lOfK5yEgcYGU*6wW*wf2jY{fZMs)w*<5DpJpGYyuV@hID}kY>j>a&%(-^Q3wSYaT#A$cDYJ zCpI&I1-Ddw628TPtb}6z!R%_)yMcAFedKdx`!+OehNshh|9scLcMW{k!2jl? z@kKqgX;70cjpG}wRMl1KFX|#v6={j4i6kN?k(bC*~$^VQ{#Zhm9{wB?yX@Gr^7dccbA!0mWy z1Nw9@2C5AMHXjA7GY1C$0(>_Om^lZy%n|s?4QL<*ZVLcPRsj130Uw0{D^>v`*8&4J z0f+1YZrKmiIRPA$1azzePWlLJ*$y-{p%-wH8SwZtphN;3z7n`H2YA>VYZmD#6}bQB zM&$d#bHG>=q;&LgI|j^e-I#nYTnBX4#;GO}9a;tKq}G&tZ?ghu_YQd27ZRlIDNx_D z8M#k#2dL+yLB4m%209PZB;WVP0}ubCMZQm84@}X8gzXdolzagCOJS;t#WQBgil;7l zZuUc0MO_> zP?85UDFYTaZ%O2i>Ii%?9+)~6Xy*?sTm#hK16*(vm~tN2I|rCo12nk-qw34FcMY z2kxH?tey#cv=pcw2@L%MxOy*8bOP8i5tx|)tau8HQEN@&HCG21+6vf9A8647xZDWX z_cx%1wLxuiM;1gPvB`IVBUCOmxaLMrNF)`f$NR~U&H|;tAUT60#|F?yUv(ehF;e2F@mGrw_F251cd%INOn-H?VFAuy!Y~$zQ-1 zWx#{ifGeK>qhA4Aw$UT;itPe?X92XE4D?+N>=XvnSPz`P1Gx7fF!dO4W)jdj130@7 z7;o^S2!CD}0Y{AhCQk$g*Z?I9fXf#Ghx-B3!+^E_01MNA_sW6GZvs!g1nRfdC+`#W z0gg2WZW|3u3k9mJ19tioXmSwP{|qo79k{L>SbYb$vUxWm|Fj;k_fNn(lYz}=1FIJT zM@9e-#{gIF0xmlV^oR$RWCP!o0(;j03-19ty#iK#0jg^nkZ>Fy3d|l0JUJOy5z25Y za9bKstp=EWoB93#nEV=;`TRKw!*zpvDg1 zn7@IClYkE{0o|?wYipR_9|D^^0q*|*ocsycrddxCj_KOKxgCJjoq^eXfhGNcyGH=M ze+Jr21U{M!TsIe}zW}(?131?kSh)hYG6?u?EwF4IFnt&B&_1B|N#Mq_z#bQY%QJw% zSAeOd%=bFr@!P=I*T6QPfHuu~k@)t~1g>ifoZb<*^C#e>KEQ(}z{nB6LzciV*1#V2 zz@rO*XFY*Cy?~>Z0}rnNhDQTEeg}5g$#6HY%L(AKQ^1(>z&96wor-_~SAZ^cz%Ms} z(&xZWuYuDW;l1HSqU&nF_!huTt$_1?1fJ~%3@`%57y}bW15-_bt0x0TSp(JQ0oTn3 zZuA7sTnx+%1nyo5JiG?jay_u!PGHF{;HRU&v{OKh6yUNnpj!d3LlMxo78rjWD0%{% z{}h<}33%uW&_)aIm52IGI>5=DfVEwK?Ro=U`UBUE0IvNRxPKzh-wJ3nADFlRc*_%5 zCk3_&0&WQbs;&b*S`W0?1)R7C=yn45;3UxT9MJj#aB@EIU?K42HQ=Nh!0g9B{TINM zWN!eG=vgDYM}SC_)&h9w2jDtAV6i^1oe}V~F;Hy`u*?*gJp~wJ15{rCjCBCINPyFQ zfcsYhPlf>i+~y>K)V}2x0}Ge&w;mI0Ox-N zW|K7%B9V;_I21nU0)smN1G@lw^aUR74}38K82dAD^+aH}6|m(TVBK6`%0gf-51?HD zF!xvB;Yi@J)xc4kfi_!!JNEH%!0*zyV>KVWedB6o%fro2=^B)519s!F#0_{En z^P2S|c5p`%*rPqLcSqpD-oTdqfEvS@-$w!4Spy}uz|{+Y`<;M;76SwPfM0@{-@|~- zHvxNW1HL*0d~yW1F#*^mnfaaz6kP`HuLK6y08<|T10DlMegu|%0XpmSC-JRl0qolq z_^2DO_WuiDdrUSb;1G8O$t$cxM{=m#&;Pg;n!0$l)jX=p>VBZ74 z@YBG({{XjS09WP!^U8ods(@qf0zW+fo_z;Q{RGt4FeLGPrwNQ{5A4+mnB5C#(FdqH z0$4c`_{9?FXay{p3k((m1IX%Ok;r-pd~Xs4oDd1@y9pS(1t|IpxbrY@Z7i^PBJfET z&^Z@4>MGEp8o2)<@bFWh`WIlVsu78&aZ6zT)y~fqGMbYv%zo?SXr}fd_qnT~;!T1nO@B#%u*T9t6Jl8))|r&^QjbHx2mdA}}!@ zII$3DR0TX#4NSWS?D7<-^%;0nWe|zKzZTHD1+Y>NILZKMFcA1+5HMymaN$^BOKad- zTi~Dtz&r=wSP5|MVxY@!z}g^Sm*1K18-M}3fF}_0fWz~Fsnx*MH-PHT zfHp6Ib)vx}o{nlj^%g+$*1(h9fMq>_nS+53On}ENfLkUqoC$QB4XkztYDs~WD}nxD zz(+B_=39X&e*q^Q1?D9HJEZ^v^MK0>feY(^p?85J-vA%H2f8&ILgHtk3q0KkSlk7; zw=eL~0AQ#oFxLY3!VXwCouLD8nHV@-3as`4s;vY{Lx73D13&!%Ox_P%_!ltsA7E}g zur3`Ko(+! z1V7-A0H9Xtx$vy#=^sA5i}kQ1uM3T`KU=1>k~w;I<;*ms;T1 z8^G&NfDfKC*S`V-(Ftq#b5;j9u?5hj3vl6&Kvg4P4`X2O(LirgplAwkoi(s>9`J!Z z&`kn7?hW(^1e&a5xCR*eJ8z7yLzjRZ@_{K;z?C(?)enIa zo&fc}04+qrN&KbSzc%uE3a|nCpFjYX<=f2LmUJ1}2UHmP`ctP67r`XRglx zRyY7(IWpfpfbAr}+9g2irNH!H;FwUL##*5F??Bb9z_Hta?e+uB4+8T}0uxUIEs}w~ z&H?SRfa%%5PsPCPCBR9wz~Sc58U4Y z=wbj|-2)hI1WYjo295;A{|qdg2pnStoG=U6V-B#37NbA2ap&~BjQFwo*Cux~7IOC0d*1)%vw;EO!q?jqpaDxgOVuAvoup2PGAJE?rm}UZ09S$@$2ZoOWPM-oC zGZk1i2Us_cp)2sTJJ8$*sO1Oz6bKAn3AEk-T(BFcbq2UF9r!F4IJOYjs~kA7n)!Yc zxbhxz{VDM9E8w<|z(Uc_L_fyrz*t?NV|!p?7vPZYz~23U6@!6pBY+lTfVa$mWfOpz zlYsqgfF84fX^z0Y?!d!7K(}Dvtr%e1Zs4O6zz&H()l8soDKPRbaP3=Q#XDet#V8U# zjUzzE=Rmu0qsevieZc59KqK=p%d*gDlAPUSU9sTR@kgsovEvG4q@f$tjlu7U3w_^yHP8u+e(?;7~7f$tjl zu7U3w_^yHP8u))m1G%HR&9ZEn`tw)PMWi)`=aQ) zf2Jb~}>BEOTvAKJaDu^QQEnp&H}52|YET7|}cdRiu( zxu5c|JV#R1Z>xc?!GHk+$2g=9+!^w7=UbLzhxi}L)m=UGbGP|-FOBqm`>WT%`FfL{ zUN~QyS_{MKq-Bnq7{qDuBZ)!5DM!)y#_Vvy($=&3heofr!R{8Fa=U?XhU9|TxF$5lxdF|0V`ZR>dl+E(w zo)9B7)Mpyq*MmobB9q>dSJOWGzAG;bDn40}bRQEPA|oF6Cuo0Q8S9~D@t*mP9@O|tQ|KD)8FCED`t1}{ zHBH>aEHMG*GiD`|+TZ0{ac!VD)KYd^^TXBKSq8cO!G0ZSZO{Llj|#DdJ{_W#5Kv6Y z`NSXVhBRGD6TOw1H7)GwA6>*Wy(Z~CJ8m>3o6K#gaj6qi^=?sUc6ms~Dc-V-W?!tE ztx`9<)%-lSmC`a2LdYjHRr3}nva1qfTP@)eGi3A6M1H3A)7HPMO%QPDpytOGq^bE7 zt1JGG747`<+J&}5#FE7)ileY=(Wz^~v{A9`+k?!_>98{yE)$18i8?Qc!Z3pJQ}}IZ z`(81!8y{2EALn_U+&HJ|)jrlFV4z>IX)M!m26h}8GBGUhKa9 z>r~F|v*S4sKPaIZq0KO5U$#p_RQ7UWzw?QgRS3nV1|rB*FWpeMnk^>Vclvj>`L+VtG?-e*+r^G;$fOCVuKuk;Z=W^Xl^EGWoaHM z-Eo&kVn4;2u%(zp0te~E!~aw#`Gw|)tP5&bmS-pjLTHpdvI{ctfD--Q^2bH15YehB zF_e5Xi!3k%u&dh~bDN2}ADwhXo+Ua^TI*2CoV`} zT@8Ob07Q+?`V*CT6!9|=T2^+$PU1q~nVj5U} zI-*es$&*}^9l&L{9e@A;E-IiE;4j=?I(MjuHCw5IgfUvv{UF!mb^rnbxr@M8kO^|i zUI{(33T#sdLZsZ?6HkblPTT#$t7QOw*a&mYz)CIP&dn`rk93i42Oxl;3koO&xrapJDa(C#NH z!@xc66Fnsh#q959M2DPHe1$^qX`-*Yl8l0fEXPo7bIQy9!df>4)c|OCIGh@X|4ADL zj8T1*n3>MV8%>eT?rv1a4+2~tF9S}Rp>jEz2;JBS45FGHae6s=Yt;>b7})qkQV7*l zBc^u7Kp>MM!VI4^5(TEAxhVBOi#YMb3b4l0f3z|KC>20jLGGhtM9o@k_g4$XQJXr4 zFWQu^cXdQKXPtWTZk-@&j&<}Eg2L&nP@^%lLmEv-$l-wqcMhX?mvD+a^F<;98Y^P% zez5koIo7f42#h!VbuF+!=)~TXL17@^HltdCAogF1_54mTQsO!51Qp^{#MmpF7ie4i z$Pw)%*w61}v;}-4GoGiocA8zxfeVkRU>mp_keA{7D*5VY&!yeV1aE*D4nJe z?1fplFT7os@5oH=76d#m!asM%h~*c;(B&}E$Bd)gTH?lppe-)j3=;jL>^(FQ=)0W7 zmp(~JVSVr1ZLl~dPMr5gc)vNxiE)IW+rs7TIdjYjY&s_eL!<(PH_6+R1fd?!JI)4x zi}eCpI2wQjnE>3uG|wj@{*qAsYJB%n29zowY3h|Isj^5)hwX@+6;Uu%X)YL%Haz&5 z3#DS}r8+Mc1IC2zM-9jW{mrH94mN-Q^4x?y0b84Ua^HYz`jI_(K|l^cRya4iT*;pk zSR^8wcXaA`oHCWaNz;~<2#WF&Wk-I~>*(RUb7&G#>4`E?v4Zq7YHO~XYj8)WzQ;*Z z37aHs@QE-8UQwpNC$W88$daoPY zOClq$#1UJf2P`xaWz;5c-9=YU=oUh-@~%oy%<_zk|BR^f+8*diOVvNV*t&RXbOyPL ze$LsMsb3-?GD$I+Ns$rLCL=;h6iAJcj5a2=EJzn#gC!@xW+v5Zv!kx{gbg;^3&wOh zA>vz+V^$rR_eTV}Ig-q*Bj((hQ4mWMluIs65=p@Stf2P4H-)5bdsSD18681vLO}t- zqo_OS5Y!iPDBFmfVlJv`+$e74%*#Y)jzxQmV6`TiRz~t2PMn`PM%4e>^G)e^)mSbm zi-pA04U%yAA@zugyf~7qs+ac}VMO|Tv+`xlyb>c!p%?7~wV`HEZF9E&3JK|%F{nn` zsw6=Q7|`?j?M|*B1Oel0*;rc%x8fY*~kPosetL3cN`z``lTfTxBGf9A zD6UGkvoF6R>C$E?(XZ|ZvHB}tbe67$mlu$t?a^hNP_g1co zv3=hVe>ii$hRe;Juy_b6;eB~^JPY(t5BJ!7$2R?*w( z(4|eRv&ss@q69 z5t#G%(?y@BcN}%&3AmceKJE^2G;JxfQ{TcLY%*ip{eQy}{J|`LZaG>Ys4NhWI7a;} zQKz{%W7m&Gx*l;BJ@yqZ9)ReRvUFIXyA;dx7GgoqQYHSpI$;tL`ZC5P1K6xKS%n^% zR!5U_VNHAVJw1{s&Z-l@MdDijN{2|U1iw2{bH|rf5Jjpx&XtguZ>YYzt|i4aBgaOT z2yBTEPZIkmSe7<^waM>s>@jO5cZNsbdG){eVX3*Qt;D4@#l@bXc+6WSF7AJ#9C*qR z=D1};KHkU{UXiXU!Jv!i$L|F9sw;|WtYToV>stXuOvjY+U0=ui+FA?OV!4#? z_|n!N7Xp(dijk^&t?1 zvmkBq1j3U6Uxqvs0y+a8-RE+vzg)Si>f6q;eq`HEpgsWrk=)j=3p87JyXgtfCu=CD z>N)ij)KKa!=v}9loI9`j(?UOM`_i`{9687 z+WEH`M7cS65*6~ip=yiM^Ox0MILwCf+m3zHI?SYjpC|SQQ&KNp!XLxjzS zHxTA{|Cd8QIlO0f@2L>voyT=%+okC1rF$`D^o)bTyzsDc@Wp(?TrV+BgGrNVs+_2) zyiBQ|d1g*U#Oa{2liK{uq?(@Q>td`>iG&mTumE8@LM1sqW=LIiS%bLB@0Fk{3TDYL zNwR+Hg+@rn0`nQlkthkw)>G)?Bx)BiQc7iB$vS37-Sv%B80paGi@GLt(*~b&Ev0EQ z_`F|G5XPnsDFJV1xyGgXFBqAczaVai%ZxJyF`Hp~5C?I6Ecs4Krmc$LKj=NaDHTnr zCRe`_%n`)@J<)V*W$JKON=g7huiFMEfU>rT#o4Zr7VhcyF~2+)rtIM3*}uJ$hZV{+ zv)8`47yH{hIKQFyE|17a)jX=2*X8R(OdT3>F;WczGQA{yaHUMHCv)8FR!xBcxN!0x z)T68RypH3RWs>Bll!MtT3L0U9Wf3~&ONr<9`^Yw2mv|$3#G1W_IL?|%{O#8Uf7M1M zY<`Bb)hGX2UtD7>Fo-Hodl)V-`fvIrl@F>5z%8pp*)xFsIro5-_0F~09V1qOlFv5?t1C^ssw8g zPzZ8?9oYPC6f+489Z9iuY16WCkXyRg$qF5s`2m4EmGHpmY7m?_a%o`63pb;Y+M<>d zp&Vp?m^3-&r8g@hT%>C9PSm@nTgp@?>L&3E0Ud;YB6NcqH)x4Y%|J%sLK_FYov`8E zI3=TP%3B-So7XmIMIqDl)PJ>giN8tBCZwh_$}|3VC5Z6|V?UR72W-+`56NiTd)7vF z`RI){`-hBE=fgjitLUOKDM>+3gx_`}(7E!knSMYS4H7WMzyR03c%wJ4{*XD^{>{;B z@glIW4XFiwQHrWV%U45K1@LY01O4TMOeCl(4}jY65H4nw#3QypF$OsWgTZ|hsMuW% z8pn0;7g|Thl%_arX@12pd?)FS3uOg1QM#vZ{ing*Z%c*m!SjA^#_>D%e&+M({iS}b zc&^rAG@5W&92Qk7ZHxmjRIbjp*qMp~*cu(&nE?W`6$HR0LYHU6^#l-Izn4$LLy)G! z_zXks@Mw#ksUbkA(SV*2AU#_|fMy~{eD`0oVel2Mgs|YsxIS)hA`nt3Wgc6-WNHTg ziT`c!tDOy)=IoIdct;N6nH^k@8{s1O=w+Ts?8p0QG4J}Lb8Y^xJ;D9)p6)mF{_tg6 zxD~Do3LT zb+3IqdO1auXC%+uo4Wim*^xib)k9<}R@@Dif; zZ|?NJuq+a_8{{uG7N+ik0A0g@jW;j?dcnx|MQ0)d&pAJq@S>Yjw{^dndWV$C1bncppD(v0EO+BJnT{_*kl1JH%zeMTcYRb5;HImhyo;*mCbm9tFAFIp#=`{vUaf5-y?j>k#Mi>w0JEEm8_QH72 zB0pohM!&}U@HJTOeul{Q@P2$}o3g8>DSz~-;fws-%_SsZacdARJ;&og5RQ4e3NLh~ z7c3~|^|*O@x;w5t0Ru~S<)21@YO9d z*FO$Ewx=2cCfXploD&S@R%F0unpQt%^(bY(te&n#ys)uiBOoCs=$dWG9+wVeINlh0 z^Q}YxP_~SK+fxRTPmnoG8lMFSZ%U8pl#b+OY_8Wy7zHtcKEvUwWg zVX`#j=%O{0ql(pLj%CR;=gT75&`vH+lbtM{MtWE*&FrYn5>1hE)uUA}IKf8`SeU<0 zryGU79ypj;i4j91Mri+uqz#nxGU6q zpfx$s&a$H-Lrpq@EuxszI-pgJcD6U7X$4#K*w1GkOoS&i*FKV_`D>`j^~u?%=_}kb zNuRK~$WqS^j>1(p>NFdP!`1@NLoo6vymtS11#Y|@ zhf-ySQmBCU_?kfvlBw5H=j^g#T_g~9U4&|Kco(jIQB{iJ+QL?5_sfM~3XG1ZF@lHH z$7%E*BS0 z3~8Y|Lr*m8{8i@vR2JQ&Xy3WuBI`*8angR?G46C45k7)9SZp{#Migo4@};#gFCm%|Em`#ir!S<< zYAs-T6WF}cf~PmK&C6=%r_2LT5`uWJZYO?GT#CPrGf_-9yhpLc{jwa_zAE45e(P97 z6t`EDbFs4i7s*Fw+{V<*eZ%#Z&f$382i(r{K(90U{#u?lS~8j~Od>+Z4l;p8{Cd0~ zse`9)3wDqmK;{>pF)Gt+@E2_4DfR-8UE+Uh1;is zOKlQ+mTrkS(bIw>x$rYL(F9?JGD3KB7yp(G!YbW@9Btbk&6S~8>x;a^9amdaYVP?Rzb z$CKgsa57R6PVo+Lk!A=F8As{-M02+yK7|VZMMxV0P z=w4$iV%0uX@BJ0;kfMH&yATip0000(1TZ830B=^IDbb#oCs~tF{m|Up$-T)HyO>AJ z`1LBedD^_*mT+YE3;+HI#sC1#2pJIpz|}$d0Nj{Wbn6@8E8!#XED(xc9FqZN!jS?k zbAK=W?l!kF(|7ODUzG4T0S+KQl?3C2PjMgzVTy>Pa4Zcpwb+;ld<_TwsuL6ffdXhi z7ytl<3~po$0O!svZ3lWh9nSQ=1Ku$Jfn+0dWp7u`+1plM9b4-MX90(F-xO~(=M%R2 z?<|HM%~M*vk@>wSy5{JrqJ7--1#xHpyylgCUOO+5k@U)Bas6fIEqmW--vZAY(hF{|v#VSaRhJE6&H~;wKaA{sTp{;+ag1l*U)_&?@)(dJ-A>VqVf`( z8y=AFHcvPpB$9jB>S<)nvyn7~=kH;Ce*MPJQ=58Ta_^%>d=&IZnEtl@^v1kmThH9l z%o8P3$9R*W+vDnb1z9hA?=MKQhJ{0mjPq`_FpY$wOe;4dQ!{qfq-cTst%)XMo#WR`{ zGT_Y02nmyZ+0yIgm2b01fCw;2vP6I^l63+nz~J4%7#JkOB#8uAB}BJ#Eh=$=Gn&D9LUNEd&=^IP>tKw{Gh_;74Br z!T)DIC{ULix4?(EVCbHsB~%>!=S9~m>am$230#{9fb@!4!g{H5MF91z9GQ?-CDiFM zoq4%zDz^U;R$RIXbg^jYu27QFUdm-!H<46?T)wnuc#CpVsD_eY`YE<3C@E7k9Y?tE z_h)xkWbI^*EpOrB0*@{(Ie z^A&2y@N_Z^-x3uqKb+IWoGmSqdQh#)!~`c+>H9&39Lfdk#OjIrs#>6T64F)rds+@N z+!0~($IZ4wW=SmHtsTm~(4C9pQi7r2dyv$Y0JHG{P*4>*2)Uu0TC3#WT;2d z4vJe^H`hzKM!tV`Vj6}O{>9my8`91lq}$FpA!rIu>Dpa=99F0K>)^N6Qu)+wJq`e= ztz_f;W^?4rmw@~*04T030Uyo;flM1Wx3lzO!NO;c#Kg|lPY%Qn%TvbOPLE)U1u!E1 zCPM_!iwFs8tcQIGKKnJ?{1w%H)aOAJbzD@>4`B5!MnVD#E_iO_IC1#-!MX9{>GNms zLsyADf);;gz9TFA89c=bCOTI1gC$+=A3Ab8ZC7r=zRO7KK#PuBC>bdnzH~@_D`orh z#?5aJo<7^OAAf#+varAZdPrQ4008h>F5`;Nqwe_0aA5JD`{(eWmVWV zP3pF%V<*_;++!IG;Iy43G?Rb=m3{z4)#bw;r6w zH|J;juV-xjsyUGl6!R8~HjNY&Xbbr19=JG_0SJ;=K9(pqO6SC^(@LOmB?(~F{&C$f z>6sE-ToyQHU&|V%TyRrI{HXKS`tdjFU-xlnzQ;Z;TNJG^1{T~2f@=>A>S}QE3?`?* zM)J%qLl_e_E=$372wj-3k}N~LH@qd=k0jE^k+Vo1D3$b9c_zEHU~>S zK{--)%EO8h+Jly4!46hGA8y-kWW)WBLihJRR-Ybdywzdp`>ZH&y&m%}!n66|HthuKcvYfzm;wlvP2+Ks&6qaG(EKQ|gd{pIw zIjxCEDs)b#NhxYac}{eW^2|Re9YU~<98of*)9jfEV5{%}v^1^bFyH~FJ z81*g`5%pG@5lpbvG81Io3~V3ud5Y#gD0oh^G_4fD{*>F+l(b4qQHtZ$l@x+`5J*FJ zjtZ5)9JS$oPKJcz(SNN+(XB`-B-Kj*QpvCZU^~dntw#&cc*uj+cN;x`$D+{T!DM`V!msVcgr8a3_>jZfLl&5U zhzFsFkb10$H=&V&MfWDikjA3ZCaPkAE+3ng@iAdj_3ak0DdZT&2nFUEp+RU7k{{^5E%5EG{mBmh2R&R*ka6)zb}l<)JZK3) z2~1e{C2G}^TF%vSw%Xzxg@SFOL}K2ntjb6>*GcJtCyPF}zXv+Bv;U%B1pW*EOJAp! zl2W>PXjfQehF_5~g&z+QY2}XtP(Q?+azP%I`q9;4NC-01JYEzTGc+9aBe~6yn@_H~-EeSsAshiP!F9QdvkZaBy57fJ9V&4PxQYph zAATa%%N$0y(3%ZCOxVgG-ulA25cuST+#!H!V}KJ2f~Zh11cg{jsgyI3^OK#f?qcEr zE?{A>q>QB5vhMexm8#Or?|EEfgXrn9BrEFS6V_v;#hT957bB4nmdXb0^J{vJooWid zoCFh_MO>7MNr@+#T$3OU7oVYNf|pWJVYp*NiE*RC!sGtT)@?TnZo3U@FI(uiuR1i9 zwd6hHeRBA$Sh$zM_vQQzt!C3UwA#$J(AHp*h5py4avDuZ=4?e$28{$QNg}z9tIN%u$TdNNhC{l$SA?&1OVLPMRq(yNFu6yJ{om>Cmb7iQH{h zyhA(1L9uJ{*t#Y{^T$O0S#?-b@eMJzTm=hJLO3f{(&!-yK|w?LC3Zll$6kO7_+UPXl>;-S`Iyr;}uG3 z+WkM#3hk^{h}#T1zPUdm&-o+s*z!VK3NoTNy^ zZJM-}FR8k6C*~iO+98grOv@=rQM=hI1tn^ANeU{uN3sg>6N^Y?rnTuL%Dz7fQx4@f ztQr*BuV&ENVv&5xVlYm1h>4=Zt~nAyK6^x%8h#`uN<;@Y(g%p zbYJ>~Bh5>}D4s;mmQ5XGaes84tGXuGL|nWjo&D^4#SNv!jnb*DypE0ED-w5^V!HSU z9QWae8~}+B5CQ-I07C;tBme*pRstzRdt$y8*-%x0$*#J{W=GZMR>O$iouyaq?R(R< zwLZZA|MUL<0tNtxh`@}X0D%-T(`{-+Le=_I;x3R0A>h^W(WYj z&1?OqZA%&uA4Rz?!T>Q4ART}_l7E-)Tib2Rww5DoTQPaeOz$&ffvtcvwkOlR7>eNC z+~tMLr+)LyZ~DS#-a|X-D@JDQ(=#tSQyK64(a7Fk{C)|dk1jSG@`PvgQ6(&gf3&`ps;<95#oPI@(cc zo+UFUOX=f(ozyct^sEB9hVndcGGVbq>mr zbVW#BNqn4%u!~9~1+LgBrPoZ7P_K4I)Zj{+lzUL;&)R!&ZrZ-V+EQpd$JjgJ?i}Sd zwD)KvWnp@pNKYRdx~rQjM`m!*_t=&K0kE&8tlJ(!emd$+-z6n$XgFbJpp{JM5Ym@g zM=NRoY)qSo;djG5tNQ!gNL)K(%3OZunP0y9u=U6Xz1Wr~&)d9$AGTE6cQSoNm&pm~ zzHD8N_C@`QUOuZ)*;VXH`w(8RU+<#*bpOOp2u{vTMiEsvd%-%Sq^~FNfnU?K+@_r2=yp4Krln4F-%gg>bpkXrfVvS*8Kg z2q|CA6BO`OQ<+WoxDd0fmhn2msAg_p`Xuz^EbPO!{tz>;|M@7 zxHvBWmFoo{lDz~QsZ7O7&9w72UP;2y%C%Q2$~%lu z{VEubIvo<(cBcBx1OPYW7M)$J+ZV*pybv?=Qd0B#P9><8)tj>7#Y;3s?`S~i+j)(r zsy^dUkS^_c0%#v!VPyb~5vY7}qO_7q-&wjZZcBlvRqDKJW#1-R6Ne6Y3xWbU@=gm;wcy_pI{|2jT^1& z#eZ}-m>T%nx^`cJ-IdMIc%PA$1`>PE4Hb*xgQl>G5wO6lSb0kpHWVwkGkM&*C;$MG z4Mv*=s4(EbxUqLqogl-E2e81*SOH5sekf+IgW*Y0z!>N4g&fo#u?do5$KsFGuXY=bAmc==klW1pfgcQoA&f8uhRA|f zV%EuH$XLi+Rmn%l)o~&IWu|VtL8`eWYdf$1aHB-eMd9|M7ulwd(NNkS$qsX|spXy! z*n!B-8E-|0O~4kTru&5qyx#7_!Y(LCBFL{WH5!~CZSL7T6K021Ja3j4?-_=}oTR!A zQw}$?;2atmb}_wX_#vYu^7Y?CL>mi*3=n2EdBrNhaiB|xl8(bl@nOjEx`TlQMQG}_ zLWai3`%VUXhWE+ZZG`a#Jd|*4;{AcSlnO_R9KB6%s8>>l29kpQR}>tl5M7g|z4jvAt!E_m)LnD@EQ_gb}S67h0(<22N2-w8d0eDbjM% ziGc$pl|&^0M7{HsDxJ?l`#b*YS3ll?D8$?u0snncxL7qelPGk!sy;E$c!~>e#la=| zk?+FIjy9`w?A43=d&hwhc?!tpo8IUE3rAuufPw)591MWcP=*ZM_I2UFVmB<>cSzx< zm-3Nj^Z(K5Ao++77p~(G_$?*v1%=#P(B40Tswje$Dm<5}h=WC(HIUQoKWN-!Zt!baFT`klS*3#su)jc`ZoB#%Y= zv5MKo?kqU_TVE5e=rim^gRr-#d8=%-H%NLptsFSkS|Q@^dSip@Xf2}7!UpzN*g@+CBuQ4+nS9qIYHEK;-Llg??p%F(Mh)nD@F zvg(+*QKmGBqPT{b85T`4l1*n#-9?kA6BM&TQkeZnyuJ9TwJAO`ey2r*d}#|GLH_ND z_$JE4XcqOR?cr5)6|P>lK)aS3*v)bV!LiKfua(_}_Nu-3!Ho-gH4j*uQjtkuv`Iw- zWPOLK$aPDFa6`Vp-pJbsE^#)0{q9C^J)cqdj{b?115}-5-N9~**{niDw{q^36Fj4n znNk3fDXVRp*c8C6`24@D_~gH{_~zdjglg=S$)hXD*{UHTniS+*+F6BAf|Mz`j$}&Z z=cRxbP0foM`#~DC83ImXW}T9=h;}BMBA`wpmA1VTD+qfPp9Q-Wp8}f|pa0qvpZxmh z+Ea4BG{SQ6fc1>a1-Z0fs6m`BkSKIdOv^;<9VK(_^Y8G5XO>7egEIeYtmLpb2@Fe?0x|A-&s;Nw5KQML3Q z;og7v=w^_95DPhj*`d{ffga-f6?HpJQB45R=zQj6DR~2Ig>8^*K{x{iAak%7oNxk6 zQLx%lzL}2SPgV_deLfe%JD2;{J=lf&3O2lqm2Mcy zil*fDm-nH^@uTe_-Py*-_qJ&{e=H1o4lJY<^wOJ6)|_66FP5cHNZ(z)>o@+i8KisL zB>6rz2z<|$gFOTcQX^?2CYtjk%HC*4?P6*<)C^3~BXmN^yeLWs`~I;EpE76E?lY5fwh3M{p)Tm?HKW`khJ^xR!gc zJ=iPu2&+J|TLRsHojlJu3Z`i2j)?zw`RnnJ3Ms3M;?1^tC6r(|S>Fjw9b-{q=a_6? z*$+!Bah|N0;$({It-P}#ry6``QS_txvTmd<$EoL`bSd*zOgEC2o?NB{TlgSQ-G?T{J({(92JJ4kgYbQAAh=R^`Kkhs`~sJP_O) z4LQkt;MQsh{>w&X;wjh+`aAwSPshT!ut^$=iD$=*0yJf(5sKVp2<bU z2$!>Dgt1EzUu}iE)^3w7?N;q~0RR7B{s2JH01*)Ym;w}i1j4K$y7i2Bu0xOnB}!bA zO3%P&6IX$XneD8--MZfu_qkiSz1+Wuh&d%SK}IByu3`CJH7W;}gHIxsmf~_2C(4Ia zi4MXy@xsIa07L*JGXQXYWy}3!Yr31CU7rEJNdR#`(~%3XDNUmWp@W>BB!{ReI8&@L;s%qjm@2(%(W1Du|#sitng zvN^{mA~7GQ*$F`umG!}x61cwFBoE8onJz8fx9UToHx0WKMGo~(BT6m|k)AWPY+>t`@mss&-Jx(2nqZm|`# zt}+e|E9h`1>UdAIk0}wMS#$zK0-SJz=zP@D8ctylmf2N4)XX+x6fc>``8+UaR0-hdFE&Q#f?;a;azrwz)Q~ z%kE~EgW5&H4Z*k<0q%Tl1ptt6A%JIE7}lCn)oF|h(`4h(0VELB;YR<8LLy-r)gllX zy)ycurmN&oED)&pnE=ea(Lm#70yUC>76VEFkwEDna1c9_9v43Yn8tem2B_c0#Wf$3 zQ8KAXV+WbR!L73&C~TN$^$AX^n0*inc`qRuT~m|-?ua%4I+C6Aig7!ll|j;k8-WR{ zn>3h6ZEIzi@Y^6K1Au&KFxa=KP%6+WtxqZ0R;6ca;Z=Yt`UUWt=aj3Q2s_>D_#IPkdgo$c zDU|{x6KW0ir=N1(rqVy@1s~(4Z>78dgJ8)Z!zK)UBA&c81M>P6ZPE3ZQHM)fKu7^W z#QN0s_>Itnb&PvHj&1by$v&C8O!$n99Y!Ud^U|yk|LIBa+4jj zcQYlc0UWcEOdY%$%xnhx!475~e@Dk;@j+c?GyP2FH)g1>4k=B@i2c@( zRaHwqKiWog1Ur_RkL}?8S~>}cALxJ?ohbm|uO|vs#x&^9AAWtY#u5YYRXglFX{-bP znZAaSzT1hlKcCp(8`WpLl}-m(#1lA#gAktESfJ+D!v*HUhStL!3x9@!hI7+^Ri2zQ z3(qRzg!us5@Qj+C)TSYt8I~gMfMEmFu@#ujKA$jQPg7{&Y0Oh3))W{rio!k^D(H>L zGe%>?u{7zH@5yvoN7|}e0&A?u#9|jP)-snG3b1GC4p9NVp&{fli)2YGX-AZv7+%Y5InVlH>2$wxV9V5c1e)svLPc2vHLpm$loeb zI*#(GTDZD4hyz3Sm0@FFQ|>-{6eg6vh2-HHZ`695>DxcW_p2p7bdiq$qvj7+Z3DLC%<`4Vhafb49dIV*eRI{Lq#USqG zDvEb{$d=B{LN;A9Y8@nJsex@u5X6GABG(cA5g!|jfC$_~`_E3mXKq7!3?IabKEi1M z?O2;pRrL#Jx54!0ErbT?PSMrueBA$m53r8wf}OsPazERN0zTV=(mmVz#4~VC(478| zrLFBLCAh4{&Y_%Z5Z8uT^y?JAjE@auzyxlieP7$q%(H+kt~R^@Ke%W15e{U+=}%Dt{R~iUX*8o+`}jKFfLDg${B~P zowLQZVI14{+h7A78`;XE27Gl!^8~V;CIsjrLWY;yi88bEx`F_ryLft>Pjge>CmU2Z z8$*!8GqyN5Y-5Xmn`{mqjUkK&coW(ZCKbeud(l%RZ8qKj!zX7(?v5<{5 zYMo41{TE?7V#Kn6KmdGartVV>8@O5eZE(ly*u!nEQIp_qTnD+X`xCm>Pd)e_?c$3V zTl4?5L76*%5DlQr*=f8h` zdov{y>t8QVq2tyfqOHO$2)G5ShFJn?|K?lwjjEM% z+!5c*cj42s56>Cfh~=d7t$D$xfu-oa1KWffx=1zxp!mxyYm;t4&k45&|McbpyFtVK`FpYgvGmvQSp_g zh=3wRQVpea@YKA)H5TJCiAw;b^V=qg4@TD}fWtwD71v%S_Q6y7_8i8s#F)P^CMo6_ zi!klzujY$UKoHT1a$^X7{_zSicDiAg3DT~2EfMd0Pt*!&MGq3ogr~xVeZhwcasA*S zU;(=X%&&5~ zfGH+*EPZ`A&4KqfkEjL?1pio_*c!|4}%2O)gj#2e={4w+@Nk z;(K!C4Q#q;SjR2z`rGI;G zpe>ZLuDQ}f%jcD=$kF*{L*1(z;XW_a8d+y(DX^%gK0$q70vBLDz@R)HzezRWj`NmT!6Cfi2bCNvh3 zwT*bUIbQRx$9HmAbr<0M?~MNd5D@?(ngBC^0tru7@n{Dh3%(e>5}*>3AxXj;;4R_? zd;!nyF5dOr?cePhwaZ*{OQ`hl6%`NRL>%ynWKnUMhF%B&B{t#>kDQQ_Tn;}RN^3b7 zcmjsNuu}v805bqHGXP+1RFSolwiHP~O3ekp3xN`E>s!~qU7EJ`ZM(LKWb2am06_c% zurdZICH!}PgT}?Y^P$hiz~_;0UNJJ9ez|ywH|OZ-3#oaKi~XK?BlC>BGkV^A-UhCS zaXy*;@Sa;w{CU2aw;krwL!#t6g)>E$MDed=EORE;yT>6LlYJlcAnS|xUej68XFdE+ zlgp2c@p7QIcZR+QarQlPVzSQ5h3UW5c|I)2$n@tBq=Zk?fyGu{=MW9*rPn0)02IU` zxo>ufAixamo7hd7P4KxK%VxA-=`XvQ1it7)tr zzQdR0#sz!)c$0>G*U?7L+WelsXvQ1yt9G=HU-3)r)W-hMZ!qXxkYyz)YVc3XPHDXEcJ1U{>SW2rxUQNB9V1YM>`oC*a&6 z(eIdbpEQIGVOHbX5HLHYhw%_NkrDK<6hKV8`O)TLjAdq!82Y0BgeFrlZy;?dY`;2N zKsU@ZhK*rXj)E7=jB~>e z_V(zWmDF8&);)<~vw3SoJK7Sxd2L3PA@V$Va{siuSy*FFs9fbuO6SCvnj`O}1Is7p z?Y+e>8u3Q-sv2uYZ|J4?@fzPRUst4GlK2QjaD7h-O@sCU9`Vw7L#fB&(LjzVxf_WxuOWjBLi9|o&a}1 zh`+&9OLCg*h+pER|-#7mL3=k{@Oiil|M#sqDP0LRcEqPhPYJ$RRxY|ZblYC_pgmC884_&e1 zy^u)V?*(P#L49#dmM-?PI)RYz&NqXoFOvmlTxKOTYx z18A~~S%B&I#ZCl5zP*dF7L=h(qGhurZ9fz=riJlBehgE|^m2Gxb_w%0x&m~1a;pN2 za_|FxFd?w{cd$HrwQaXD3ArF_3nzG#A~9_dYqwkZpw1{~jTpM5@5jN@*rhNiVtB25 zVPp8X-mnmSR*?(ZSs~r+d!ainms-m12{%H=O=}@c1{cR^BLWUap^+#DgU`-LjDy8y z>E@`fVDhxl{D<_;j0iedBu1kg4Gsz;qYU5&92Ct|oH~#`g>9Nd*O+XVi3mD)v_zsD z2v(!S_EwMK>rSS^djltP|0D6GWPPj$axp)UP?4|yyRS=LUe^kVxx!Y~*IJ%{C8=Q! zs14V!o`{$1ooUBdn-W~=fVRALG{oczloiK;8D%sxwHUj!0{>*a{Ywr9Ue9>%`YEmx zvZ6f>4~1j)wnJJRTIlRscIhlps^5(Q(uJO9Ut;vQ30qzJ4oh5YRNQEb>vXZ8(8^fl zP=$eSD@$&J+tVw6ZSWhod}#tiR^`59$!-m1BApHMBE1Isk?uo%NPh>pau0^r1hLii zZKL>58;BvK4rVe{VP4kHz7*4e_|gusTDRfHhYyN#b%~6g=PtYHmHh1UV3yMHFfY>c zpfBlq)ED$Ukc<6%;fs~4U+Iqz1RZj7L(a)TihXnX_Wj0n{ByeYxqsWw9oN0ggwM+~ z-cJt)Zmc4KO`?8RxADGaHd(Yk2j%u<|M;5|&DcZ@1C4D>ZO^Mu^Rr@4Hu%KmFMyBLE zu3V|+Ki5w;mr&g~K%M=Z{au_wyz*hXFgR96B#P_nL7Chu|Fw0{Nz~sc49+m!=h&Xm zZZ2Q!mPvRiyOv8Fgj17o*qW|TLas2|TE`iDezV~2DWRK6d7(^krtfr2NT(BwLmaID z6$J6;86UgTLJ-wsp)c}dh?h1}f2_S*5{AnUszJy}G*Or(C#Eqo7lg*GIWGQfjwMeE z5Y(?=0`QmupfsEKn!03FL?N8OFwDaFO7_})7>AS86JXer1$K;=3`D8|VA@Yn#G7bB3%m|&r7}F&0Cx5~ zzT$|w+YKw9Mq5;nA;rG1AI%v0Kwyk_upf`{c*w~J3nWOwq!(qODBR3PcMw9XF%WQP z7mj~uPpXUEh1`{sq%Pbje7!{f{OP`f1lVB6AvQC+NeTo3e^~>lZq*P50YkyTPORd? zJ)x|_ld3sR*<@JOl>xvoS%l4J+uJ8MYr4qsU0uoa_UCBw;36b1E|3HZJiXWwLMwu= z?goZ!*L<`9Zc|qY$YquvGinIspTs1TSQFeIY!d5Dy#u{ZZ;(M+`cVI|BWX~}T7Yl? z>kmjXYM`{WHBk*4&d8_v6BMQjVWE9`bS#{hTs06emXgKE%Gt>(Sg7UgCEFBlEdZ2F zKS1w?&h5VGD+u7DRuc^MFzbtMe?1#Fm@UNrm>;#2Zhpk=hXtDZz=M<(!rN99$@I@c z6=d6#ry^Ut9^fsapb#;7MOxS~A29XtXknt)8EUX&Z5C;at@&e4jbF<^Mf@s~Koj)h z0&oKj3@2STpC>@Cnfb+%QqGH_P{`_*#x^TACydk&wAG9)qGkwYp7eSM-ll;V`Q6lR zt2wyawGG}OA!D^!7``hXVZ0HFsYX$LkBUCW0cbE42M`q>L=GjPrY z5*}!zR5U}|6{a2t_W)>Pen9q$=Y6GG0Ohh8fSYSg6X(fUp3>ZoS%S=ALm&we1I|WE z)_G&ui=HGo&khC`6J$!c?4)uKPAoF==4d6Rrbw6jEY0Ha=i>${+}u z--}sXW+;=1s;;tKz2y|LgL+qSL{H1wOVL8X;lO<<{#RkuI<V)s>{ zzbZssA8%*!)0K&;=vA z^Wh!%?sVuqcl!Uy(#Jjd+-T*seRWs2e)dx#vPo+>in1>i?k+|XB)P$ebttNBUhmMP zc|G}?ZC;?zX)B)5Z`UvV$$4_$2T1-P#PEuI=xC}S(QSM};e4wGJs!9G%&g5L}^^~dBS9X0@yOTpO?p7eYdhzFr3QzZ44L_@;fr_%)TK}Q+1hQuK zlKTCB@4?HE=WO}<$89L@VJ>W(Z)sgaO-o~LYvuUTfcX#*0ssI2Gh;wA000kVVbuEf z0B86@u^SrAp-sX>v|XZ-aodq@_^0a(UAJC&vD>t}fRev=`0oJ00RSQrxT7!tAOx}- zYGb(ylkt!6V#F9E4#11#NM&HVw}V^2zPtDK-FxrbncZ)j%S>tia*H?tgUKX}89#mq z11ZABjUNxik;P3sjW?^z9E&U-;HG?8Lk<|f0AL0HW@G@Ys|-2s+qDW1I5)-i$}WPyUD2>;E%bgO!I@^<|6_67NTgl8;a1zz$bxiuUhIl2u{dnAXW?j?t9 zx=r2bO2!0ro~KdJ=t2{VkfBSum$12LCE7Yvk*$A4p#)&&1}l>6bAL)I7k{J26w8z# zJpW7BHOTUdM`M*$fX8@&%Y4VTB>B`uDZyVuIw2#6&WG>iDod~sTKvn<4&^z?2`vOU zpH|b z{G8bAp{J5vp*Ku`1+D4=h{%2&^@$Opv5pvc?a3te<{rh`%_9fW3GZJj1T!VArPvEc z6aj>ToLa;Wj-BV`Lb%%%{V96Sbb3;eQ!a*jo z-QNG47ZrD?=~Iql^d6}`&gqix;&ti8PmOdEGW%KkKP^Slps=2{l`4JfTuKJMbeNx4 z^nf|qFD9durHUsixVuY;{y>WC^4?`XaM;8htE@pO$tK3y~xViy}X%fcxk)MK7K;FlU~x) zQ@}Oj-*m~A2lqmwoF`AxE(O*HY}oSVT9-7BU>QsfOEOMTE$1ZRr z>wIp|NW@ghtLg-ATNAab?V)t3r)1~M;K&;rN9|r7$`5V`C8^z86#%e*Yzj}DWP7Yb z)F%g_I;xcWyff-m#`uSMoQhp;zkbe_b$-R5|JdT!#@G@!sdT!Irp25Ot2dsCw zb3e^Iz|3KGI|8sSr7l2~W)clw*8I==LA54=wfiTpVA;o29~AIWZLn+iKHCc0Lar|y zf%pb4E!JnTME@eBS3(3@uqLRRJiD*xasjBYkEkZ1R6Wi6`Ko+Ey`&7) zg{ArinuRqYcxQI21dU7Ui^Gf6OXxNJrNe}}YQq+>V)a(t3&sM==l0UgwULjzw_#4OhCRUHpw53KoZa0SG{y{_iWXgY>O)pYQz zD?xbAo}Z&f!p;^;_OoFkic=J#TAzO zHv8uah_qLE#09W$Dcj%6N5W&)+Ih>0UGD;D;xvb-)F-Ue>6ZEld`?rO`Djh>8Pb0_ zNu{O?_?StSQTkr`K@nIFRaC&gQ-@(TZ~}w;_a_lYa3q!7z$s-6J~;Aa3%&sq0GmGM zzAMg`A+&380$lP?&|y<;>Eu^5IHfv=JbRu;V*zpX`iK);`4sJbiNJO^p0R#F{mmui zkpc=Y&#E6hw9ttZVJNdU>-T7?V@KA%=XIf1ZUZc_i>Q?6*}OwLymTKNMU}Y(TViPH z6pGMeQi}07>z{Bz+=Z*@##x?66A#$T`u)1(>k+{cea_RA#4u1hPEBgfypp0UYbD-o zNUNdqMDqY5oFZmbFfSrN@|0|!l9GdNV+O3%SYYBQ(-H=Wnz~*<=B%xiYQT{C8}vPg za_m9JXT9S6^2TiPkz}&F;_brcV+=&mZ6Q%%(pp?1xIuVtt@If_vC^q0J)Vd2NY6WQD>!9zrs-1ZcZv4=hyQJT&sk z_7J`D1l!2{Zo&*c;uXKef9NcPOsvRnFq~8+c9J$0u>hMss_pY$cR1yLwx{s|1)Eb@ zQHzrA^~xH2dI2l-uK=3PEuw6}w9+Y9PNwUT24+Fh?voFX2?4saj4_bq!&#v03wHmc zM3T^nL%6^Fyawx`v;ICrY%JL-g+V7IWvUe#_7{KA0rDfFE!OVUm^YXF9qyp4tnQlk z7m+^%p`QRw{lrT9h0unc8LUrK_dWLELlFCpJr^kMBh~s6Qh3PzJWi{}236r**q0^HR2mXe415gQ9HMg}3u#~oqG93GTc9%ZUyNGZ!o>Ez(M-K$UmMvaoq_AyoLuQ9i82g-BZP!G$ zWbL$wgG&#@Vc}009;rQ;``O>mf;6PIs}P525NYtutOU9 zuxtcHr2z#=i>FaE>b=IyeBZ#Z1Zi9Th+!*@&Rb?wT)+0HO3kNW&J%At6%W~&xDah~**;t3r} zE--yzw(3S=(^*bb^=VT9Qz^NlEf%3YBL#|6<+XMLmCDZ*8fU6S*Qc~5?f>|>_z0RA z9U@~OvJ*Fd3?7V8V9U{Ngb0yyQW&Y9TrG;o-K)l-hpCRvuM_O(A)e{oq=Uqc!Y|>q zY@#76V&zLw_7BW~0^=T;Lm=)KNh&>2k*5UL-}*m+;NfjTgGpNRDM+=W#9i`t z_4Ybg9;qQ37XC5$J>Xz~ms3P*C*qgi_RmX0N_vzicl{EQFXEqjGT@zst=dtzFcYX> zYbh0cuC`?s-D2KaIJLYhpNspd0{BGG>>E}K{ZabHIq4C%2Em31L?W;3)6t`2$2SOW zLo~W3dJEGKTmOmCC9VSWb1@z~zJR_Z+(Y6b89ld&T`mTm#%BM3S%>^>ojAN{{{?`~ zFSqYav1RwyG_pp^k=jJhM!ihhJ$l%5^P|P6{~wA~D?2v?r}u5o(!hi+`; zJ3r+itgf!Odat@G;&+Cj`(0YfuUZ_ETtSSt^H>F&jqD8b!V( zh$k zLrBSE^6uCYd-w`TeQZHJVGAp-u*a|mclh4LmZLkH?Ss*zeZX4u4?6};1CM&5`noDq z`W@pMbcJP$QwEgSVdIx~uo1~RHcmN*jjP73Lu+qr*qXN0lGXg0T2rsv{W&z$h)jKG zpq_rqKp)|cPfh=WG-@6&t(u1ov#x+nf$)lgCWmo+1 zX74hwk}aj!RuIK>(8YXo*C0CdH+_kAiJ@q<8@k7v&_>wgcJyXg4C&L5E9nT^^7-jb z=n5&=5OL9FHc-t?sji-EWt-V#H9y~V)J&9@n3C87Yf?%j^NaO|zjQy0v_JIz)R7fT z1EvxSXp@-fk+5P7q1sG7^{JjGpI@EAhV?@($eW*?GJz%XcI%F3h7cBeWP%lAu7RNQ{mqADuU_6Vn7_^$;O{zeE z(aHt1T+Lu@TH|0F))cSBUHEA?K1^Os`j#O^T?ZNhXRutqY!46+0ssI2Ljy%K000g} z0#P9C1o#_(1z8}8U>cF!MCRm3ZYAMjT^W|Xn`&uyY70p0V6aXj! zp zADnPHJabjnJUV@za6nackESC7@rgJ7;h41W-#9ZvlPk!?4C>zO4=23sdWG}(9r*K+ z;gyCcPQy-p69<*9)hAD%FCq6eBY&OiYn4XN*tZhf`DhtAR*Aams`8}?T#@{|oY4-Q zdBRBXSdBfo)wO%ur(|3K%89MjT0ub7yeYx8pMCjo+*$rXao_^bR5V@}y&O49quza< z=5>)XwNE-bHxk#-_w00EG{1aZmkSpTI;M6n7x$l2M#mz3Gtt{?bksh&P)$MuyrW&H z0W^y+n6}tP*0%bwm18ocW4^bLL{Z1{DKxa>OJdGcg)S*nptY z)B$3k-cX#r$oc}S0ffK;a3ZvVUi;Q#X^ScyvgP{8el2S7puR{*#An(fsK*a+)Zo4R z<~$BH7!o~g<)cm~(4f#wfei|xNBQtKr-9gm%_kUSW+I?#6Olrb5e73mJfP9L<>pV5 zj5TkQwgdf=bEg_6>W*he&~XezQS){(ZD^isSXw4;O#PBNZ2gft2Ky;YA}iNiy*NljMrKz7=Gfr-ro2#rOBlL8&xFC?HE0a{l)#m#_}| z6D;}9gdCqtbKW=+^L~k-?bEnA)!1&IF$QMOLv0#Js_)=x8DA!oQ{BsE61< z59&@IxaWNkMi7Fuj%0JSOOUBp+bKj5udDJsgY=!TP;WAMU9k2B4K}?XgM}Js&c2nN zq%4%^mhx5nHptUD3F+)#efg4AtDzM*VAo!KlrWF)IfrHrBADDc$g_5q4H+Z=AE4^& z(%V@6UoH)PzZc5};<{F2IQPdGdwj3K6X0~AS~@~lAKvviRp~3#P!jpz5TSz*;04u zJyUUsd#CVnd#LP^xT%f8!d<$S_S4(tUmDxZgO@M5yNmlS{fT&P0@EQOrem)JtiKI4 z;j{iz8Gm*@b?ON`AG9H84gk)Op_RvDW~Gz`;Fs9 znhF31Xj)VBDM15gjE!JRT^n1n(tuL#48ZBGfGgm`9bcd-LQylOMQl5!e@eqQn74|j z6O38$1Qy~PW6d;sm{mB&a)@xW6y7 zC3ngX2MHe|b&oC*HxeaBj!;(q-GlCE$ok7E>?iiMQhU{~|GwZZKZi>RO{-d+4TV9C z>HOilUe~_AUyGo`rVp^lJ|8gK%plqK2l2uu2-7_~w03kQ^K(id>}Wm4|6e&iy@);Y!!u_N7IJF@AOqujcJq`OycBn@gQikUz=N;SL(PFs3P zIl$P{CqQ{x$Yl6~E;>)^+r>h`MN!1(T?B`s5gUtqOdkCrz82JCJ!G~#C3Wt!biY%W z{;Fk?Yfeb}ar#MJaOd{c9D556bI-wi;HmK4cWx;+Q^<&@k3My^obdvl#{oWRH3)&n z2tda>LXkZP^2VHq^{iQBTQ!vgN)u(_vt<+l_(E?z+gPch@{~ZPET)m9>dZw-3Z` zd$&Xehrg{(L%fd~`&RjJW|bGAur0YwTo+9`FN%5? zf}40Rn|v=~U)Kb#J*2{|kpZ}N4G9J^2{twfkD*K)E6v13uuVp-Bb%f%B+zwkEF2=r zz&Rw$xJa03qePj5OQesu!Q51kG2CSZ^qEIN5xP6tsTLWhV8X$gMxfW!A`NCY)PQ;; z4QB#s3u@Vu+uV_he7~32e;>G68y9(h7q;3Kpr&hnn;iUb;jSY#JM!GL;|Ga%54N_& z&b$?I*}X66z27~FFE~$b8(x##ioXgKh(U;u(x9Yfrnoi7#AS`PI~18_tW<%37FRRX zQw%d~#Wam3iz>58MCm-V*sFvhR+P`OWn?sIx%&JGLB!Gtuia|HhhuO!a7_;L&Pm}O zdU~bf{$(26aqTV>NB=bi{8xQ6j|q)`%#HfH2bzwVvw4`ao9wM8>5hA`;W!UA8*9I& zfd1lzy7X9c8;W7n8M>1dAG>mp|8uDU=S@u(Sj8F^RWI#rB6 z3vYf4<#5~{ah6e|8antx%MgJEo5LJ=6jeU$&m(^6DRQMouIR=nac}&)rvj*8(m~~T zX{E06>?2phSL*(`cl>nxZ#rz|`o$M^=iOE>PTppSflltNByQTA!&qL(mUm(dw-pvJv<_9~bt`H?%B6v7h9flX2Al4ntUGEejSK zay;%M0V-IuMXZTIl(jk4hl4G+)k*3cC$V^zp+V9AhjDMfvue#IUd!Z%T%anvlTc5q zlgh08?iT<=<)DaVv+{+1f{K!LzoS@QroUh=RHlmj{#F&+te{(fqJcVlVV zcC_*&DZ;9lJMH9PGbYquah+v;5tCq11Dk3~$c&fo<*36l=+=ZpvomhL{|W0^G>e0k zQbbnNBMD=P35K4<53^hNAIqG{=aCI+<{qaa$4Eg%sBG$^RokNIaQv=ZQNw3~n4J?W z^+lUHz&G1db@KE6V}^p+VBN=)h)lI?qFMbKuez(7ihC?W;Qz8+nqw`|V98qjjK;XN z!n<_yiT!~hWuh>l7h|nZmS8bh%luhjrb3(J_=l*b5D)?Y002V-Mk4?K4_2Wm(VoCJ z0cJA0x>*~lB#>-YF}T)<#52}mYu-B9CHJcC1I+*L|NlTR003x4%!mpA;sIbe6_?Ke zJQ?vs_!x>zEdjS+2`PX!poMcOcQ?B`b9dZ+%(4UM_Aew16P{{|R2)kKoJ65W%fyRU z4v=aKtZ<2!r;=j~Eq-6N6o91A1zr#W001HZqZtAK_q*<1+m=nXT$3E!2LT|^`3U_6 z?$Ws#2dH&pz|UvR&MJ zeq)2DKE``Wjs#}RjhXD=Y4~J}CgUO7Gv)uiIN-<1`7mGp+@a&tlFYby8B{9{ik!z6 zoh0M7af6pp^ljvLOzl=q-Yo(xY?$+eV`DCT6){(L%E(#cZ&HYoQG5@p#sqy83xT1v zIb8OzAR;_|;^SR_LQ3cv7aDhvG}vw~0H#J?@om(bre|4}j`L*V2H?b~JVQc*g0ZXx z(xrryR5X%B+MQJFt9rmq=E@u_5gNY6Q5ZbeL=q=<&mBL|SZ~@Pz0GL%^Cu zI~k_Ex7oX*a!JknLCXlaRF)N#wraP?fH0O06WQ41kV#HStU`t6L(lK=!vcU-epr(k zPR}CTlsbb#dR)NcXZVmC9>|nbs^l%>2lY9-XbA`8HCqC(r`ZRdMpoPJgo@Efw15JX z{5gxJ#BwZ?hrVR7(+-A^fN74ZHEDDPs+?)Sy>4?;f;p)p3dpL1D+MtNV4rJtRzV9- zSpPHf6F%ojo$v5zCge~AYbuM0I>AD>Qo8YNXH;N-Ag6CLHYxViZK&()&H@K!hL`4_ zc2iMVYbu0^3;-IJ4Sltj?%YEib>gmqCj!7|L_;5|KR^VNw}L5J#2u0;igG5%y7)fL1wDwF}xi! zw11)5l8XJ(Djte+<=%4$lv= zHI>K2&LM9o0Ont(R89Vp!fx=(rp-=c z8bS>$e{a^pm={?!&IxMgJhx@U|cV~Aex)Azfku>ZEI`9aod<*>ZJh6S7|2tLkh)%Hm>&OZ7OXh z@K(#M4uUM)YaO=r)Ay1HAg9=%;mqPkN(6i=T5?u}uyQ14LiqxIk3D_}!~rz!Qq@dQ zBSP`5bk5gTjTCi9_K`3n5hG5g@ zRhe=vw(r>0?ap72>ArhTFQt_1;?;jC;9`|m!gBax+@Jw_UXjcYLqx1LVb3$R868vH z@b?hRhGsNJX<+i{TEyI%WB2D&DLyV8}qgym_F*>mgPxHB} z;rYq1_mI;{Lu&O@U3>4Zp4?87Q&85b+V;u9nbF@c--JnbgEfRV6Zba(%;-K$R4e@J zpcTp?Qo+el!T>~+aWpWx2H3}I-mAN|7?9p}Yxl@u>Jc3qn=t0`C_ZO1Sfdp2IZQJH zclh29jR65Ec3zin4zK*2datvJp-m8?HCbgt9{nMlce9J^V%~`!b`$AT_4a-MW}0dq z3g5n4Q@8nSCq3O+4zdrJ5?D~-W8CA}=eJ|`RguIs$-%5tt}JG~#|yNuXZ)bM2&PvMLx`bfN<|giKqWo6;9alx3f=hUq%ch$=MWw;@}1_9 z>G%GubnWW*ZxprLUgy=+Ccg-h7X0#!`HxgS7rh-`BXZDIBFid$$;&y-VlGV@tGs9= zqbm(DmELZE$gEm>rh1{u{(0`^hT>ewr}#2s^7GH7VAQ`MtzZiK)cWZ`0pX({4*`f5 zxhpicZ^<-Yy#Gq)Yx&x+YE2@e3FM~?7{X4e@O2hPgM7cK^N_>|A%@fv5X zE4(qT!R;ysaw?P-qY6~JUkQV_p`nLSEZ!D?2&#Y`51i7j9A>3~ISuYASHh0(&y|u) z!>balpbRm3p6h5oq?^gpG$TX9sy*fOR$6OW@hH}TPNC5eTZRwNs#j~Bnw314O3gZ{ zBlER8EnJa%?Vq1jH_4)3Jr#vss1*r~`?ACy(V$WK-Uqg_N@#DrqSsu;tUS5uyZcH2 zqoXCL_I3DS$CF8gHJ8`3`8RiWxNgxG+gF7;~iT7BN)qVo682z(yrfy&x=2KI*W>=j6 zrLpf`4`|^!mzXm{0R+&TH9jTzsgTfKr?#XkLYICJwlT({8dW*PaxIwpI(zjxz|U7{ zNcEZvkgNS;Xmp=Tj-#vvf#!3nJ7?$j^xJvv+KZBC#OI)3S6cV2eloJTB$H?F&sDVx zC0LPzgs{^75Qs|acGPwT^E_}*__IG=K+giSTs4@mh=hVzWnEBtT(Rvw18+}Zffq=L zRLU%r?yeil*fW{Hz?ydk(gdS{-86L+By=j}Ef0ug=&*1L zJPknRH5GA9*;heSy3Wm@>rf8{{&$ro8?t%Zy@OwP?a#K3JJFS-WT@Q26=h*dgfW$; z52A67AA*e{b#ZV_^u=6DXsCOn(#|G^zX3_1m&qdctwjTrDQ!!Os9rXK5-iHU|m5@0A zO_kDcY|n9PHBDNW!HR^OMLp2S~6yE2Z1 z)bN2E*bb>STF8V?fmI@4nta^_6v%H{8MET(#F2j1&?ICEl>YRb_4e08O= zL6zqQ8HhUDgjr$Syj2+M%Qd|`Zq+3GPXd#djeCECS>_durAS7|lUugUjSLz4KGA`*jDV8VjMFYRn_oXh<+i&62v zf@{92mSXw}!mL%|Ca$zPv=brZHo4ncvtEIpKyW4kM3f~rtO~x|8S*g~vC(A|P4Fz?rV}_U+Mm`wq&|?-dxj(v zu7~q|U?kRDUImiHE5O!|4sD{B3|>j*H&h|HFKVOYjw|*?pRwk>8pB{Tl_7f1A+a*J zlj>L)56nBE=Sdj#kpV+%#k%@tg2z-B4Yivt4N!rT$n)B}Y0u|QHcKZy%Xtn`d6G=X zpoHq(me`;KyR(m_mNHDe?=6>uV8EeFuv+`9$4h(EAixpj+MaUA99GHw0WW<}PsxzJ zO82NiB{<67mvM^tQxGYcbLX&QQP*ZAQMjhuK%oC;X0azMa#wp-TP_)Bk)K z{m+@K+~uv~bKJ;{r(-$R*fq;?`j{I$jL?45HDmSRuNm(9Uo+(Yre?7HiZ4&sey;wS zbbD*><@?ps^RG{Lr)K}vNW}R6+K0Z&5i*Cb1WT{wHV^v=KU{!7q*>t~3mX7A`ZM*{ zr}JNvmhTOpb$IgWeAVifx()W7aOzXH-Nvp;8x%W*6z*{0ji;5us9Y*H+;_sMPvw;x zx+-o^@03%z(uFskOG-@tdsJjk)g&ul7YJ-6GQ-relp_TUmW36&jC&)7{dSn z83P-c0svqr=lS4mPefP2PMP;rate+Av8<2KDOo^k8={d<2|uJh0QTeG2w<&L-)~*% z27hDMwXgNt-8-9~UuV$i=D~yB>f?i8!R_GI>$ll%>fSzfgCD)GerMgy-V57*fA^^q z<)L%4`N_aT>p_~z~GN5R<4M8~U1;P(}dvWHeah(CP&wLon5+}`Me!@;yb$pIG$B4FiV z1#Uk~;H^T`PXd3((V7Hnf4#grdvCvrR=(4cq?fb2_ZWy0Wk6-_f)Jg_AxUMWGNdxG zPOOQwvD(uqbRw3?I+>H{nYPp^bt0AtI-wKlp|-9m*F;q&*2z1$Cs&9aKrR*Ei|=CX zHuAlVn|9!)54xw?ZtgeK4U8-lTWt}7Z8rwR#v4HM-uTGf7z-yF+VlgrZt#iQH}mF= zzI&Qjcck(0bykYa&zE{cfV=LY8)&Bv>uJbk`*m z8o!2u_LFF|zNGc98@TCJfC^@{eMzkc6x6*ipmqeJ_RIV`c<}iCx3_`^hg2?ep~)nemB+T@7Ue6ExViXamUQw z>^B*wx%1^VB)&NK>Rz0Eu-EB6;5{(|3h^rjR`(ndT302bY_XS!j3v1w^`s!IwI$Df z@S3??kLlMIAyiwi4Px%HHjL%!2DJG!3wX~n35b1`ros3*1`bOcZtkjY-aRTkxvf*L zW_DNA&16V>3;V8K$9>X+uf*I8 zJ*r!*qlOD%v`rf~d3fY7E?%-S*f8R<+cd_rDM>iY~bRYC`+u+UIZdKLf>L3l1V^U74_8TRH7E@A1YowBeZJ=cY+Bit(F+7o> z9Fk>OWJEHzAyOVjlde13svpLC>~}lIJ_>@hU{_|6B@H@)J;CpF=*4ln9*6^DAS|m9 zLmalFjy#S>?^qqCK%GhQm=11*S1_zw^_U)|)iN8wl`=iv3o&5yjAb<{m}7Rtvd8gg zS)BQ=v5LM7vMx}@G1-aCW4Pnk-g0{=7#k;pSr?39nQVqBa-?!o^swneX!y&kMVIDH zR?+%A%PK{qZeIzJgc7NOgcQkwgcdS_2{AGS2{j}H5^|&p5_%*H5`xJHBos*>^d$BU z$WL=opDXvF{ACWH&ukHto1Nb9{pB+M1mo)E{HjVm(U%Qd%a819%_rTyC42h+SMqO{ z6fgGOOjsATVhZy#M(YNiM88B z<6kBKE(eND!odW5x=UXD+$T^IS!`v&HCtiv&0ktWbgP<8oS71B1A8oBf@>>q-eSDptZL>f0|1D> z3ObTAD94kjSM&GshmIdC4Is56u1om(}BJezakv}v=>&6|35aSmRNM)U8l z`RhG6L}dafOrs=6sZJJi5K#2I_!kWu z%;g7XNR~73`YH}WCxu~1J3)dST0(;}^vD@_9gzni2SPBUdZ59M=ODouV&e=vUdDrv zy`UJFKb)SnOGC+to!y)C$YTs?-mK( zTs8-WhwL-#^4J}MEH*u%z<8fdMjw+g2BZnd8FB=#?T3Q7pgf?r$|7hJIRx1%1_3og zeBihJJunuO1N1_=AJYmCDVX3EyforrA4@ch_oo8{iV=KrTD#STFF|^k5((8 zPa~AK?TMfgL%{r=FpnNRhn7q-<8yI1Zn z^~!G`HEpG#J)S*d=a^Tv`s^)p3;pi{;dkY?+u?TG^A64|tsr368U#H- zPtX;5Mur1jh3%dkeCZhA-LkG1@m|?YQF(Kv=vtp*^ImaV*G-hutkI~%R_#Msj zHt#^Nl;f4IFPssQ-N>1o<&2MMcCrXz3mtn~)fFAbru-~^o7hfyViZESu1w1b<68p#6-5dD&(%-vU z?NxA7?5OpJHrBId9e*F!z@Roc!N2DFN2l>NZoGtKE}>HkS1WLRL289)IM`LlgHAs0cKcvgvK)#Fm@Ykh3e&(g5FnWVPx!b@vrud=*q_pi$17ThVjf=5aX zgX~DPR`H_OX2pnBqZJp%&0Px~@BOB-{WQqucGx5Sh;mx8!k*JO7Ipb-A&nK85WBFX{2TyLz2?Vg1g%DyQc! zN$`pM=$I>QsLb6hluURf)J%IF^vrt|w9R+}jakEhirn2l$%NNG&9qlO&%D>4(p5N5 zF}r&wneeKonf99JnfHoQnhL)yr@NWcxtC@AgeKeVHaK(}4wmUl`YC;uzDwVx@A_NU z?^N-sI2aby1YuE+4Ww$$MD!w0@ej(Q5jfW1$9a_<07o)C;_%T-gc|q_4~*|= zyB_<1chiTyZk>BOxX(|_9n`%ttFuedgr}Ty4;vFo-6XR(yBSSz%3z;j%Oj*J`8T*a+<72?v^3b^vHVi!K+2*#n8;A=DmaBp74Z**$H zx9PTezzN*c+=e3?oWdzs++h_hHaLrmKjU&S23}%Ekn8Maz-u!!nWC9Cu9BHIw1S!F zwYX7#l_N&-aY;{=`g9x4WsJA7g7R-|P*>u3Al!}2%6fhEpt>!yqldH0<1M;R2fGN& z19^6+Mg9NaHI4B+-X0v-Js+{WjsaXZ;9_)q$bPx2w|V%li|S#Bw5+88Ft;RX2rf+> zLd%nfu(E_9^kcF3FLv}U#Lwn~C*4*kt_l@rwO+JA{7(PQCfW5{(;C_xD zz}p3BM&nEIh+9k5nlmTiR`cwbHJ-A$rV|%y=K1)N=rD5(gH5SCd`f8yK&j0EM7_xX zC^mGgzTNlEH%Bw`Rq4#W*`0xl zyP4>{t4SZr?(~hm*S_hRp-(y=s-@pU3K|I^F*D!xjc4BXO=lkWRq0H=*`4vdyU_QJ zgZ3dGz7I79z~P1f`snDuAI}c|04_q;GVx9Q`P=mXk`NFA0000}1V$qO0B%)*snMN4 zCjiVHld%3kCajHfoGOcqEEwsxZM)`flP>L8?R|jz?=b!VKt=#)hyct13IjZr_1NeK zK~L8B5PXceCb@_Mhyif$b-9~&cY3?--L|==&Ib~B@(>J3VL0Gk5hNobcqS!rC_^wX zr&3ijW^R=!Wt`aDYzLJ|nJ$NX}h-Q4bL z=jSrrDpoBJsD%PgAagAJo@lr4Sts}zJ>#NkVV$CU0XF`oa1_b5^)FZaRo&uVOvEGp?Ir_Jc^-BBN@c^B6? z0WuPXzHVGEhpr2AGkiI;ub1$h*PXz1xa1cLZV_w7ow~RdmwoAFMV*k;zKtYzR*J);xUY@_5b)iC~&*Z{XU8?wz%Sw=*(R4e||PN1l@_86v~pFjtG=8Dr`; zJu{wZ)jea5UcohZ+stL&YrG}Lca9OUN&Coa&X8jsWIQ{$C9F^KXP6&B_!7>)9NJ8Wz#7oDP@W-=PlC}bD}b)XY*V#WpR>T zrnPg|GSfXMDrE{n&rIjjiQB7F>~)=@ob0giZ15K??e=m*jzLm2lI*u=Mq8j-}C!&-*dlS9p$DF8kzR!s$ z=pLPkj`ZwL)TtkGqRRR|C!()=bSEm>vp&&rU)ZH1=`kg_6@OFXrMoI;k)4&a;O)q7WHHQ%KY4Q(x7`juwk;TECyp>m6m`d(c6m+?bde9p)VE|I{GbxXuCzlTNah8Ylj1^Rua5k zofy_SD6Pd(u%C5%H@<_1^H@9D-au?Xg+PZuh#;2nNL&aXLWmG0#E+P@M?#8_;-vT~ zM#U^^sExkmb2g2Ys^dLzBc=8se+i$BtlEc8e^ z_+c-N1Zj%;B)u87yTH>)Q0Z4vp$;q<%)X%AOj}29}XJx-ng1RC^KaU z&a_V)5PYBm=Rn6j9dLj^`8eCkt5>L9ITqetUM1d{qq(={Y4Gh_UcBx2i|psFSUYqq zydAwuyh}%NZ`0G@+j_YRo1H7~UM~x8Tfq{%*Q`Q=iwDA4c-#a#SAxCX%NFeajB0O`lT#@X05Tf0Rpvs21ywDEZ+CMnq=01R#x1ak2 zE9$8zz&O{&Oa9T)0986!T_}LJSn<&Y0)THR(D+{B%_#u`T5RFZ4uh*))rSHO-uB7Z z7zPDd;@E+8kaf48g&b2Ykv84EGH+fR>GwdunFl_tL_rf^UG7k64>Nl#?E4cN^N@g} zcgJ+%K}FZ&G);<}33ACE^Sf0uuRx}~%TRzXZj8s$_K$sTxlaQ5Fd@AexL`m-+e*#4 zP;{V%Ef`Ere?rAjCXEY|Vkrh<1C7BMwL2%7qw*e3$}58Ybb$C_pN%{I#DxUSXgm$# z`C(awODA}S{#i3(y)1A7sicxCoy(cmf%SR!3%mJ7!6tq=$kAZyAFu zTlDOP!A=-(<0(ERQ|!4gjjUN#^%4fW?Gknu1xP?5%fi`YSwLnt$YXvOuLK?a_Cz7x z_1WCm!=hbf^a^SOUBUcVZUiyFPB2hMt^sgvK$0%DOeuoU!f6l{9nAob5MYw#FH6Htw7ZVp7G~vn&-^&`0eGv?FWl~79 zGEisjT`h9!)*J2HLqp|Q&P_E%1I>Rwn11Y#iQTQ-h_6okyie3}_bx3NBR~`H??&*2 zJ*odepjxmM8$g2|bYgDvUYDNnC!@fakndK4GKT6}f@5$mHx;Qy#)OI9hxm{VT+WtE z`dW(1x&U~hhzEbU6USbACUR!=FF=j3P6wvb!=D+Xs&CE;5MBFLzG!8c-Z6LBa9HDXF@Vhv`mCpVz9PS2Y!&4Pz|wreF@MfJ z;mcwuE2%sma7zPLq19E}6D+FdZS<<&U!no}M_B?XkvJ^FJ;(6bEcZR%H*6egE>A-5 zx{q*h`MGx?NNM%vgyS{<5jsSvkiysql>Smfo}%YqA5CLDmc;GJKptd1GT!SYXvi}f zSlk28=!pk@=u~k*LX%;B|Bos4R8o>(U@|_nvkv}|a`HQ@d>1zvfWCF_9_R}XUw^Q; z@Kqz#^ne>AoEh${6(RoXh}uuYHT9>t16C3-RTnOJ>aH;Ld$fGc#OZwofAN|>N{mU) zPZj;NzjYi5ygF-$`z|=x>c#{P-5O^F9|^C(01;@qu+sC{liv^BM~Bb;^=Z%swQ@uA zzhSeL2@le&mcr2GPC38WZy-aFF;D%#Ctp(!|36}(bWDIGc2`qvLDny_CH@t!!ZBdy z45?Mmih0-XrCn=A(&m3`A``KiJ(CzePgPOAAK^z{s=07MeG|ASU$hcLP5rD+8~9^C zdo_|o{Ne_EMF#&Ej><>6@>61_{MY|jT|QuFa<;5+WXouD$syZ{%M@CE*@OK-16S?| z(g$F8AP?Zxt&#As7qF-e4${Qw^U>Aa-vICHcg-2Tc*yT3ZUj7#B&>9dW&j&$m~UdZ z#8tSzEZKA74SLURgBOv4yPw(|mzyroxHsUEjQh*gA{p@tGb7ZfTCS-$U5UMoL$HkN zBE!UkS^@dvo-tFZ&;KyB-NaRV-P57F)yc{#_`9g*WW<63IP$ zKzL;AQ*bHG{kcO9HZsbkFunsc1uxQ(ZDR75(|tZO;8B{hV3uoBg~u|S$1^1fH}-mZ zrw5?n+drS};fRX}&kHzjuRTQg8pk?DM5z;q-fL<&*s?*@ELy|&oU6p)S)T~g<5HDA z9g9u;8R9mFMxtMrAIKsBVQTuC=n62?R8^Nu(y*~Q4NND%s`LwlTo4cf0000p13)tX z01s7xC`x+(PXv&yV?dw+HLOjdl5yFRHR3nhHQcRj?`_%H+B-o1|6u+AfQ$eU(ZInQ z6lKJ0kre3oCgRJ8F9fWtEsQB_k*R3Hmk3{c?(W^Y`Iy}^)mS8m|FRHXs6s73a1t+^ z#3M?mrCc2GLP?gAc;cj4*@^gyLr=>Pz!Z3bW`+R(0B8V4W&i-j$_>VoWlogRG&+6? zf6e58A(k}$(-zzCmmpi-QuUI#lM+SWZ~XT%1*AlxZ^1*~)xlSZZOG?Z)|CA_SC*QGyrz4l$h7T@f{LSEOydH(|8UG8}d@rJ35eHUd= zZl~|R8~1owGvltvBxBROO1_sre*3f)rAB0bI#dUn7fcgHI@ISqSlqr`{ruVdiMTCfYyA#+llgi}FlGOetWVm29Xt+fFb(Ylx{Um=#GDf!>hG9f@AO zlPVvgTs4@+t$CdS+KT4Li^elRYENs{v=+_Ymg}UDprLz~isJrVr>z6oh{<>k7wj}$dgap+77GGIKB)8f8~qdS<5W>I?rf1> zd-HiY<{ck>PCZVWwXEX{$0o!L3K?hQk}vgjF{0O^Ws8M25{5H<+Nh2prU~l=upw=1 z#yt_J4I%jBV$KO~)OwpmCd_9THYX>*Vd(Lv>UI4%@54CJHlJDw1(8Yl@c>6@2n~4Y z)F;`H&6Mp}JxPuxP{Lb1#ZPwhh~hn(c{G1q!;pX)6D2>gdlX!B%8ncs(@1|J6ckJt zOZ>a&$QgVKcf}Jr-6BXioUs`7rW-LSb#pOhW2gW;-gKCKWsx=982)FiPe}N|LpD+p z#IXUN(8D#sN0sr6L*kDtD0fq%AmGASS#op~W@FECjyx-&fPCiOi`P2;Q*)tK?o$d3;Ew|xxpd%V^ z0N|VAYcn`MqMr6Y3_KBPn8i0G?e_c2N{Q&Z?GP1raBaEEy@7Y%mMsJE6WLtX=}JP3 z!vRUKe>?TZd|T485g-Ej6`SM9lV9nz+pF-Ai=JWFd8L`S<;-R(1rg+i1(D{kSp+11 zr}9S$p{xfUqB64K@G8m61ble?sN@2yHXTl4;VtR2Q8>9ta|I;Rsm0ZUUfo%)ikq{wP|wP%>G-^D?lSW}9fQ++R}NHipQ@B!8qMP`ViS=^7dzd0|k(@o-)Qbd?5p zFspCH1o9XDktXsgf{8klM1 z)eJa+RA3B5XKH;iFi~$7jC7qFm%z?HHo0-|WO`H{adv}Izx$X`YP_7ZABI133tDyx zBbuy%!KB-SbJauih^-r5pgxTKrci^|t~n=-dVn36HdN|Poq2o=WMWS#LK@vIpMe3} zlTEF%!8_zXDnx}kavr!PB}LBIXVU4PG{jL(?f!Jp*x|N?aXfP=hUQqsXB`nER+}P1 zVM8$l=Hw%qrWBCck>Zp~*ic&%Ew-850&zWN42~BWv`*@xC|65}-dlYHz|DO?h@OhHZaIFu|m2 zK}nO>CG)mRZK9+O>sHj1Bzja*(ukipxapaYlhKRpHnbQ%~e+ zBAXCy!TC2t{u>%f_9QZ#dSc45M3M&`Rl@^~&v1}XlqroIXv0y?l1bMKfpQ)qoTNS@2J%H3N!7B% zh}({_o&_thOZQ?9dqyXM#w%Jllv&0-^lYfCQJ4eJ@Q|(5{)70?p{4aR26B>JM;ca0)KOr=Sw>?_jFc%In{UOCN{Xr!(27xPD8b9Ora<5bdl; zC-+!zP0M5=e=3czLFRrWHWz~$%P6UEYcL)TG7^j-ahIaT&193M?+oPa%Y4zDLW^h5 z2zl}GVfi!QJO{Vy!I}&(RTX)2p^z>;`5B-KVwUiz6W(m`+vF+kN&C`V8`t zcePfi`yc@je_3%E2!iS9gGpyo`9%$OOcsdB4LEowj6i$$V)>DcL1Rvx1R@fdbU5uY zFd1TvnIr@6U%i9DWXWNsMzsng(3AUO#O{-X<$w%ThA=Ep^B7|)4V!*Mbj#frl(5JOatqBXoy~=hJ{B1 zfoR{qPRN{-wjMs6{N1>!Gd|Ju& zLr=kxd$I0mb#5HLP$aEdy|m-+f>_ei-ul+?s^%(aC09>{?GtAn$$*;kN==pSqn8`* zcy5@Ruis8#@9{@Bq|s@{c2rLraxY*6t#IsUZm7C2DyJa0pj%-hQ!tw)(=xpzn6wJ6 zs@yDbp;3C2SOB-!8f+UpqiA9=Rm}j9xm&IosR#&d(pV}IH3XD3$c2)9LguM5&38fB z{}o&JKfY89tlk*&DYamW<$87F18%iJ$IpAk2g`<~Upz&sK3JidWkVZE?x)jgWa9dU zSxMuDCZ+xzvf{sw&B4*i=gw?kxk_80s^_|uCK)+$j!%~;p=xg7flJnHNGvs}T*lwG z{3!~MS#ames6AjQge?1=pJ1bpEV&G?P!+=v9bohH?>FVE=n>C^e1dqA zqe9XDgX@rTp=y6yJk*uQ>PWDO{XYacOCDG#m}4vc=Usdn(v7vP>{K=4B%9CCRtCMf z){vpPZ0sr0DVvx0-5rPdb`+lsgP~k7yeH$DN5pJt2q)x^YzwS|IQeEbP`AkRyIgM z0}~ks5+?9yszMV2NfHthWFSQY05mfPH3tC020B6x%1L$FF%p3M<-|zR0R;^MP1$z5 zRAl7Hy1nERNqfKEySCfv-m~jrS?eE^YyjuQQ+J3ONfZ{DO-=N5nO+jWcC}di#1Jbj z@%W86mRY>;DBDydzzHl20RRAy0L{z+z_(qt?d!Tm_M7_-6G#$3?qZK!4rzaLTb_nn z+mRP3b5*t&!=T(C1zw+8KHdwKXc=OMF(UCgE9>z zO|z#KBay&JRya(I?go-~-~5m`iZzhK!6Yys{DStwf{?EkVLWSc0GVaP7#btyxk$W@ zb(zIQGSHS2difjrPe((95~YDGL{LLPI!ngtH`uS*56}=O3sl50e+|~*HM|2nEm#22 z)kO?rf9dlq6jUpTC}nXusSXK2P(l#xawUAfN(F9AEjp-b?KZ z=HL5Lw#_yru!LhjMdXuA;xZ^hfGr4%^xqxFLfCIICHYcXGI*p?b`h!~LNw~;hLkwe zH8Df%vm}Vk{Ohv_gE`aA!jbQ`JK0^pc{}#M_ zEwO^a|M}q7X$lgZ$BP<_D|5-I+9K|gl zizes6!uX_PJ(NI(QK=M{(a4PGW~W{_0Y74 zIlZARIMbBM&{0SLZ8NB}F#4biS~x(I*uT1<6R+VsN*N}QM_c%aYcdPPhZ^1IuAd2j z6BIFa4jP^XOCqeAZK8p}=wxJb#^nGwW;F>l@Mr)wVG#BNofT32@Q&x727Nwn1oLy_ z2=O%Rv=plhkcrMniOik$${K+|CtRZ@Z54!+ywD~GAy8%VUl1Sum8oB_qo|26BNyh5 zGX)E|2s(yZ>ZcI{U!q(M3!RmO)Y+FyrS2i9>S4|#0IbBJBxFM{ml&N=sD}s!A3(j? zU|`D~8z4X0#F7t7Z}v-n+ZD=AfqM1W2#K&ksF`&2TrcLOX;g;Gn1IJNk1G%QCo^4x zkC7;q$|iZ5h3L_6~*-s2A6ccZB)I00(r z^cM0mXpqqAw#tiw!_dAB$UK4e0RYc&p~SSDBK8$Jj|r0oN3@kmY=>vJVz*=qeG;Q|A)J~$D;FZZo;S<`}+HAXkLvJBDR!n~O11 z76LU3)(*cjNl;QypB7U{e1m7Ef^DD&1|m|dcAG9kv06eHN=Q{xmxq3P5&9nkML}%BBTh})Xv$Fd z;U;&{O}A#YuY@#`${L6 z#d4})oxJmce!go=L9!$jl)NgO>bi1VZ|P$RjimUDUk$8ilnsU95wP62p}B z$bDwkklTu;Lsh(_enBiy!AnuM+V13)$->}n%m^5N$#8_PX`Rar4~fw05pXkR8QQ3PRoDnCI7OstH_m#}>l`S< z{PkAYLf6QIPCdbtXi0-w=|etUt*Pgq_{dmJ*MU`A>lXiUx_~SMM1SssM#Q-*WrCcU zc(g_A5GQM4;xlC=P>6xP>|!Bb+8hVH+W+MLtIB)cPO;}mk`!Iv!Y6K(lQYmO6eCV9 z&|BnFM?}MA4NF23P$I0hYjOt4XZBK8EjK{14|rJ^D@vRQg+#-N-%}l*tOlcI8*WWg z_J$#$(jHTwiz-NU+B0&c8oufrQ*!KWcG90xWE&S0+Ao}2t;S%jj#>hZNhud^VQ>4x zcX0q}Y~lrvjRi-(+M%N*=BZ!zW>gG}#XyZ!wVKq$Xt6sCbnnKDnG*$tIJ#@js5~??A5CqNl-1K4&L|PBaycF)G06L-arqQ0ND}J5=dl$whU#*Wqv;Z zHBYka(e%eWN)8^{JGL^Q(GWcg({aKYuAQT**L<`% zU+l{+bFNU1aikBbFAAaWCmNG3X+|5W8p$amV+l~tDt4fnKh*?j!sD*s4NQYr?-i>~ z3A~qta5xn;*VX3YZW1^br&HDa(^5ag@LL@98Y&^J?y_|JXb~@!nCpj$BUA}Ibm=vR zO1L(^FVbO%l+-$h7Ll=>uH1`ARJVm&i=q{+n#=doq~uwC_!ab3QRWb342TyJ=e>pq zvT052WguORF^7h=iXoI!#F<`yklKAeA%0gPiEQ+1rYFvQPqT7sA)K)s>gJ?9%;D(Y zh1p;_<-!U?1vV{r2s}d^O%7P#&zMa13Nk&#^nwDPw*J6q@A%uQAl5l zPQAtifuE%j98paQf4N|RO%=$mCPYNYSQ0fp`7iN!L%isr8k2z<(t%UTlU)tjfVl{% zIptoC|tK2ZdZeS~?{^R{U z2t|k8;MpE&v9hgOoQenKfBdHU%*K+S6AauVaNq6;5c5F2@(?*>XM=2E&Z122u3K^M z#~%2NQ=|rL97jsLil+%}+bu(c$Y~|H#!RnL0(z{Id9#F?F)4O2M0UJ2Q`!PkGjg9b zT-#Trb0{z0)!<)1YI_Y)3w$ToaUk3ylH(k6W-Z7QN%%O{9gGvm@sSzQeFnw@S*p3l z?JaUmkM2e#Dn403F1b=pw9CepS)aX0*{Fl#h~g<+8gu2DKvymIig=VuNL-0+8$fz$ zLX&0IeRpE3a~StBoZBpqJR~%hG7X$6E0dj9HMFo5G2db!qM^`mteuW z?l?Uf@rj93;vTVgek1p@BV&ugPsnl~J4(#ehPmK@Jdqke?aE8o4qF`V8%lzdTg(jO zMk*jS24NZJ0kY4X6jTJ`au<N=ox-xCA_j#BOQ?F(*S! z1vqg-E|n-!k=)A}s;>$}Q4k?|%~6J6p8i{hB(7C|c*ZLY%W2r?w|$rsi(K9oTYcSf z(eQEAYZ(!`%SNEL{DzOV98()g7mG0^5J@k|3L|6OUNZ{crZRPiq%k6<)JrKBuwogU z1Db2W_P=VK7QsVT9>(8**4TGSwn!TJ!$2s~%|%cK%x9Y=8hXO)k?I>F8VJ*Na@cEz zl1BRN;q4PqD&}79TJ&T^1%AbXtaWlYvTZ<(QJ#4C$^&+I#dcx?t(bo{flHA;50I=q zD&_n!0r#*IhZg_hW&}Bh;BK-oiIZZGq?3Nht+YKSRMc}49hL+jHTa^L((^O=QhH{ifwTc#&Ca)~+idnWuH>-11c{)Ibw%HIase6@*h8*H|2 zE45K?3)wzyo3S~$P2MKAac!kr=(c%V%&l>3jBF$Ae^bZ0Tf1}Jjy;lWSBr}qbOndH zj{o`O(HXgS4#Nua%-H+`(s0jv80>p6=EDpTI5MVVe$wIoq34rl$9T4<88zIK<-=n+0{ebo7b3z=5`j)9Y|Y@^RCz;opY9t4!R-2zgPTuUhC%f>quU@@z-COt%`?QF@)Q1i;Oe!cq?Bc>~1!^-Y zDnX8JdyW>9jay=(dErD?>85!Wg_vQqmQTFT5c`uaykg;4@LB)J9ppA+TN{7P8;^SC z$S?o?)Hi4I&7+ODsc=*Ora^umUt3HTjr~}ZSFij!j(FyetD28<#^)Ty7q@XMA0mAn z=f3Oe$A|pjmz(&}o#S`y`0CbM)ZLD8%71*_k^HbbuHuhJ{c#a_z`Qo5@4e>dKF59h z?j4q-XSUnE?YiUf+|AeS!(VQSU3m3h43wg-+`?DzrM&o;MEt6L47cBN{PYvs#RoxA z%18XNGSL>fW@-x&PyLY6uiLsUN;an7)08`@wo_ZE?R$T=l-s%aS(jXGrub{8f=%I@ z!hic%6w98B3G>BeJaWh1z3jLnW>dFrxlUdebKt~xrPfV@Lg$VnC%&a{>!scQ{#Ca> z<_^Z($6(eTIO{^jDVT0UA6V=QbN)8%PT#vQr0@7QNAAg2K0fxH^ZDb)t>21|xcu1* zITNSe`E!zQ(X6=TJ#S}34JBhP+rkT;EqWye@;6$fMi&Qyd4)=iAPg4TKnByA|2qiz z6`661SI@$J7O$08PTM2)7|Ho)a=Sy@fB)n&4<~)iX z+;K$|0@hS1v?JgY*dLK&;imuPbK&2Ir@^eVnnn|P&O-EOAUWuXvFp~o*i$0iMOA#4 zkgOfY=&^(b>1dyXMEZEjM?=wyzr~?S=tv5qCt;E z=~fVLd9y4SvWByk;rVA&v)04Y-O=~m<{<$gG;~jWBv;F?{9S0QAFNad#S+2@h&s<< zJgn%K{n;bs z`)Ka&slN2yoPXSQcTb3F?rLcOz6mtYcRhsU3(9*$>dH|-X1tVp1jZ@=4Hg`BO4sMW zKsgMdGUwT3U3u+TaG#1T{DYw?Kehi=wVLPqr%GMdpH}bNpCQ=Z!=*ROlkyv~&f5xf zDHZx;QG>VwG9|1Ok#V_I(bXV@DfIsxLuJFaS*pS_eVU=p<+r@9WlErL$DAze_9qzk zyRmMY^wTV@?;nL-P%Kcd-fa~CBNV`ENiVTke>bO%-WOT&sxMr^_B#1Ie%00jUeGH^5i0Br!RZE9_2 zrK!L_5K`{u-tG3bw!7A?UbXozyPeIqwQX(w7ys_-ws(8qab5eawfZFjs7ZNx@BAdu zGZ%dU!UzGtBA^h#NF*SL03pP{0|FuZ0)z#o015y^h`?w70M!884Zf)f-_5=a%#+N? zbtFAxch!?OHv=VhGi#`TXrkWdEiX{3T58?vt$I<5+G^eM+dYU?>*~GqiZ5!SO0{&O zS58OQpMat&SPB-wnk-xm$7aUv?mbz|o&fOy0HPTzD=YwiKi<3U_kI33_c!;uo4d<5 zbM1DFnRCl6Kh|>C;w{Uhh#ZMUk%D3YL_k0Qm3%-5!YH5w2#@qYgd}_q@CW%IzyZm| zlWHK>qpk;C4`0b`!g8{PHsXTHy7RjC=P$Yj%IMjcg+rU&hUOzT%6|d$HNO zY=4V&q(0<=XDs!j|J_l4=v?ynbuU)!f%iPGx$05FO>eyNrTqlvXSYz4&2I%@R}r7q z*#78(73GV9eaog%u{f9!|3muKlQJ;9IQ0xB1<6@!z^|_$&uc!W9UcBFj zpWRoYJjwRiLGN`yL8DXNdkYDqz~V%woL?35nyba-@eKR!#ohGAH75C_(nrz!QU6 zY<4Kf{T1W^{NU8>oZ&fG0t3m!Q5o==o0zpTa?{i~enPStUSJIdN(oyBw*{q{@j|D? zU?&W87z+ThRhA=|0kFmG7}Qi^5Q6<$J-xT}QK5ZA zYAA_szFJkAzIScFbYNC}zi&GCGTWO?dIC0(Y8G#de9_C14eMe;spLl&j=~?WT?_@R zvvDww{X;z+k30@HnpvY*Sc~zbmgSAAwoZ5oc%6!Z0bxaXu3*v?zKGoXuE6@LRG zXaxo&GYUEws6%zh0fuOM?lV_=eNJC24QmlGb<`ccN zYvVto|I!N;JwlzXZz~~l1(Tqbpn;D<5ECb`8eM~#K1E|R4pQX*zp9NS#<`urp#T<; zcTMDZa=u)#5Xj(70?k?&e;ql6X!FBrJ%*W^HU~3(nmah1!J$hLLdmRP3z2%Xi8;RF z!UqWfaPhc62a@3f13>yX4G)0o zc5)ey3;xO&=-LSnK8Z#FIH(G{GF4vjw1Lp`8K-^#LIEDJ61j3n#umdiPsZG+aM*II zw(PD(=i~5{y?$|SD47o^hkNK+T+wgA)R2Q@_P;{S2M~Pz;?XyX=f9*Q%O-uF@Y1Rx z0ElmvlqMpT6=IGBl|Me0GAbe)`P7h6=XBO{ty>cyE8*f#VOI;S3$A`h;$rY}g99&) zA|5=LA5MhiE@~fS3iNBkoy7#h2Ub^C@Bd92WRxmKb^rJoQDos~{?2=1pwGdZ(#D0; zsiS?Jf(AKQ&UN&Z*gwx9hZ+hFbjzW((Ic`n@D1PAMq=i;YLxEjF8^!s_w$0Gczsvt{4+lp74 z%dglBb6QTuR8|UL;(-I+e$-rW9t^(B&7E0TstHNbhgRUaW9JVmm}iBidiQi5eTSjK zLb3I%LciOJ2QiK(eP5hZ*DqHA&;zU7GEvp1j@nP7!C5MroTZ|>9omJq*Xz*MjSXpj z04zY$zw2J%jd=9?zWDSD&iI83`>_jtXJ%0jJwPuDndaSYqE}{tV&4)vA5JYf^j$ zD{o(H!3KH2mYOQaMt?WoU&XI~wRsIz@aS#;U&i(FCI5M^#{I#p z{Woj%_g1+>UPg28Ib$a#@>gEt7d5}uVR2Fm}z?kI= zHbFL48L$uupa{i$uGzV+Okl1u--Y7i#a*9Vp-j1};^y}6i{lnKY8*774T;=a-G$Eqj%`%;^*`>&+(QZ5-oK; zE41h4z)hUhWIBXtiZm343pJjx8p6*GhbFQ&y9k56|5|}u;wbqOA7??9)`s@Sn2@p9 z8%igMF%$3?xYj|mewfw9)<>%xN<)^tH+#n@6Uw(6VU4^RZ8x~LW+>CRog@7RhyY0MUrEvCl6cXD4Ek+o>h&Le=Im))ZYf-x#^?>$#etv8p zpwRG;ijHc7LMriNwxgS#Dr@WFX(Vt~KoBy-D#IbST@YW(A|P^c||;bCdwuN(xT#~F|=7}3nuELpvyO-rUaUXEKGmn5N%1gLOx7Q6(u#LFAzVQY4NLQ+mYOL9$Pg-axI0s4qYMgHT7M06micO z>a2D4bFQ#C)jQzHZdVCdZt*CBkx{=MJ42E|3vR8K;eh=Ryv7eVs7G{^UA+wdIT5C<}&y~=d$;Dk`7(Cn=$Q+hVEt{DK(vjV*Z;Rsu7^kTg6pN z1m!W3iNxdv1<1j`*}HqZZgP3RK{io#tHr#joMDzTh1yr8v*Z#NZ)02ca2wh1K#U9! z%Wgdxv0$!<#W1Dw#o2*z>UV0~-!QDk;esk1sLzW(c|aREYsI1uqO~|Gy(hf_qqoX9 zOqrTAZukg<7zA~B(a^T7L%cnna%^@8uv_FI_#$e-3Ja#X=`N31t?r4|Fd1Ww58^g= zDO4+K=2)r28>tyA6GS=!Z1XIq;}~PHq1R->&ZAn0C9h)&xX90p7?;oyp)Pzilwe0# zd$48)9QCkS`&4yj&CYWW8Y!(cj_9~bU?~h#@aGh4qpSN?9*rmpGDC(v<76cr|DOB2 z1s`~7LpcO#{uA{43O@15@qU!c?dxq|_9a--aIajf$8^|=@|BT*J(Kbx&_eip+m;V2 zYKK@S)Wdv)CV<6aGM3ytpN^I^KhsjQcGH$tGVY z6N!ELM;8ngild3WZl3FyByy)_N2Sw)#dFEvXigxnWbi&G(3W09RUXj_uvc=4G1 z!|nDu!rIopDk&Q>#7}KQzioUGwcXAY%S$p^rV^OQ6m#PdkvRz}>0hVVvV$M%SvUq;Jkg#D39 zJthmsZ%4?$fWYUpY1!Lm2!x|*ZX@j6DEEnT>_vc$I;rQuPntc{Oi z!tQAmosAtm}co`fI`n! zR1ID^e8+IvB*@7@7x#}b&*|GReFa$L*ixyfj3G_T0&iKFdT^3RpR1{9FC;;vUTT8s*(7Kv++U5hpUTvY6I{rQG5WyP0j5zi(d+3}Im7!!MV zQ115JGL40Z)`XUBb>J ziEW3{_{_^4FC2~qg<}Vf{=epwy4vjzlB*bZst@^ti$l%C%%kZ#@v>w*&iB-q$)qj7 zR5RuXL>qRYpvQySTMM=ZHpel7yz4VxhH-j?(e}nTh_)N!utd?eiZ|o8{b@EciHLEW zZ2YOj9wIp=F$S^klTXrs9_F?$ygLi=3SE^;wne${fShsnMM)k;K7c9ZQ>2+ZUb@{% zY*4bZC6b6+8&+7WfA_XtW<9z~a@Qs>)`ixUY*`$9pN1xnOsC#z38WU`EJY?S$>Z{* z(?1|a>1>*lytp^tfqXN}U&&wDhwM?A6x5)|X*Tw2mn#PQ5!G_=NaIPNWWa|OTrB2t zwx{~AN~`gsSa`)gn92()VCy)>V5d0J%gi!UxEach!-t0M$ilsYg%c`A(lyeD=Ro|! z(xiZ{Ql%4L5t!yxG34EGnM3IXTt*zzzkn^Dpr?pjuJScMwM(iD1m^e2 z5qD1*G6C~;=;l>Bs8>?M8c07?l@Zc$@40-jE5bsXz_zuuurE_DRhU?p%xTLCBr6ph zy0-OlT0PB~X;ZqiF>S|U*a-#4V^nY(YJ2wzK1Rls!)k&uaM0JeBpdmPV&EckPP1}j z+=~FQ2=e@))q{LU2;$AOc!+59(`{5;L>IN9ks}W@gI#l#yf31+W`wEt1lvQde0oIt3t~i9!ie6HJ_)ZgqAvJo;U`2BuJs$DE8NYd2t#M z5K=`p*vze-M?!4<#!YNTc6#0PgVAeZ@*d<=1_2=T5F8xmONX5eth3t8cb&ufX=M~k zRQpiN3Ga8Y9mIS{(C*Fz2Q_ZS;RazyNpYVd{6*U0%;=ljhHeT$C?(uD5v61IWB4(w zETqM{Yr0}kV(OCvuw5tF0L>lsY-3QH*`^+z!glnsJgeodEV(gs=xIak>X(biIICd> z`&QbyPdm&zup6j{u)+jnJ)iO{MyttQ258$1PBPG}fVy2H%9Vtg$_OL5yg8rIji9u6 zI0fe_DJh|!*^)V_)<>7nD7mL7-8!yxX*|a^w$S1E8xyXOV$#+rs{e<5b2}>YQSE+I z#u9->H`pZw7`2X8Ro({36dcac-(#-_I_K=9$qT3R|9C1vba7D)n{;ef4}7Or|Z3Lc43t&^(2zvPN<_ue30q*$wElwG>y8Sr7t| zLx?3$^rBW3HI@kdHvsl5+Y}-oT07gYU4Gt5PDHkAN!CwP%bS^QyZmB#)KXn=tcI`OnW_@z_sRAQ;EYAR|C|4QgB87Yl50ht=Z316P)9GSITT8`cJsn;`{_Zs2=4 z(|brJI6id5q)h@dX}uHo%?TpBoH+u`3&@(4W*1)w$E}>s(kzl4{P1$Z=8Hx0Lo+1U zTc!f*xUsgpF6Zkjz`wV-Kqq4!nM{n#*w5i`xb-;e^Z7J}XAZ|#aE?vfDzCW8nmoe_ zhUViFvCY16?VRh&^9h2E^W1{AIL{8=^XIox%P!{%Mk?mUT=S8!JhYaw5QTDZrd-Y- zr|m8^97UquluCXmk2rf+M)MMM_^=)&J8N6d8+4!y%luoTb9qd{HP7D~&1Q){Jr5k5 z*zl#LX6s&d`x-mMdpE{EA|%<#9JI+TV+lG8ICQ;yCZ%U%+F>{`%`XPtgNHC5vvN4N zx-Kdhdc<-$c`v9bG0aNOh8@sxwiP{D>+H_}{4dmE4jT0`^vvd+_VTphd2iNnvasFr zk0q8sQLDKllRm|hZ%j#Iqe#+?Nuro0(dqoVzxJiwZ3K)_q_ERpWQp=MEv+)!S{(!+ zCWKK|J&M{T_^x*vSIwH*gq}|!6~ABGG`ZQmtALB1W4w#>b$dUm90HAh(Y=QWiFQ(< zG_6DvJ0LYCNNtFSK0_VM%Z+|=9Xqv~*i2=x&U&8N8Kqk~adK@gtDVnXfd%~dg|L#D zvIpLoWu)^-S5lT>nV1c#k-f7aRz7;BN*xD>$vzKZGdl^HF;tnEG#b*2-C)55>BJ*T zqB7D)DHK!;*saK4mUP0@s1(Zy@lQg=Gp8nfJvTPPRs7$sirdc=Cb#CA|w4Lp3w_n`( z;bK=;Zx43qtquwmQqzV}?*=Dpz2f4ADvAMC`RL;3xDk2g&*Uh=mZy2qdR>P@$N;+qP1Ce2^4IP~}JTWf0Cf1YxF>EGdA zWP|M+#nyhej(?8-=ljq2RGDq_zm&5tOxWgn8w?+}zYjgrT4A0SepBXGepSzAt`zwphP@kMSeKJ0pHe)xhP!v$%HZm+wZJ@ug9oB8$XcMPceJPXl|a7Vo3$){ZM z19kuQd4JQbtv7$o`N9u(yM3?xR$Vfsm3a?m#b00&8vUB5>+>F5=ik3-+3zN~J+Goj ze728P`;jC67tr>0YTo*hkDH^Mz4?mP?9Zn7=jz&?J$-d6V{Pl*cjw_nr##{%pZ8CR zwAt~zR75wkPnCA(-0}%8ed-;O^j{qHm_MPx{otclT=S++zVp?;Px|X)J$+%DJ>wIH z`^GCS@!GeZaofMXz4x)NUibIo-#z`gdCz$6fA9YL;Oig!@OvNm$bmod@xdoP_`)Cm z^5K_!HI zOY9038kOLOO834$KKEa%@l<3>{%CWrRP|3Kv=LFUg#5w!-c%L*#tW73^(ljf*h5vQ z)-p>K{|upCsnGTm0*mLSp*}urXd3_)iwZf3{hG0-g#B)o5B|r2;H359>%sHn)o`JuR0)cnwgFVaL;I6IKK7 zY(tg1d<7x233Runhz0&E)CA#Vx63W=3oE zo}6BZz5g3h(jiYD_^p;0z7l<2hJbH!i~mbh&qm^$}uHJ^SH?)sP+T(m2R^ z3XvD~`EF#|6E8pS6@NiItji2IF_LmJup-Px#}!GT7ISBv%6I4N&=DZYkA7-3Z-B7< zVC~Qjs8+O?^rP=vQvMm@g;vBB8|_wrOmWd65Rr?)!#r6ZAL`LJkWn9Eta7ZBNOms$ zOu|Qlrc&XoKJF(9aH?_<0C!Y@JIR+x9Yz+1FO)MzL;7ZY_(sko^$ZFR0d$pRsIA9x zmh?Dj3!dkigIqbtN6P7;2CE%S;x#+IS3DuY#MSli%J zDD?hMWWind)Y4-(aE4_70(Pi+q3&^Z16Y))mY8Se#5wow7`ukj zsr<_2qu^3l#QOCWC(CtRJss%I2sIRt?s|T%J+>?&U+!~O*y)5Yzx}Vv6}S(BwB0Ha zB4kx#;O{2lvwI3Z@#+vemeU2P5+Ssj!;G*aS62h>NTDG^h7WKbrdHO4QDJ>Y+gm5} zxVAhbyC+4T{8l#E@?o^xTnX?N4NN|D ziTd57!sQo>7UFd=#gY-C^L9eB@TT(3>9#ev2OH`Kxz+xQ8OH+OXrVZ7W!b}IM z+de;0=3n?q%efk!fc&w<_vaiKjFm!_UF}9mhxS1SCaIsZx~VF`O419_O$ee6ATgwn zP7)L&N_BZp&L(bC-3fv|;9~pY3JFtdE_y1PM_RiJIWBMw*XWVTB+prTa>q$`SkhJ} zN%pium7T97g^#s77Q5An06*dY)LAG79{YH@e>j+=m@=a_X@P@|&GtJP)F@F3lWLtJ z{Xfxs672vCEKTHHdW2H2-8==JJV6Y(IBg^k(v;m!B&`Rl#UG_rbFtkT1(nqin;Q}C z{Fg#d)Ks7guW1RB*ody4L7&hU5lw9%vDS6S^@pizlEG6!VxszYLcbv@@fM zm#VPiE73DWor*AzwIRM2Z^tJwz zQ&IZsb`d2C(#Bq&Oa3Vu5%p^Em7ikj`+(FTn-F(Q!0J%y_r-jPL^g2CIsJj(T$M@^ zD2-qvNGct*DR8Hm><{mi_o>MM;-XhgSNHf~t4nXdJ6sMI5`I2}J$53WMwOrmP4ifq ztQ1>12$PM^L6rQe!wr7>`W(eZ-8sy#`gYvubEew4TSBm)ep^ zL6`_xiJ`+*y_B@5Bt=fTBtXBkn6?kn;bGaGAU*sy)X}(BBuM|!yU4$WDpZa)%Duo#!U;bk zsIE>=lQZ#3<<<<=1wxwTkk>zrjsgUM&T7oDZ2y;yYegC`lc3l(8i8Joi~$HxS}4e= zJ_Syrd{NRn@8o!D+CWj{JQU*witHb4Nnvn#UYZ--M)$F>Q8DDH8W$2Iq2bQTG)de? zCmkoRO4O7!^htNjkRSMmc#0lH+mA`IwTkK5D>D_d?R8F;X^Cn%V6Vyzw=nw;By?;4 zI2i$&F(v{oCMn$~BQAt9b>Fz4dsY+|XGHYQDrlH~ej5)f5ZfFT^xb=YsN zic$*Rp$)eLMF<#h1v0uBjl;)DSqyQ|LiiRzfDWh!b|iu;M=Rq(oab#tUk@X-{DB*Z zO@Un!BAH;9F|(qLL4n}_1F<-XzV?#F!gs#YROw#NQ5irS@~db>habbT!hBIaYBtl{ zIEi5*8D|F*zX5Wz(G#gC??rLA__NROlt?|p=qlJVEy3=$NxJ5obeS{}xk)x?>Z*2D0074h~PAcLgqRuHiJb? zmHD^aARvmSwnU}_;jDr}>!sv^!|Ci3Nj-=Lb>NXuGUY@OI`+<>-cz7>cdfemzkax! z`KEJz8k^ed$2ifY(Jt1?q7O`7uIZ8tjRX>GC=-}I07a!V!T%3>h^$H%!y-xAQbS64 zok}*j6zj{WJUC1;0?Huz1p%XzCUo^6fycs0<=WajHrv@=4*?r1%gEah4CgLqj*joe z0D=8HM7_}l%q%d#Z}!Y(D%~~*(&870hg#p;llQ4GMeB7 zsE?-3y-35CH7k(x2rvQv=Dno|Kn9^yuC4o{ktV1bZz_Yvpzxm!qEHdRk<`o%V3V!C zgF3mZA`&VRmy1C2Ig=xHt|#X{{%0W4v!#4PP&($&&hTzXBxI$iA)x{SJ#hriHG@ez z7$hL2DU}|XQMzt8z3xfxWoEU)@QhA0I~-4H%B8@$^V*BWRH@?b7T-5Zbh;8M*}Jto zQ^?vJ&gQ4Zv-WDlrn-1h z{6o8)8#PJUxk*36fkWy@jhe%p)Lad$t4-tyCq4V8ocKD`s!w^t{13Xo+`W1qrV2-Q znu?cT4V$TP;@;D4KF$X2lSKENOLXt)eR!R{r-r6ev)O~(YDAr77Y}FWBfU@M8fXct zPY>a*85tVqd!FKGZbE=^o}G{MgN)K!NMigbocDBqw;Sl53m=C3o;2hA{^98{Z4#nF zTu(eIL4b|P^q;+F$b!Yu`B^}OJ$hiKjoc?5A6x7yqTv-o{vH4dsZZZU+)K@eoE`3+^3a4e6B7Vw8qj|-0<0kxAWLv*7Hv< z{$dv|Y`rzOUOegjekf8Mx{K9%TSA$i+MnMggAKD)TWqlBlknO9ZmRC8@21$k$2{S) z&b;s0dJwCZnj*u9eYun4EZi+t+<*J)+uKF9v%PFKsKc9o4^Il=MdL;I^W6b&qH()| zm*zKIfxXpxrWmSJ4u1cDN4;SqyZ5FVlOCKa77yw_2KlsQo)bcLf2lrK zI&zMWDrr^Ti-c6*;kY)3+N}DIvl5vX8`w%fH(w?Vt)iOuNWO9sq|E5^Kb#_?V$wKS z>i~I>nK$snWiln*E{r-v!73sbKnZ|G*c+P}?FcU1PWE*g%x*K-W{fLHlbAi5hXIV2 zY+GZ~iELq){s2*VrZZJ_GEcoFJ`u?7*^+(8;yB)CEC?M6S#a}$Dp=?o^h49m>P;|} zu@g<#1!KM=Sq>t6ydc!T+F3>-Y=B#e52Co%^s)Ba9I-@nAddkicIxFKQwAtKPz~}K zR8&pR(wK8P!%)$!(Kg(8F96&arb=|Sd;OXA(z%i&S5CUhOY0jmP&F9oz!_&|0c(MU z&yHzlEPaeDY%Mh)F|h!(!qnEj&c>?D<}hyxCJI{RB;eOd^=qB*vZ>!M9Hv_D@&u|b(OvRD-SXYMm^S@ctOd(oQa1P{QQPU}R| zX-tRTTBmtx^jcr!5cgl7FA8#V?dX$WEJMLmljdEmm`^^e>U{QF!uXPc7|EFg79#Ax zm92HZVsp5e@gE0Q0|>8Yxq!1;<=|17T-*zw4hcE&xLZVsmkQ0*HT(ZYSLhJ{Tul;B zs-wM9SpL~kTo6YZC~{79uX#X4rtuGaf}cckQn?M%bi_QOXMV-|;=rg()q1%GQKQ3X zzwG_$KO(Fk^?2+cva_=dtm=`F&q{?w@)IF?&HSYU4V}RRDKZ>n{}cT9$KAb%)47nZt}a z)o)M?M#Xi}mEgG=w|89>rcO620KSnftRh4DE2x9pm!*s_-~)Yrsg;Xat8RC&JbP6< z#=jo*4=U1dp4RZ2jII}~bdFsm>oPd~GAnrkO?UlK0gmcffzIi{XpLa`c)~^+@s0O! zYdJr6)?~a#Wi_gm)oS0(T!tF`njLTrVKkVsScGu>Fx1f+#sF9dw3fq2Hm%p?<|I}1 zZ)LgwUyWupj!P`RTWPhmEXgmU^3qekhYvSgb)0IYSGAfYLXAvWxdqYA2}MbSYKNj7 zN1bYqWM^Pwv#ag2K+P~T*)qz-Yq&rOfM|-9D+02U<%R7O?2eqJ*q$$}CpZSD~r*VJ=pc>;x-GJ6n3B zarPGgCLhU#93JzjHoU3gvp)zGe}!S`P) zs%V_W;rLvQ0@2_f4q|DuX}F&$#ThoHGu$HAn4x2a@Ga(p+zT#To_4trvO=r7qeF6_ z{8Om@jRPWtWalPeI^tnho(U3sXR@?_${;1<*21v_CV+-5}n<%~ufH6!XKIhRO|GteCB zM4%BTd4SxS#f6uGI|6j#9;Hehc;m$bz;Jwt7)fZRX!A>1s;xRLM^gxV z5LfJTn~--UEoFWFl&VE4Z#gE3Imi+L_jg3p_2^lsnJZZsk$N{#J287~!cwilJeUHH z;%Pv##zB6BGp{#(rl!e-jWqvT^N$SW!SsnClc9(>*sW0T3z|T~iMfQMAc>Vp?{P`W zRxOgLFnnZQX*f#uVqN19<%(YP0v%s;qK@$eTGQkw8>|1v1Pe~rI6xc`j_1$VBe#LL zsa(D^0#ajKOL?{aIbUHWsW2M_EW>}fGOt&07a?jagw##34SmQe+anBJ1~>@0%}FF7 zv6ODnBts?0{CiU_SWwWCQ$fTp7JifxY zH3Xp@hv3z9KZ^A5tN{#VH>>AgoYH-ss?3DiTW~5ALT+;4G{;!7+r-^TofwxWD}w1- z|Df^}CC#&AQVQMjgJ2PwiIW`=n*{O%l+-kT9*tI3QT(E0euzz0#*3+@QrJILZp;|@ zBgE;-8IBbwXv(h4bAb^7kH>ItOj>=$vMalgKtX{DY$KJ02C*LQMXOC9L=1-k$c1!` z2tf5AN9_Ysr(vud0BjxLiO=#Dfo@GM*2xfe+g8M;$R%Y)SUQJrF$W{YH!l$!E@C}? zG5TTi*R#mnxU!~~{P>O_nsG@3lgkcZtu1!+4`@10TzMh~d!)1pajd^Xk|XM2NGMsB z%=1DcF*Er9M~JVzh#*_`l#E)tXuHASj~6!TQZr0)HWMpUkoD;aV0Li>tP6#wHAI=@ zcs_HwG&{=i!?C>)w(~(n${svA=4cv@t^l}&DeiEZb5A~bG zrHaI<9L&q0WAgpcxWR2CGP$v#{NYsznc~=uk)6r(^%|{}6q_g!92vb6L}Ukb1swKW zYV?#rqC+vSDMEy^W_=6Y%fdd}tm6RrRAwvKveDr=qfaPC2UmVK2B>(!aFh*Bo?XK1#L zT6f}KeXXUfrCoi6D_UYoq`(dLd%f&ZtMESMh0&>q;#%T;l*14omsN$cZ{$K;P!H0t zSE)Y^yS(#@u015FD*u=l(+I%+9Bm)iaMA!*qS4`5pb-iro z-)?2@%7n>7mN}T!v2U-8o3rk%00#v~^N{5x#NGScxvAp}dGKx5DG6w%%Ki4P14nSQ zPb6YMq&rhM5}w*+62-3Ki1s$kref=OtRZ;|n9>^)kA2Jt0r*>Ce1xNgy^;yAZQ$zT z7=erDz%h@gUJeBJ8iRW72FcOd?qV7*4B_Q6NAC5EFFQgN7ESlXB7lwFxBA zodl5hU2sVYN<~cU-P{atvOS>$6V&an%W_wElrXhKfX3$#&k@pP#pycF0G%Kk)q=dH ze*Vjqb^?{vGI)g0yv`u#_l^ch(W4!;#2qfUeQtT|C3Xb>$%!l@OTpw`KOr6mWbCSmtgB$qG8mA=RQonZh{(0; zk-I@8GZ9EGjKQp`m$on^k%Xy$Y=-bpzj(!78^7)Cn!~@POwfsjOP zoQF$L&f~}cj~yB}w#35O6gp+gDj*O)GK>#wozPIQkaI5V+gxklWv#Oyf%<7MchMR1 zHCmbNCZaQBFTU}cAEy5p+R5t9Ta7e0dw_3UWQD{k;K#6r{Wwb9r-_Sz`HR``yl8j2ys=y9hFStL^nOq1nq-?Cp33#f>IlAiOa~4@Zb}mM%jRzpz|tb8gN=>!zVbcKbl$m4Sm)L$c}y5!JIJ z@piY{CC=oZ3aFi$=_A?I;HO`&>(rYbn+2QHKqQ3khM1(-ZFc*w3uuTJZc#7JV zfuAOARr!BP(o%#v%E14My{Ys?B-U{zN72lg8={a%8OlyspfgM#4(80C8FpAxgc`C< zY=^Tz5VrdRI@KlzBU-|bZU-0r$gPwyRz+Lw;ha4?BKem8LXM4a3&iMNIX@wkoA^|*xP=L7tlo$MvGve9Ic#EI^dV#~C68rbQezlrHJML{bjYdEf zlB)u*j$FlFcV!%xPoKgw{tR!u_TM3Gp1h+TnNwVoPmMj?7hv=rw94_I2Zl^|PD2j! zcIoL9M<9FZQYoAy^&PAzkdzL<5J9ixK|jrca5LzzdC%9VM>M zW8@jGQBo73#S<9w8kN+II7cYhHQ^{S#Hxw1N^GfxDkZQ6NiIQFPJhD;#r#EPM<$l_ zRFU&zK_h^KtpAXTVUNceOWZ)@fGD|*cM(OkmO>By!#l zcL}#~^t0$jf^qO|8@S=w+MQz5E0dC-qbDdrvNT*;v_Q6l8bAvGn)3#M>XU0{TVXuq z4h0Z}&b?9)aD^_-oNPcJ#BG)er!w8y$Z*gUl%W-ux$8Z!Z>7|QR0$$+fjeJdXZ?8X z>#Lh8oVgnvTWd+lX~+Zy`gdQe(+TdI;c4`91W^nqo}`&R1izc+`L64YZm?8J)pd80 zaQ{1kI;Eq}OVB^Ze9-84)|q?=X$^iV>+uhUq#f945>d$(mIg?OYbmD4C>YZSIlBXU(mtyLd({&r3TJ!tsQ7hFl@24uroLd8H=%(r44j3RCEuspvdX2i?Pu^ zJQ@9h21O`oCy&e7$ zWXSbZ>+|xZENvNnfa>~{wpP26iW?E|YBdfF~GR0pg42ye%r#J=tJnlnF8$04LVw!+3 z@|oQ<84f*HVKT_*aE7Pk+z!2_OZe&^R@YC(zBxI(;%^)1^}gr}wvzrKCZWlI@koWv zyG*_-FtAA2^!d@}5TH4}zn7X0-8!5`t-}v$b2W!|4jE#d5jX#X8{v$orBATX#B}^E z35A>xMk?5dc)~Rm^lpxoX0Y*XB>61tp@tu6ltl>OlDu)|k1;ekGUtfdu!xu3`@iN&Ar^nd5nzXe zm~cURInT~3H%(I&!YNIpVQ`&Wlba%vF!7N2U7;C`>8wA|;Z9|;+@>}` zdb+S+jk$U@BrIB!e~~u(#dKgVcOOuL+PoVrgpl*($dc^PPll2?}2ed3MN})8uKm#sJONIO8K3I=;aG7BAtMzU+$0ch+jehmX zrU&G1Nc5jgd{S(wmkv-L%s3Z;13D5}?I+}^BOX*I!87~hAGtGXQx>XjOP58h(u@$n z3R5^~sX}LpL7ZC))l;TWHBhKEqy3=pX?@kh`yCgEc&*iq!ym*9UV8BEFUp2aG-{0N)T%hiV42KPU>K}0B%gTY| zeMVSuiAc(bKtgg3Ey$S1Z2y^m=rdUOB;t(8>p7}!%^WR>g>tB!w(}R3cl4|o@gVKa zdoykgU=k7^l9VexNNhVf-NqAs4?wk)gi_$KCFr&bC1>cpwD(ZO2yUzP0piQ@B$2dz zXAC}i2UFM9Fst}y7hP=a#xC42?k?v+jP+xr3uvytiAarI28hECiQ}j!LL{!|r!j8C zs-23L%=Xko>?Owl0Duq>0{{a6LsU>B003`RjUx6e@~-CNuz>&4?=TupWHv8^}m48q5={b05C8BE&;r6H@6us?diAl>3xkS!q2}O zZG^tfrPR*MHZ3iUdCO4>S}36M0e87WpGrU}mHYCm9iT@Pfap0r=s+E!1UV}D(T6?} zXn+BI=@$n|ElQq#OS^8;dehxZ2;Bex%?MQy0f4(f@B7}nz4JNebKd2=?&j`p=H{Q< zbGNsjCUbIRvfOgp;YuWN7L37AqKd>Ih!qHkA5ee*Vu&vwL4*|aN`$h|0X_jl0bfS} zK-2&qSb&mHl4L|C3vo#NK`5L&6c7IE0!6?)fGMN!z7qz4=!nlJAm>3sd}KsiHm;MX z{y!RIlrRJ)@dTu~lBt&^=p+aMnge+XI3f|Wx1OXvk*N@ANud)SzvO?VAN#}Xs(ASj zoa_gMOW;T@NL9g4ae)a^omI4SB+{pkbRN3sGDZR`^|y|V?+lZNn?;yVUTKm=+kp1gww0`QcL&ro)#1yfWK z2J(WyWT8l%jyPvS=rN1aJj14?4xw0;Hf7@x&Hz!UQ=p?H&dsuioc!OdALi|#VhXVG z;Iu?{;PG0cTxo~It7)q6tZY6B!v zCxI%QS4{R z3Xo)-n{kt)I^LuNXKfcrKf0<)BveM%k!k%Dtkr%UYj*}H6raIvC1hq@xbS%psFYx3 zoheMfv9#W)ZV%HEHK}yss-aXVrlRHP{%C8xKL0}i8Y(jc7RsDgT8w%#8cl`vZ7n;U zH}h%Q<9yh;C2kUbF`+Nw+EJ#O=MurqXXxlnI8?NJDMdl*I zAO*V=pCY@?#qTT$)W`+t{8npe(@~3Rkfv(9+|${jr=Ms>H3V`n7PwR#YXl`~`3Gny zJ*WWdAQ7#C0LNa9T6D>#&V-leLCIys$?-#~*Q1!-smpko@CAX%jT?zhv{(VEX1PTI z5LKr8YxKo_sixp#UJCfgY`1APkD|L0UN5$|&<6-^HskvPsNVJ1RF7+xC&2_uyS zh=!u^uXe%1fkMk;1&jKEjB+s*tPQUj97Pxs)y+_kS|EzHuSKH%u>txV1NpMyGY>kb zbcFz%t&iRq)bUF1xpF~0mU{K+lPSOPxf{Udq{sq{y`q0g*pvi7c=)W~i2smiySl1i z8ichh29k9?Y>$NWJG=Y1&9_TM!bE{$2e?5O$}FR*zgL)UFXlq;Fb|-Pnm>`*cj`*T zfRC%vl3Hb%$ki|A^Hmw$~Dvy3D z*V~K4507R6UV;e1H1247xGwM^0gtk-QkMhNxd_viXC0kAyC!v{m*LtY&sOQYly>3} z)3H;#Ho4<49wH)P8h4y3aiKmHL2WC?<@pe;<@!oQS%nbRWhOLlzv{SRiPRc1<&Xzt z>@7@NlS9U%y|Cn%b+~vB(g>-paL5fBRP$s}#WNjhhOJGEYA^Y~8z1{Q>!7hW-}v(T z)iX!$lcy0z3?4&ESG0n#~Dk5+9_DM$h%7leB&iznhf!kIH|@LW>POUqSRj zSU~h1b>gr0{$Zd7r$q}jibehhI>6z;?(o6NZKcyEP5{Ajz>-TGL&nO+Rl#SuJ}jYH z;I0&Ep4OJmD_$@37ciZ?#VZPYSvtKv$an$L?==noF*jXgNdQfPo%lx>ecH73setRz zZ2&_+yuWz_A@uNz_nUhea>FbFJa8GQ+=2;E72|5wXz&PcOTWvY5-P~1#2571Q}dMO z|9E&QlN-SViGKC!4KuY%#{*Gs)k40hngjTl`kT+Wv7zSWrqN4g4(wwx6>?V1k^ATI zMk#gAD-mlDXz&nDfHLydjNqRdYw7=5rW)vf-w*CMWvs7(M=?O!b?(*ai~@*@tz2Oh z@M-+=ODo8jfpG39&hpz;Vf$oZYn&FO3@E;KpgJY%gW%I?Zzd!th+36iJ7|Lc*un$Y zD%Gw{C}>(^_iB*IHl%H$K{N|2g79|M#E2Ecy_D`a0^-2u?*iyKZ`2C9Cbr7vYJiEE zmcvmUpww03<-PgQLg~qpR@&vC;o-bLr8B~6Sl+&piqgcVuZ0}QMExE#MuV+|)l~VE zEr6#3$gxl;HP2|IM(H#yHUl4fG^$+9U0I{F`s@;pnGy~l3hEq8`IIZo&Xooo;w2?M|uv#d!SlDRAa0yyz|5RyYmg3!LVQia?)KHz5`1iUZ;O?M%y7e)Dp;wL0pV}@i^aeVEb&7-le1z&y{f*wE zByh>QwTS2e1-feAV1tNEUKrJrC31-kojR&Tz-Z<~SS!_qo}#9JwlMmxF3-+;y8xEL zIoJJsNP3yTrxNQ-coH6Gj2@dy*Glt<|qNj`y0T#|yOhJo#o4t2*P z16AQZVzk2T9*#R(BEZ6;AVpW{l+UPgRex!$=VQN=Yx=On0ul7O0HCfMFwbNz zG&=}GGA~BVDV2fi-9tLX_1O)DJqw{FhjxQ=N>WpIL>r}^-rIaXLEg{6s}QZFXr`Ug z^G{M$q*3TTG)R#;ubEf>HTy&~cSIZYj+Q4!&k06nrB%OB8tl$^DkW>=T2`yTt44-V z%zs-1)Xte5Vd0`!Y+KM;xL-XcuL?ud?%0qPn>UI=?z>P2&@fu#OItga_3KW*SGSI} zs?fS;*V}pb+4%Q-`I(Yh8!t;iE!TEX--GQR{S<)O%oJWELO#o`XfIGw&e4Muuke7K z_3=DDB-c=$A6KMOY*!?z0fm1qQ4U#niz~bGyM96Aenf6Yg>TFi|7uq3HZ5O?OT)|F zc=EmF1wvSJHW87-fUk-5nKxNllfPL_<;+GD?t#i0w9mPo5V)&o9h%Kf+5oQi$R&cjqBG54ra1ar4AAVF>LL(^5lnF?W=sV%J+T|NI z@FS#kTGr>VN6m#P27v$m=BGL&jb3RUaaD}0z#82vI!rHz|GVK=c%?yL_3Uaf3fyM|bVeo#4r|uJZdu%Uq*AeEs6Twfp(^W* z!o08&_UGs>tXU{in7aeE+3ow4a6gqk+b>1IU)!fwh}Ws6{avW*j=mU0=fVQwHI=jj_e`@#N6CLTG!@Vbh^AqO{$l?Qoh}rH0PnA3}J%B-!=uKe1!#Qj%Cq`BV z9wsUwD%aXvn##kNnxUGmw*n0B%3wWi&m8m}KE`N=dee~VDwz1cYKl1Xqg9jjdnS3# zj$LcXa!s!d0Y;OfaRQOsC9!!ksje;zxk|3t2_31|AwY>$mSY=~I=_1@7%=DCxWZ!F zWr$bJsI49hi&QWc%JBx(stx8Mt_&%LW`qaTrmlLJ8;WeMu z>M1@Mo*qqPoja=iwU!RfcA=BYy!;8#Y%y_>^m+;|T^WFY4gd)Cr=cFu9$Es*%*%`A zIWjpBeh8#r66>wp0wq|TiB8qR(AL`FQjIugU*rMN(5mq= zM^ozy2tczEc~5@Gr<Mkni1|}v?6_Q;oK#*)A_g)VzCV5kNix>Ql>B)Yf zMHJuIHtD`!=9YS_L#3ZQ>eah0H|F62?5JO){KI@pNP?w4>hkxV^Stci7UK1wC64ihfXIZ#{W_w60zZ&-`t=@Ye>O|X zwYl5S9xG2S{Z!`2Up7RNN#RmT3^O3c zM!2L(+b>qE&S-u97jOp#qiE-UD&p9dENT8Bb;%mQe20CqpE5sF3%5-- zn_ZjBC=0FTSk_Ygqy*}}g}+r6KfCi73okYA3Hye+OEP^V_iH9rvio)yE4?Ce8j`mx zSc2@LG!Nc!e64eK=EKXM{Geg{&X*;V)&r)S%J))JO?2U`JZ$6vLz?&9roUzcsfe5( zanu9V`qAVMp#{T$D_Z$(p|%+|(p;h}&+n z;43MC4<1@@fmeG=D~fv4Y`BL*Mk$XaAVj7 z-Zue*ef~OC8h|d5Zhs=H7~~yiWY5U}cN!;p5+=qa zErtsBH7*dRu#FyL+x2EV2NPh~E#qT}<8xP2hiXLgv{&bl4Sctl)=Q1s!7-qHm{wWy z{{yfYRwZA^PU~v*>MffN$YwtA$KovFyv*8_2J_|ypWH53n*S-ua_>Qqr)f7B+H>j= zh=RI6gbo zVO;O2{|Zldo)26t=2Uom{Vq``YIUdf2&-qv;(}%&I~lGppy~TQ9KmYQQ|9c%y!Pt0 zf|B;zot5^wuHx9%(8xXlt^FWM@+>%L0cTJziFx%GOK&Ln$&o#oNJ=0gH! zP=>y(lu<5J)&op@k{aqs`2_>Dxjq^>C3yQCHJH;#R=K|L-d_B-$tC|2Zi}h~EO7?| zrD2rK8>~c8d>abZBV_;w7naN|*`>|FQK4Whus5||=h6BV0|hR^(>e4*I;FF(b(fl4 zsevb3tgE?W_a9oYB5tCqKi5<@n=Ha*Mon3a_I$^zh?UqvvWW4=$g`R)SMb>amlv=g zcFHj>{nyqN%@It=yFM#G%ISPSdcv3}BV$a4p#0u49B-ewNRxV^UNTn(BjIet3Te*#Z^0E3JTC z=p9{{9riq?h9qpdoPQhko~e%8DeV`Tjj>@{|Atb+ix$x|gAf81k`4vr_u{2FmLgyW zxm@sXQv2dJV!-0^7#5vl!$vIty|MmY0<_@%i^o?m9ZZ)JTq#HHjhNW3T@E`~Y^J%T zZ8G%ht>CZjPv0JTw|Bke5>j72^bo{UCq_mp4CSTce9`*!7YRIyv!oN$c+k5%9+t9| zE|Zy5tMhta{(9>zre*GrtA8WdQlqJq!1>aYc@oLUbL?o&*Ku4sSVEnHkG0ZzO z48bc>BB5}FU`YkUt)uRJ)~PFG_>(4D)W9Y}>{~**Z4}=$Fsd8&6ZJn!ucSnS;rj)g zoxs5a$K4sovFCU-&Nls%;AuzQ4wus!+mlGg#$0ssuoB2pKHHDP4D{dYwmmTK)#ps{ z3v94vOF7AE<3(5Qfl^yNI7_578G_^61G!3XEG=?ts^D%wKTZrbJtk7d;ZUqsrn^BS zMT-`{L(D8qrlJoV0snxFWj~AEVxLb85j}TQH;+L|Nt?OFi@`gtFug2d=Hu)$BHX<2 z>iAmK4DR;Xn#qB>Ww`tMYK?~dJx8^}eeao!7sfOp@)TLF#Fi;F%2SS8Ia<-0{0rjr z^M|_+IN+0MC%TWmX-Iv1Wa(;r`RS@*6HA)==K4DB)Uxl{w+aWDL9H@<|IBoF)qEp& zGG<~!reB~;tAJNZ?#J~+_Aes9aoqJqaVy#>DGFjPI>W>#bix;I*;6JTTRZTrxE<)N zOwpYcg_v1_`r^_-(Nc>r9Fe!uc*-_vXni$oAh-weZw7w1aUK7`A;MkdCHlmeLrJ_E z_mbE0yFVdt_?^+zvyzxFrNlIvWD`E5?grq+k5QdY+vsozf5Ynn@3R3b@8CGbSf<0( z7cjZ|zLH_;5SSK;I@HZT=XJW;{7IuYqZJNHFO+$ZEaS{9p;+{Xa??J`%QdGQ#`6TBA!V5+P zzISv_5%8)Ci?6(Z4PQx1bjKyM+clEWNl9DyUQ3MPsF$a4`n+;R!jF$p~1Al{*6KezULn_pnE&41%m2hV5 zx^gy)$5_;n`T5H0jPGtqYu4KrzUJDC6BPl+&~Gn3FW4eVs8g2eY#;L6*dz=M;~TSy ztUtBwcVsZ{&RwlVAjx54^8I-bQdg%lNa;A0$$`s^YnlXm#BN4TCeGp7_P}+;Eb~B6 zt}iB$*7-XPNT2)zS?jrwRrJ$jF@MtuwtOPxl?cT3!jo1=gX+`;P??FRwFoziiV3AI zBdJMbD!K^ySU(2=P>wR{jUYp)ZQFLNr#-!Sn=`7lgp&2mTB!Dsao619)JxmT4^t{! zkz%ftE?9b}37B#dN9(e9s+nlhE*8vpd)JTn|6N4`fSTNAA)G&9DOwYl_@>+9sMY-_ zKMgaA%UbSJLzKJ;Qh}M$2T|6W(yeCIR zKM<(`dCOxo=zA?VoMQBh1}|Xxj>Mh?wvIC<1?L951NctM4;?CF>=hA*l30N)_m6CVj_rKZ%Jol*WQyo^lebboJx)gZge zJ~!UI?PEZ%w0zZmL}+IoYWzq$Z-b6q*wXE7Q=@GmBC|P76ZO^6pykR3_PtA&3$5y` ztr@%RvLlVg;T`qS80iP(JwIvjT{}BktI|8R8GQPD;T=H9>SuL&tZizpwMsOi_@1hz zF6t_vl>ekMo7?uxv@x)Ag@a>n_2m!=#H4QvOM-z*VXB^0%(n#BYdTEG7Nr1T@PIe0 z2hUr+^JRd!{6s0Q9O>@oqM?Q}``LVJT)4N9&25>ZTuz6UtCw6M8A}=^QE@OX`>?hE zAhNsu8WpxH{qw#4{EbNr%}8813OZcIryK}u)s_AY$peQsJJHobRyZLJ028i`F~ZWu zBViXl2KGo}N>CL!5HYqUD2ske$O8p!VvZrxYPl-P+sIHcR3peI4qPG51=RU%n1ccX z@$o&s5Be%LEmVWObADgVNFn9_6-GFMi~azHbDpgi(QsP$E+hd})`Y_tazsq@qpzg>~lJ z>#+m%kKdAjq$WvluKoaV$Gna-kTp}R*3FriF10Ul<)wDqpX3lvyl@Pq8vzKy3eX55 z8*FYUNU&;immqY60~`R*Pd0lNqhNqfegT=shGW{! zA;OPoyGEb>zh*CSPX8SC@|j{pPBT}3!CCr!$pmNsy6VjYo`hYP0DIXLr$SIMfM0+O z+vM=pN5%-4(_ow1Hli?fh?}klE;Yk77R-=Pn^M=Swy4K1l$AtoMeBk0GRYiUuSen9 z=!lavlQSTFtwA#6><01N9N)w2W!vvLdTbYC<{;EP=v_zbJ0<29>v^1@UH^1(1GOu= zdA@CVUe~q0WKEQhogLWd0^Q=4=%nas(zoYTkKA*~2~eaaJ(bS5MPQxBVd3PiAoL5< z>3~n&qB`^et1Ne83v|0C-r@$;>q9jyj!609gO=P_DtkOk^ub~ZbjaQtG_vpWU=t|W z;JhQurz$dB*bq;-e{?QkcP``Y*}~qY`6a$ivL|+1pG5_c21#ZWd3bULnJkNm2&H#rq31 ztVe5)K;lbpgaDGLgzJB@|ALWj26#>2u=tR09~>eT4mtMF5kPm%o!SGhDOF1VF6^83 zp~iaiKKtfekc?$*G9~^eD6hM`EgpZE_mwj`Wmej?JLH8da`{$fm`g{3Pi=be!e@`? zrrXrx&ZD7#2h*P_eC}R_HGh;7O=SJmU_ew9*c)m9k_C0g8NCEzvx5INCc?nObxX1n zkUtnR)g)Z9)|`=oNe->>IIQfElz_tfxzhjC|$6 zLrbmKxT|LFYT@0F6?Ys~vGnwiQsS3lCgVzfzZ2tUNZSd?z8l`@WFZxdvrhamady0j zNM)k`5bjiy90DQ6+rQ&E@ruQz>t5ph`A|Tn^(`qMI&9L>%k06=4>x?re&CL{M!mEn zJ<%N6G8Sax0A9+)3Nx=#A>#jwdM{hnA9rjdqOz#2XCrZv=Wr)22Pwb-9U@z~FW=I4AT$rhL*tf^cn}_!H3vwVoJ? zXedLs08+-vhzKye{dwQT><9DwV#?)4WDU%lB8`bImEN(jA-d3{bzmk-X&&o}Oved) zVX5s}7`;dZGba{^$Z&$RpZ>AhU}2L-03H#K1hf<*_ZwNRANgFv+xBRN>ml{gH^h@I z*OF7Fp`+auFBkw61iP6bkZ3xHz3fhh6jxsvp*^oaKqNbTQhYhCZNk#=N~~G9ziW&~_+Oo^{A=Xq^6H{%LQN!L8uy4kWJIkgDOu@hDQ#+c z|GgS1&?`yP^NX?-JLMeVm25KS&*lIX_5!Xt`7Z&cXNK!h2#Y`zqO8|h2(zbHBCij- zCIZ331Bv8{qbIP)p>uUOjv1Wfx6vb+-KNV9S1_G!o&67jhLb_cOm1t0y^Tw;%D_-1 zV}I<%l7~nDdlYzn$BAtHN5=noW{fsmd*^wWD2qH@pfD(;Vwa__QZt*g{)MbgH z%Pslu@*MY805Pqcz(A{QZYntsi83e8i*qeGVIMoloGg;dhqfcL=)irMpEo(z+8J=K zBwxQ2zN!~l{^qg;uoe3>yi|?`5uiIk8#a-mRIYc`!p^0ERXPg!k?^IV;;uJAgY^1-Hz@9kZ5Vc=BHC$jU^2 z=8wCAy<&H%(?VYX>ViX|1V3n$SwrTDPq_8khg|aX?gkGHVy;syd=1mAPR4o8p-;hs zoBF=jN4&p)K`u6(19X)9tq4FI$Erf4u%@b(+VY({FVfv8`t%)>%De&sj^tWn@I^>H zVvU3%x8NWS6a$=!8GWyZ_qEr5nM`Vi%d6O~FYkZL87ICwFAJrvXF*yjmFe*7LJ}WHjK@RDX5s(X~f1 zC*Q)MG3_szUm(DVYClleCJ|PV8%A^RZ}Gzolb?K4CXW?-T{%3!9Hk)O^*3KZ(}}U= zpH9g)L+N}jP=j=aRB$3{fc_|^-Hl?};)d9H-AbY}xQP5VmgxrmsAwKarD_Z=iJqmd z&u9pS+}&9)8+KXL)?M3thIkxZIF89V1o+$JPX02S-L^V_Pxdr^<`@q_fAhO^V|Wfj zIq=|n5OCvp7S)?mVACsFDLMP%Cc)4dkE49^^H8^k zZPvtE4MneI2-Fh*cZc)S8FhwcaH2kvA~wt2%w2HI;(oC-+tUYj1@Jv^u0uR=-M|M-~QCVZywVVgiNFJkzi-hJ1Cb5Y9~>o(RIT(}#n`wW{Q~*G+M( z%V3df9^A36#-);V-50*xe6LEL(`Xo&>h^>k-Mq_h9LuGg1%#1bl^uFq*Xk99igt}y zhh;wjv*9_+`nUEzh=27Q@qWxmoj+E8Ue`hNswp8Sw6|Ip|n zhkQrD^F-(($Jl$*Z?xFI+?{ezeIvIID7Lr?63T-wq?){kz((Lu2p;A^b)iN^h!$dS z&akT`5I?5c&i>qKmkD+x-aNoCSLZ<=)49jTahxVcI5P^CIEe#vft? z(;$8OCnkx@jB$JP`wyiP+Mx9rM`nOK$JDAdY0J;k z=*f>UmFZi($G4Qq5$R2T)>Byb zMYQ@qiO>R#p2c631Lp_aCNk2}43nz5{$(RWS|!NA0zMl410LV*si7e6*3I?b>6zFp z$`dvG{u78hOL6>iVeDYrrMS{5s63i;znAqpfuQa6O;bqHKnTiFkk8Y6eT%bz?93Kz zbvc%fZ>B+_6}&tTI7x?2+e0DsM|*LCQ8P0Pn{sL zJ9oj$?W+BfDa@)%14av(>tw~;eb3sJ?~%$1|4r+q8%9&>qo-mAPQE%!=RT-SeJc_H z)lCRO2ps_2|93BUeZdqTHK20sI;{pR2QVa*yMF%#(d^LBD#Oy6!Ra;sjWb^KE5m;p zl$@=34F@@?f&M#t#ZWlGP4J}zdBD8%{r}zq)TWP~(GHlbSV;sY6cOWNbi4S&8wUVR zUAZ)NI^s!P+m~(aNWhH%_f=psUeG{U@uf%6Z|<8%E-+F3LEw26yX8d>c;uwoXA}=D zKgUoGTz$3WoWEH^RV3{%u=)qR4!6tXSS$yedh~9)yXi8WAG;3->MDlCY+Sfk0&%yY zP+4LoRbbQD{c3W_K{hz+$;g?2wgkGe7)c)#%?(O?Mu#n#2zHrIaEvez5CZ@N05eoj zBLDzzWjv97OWf7w8ce_ewrw0qvLF&M5`-{GK;{-gJYMK_fwz8bZ*vI0R^NY-@dJPv zA}A670694BrZ?|ybDP^{_9t6O-_7+9{QBJ;Nw&LMXx?UR3R?>DwjNNU0fov??&S{m zM28?+xj{an1NwqjD1WD-FLa1rP&J5xVpMd94(W>%t%%YxJvx-SO_E+rW&j8Y0MQVD z6_o+|eRJ;4o9}KnH*a>6nIo$Pf^LW;_gVmIo8dVbUH- z{Rjl=W66>{Hy-8-9}vmn=^o*aRi~RSbP+06mR2M(hw`Y3>S;D7yEq$RZ-Nr)1kf2l zO+DRWFH+Vrn58zg6GREQZJ+It@#=8;y}q8zV4OY?gb~wnIw~>@|E`an0S?gX2B;1v z^g7P1hTTMoRc2$=U>OEP*q{ZQ&Uw_OJzX6|on2Io230B=&M?hfgV8whGF=k zXN)H1ERX4ubfj@OZ?pm>O_2&}_(|c42|R3j2a-%n}3o4%^NrbB?@T|IVbF& zkgPn)dd-4L&`b{wk7ubHUtJzo(aCt}tv*LLS)lL->K^LQr!(G-*77~sZ0A*5F8?yk zli;hO<}hg?KTS16q!NQP8ag@7xYi%Vp$w5+2hM-ZO}Ny#(n-k(p?-e}z##GrEA$+t zI^uvypJnM-$`u20t2gUq0_$1GILELLsck%HMnhC-LSh0WrR3~jvpk+B5D@rH0fZlh zkm;KUK3pnrPhin$!h|VW-_IU;P!x2h`*#sM@mx)^*O^8D6sxh2+JS?_k}4B$8L%;P9Yb2L9gCRCtI>R(8O3WH6hBO5WBm6WUohGFyYc5{^ z^FadN0olWq=cBzE81o0+dPMb{jwz%!8(Z4;dFHbP)B*=))DrA{lfz)1Mpaj~TOLS% zF@hFZ!p5P5pP2M+o3$s=Xr8Du3C?N(pY*5!ENCQ;C4A?*rVHhQJvVE_ycMr-c0C}v zr&?X!Dv5*kFG0?}CTT$$4l^tgCvleZHdaPn4a$JgDituO7NbFi8_rvo--wmU()f}) zpb19aPU&nbgtF_SyxQ|Zrk^*1ERu6s#wEIsQFr6g$ljv2FeTiiq-Ht^eQ(O1U5%&B z%3ClkjmWCdxzM0Wpeou7oJ}w>=)A-qkcYKmPvh!_nPi|^w##VJ9W)=T4FCB2H5(*J z_cj9-p|3O9WMFQ<=G&;%i+@rdq24 zj#7Q;%|detC5X34^yP8T9z29VhId)W#ukBX4%}!w1vihLEoiNs zj{KwZ;L+`Kw)4s8>dB4hulQiK8pmEP|5faudB-MT=bctb?KtJ61Ql zMl4}EhZ8^V+YHMeB~0ssSAGQRGPd|oz6BQ5~c2uHZ9DNE=9evJvnf5C)Kc_rMJ~f4k6TVU@BG ztU-7(=DY$!T3jmdw_B2gwQiMeLF(qp+WZalr`Q0+;IpfqAV)L&TN?P1*1r;F+WwZ4tet%#iEkNllHV@_1HP> z%VS)j#U*gaF(=!CG@FR~qvF)y20s?6@%v@^*jL<{VU>C)TVt^u+j&=5_{yR_JBOBL zP43d&QK$fH9(u;D(XXwaK?O5%78bdU+5#DmW(_jOu3~U4?eY37_?&ADp_!VLhnZnE z)o{7GcTMDJ>{U@Cwu?!tk(X8$M(CtXKuD#on0`!qentjS83yoY!sNn$9g;#T-(R#U3^74X;{%j}9adF268Q9d!*xS5#2w36X@5zovBg%IwsrPgE9~a;~T)2@AN5^ z_M!S(L`4qCa`V&x8JJp}cKw-1S($9h6Uxcm(68WHvy-N&bjEJJ5#ORGomZ&?ltIp^ zZ^;eJz}Kuf76=;=+`g#C%W9h=B1KOS;g(3m>Je9on)lyEOr+b&Ipw|!;JrWLfAQzV zjuieI&Jwhee+EzSBx|A4B0+4L7EtL&%61!KoW5^%_Jj_1>IJ_ioforqBw5EjdDiN| zV1+qd90d=Cx>KD2Wi)(E?N7z|Qx{90ojl{+vaEuB<5wz>MF>{({VlrB&CiZ!*}1Hv zYy|A<1EJ#GTtYeS8i`0%Hu2f-=~wRe74k08eRa6)l5MC!7OoXt&W#lQ(`mQV5xX)8 zR-=_V)YiN_PEDX|$I^W*AEj=N_$OMHdfpoc>qnX zgFDYQows_xxOe%^WEC9K`2QaF0WhHbs3DmUeO!^ZtCk*cMi3M;lbJCU+TH;(gXC7Al zUa!+xzW8(=(f23DCuP)<$i7a=1Jp2B%+~WJ6&?cg1G6V7Gc58qYVa~v@H=G88iZ{x za|}D-O{rXSoOMw{`T`cq{D`~pZ6Nxq4(}F;LZAFTcqM|+;@Q8dKKQzv+=j`Ma{}V`0C)i8^qcvaO{PJs}uH`gBy2<;`qpoN2yX_-c26$ znpi%6<>|)Dw(|EGnxC9%%8rhd-oL)18DgKJqmrYlYV!VV6*UE-n#$JR$*97!GBsyl z;g^zfJkK*)0W%fP0U~7D-==gsvIEb|&3se~j!TfZkmh+d?|Zm@i1uEeE;W@}GRAu> z%s1ycy*3uR_cHL`#trWa(sRiX2Jk3(RpjzF$B^)t5;|62hZE3GEYIppjd98x5P0A% z*Z1)$tC|xKz>b}H2hX&>sbMF3lt}zneH!V{vR1HvCahCXM-7`NgwJaCFntdE*vBpu z95>&4l|!=|8vcv7C6Bfhpy2dC`T03FVr4JDj*T7HP1Ahn2L)>e>i85aOSj4I7!1$4 zTK5Mlw?@0zbB$(!Gk=6i&ikQ;`>nm-Kh-QmtX<^d;dymTzGU#v-bo7WLyy4ITOcv$ zu_f8eH8}BCXqHAZaSXRhyeh5>JgU54^`t3Ue*C-VxXA}9)v}-~B8Fp!> zZ^z1hp}8yrc>1g7*a1f;`^@edg)qD+=MRkBN3Gb<8N)7E%MCa4!5hCS>HJX|5b4Xo zHa9=LbaaBbaIQ^|aa#OlB8U54)Fi+!utE?S8^fCtO@o^FVIK0?}d+OM~Gm6PZi^avY=1Yg_(U%eI;B)GRu+x9l^aYt{W-o=S zOnf*u_tzukZA+YK5+k#GV$& zfo?AGWd+hAXOiqYaee{Q{heGMJmXB$@83y$D4CvduGAPwvhhW&+<4Ft5uz72leMoq znF?(E+@k}iS_2}>`MB<~bx?VeggGJjUu zRbytKz5O^9Efa@x$a@3yLA=qY)l@L^#@{thh&$|M0pV(2@7iNAg2&dVz^F;Bb?Uen zLldeODOQv8E`IUU98H--TJcjXpL9UGNp3|?UKfa@B?b#}yBDx)1t@Ud|M@Bz+}(#q z5}W$jvyM0u{rtyjvmuQGkdvFga70I5yTRYkhuw~-X@MGPc!H@68`sPFUZ~!Z+pVC= zmQ4V5;daO$K?fIW6juy(U5pFXr9E}H)KMXIJO|YpQZF=6B4Bs$@a4w=+lsugCW0tX z+8D(YTr^Eic~AOzDX^3$o+yczQc67nxyXs7d#YB-ZBWP?8dc`6+;VCwawV)f ze>pjHe|G!s7|{srC`R;7#f70xU~gjiJ|$D{=RL{Uv2)I}Uo@v(V;-Q8{nGGz(j#Xz z0EIykjC|8f=>}C)Zpw%@l{7iOmQ+f>KnjQu36NR{RU(TjzLd(8x=leJLVtqvb7Uj? z7qa|j9dRb-aUBVTwDbcBC!0N6O1N;C?nG0bmXkxF@oA%?JS!7$2k2=V+>g~MMwbRj z_NvxnM=Cv<(UJD8b)?JK`EO)lnHEm8n^?3bPN)vs#tTrPeIqiNyE zr+8hh&!ls<<@8hrr)|hk=CD&*mGa~WuSxUoTHLjSfy0@8-8>o)m9?W}5!`su@8znY zThw6Rx<5Dp`S+WLp9kfM{Ou zZk*hQyiG5Yxfsai3ro5iU~%IQun(`ju4k2C)5%)X$65|YTg)WNC)?>JK8&bIbe*!V z>3ke=OAvfP^`7Lv@Tv(SX;)B&vq>iHgNy?_5AgBkuVC-&7ul8PI7O^a06XRGBXwz2oB>H`yRsc zQ~t~DWn=;B$4=beOZufn(=)dacqlNLP~=p4BU^A*ge_fxy*jl-Y_IzL-*9p7b~j`K zS&u`cSovHQb>UfeXNH$&`4k*dCwCyA{)S9gu^~|RTzhXeWcAlIRr>B^ELP#%7^DEa z?X~#mMvaj;z}N40P^(A3^}DhK=fg+nW&~m-&M(;MnfF33doh~uX(AyoNeS1FzB}4* z^lq9Yc)(YcO;<3)4!NF03D12VGFfYyhvutCm!cmKLTPyY^b@1jb5AbhFp73Wb9i1}5lN=A zLeEZ4&wtsqpwF)FZ!$BZ)5hTYwyr-VjS%ek=|lZ07~&H~CA{~%!~6sD1IUIO+kLU) zn;Y5%-hV-)0JKwgCihv?iH;3tN|0NeeK#Q;&Pk!Nrq<))Cfa`>5dz{6`bh*$Yxbv{Se*lUk`iU?-PO3LurO>uAuK@;`z0PHwDWFOzhd8+n z$F%Mri1HqLlY)SA4jT|^T;H#ZH}p@_5H_p2L@u+b`P_fBPx*1}CH_ax-i139J%Pa< ztz*zz1HDR`m5DWfuju1Yj~FT9_b}m{FwZ7kkrj11yRs-xon{vXbamOnThODc&r{}BcMDU^+f;X^ zeL-eza+NJ^J^=3Er|EFULvZnft_XRhzz@eK3U+y7JaNRO&QT{gn!bH$q==e(O!t>O zai`~O4Yl=YKS0p#7&{&un%TK5k;{(K4IMW(O zyu8e^Z^_P7qipAS(riLP<4-H0Ku*K}i{3xV~`e+c1PuXrW56&UEM}P4A=a#-uP74H6%o=Qdq9pmTN%sg7Dk1jyEwtTD!E!PVAvUOZ z=kW?epvAy9$xKn+K#sR-&fWP*6Q_14@sb~$W;m@uKm2!oPvQ+!dSJwp@USOVNhWcAFm0G~&DAWp2Kos|&oYs|*5=@ZEntnIv=Z>J z@NL@8eOBrZBEgxP2|Go_6EdWKL4fg3PGBs1BvqLW>c1(!qwfQ4?~h5;v%~Z}`LEH) z@rU@*y#bNl|3vZYP_5lY@dM-T=pOr}|GNV@(E~2o!TkdBDzt^Gi!j@Pm#KTsY!>&) zY0GtKoAV(-_qKz5(35yJCVra8Qc6Eu<$P{|{D9>YND;m&Dx#FyffdhORfw&prB+K` zA<8b_KdK}}Yr!2e?=^qksd89o%P@K9V0O&kftgRuWHjD;F@}R_WsDhmcDI*c*3T30 zUM&5{2epGmKs0^)VoVljo(@aPB{4%R1#WB0s;7T@f8uq6B+4ZwtS1FP2mU-PVG%z}=}H<=FE0Pz;AF zh~zQGy!p}`@CxN|2h`6J&D|{C17lZi{u`iD+$jxsK!3MP`p%FPP2pByH+Yla{NY@C zYJ|tt?E@&iH3f{mS4cVSqZbw~)ut;{!@FFLFPSW40&-uq-l|`1;ijYHJ};a*JvWCf zwY(!cCi=r8d{?W0mR5_vJ|kUQ7hB{zmIs1URoN}plKxJW3Zq%vpPFyNSUDk|$O9KH z7aee+3p{+k^cuJN3JE>rCq~z!a(-Vb1nz>sJ2UF@tMGXr$AdVhH6Tb4u(Q@-3;ASyn2VrT(Km>4-MwqW4C6y z$pYmUFW*&Hq(jI*CScUuke*knx{g*4b!_FV{{*O|6cQw8Yvh%fmST|o+J!u)yJr}c zMsMjE0>TD%9ugO^J9r?;FmTRc8Zg#JugM2o+kO(g?_^z;(woqf-;uF{Y`a8Z z2^Om_a^vGe=DV{4pO-uBO9j)hQv0j4p2v!?;Z2$jB`JVY)LPpCZ)(R*kGMYYV=qVp zx{a2?=`=Bt!S9GC4D~O+OzaNmYihT(ssLy}m%pLi@8!-VwZIHr%j=+aKP`Prq0ZkiyQnRBhHkrj;Kspt2ZZ51$8|;8 z4^;8iU6`Q6|F`>+l4bx8B7ULsMsY^^`UZ*Hwp0$io!^wmogZj>Scwen?!FbGf(lCW zy(Z86M&QD3Jfv#_q>&hlZ8gC=yvi!yZX=N+-)gBE8z{ z#4gBP=Z$DP^DM$|z%KeC>$7=4U>AQ;Z*HL#u>J@_o^8V091T77i9hdcx!{Z>g-^mZ zBOF}>MJ+|>O5D>hsvBN}`s^^#(nVL~xgw|)th=103_1eLWT7ry^+ot+hyqHw%!^&m z)KH|xR9R=`nKYxp$FwN!S1K?4*gAzs=p?B(L-cQ^qK<+1F&HO^F`$bk3vhM!0bM|< zN|ulX&W8c^|BTxG<^Ejo)P*ms^U1riX)w6V_booqIDGR04<31g13Ve?wzashixi^q z>+VKN{};G0iyWWdIH2IdEtYU(Ik)TmecGaFKUa< zYiTXpYO}vX+{~g=mVv#@a6A#Gb#|#2w-)~Z_6!PHk%y6XnHTwPZl^dg`3*;7x?nN5 z9EEv5KnNH;=LoP>oZ3=1!0WRreZ;R^`f8rL6{nVL21@iZh_TY#umHCKF929V^`(f{ouvMt*}o zCAGLfh^D~v1zWkCq^Rw>_O%<3hkg^dq}1J(CzpfDn*s;CP+BV&Xd`7wIANC_q#F-;KNUheoCcyc_^UX zgDz&?5?e{WhNrs-ilv%)t4xeYT2#!^D6Jl>&>3xhv7gdqo}cNdCD2?H@xM9;eDO?C z9*D#81iaS!X6$!bGj-eF{|a;J4-=bvRAH~V2l{X4rY?)<3uje^g4rn7S|kJFM{Duro;)DCd;)OS;4Mz^a&Oo77bxND80T>ibBa^v_QgcZ zo|9E=?zXqx7Dw5{5Wv9IKgb^KVm~oTD{tHJ$QNhPz{Na%{9LF>Vx-PCNp^RxfHp^2 z=#Stc2^%K}%p|u9u=ubaqOlT*k3dxo9PW9NHPVIfJ#b!;lO~HOe6kk`v)m=)IVvXo5@9*p2wiLcau@k~g*N!89PU5-sE^NZU z>%<2XtPv$2G6pHRe(T0&uoC%`h2junZ~AQIM8vAGfHVinPt+)CA9Pty;TMAL^H?nt zg3u^uLsC9n`f>Xva3?VG&1_^5JnzXbn@^Tl>(Y>kaBWtB@qVZ!N1Bz=L`TtR;xB&4$k3@&G_7>VP?4a`E#NJEm28Xz2-J~Tg z$#aR!d5#*pu-VVgW7%Z0+@^v#S;e|%q_rCyr#YPfBxachu~(vvo}Qe%N~k1=tPaO0 z#p>fKkb>1Z5=|5|0Z&v-Z!=u3le$gd(^i%NPs1=t<*&waYruhRBxj2ULc3U(79tH&4%7iZFyeW2Ln1-} z#!cqq1|C!)mP}Lq|B6XjIczjpvh(TabyNjpfrV}t>sc!akX5t$k;M-P5FtRtVhPt1 zgmwlN3Xp{48V?VlfoSJghG3~0Z8t|#0J$jqW6?{Q(Zp%NR}q^YT5xEZ%%Kp4&pBrA zQfgg~2s9nSIJCMKxjq1r($4hCS-D@`0Huop<#9S zBKmoYvWXt`8}%!%fdZUoLsNxYy~Us{KMAe;`r%tz)VpK)HZa3ly?}H%dF3wZ2K8-w zIRG~38(2AOw^IDiYBb32CW&X?xAxIr=d*1m>Fl;Cx$G9S?eSxZGfnv1#;0et_9pnz zR2nP(8no@h@bj%XRh874@X=gLufJ;XG#FI~+BZ{H-MJ{*3kSW0w~l3j9#eQ1oUZ7m zZR)&n_Hyih8G+f{DTQxO^r^Srq=crYeQH2&_Jpuuhtf3g^{KaRh7O04nog`zrBiEY z9jRJv!EWD?@)x5izF60(TsAKDyPcaWFCyG(W6bu9s!h4F-Q7RSeUlA>3LGHdvPVXM z4jZkviieZr-fK>Oa>Hv23I_7+cx2A=V*UrYANdC zwGplR*TmOi@A&q`!~m4(T=KHrS*`qOTWsBhZX@b5gTBU!B#c$Q)QaG0*f z3o52a&B&&sE+6M5R=H}SI>T&QaxK%g_r|v|-u&vpc@$u=to^7MD$^Tk$r64~r!Rji zV5)Vm4a(lBg%sO4)_R1&Y9HMPM;UU@uy%q))UaDe>T2`!ADp~5umQ0j*YSv&Up5lw zM&Eol?tPfoP&~<2=3)i`y`0i4;%NKs*=qle_Qcc*hTqTy=nhHnS}An(dex{y%WUd@ z7=xr3&_pbq>*@L(n=lPtCCSG#vQDt?C=W!-yEedR(r{3%kXRutO{&Fo0%bZ@8KtOJ zX6~hxIn55rJ#Jt_$?9de(HX|;V`tpN`>Mj-DuC4v(|MUj)3kqm^<6K_DY#r)B0(86 zNL-&sBl@!?nD&nr_;i2)XqQ7OU0 zj$APV*hZN%!-#$do`juX%OwP*vbbLP(za?umM(?gRM}G~-XWWu4cCd^p9kXI99gPC zf-Xx$czhf(kzmz}aAqlrmdVr|4G3z~(}lJpNo>Va;kz!0YO>Xg$j#Hg5#n*pTB;cf zhu;UdwD=AI{KieBx$%iwj>r7Vp6xT0Z8(wgR9g?z0)Fg>`( zFaQiOWMa@?aX!|j@D4V{VI+zbiO!6@RVB3L83`+rI8mF#B8mIvV-yDO17zJkq+t5h zLPoy{c|Av48Z<4NXX!XN=~!CA-dvrB-H%6%xO#z?Rr(H~W_>Hs{`+oAhF6oU-Q|=o z@yJpwy@bN!)Ehk*r&y`kswBh7i6e^uX~6jPbZTop|6J$fk{_%eJ9+cBTk${OVs!vn z(PNo!_&GnF{0O;um3n$zgiuITg;;4vVr4qSBBmOo;*Q=_JvDh@KDYT&e=EZtNt)3Y zH?YH)B`E^ub_KCV@?5i!mA#_L>If-5g%$;uUg~`a$#}vDFsA3AZD>5Nc~9kuTxpej$5!a#$C$VGzV)ue0Q9{)*Qiqv*Q`ui_(K@-}V3bRnzOI@(ASk{Pl2ILT3PK zU>*Max3k}YuV5Zo+OS^;E#LngkTAvdz63Wi0(A2_H%s&Y})T?gqgtu!_Oh04!F!giN{!Gl}IHuHr4Nu47-vW{^t zn0`H)f8T$zhZ?Gr7T^PMaLFVC_$2Pk@N;X3B!I9U#bx&c38qCR;?u!vV3U$&iRDl? z?ne6a$UdalSIOX(PFNQA4t)9wGcADlm%0I*Z|eY_pZ5Z~h(t2mAyDvZg<{vvG5Ab? zuO#qTjiOwQo;}32p*3W&b&fZSEW{Q1rL~P7TL9WRCH$`!{C}G5rWj z_|pw%F=oL8IGe{|u5_=l1{G+O9cVsr3!ZTRNIaX_)iG38wHtlp-H9j=zxd;L-KPW? zl>v|LIDJsfkMsb}i4nO%#%TqMVADKU3}c{|@4zOxn!5R9z&k~^xI9x_56zt6N7*1G z_F?2er{Co_TU@YTHxKFv+}h4sZzDqfAF2%Pnb2$tNhov?qabda5=#ygwVcrAwV?A; zWn0u^lJW~sC68w10yWD|ZfW8rgE&Sp{VRU3%TMQ|m23n6v;2PD?p{c#zior%0dcvx zNyT)qPgwi0T0zW}igC`5fYtnH{q-hc(XrrUzQ@vYSaSWPgsWl&hNHm7)??NzT9?NSPl|c4upwH4kz^b+L&bE#a-YZ>a7azMOKtn!oSE)+Q*bZd?R^iX*Pdmk z?!smcmM8Er_b+sM7r@ouXz4(-b1=5S3fIO~y=AfeJelxJ2ZfYlGO7&~|B5`{oD(Vp z=GPoD!%NV49+L^eM16p|U&vMqWj7I@6{lGH zLfmrj9V^#r?(6jJT%NgDFf9n0&UuXMBf(hb)n^hR;Eb(%>**h!CJAr8XDf%Uu((%E zQ=2dH%1>Z6cp9G^jUaznDbP)d!sySJr6_Fl^9d5i!?{M>pZZNFVP} z05A0?!GQ{%GDm11z|)DNuqTy`NLl>WFm2D-5st9g3t@uT&rJ@SS*K)cN_)mx7!)DA zX*yqJct5`-TZ5P3^l!Ja7n|i5*bQe($T4-4qcK1ujIGf}iTY&QHX9hu@>A%27U%U` zSeSm}4bqf_{?fRg{8lCPV_Lc1NOw1sx&vuGqn7tRDdfPOBTn&kB@^#EdwEr>tlqLT z+H%$Pkg14ZtPYTne-0SfnU4xL9@ORP44xePZd{Ef6gnf!FF}vjx8u%sp#xX^dpx{w z3ftSfpC-b)E_f^iE^<$QOEmi-j_bxg|vHPkVlv#*l}h_bsU zTt)AxgMGGUaz!-Cw6t|3@&*?C4(IPHcPVnTzoDm~R&=%0H|0xMF!17o=30JhgC9=o z(sU++pk>ZDoMbFHcvP}Gw}5QUX-Y-#(G&v31f8OGKY$==tC?r7{p~f_*eH`_G0(C# z$H?zQW}#e6Vm-rK60I3d@5)M?S3oClC{bF^G#*}zc-2E9Yb#L%v>H1@@T=8EoDrH0 zc3q>?P0W2G7(I;!Pgl}`faE-%fd=}oxTU3y4SQF*ygE_EjZ3Uu8q(AHpfU9v7^r+$ zPJkwz@Mh+DH}ulwjltcWbzSpu4~j(3KMJb``0t0N0knKM6GPt27FkHD?ejq5+bz?6 zq$PVkV_a!(Jb{HR|NM!lJLpbdQL{#__WWHZak_F!dPm0uZY3@Jg{!A=hXQ@DZYW>y z?972DtBA&{1^T3ovcezb3 zRLys+);4^{V$a(;@-3yQp}38(+DuS4*Yz?wXhU_543rvzlT5<6>-vs%<61yhhpDS3 z@m_Q;qf59XZiA{9$0vo``dqun080=M0{{d7GgMF`003`gJdr+2-PKFHC}4yYO^%Fk zM4UJR2qytWo42@`?V_N!pIytXLfdLy`Q|-~UHlE%k9bGq>t8cO@-AT6L&9-4q9YD7Dlc@MqOUfs1_(mIQL#*a9{3=bne41^y_{q-Ip+}A000>hv!Vh3{eu7J_xtDE=048( zyLs+zZrgA9yCvJQWp~?_SuH^^W?0~2#jp?r7BNKtgIEv%1bT??2q2IMAQ1Ej=nNSM zGtg$d7zR^4(};`&l~5vz{v&uo86_ic^u<)cn+7uS`;XawyyyXisR}`2@gPIV98+Mu zG@!4HzphT8QmL?X;71HUg$nFg)wh96Wq+7;iNgCm8a*$NrFeD!$IHXocyi40G{8egXO;>nfq~AnaoQt zE#3!H3#wdmCh^R$G)hw{c*}#|@mb9O+HJN}&^%~mr;+V#nF7+Zq&xWehRynsLW)wd z{u~C0Fk5Yn^#zqKG++rsga=Y-Sh1;5wG->y%{{A@{+~8#PX;I=!cd3(QtuUfwXv3K$=vEc}w{)^fRq*u5=jtip6FcNf?Bv zLf8D%C}G~=%Y?CYzj^U)sUdH$p}o@Lc}3w~;vZ6<_an&FaV@xJaBG@~ovSqx1c%5> zYr0ss48B{PUH(N)h46GPB(C7snzzyhK3p1d{3K^XO2P+)P{b*TN%Rd8)zmmZ-rDkt z>4tc_@%m4-)uMW>lw zfelyGTF|8Wk~Mg0sn9Efg=JW3{wOBpaqx&IpZV5}??NC)Ts%!hefJM%x3!Q|wu0N9 zMT!KI31IBy254CPSVnh>mm09fL>?NbrHf*DKVQ)d6gkmrxA;nC>vPY0tR~u(Z{+-A zs!jA{JpB7pOGAk8$Qk~ji5tl8n^?wctQ>g4&EKO><;2V8pPUZD#L*S`pM$Ft%2H)U z$as_rD~5D&g(5~2_(N3j4jPPPDs$v;2Ki3$06FW*gxfBKGt5-{e7(ZTN3>PvBMkrk z9^uh~=OISihSXx=U!ub8a)hFhlzkc3R93!@4j~^!5#t+~*Fkc;l4kfVsoER@%FyK+ zd>@sF`mY%;euwZD%idCjpcO5u4eFf96)Bz29r+cT>1jfiJm)~S+oW-BFqHXNy!~jw zREa^SStfWaJitMYRIsONYKLtR)=IQTqBCSR7q+<0Jlq7uckp zyHAp8+}z+f;)a8uk`=_OF0f9zWSHyfUloPz6|Duiq7tD2-s7^db#Xv2^g-pimzb zee;-eAMS0>XJ5Ev{?q|k7@Z1Qm&C>BYckt8?&}}c?n;cR5>8W!?&{CZV-fPnA>w4J zQsphBS3iL5#MhR9)x-rd)97x|ID{fqtt~fW*((lFZ2iyJF-tRM#`=g&6}ncJ2s+SB z+EHo*-K=xlLQ!u@nHtzDzzeqzMIu`p5iA-iiW+y~FSj%cKUs5q8F&|TEL+0XTCfvQ zdsailOQHyGCd6IIaVe0s-evSVC8u$U1j@cGb9eBpM8rB(F~>SZq-d$o&SU~_zZ^10 zAhQJ2*rIbTDQj3!gs1vp^?54b1$u3MqbjHXw*s0C|8!wv?D$AW&VKpo-A99SJqi%P ziQ1KIw|z}+1%$Sr89^RDDydOQfJ>kt5SM_pwmgvaW>qKliGVTs*rqHcvvEw(B!Fc4=J?zINXWU_s({U}aS4M_VEtNvf-5%7R$k-Gs-<&a) zB2cs95K(O2cUFtaS_-kLY~f?d`atz!EDanbNkq`&+b&uHwgT<)MvVdBj1@`im+`7m z-!EN(&Iad+Qll>-VtV^SA}#EfmXy{u?LXju z%;&kanlOJ#vHO-gKh_@~jceIwL<$%wX!Q1DO4t#G;^iM(DSf=lGg3eFqx#+E?nkTz zYQrCGUY@_28gV6&c&Q}JI1c|)&!5(2eS|x6=-^Gsy_Ovx#?~`c0ig|0c}i;Zf$FjQ zFk<}zEgLFvN7-&O-kkLNu&Mw**Ga5HGEJXCZBYf(Ds4#McSr%>**2mNFYGkaI^bP?W6v) zq!Ak5^2T(lZQLSEZIm?#5%IvX9$dIJ@$Uxx1M7bRz$0zO1#z5x5!{?5Mnlz*UPEiG z`V1SVwBwtV#%T2S>iSQ9Idj$EPO32fG*C6X`2Xsa^CLFE#!B3Q;B6(%vU43ejpoO41}>kGfB3Y-zKZIEU`ojU$XAs>F7r)g2byGss*d8L zxVxHsIKxEY+7SB{ZmTbO1&&4zHkw>E#q2SwHB5>HvnH;I%vF$p&?f?E2v=Ai%9>~D zMusSqrdwUgb`Z(UnXLW~L8bo~ zD9-SEAG};CK+i1eVSf(|EZ@`{cw=YSRYct`7*acdH;I4%Mn19L(Fn0nH2$Mf+{*<< z(GH>xY}JH^@ZTf8aB(Z>vt2b^N3e?Sn?jfDx}U$H+p6%y5^e9xKBL-lqwgJit=)5= zlFQTfuS>+`azlhV3IFEJF{M2tUQjU~$@2EGmw0K(LVzUyRgHqq>o>piee9y< zyx`&Bq;!`Ef=&4Mcq|A~MlP9EBxRuFyvQJ<`9FYbZoZR*49fE}mw(`6s%u{m&_ zJTZmkE<;?X(LdU9&jP9QYo`r;&+8}*I%*Z<^;Ypuu4}8cnB2RPohR2u>tFoT%hRc_8JtzR(tI)#aAk6x{25S41`52fQ+Rl&)%6Nk0q_*5 zRtx*)1y$4K(oP#c9gb4u*wv1(#t2W_I0D&H}I&lSesl?C2;ZqDdIXE%D-vd^UL7jUS zFBJ%je1##reAaK?er#R(Ww^sQ5XFcA4=nm#b_!5@4_b{V*>AL*>m)u6TfUvvQECZ< zFcP8c7c2%o*t$TLlDC?%v?80cf(e6k^u>wwmA}6TTnIlIukqZGV(y!!9K25lB2o%$ zArHxuX@x;s_`oLll>@T$+Vc+x&+UOD$bc_po$VM((J4nOEzV<@ROzMofCB zqkX)yagc8@pZU!z{f6G4sExK7x;(YVpD_KJj5UEaT0e8DEkaaE|DmA)FQjww4_K}F zQ}4plL*=Zda*Js8w~~!UR)$AccGjW^hwQJAIq;SYbwcCTe3r~6FVcSswgR@Ab`Ki? zBwC9iYle#O<`Lpn`h%-mTJ2wYf7FwImnn-Mzp9m}O8ZSJr#=3aJfHCWkm1z6-MYa+ zHh(Weft1XIH(p1B(2&VVP+ZvlO`6bwqOKR(O~TKZRm}PhQmv6E0v`!=Y|%5MeG&O% z7%N=kQr$vHB4^zKIGs8WUI0!&&v`Wo~Y7Me<6{YA~AuoRO` zr+?G}4f98roWMNb^M+vRS}0GoPS$Dvi!W1IH`7i2d4*153o|YEikpXwI+Z-swLrF& z&jn6VF{kY^4LpRReOC4gMWS)nHq@>BWq5Qr#y>*Y7wk+pvtII(Qjt}SwsAYl-e8hQ z$l+_L8%pwJhspb7N%soBxEaeyz}>z<=T(55*HtMbka=9|x-KBS@-Ty>#1P8{b_Ve0 zW6;~k%(1+dUSd2s3vixrH|uZ~IPt>yVC(5NS5&mla2@Nq*6r6J{-19}Cv^Iq?eFop zwFcJcN>#cAWC^Jf!b5It{WghgLQs$vYU0C2bRh$T(R0be&~QLj0H0|f9&#u)VJ%Zy ztd_9wl1{BDJ1$QE3Y(boff-D=B!au}@+ViLcL%i=08w9mI3SzQ#orl2VQ-4u3%M)YEl8#B-GwY1AG-ilA z#dd}MoP)zJWE=)pBahp((KM`17HTD7!!~bvraChq8mPyZ6N0iN4#h#B5K?ZQGobs; z27#wlLRfxy9hfqAM@T2|4(iP^*!iKO{To zAF|>6x^B##W88CvW(NrX+E@SkGkyGrQPQIwefJf#eYBrrG3li z+Xbfp&@@8r&ZmY^mG$oWID1>1lOn?J?@xdyJ2#IeHwO7bAFJMA5lCo@UQ5xl2pu;r zsx0zEB-4`_V+|4eOcA?5q98MdzM%t3w>h14WiwvP#UKWd8ohuUFy{JKzGBAl)Z-l@ zzzvFVwwagN7c)0TT$|FF2jRLhvBywH8+O9G3yI^TYOAw=YUkn_R2w*N_ z>fOSTptUhf5{s0;=P|nJGKyYu=AmDorr@$PeP4b3+n#~>e74mvJwx*7>^vp-maGYW zSkS@GO-U~qvdft}6<$0pN?$DvXjB+%7;i1hZ0z9`tl;GvA(J~Tl%BMNDI#L8H zQd^(AKln00;1VUcMJMu-;8cJTmzEKB?Lwc8a_YdQQz_5m0SMq;JT_CcCNmm&t%<%Xd`D5*}JLwaW*gC;sDjOxboWWE| ztgN!S;f~iAV5;4h4?1*e;ApxA-aC1i0+MZH#fQ+^HXf!xaeHCFv8YKz^RB$$y+&Z$ zl_+hwgLiQ6u06XEGZ#~-jkcUBeU;eTawC9X@Q`LGLMsb>CSE<2w&WQI(Qpr#Izrx8a9FVMfK=-05O3@&w4WuxfHux*@+`yb35Xv4bzHfb+$C0q2F z+$9UFct$=B3JTJsK{Zg-ZgEOJ`DI7EgZiO<|9$^WW>D>@bb(2CBweubX-&EG;IyK) zw7UURUex<7u>EjR%yDY`D>|KpYzTlC)c#->MN&vr915CtIUlw^ANu4CPk0l_!NrhS zejn<19n#fQ>4K7%jlVN8*2?ItqR^fgu7uUN4>g^>m{Nhl>EMQ^x3%UrRnz|6aoC{?~L zQ#Yc)SI^w;_Kj;>HbrUuziEIE5Uv2#JnElBX9)dZe|5`~xFOEJy6=I{-(cz_)}B`RLXO%j0=ZmAKY*xigNcSs@UhaN-wg8tw)G_w3R`#UWx$ z;SUQ?Uj+oq$eA7oGpkX&_%Iuo{6WZ073P3ydlqWA$aPq*Qy3)(L6L?z20w{D$OK4R z=0S@u;Db;?n>%W+KVUhhY~MUXusZt$Is<0lW7Q`ms4%)bIKyUu!q3S839G$E`gp0|=y=j_%rALU6(?kp;(FJ6Y}4enE^Y{AnGrYZn(_Wa24( z))xkbsTh!-iY_F{095~ynczTjj7ybJrGf>E{t7A(09aREi$DT=G$J_-N33w&8N1n{ zkc`)+&Be}FtGP3wtqb^*;sALl;~BG&*`m_DgMV*br8qwwK;j{MS)mw<)o2oFt6^xk z*loAU;t{5*gclcK4$5|4ldxhVvk#eRpv8)of z9-IbGBXV#?X+@lh)F+Zz=^#8Kv{PhiR&b21wnid)JBsBPTv@7d~q-YSc-pVNyJbzE{=^ zhiznhp^OdQ1mlh8kT%bI+axMa!5tj(tMLtnL-F-M-<*P^j^nzL)=TH|$>Akk{rX>o z@g6GNa4Eg$6li5we0QsrIT)G5Av$t7%Kiw%aU*y_DDX^~=PVZDHNpF^Eir98BdLoh z)a`!?>>07Ikucx#qI5IWjZ}wE8&dDsnMm^+NJrp_NVo80i`*=(oU$`q{lwhs zzpzB@k0V3qIEA)6vWomhlTI}sMMAC+P|M7s{Lpo#uZ zP{IiG!EVh)eI_I#2z~%$sqGqcct(RpmD<5Yxrl(a2K@2BTX(mn6e3d>A_i>H5x!qQ zoLI@8q|be-pRTRdJdN$5ziQ&jO@;=YJ4xe|u4(ERQx23T50Yc89Zr?AM5naOs+R{B zJdIqZfhIZ~F`k6`$^0(HZe+oxroK|>hwV=q1=jKa)P{2g>XB`m3ea%r`uJQ7-F`A; zHDXu)G@~-05506Elr+^jQO7jX)?S!Ytmfp1`ItB)=w#k*fagmrlUHK@I}WTqWVuYt zvt2C~E%SjdeovxU=ub`c^zpuzN?g-CE|4*B0nzWPsT2%vO+{Cxo8K3^<0nmI5lr9P zIEdS~j~`d>p_jiJ_L65_2|0xaZ@%F&ZAQz$EWT6G;aBf=5YS=G*#{xTc7NBNxa@#_ zYrjAHguC3oUIfNNpi%qEr=i6TU#KPelO3*ZFPyv}4QS6xDI3n?eiaE#@4wAan7A7=M5!m-X2nSp_GD#!fo{;$I*%%ulWcG>Py(O#nZz5C$!x!49&6;IgEuUZQ80%h)K=4$F0I%rZcq@L+6W%x*ts`1_leOf zYl2#8o@7#qm@(MZdZ3|;vvKbC&faM^G}(zl;q6N zVdwnf)Vxt(pZ7g;15I;bxZ|>VCn6iC0UM?LK#iW!=6xnunF8USy0U_0=@11gy(u)m z{to@Mn?6YS6(^Fyo(gyN!iZr=tm2oG?Hv5cNxAl*BFvC@a%5jJ`jR5c+GyIJ>~n?Jm#L}$*yWq%)l?&OG3qdCh2^o|g{mPN%% zT~%{l3ZIcmmRt4Prh7o-+mf;G??Y-Mv5P?2%jgtB~} zTJ14p&gUCx?I`nf6WMw=nh7BN=;vnk_VAo32Y!jWPMPpW_5{RadqOdpo*+!&?M;RW z##IffE5{MP_AHMhEcvE;>i=bPs*xzP!0+9@{Twg@4<75;7X-nGv^aNP4xrQ@G5m$+ z7gqDFp>u;Z%_}BcBU1;)?}etyO`7af8;PbgWH3h*fCSP1vvN-8PqU>Eg4hgn9^h4M zy$#;<==XL6fBH0?_MG? z+Y^!)1}c8V69cqW7k;&-khPMlTykJ0o-|`RdFDi%(0()|-eXIJSLeho8E_7rw2bf1 zd_OrjuB;eOgfGb~X_{-V-0y8W{-`{d)L|^L@~XyD^(W1o_KbmKjj@8)C2d==M~W4o zvqDuEJwIEilKZA#Sqs)mJXs<#jdXZmu+W%hMJIlyqf-5`@jR|&vZdZxCV4KOR<6M? zYSGp$X9N?I72mWuc=4{FhS!trW%p}s@OpdzW8^@{z(5}nU}tG_*Ps@;fKNvsA{_*3 z;haxRh>7leD;H0xeX)(c!qzSU=Lx1Q$tAZt*+qA??;hOJb=98+2!`NU*81m*^#u3> z?AW`+MbKw&;hu16a*OcSJzD=?8{Q9ot3`;L%=&B1Kf<_S%A!FNyG3}K5N-|N(}qH4 zaHQ>1!SQnSH-1nX><5^<-?|*K734~8=t98T}W~;aHKI>$;1qtPzcI~da}96IP`K0-qeOhdCYNWBCKQOU(nxp zRZB&?YzOz}J$BsHw#Xy+uS&4Xc08TmcvFij6<@3=?F|m-bBq^acN0+{&PMgb+vZLl+ljF#Znq~{_ z5vXV^BTL^pdnPY8Hs36UupgUk;k8;N&eV}s6HtQ~IvvR$@vlB90?lT%g^wjnzB#=u zj36H~i%`LmOm(FjbzhiNdqOMM=owrP5o@O#YK$fjGka-(P~R~2pduvn!MALI+)DU% zq6<@}RP-CgyBkJ%`P)6u4w0^(zqHGGZ!h7cnX&9#ps`S|f9mk*xck9v0oLD(@4_U5 z)}aOQm#(l~JS3wr(YN8?_(kdRdq(o%9sS;qOExL6zcK8~qH2Bv8Q!sQDgNWr7k-6eIsKpdcF=wm6G`X^tMQ7%Tar(u$mKgzJKB& z+9EX8gY2>5H(%*B`GL)^_coNO>{w@JWS-5v zY=W8W)^pk^1bcLO(kB=$qQGia_KLWlpv>3tObz%fC|~)~t0r7md6f0_IE@9z!);YD zv9%pG8#53aK#SSh0Xi)`lDI{Oq`tY%whpLMo#8xv_fjRCd-y(B29NDoed%Rc%Ux~T zui*T%AW4oQ8qAXlTh>_D2h~%9Dduxuqu?)D9`rbaS)B5zmt;ZyF0V+Y(Jwj1L``)@ zeWDLLKdgtR-hB_wfp*K1w3tO5L5YjKEf?5{VZ+rwZ0Q8l+M2Y_*dcxWP!Y7;Sfec71ZYpWjWcYTp{^>-~1<6m=FRpv?R zGc3Y5{G&e;u5xNnVHNGio1p<(T|Pt*VqKxJKc;u1OK$c5I47eEoI>-}se>1&B8#wM z1Iv~Cbd{G}?#^xwiLB1uOLp(vx%kN`?~2KtLHO669?V);`;_5OXP&K*#Slp!J>R7E%l@%x3QKQj!Ky@eq7o%8*8ssS2;_%+~G_6=E z@eVJ+27?rj6j!nEZ*P`^ zgw@$ihjSX60n!P2EQ;K%K>yu4(Ev)h&@iQc<#`Uf#k4~Xt$k@cC1b;&2EZl)iY$f& zhPqh&#HhL&4?jmqJ_ni$f`C&RvZGItbyboR zYLYXjgCk?JAQ#exiLtMm4yvfWd9h2!hl;(QvD3SqtE(^BORgvslrm~Jt+BO-srbm` zDHpD(yNsnRQ70!a>P80R{!2T?jg(9yT3he5N&q5BuNa^Q{@oNF*C?LN10A;;$zIFd zy_+yJl(}Sfhm+1>nAy8~`Tq>#n;dNjfc`~9(;i_A%y2PkL*>4cd#aqAukY}qMqji{*n4_>1kY{e zY@Z&jdG_!zKMS)L*{Z7JXV}ity-fF=(@e-dmJzV7vIy3rSwz)+&V2$?_nk;yGw&BA zV56%5)(e;>JZcx zHW1ezX=*e;H@}u=uUVByyBK&eGpIqqJQNT<%JVUD@)~Le6MFFG&!0%40Duq>00000 z0{{RM001ZerfRm?hHBMdO;rt5jG0w4s!^DkXlQC|s-~){s;a80s;bZ&jm#Jo000;O zw*wwv0rl#;fEk!c>y!mQ@w2a9c^ap&I5U_eMEp41Ic`UM4v%1^U~$$<7m|^HwBK(C zI98+Tssi#xNUDGuRc<6nXsb2zTxkS#Ymh@r(pIdpa3kYbiJ22cG(P}9003sh0E)o| zd+*)d_14zwY|Dg^Fo5u(8qo;L$qE@G5dmgE#Bm2W@FCv^5Mp8`A%3U`5e_-T5XT?n za=;S9(zxh?qSD8oD2+3(E)6cI_C}6jYU#7nuE+F=%BP_E%69)N}XWX|U&S zy%lysNQjP*`#Cd3ll!o!6Aj3H7nX(<{fIe2>g*TWW&MGL&P%9{#>9-ite{G$^1tWs z^X$5&>!X)(#Q&0i`#wEdb%mutQ=kh+TNz?rpUwFg&md1S; zdbF!5Ys<`QB&>eFe*@*CkRL7kW8L;%_B-zfQcn3>he<=>USVEDTwqD}nEvM9btF&q zPFp|6hwwt*{{KBgU6P9Su)?X(Ebg74h<$6whWziVut3kYqv<~9nCTT3rada6k1~Im zapU6pvj1Kz4%?2=$&md|>R;srRr2*k&o%4begFM`Mnv{wu=F&f_j8S^5PkOdXYi%( z^Zi^3J%aXzI)YA4VPKx~56yp^;UMr|R+91lUlo2(hZ0lrAAVKg9RBrxec1)^0q#MO zRx(YnI{XFtc02H@NEEAIQ%naF+ExLS%zvZAD@M#TO#s%Xf5+o7u` zx|j;AB+OqU`L^%(VNf&t`^f&CQyRSn)#wnvfE2ZJJIOoSs|S<4K>imqC+$)F2#5H7 zJ9XdnaqqVO`468Uoy8OUmrxXxz0N4j{C>J#uc8aDE60C|S9uWr-}7I7!~6hGK(N1b|6*TUeX%rA_fS>z zQa{%8;QYOwH>H#X^xuD0#l{aZ2HyJjwV&rV-4^#)I{RF(nE(A}9KZjtU&5e`w37ZF zOMlFNtD)?`fAH_~QknPuG$JO#Upx9@X5;p8^hO`S^>2-&@Pj||*MFrNKGVr}I4Kq3-ytvmvmYLY{Y*a`VEZ8w>iGNpga6|H zl-2(HAH>T4r(k0z{e8y}CqIW0@adm@l>D3mMsrWx%DYe?h*A|Gij#)Q8p)_V!obqVhxA%^ag&v1zk%cOpXz{u8mH3z$$$6}m>K>L2Ds;des!jx|3hi!_-c$npV5zh0~yY&|L#NM z)L-=grSh9E4WS6AKY_?=4$|FQ?sKmJGG?yu0H|H6MH`God3Hv2=9mZA7g)Te#n z`~Iz6>JNtgmp$H7s zKinpLz4D7cTL*sk&+nvO#vT7-2}}R+FMmuIr|IPWhMf91In(~Xlxy@t{=cpm{qmyz zufMp|@|1?-{XNuSh?D;RsUxB_|81Wpzp?e#Satbd9Y0SoT}3hfU7fT0f4PtRPfG?H z_nZ8ITo?PB`~GJ&my|DPzkkbV%lzz(fp0;n@oJ0R%XKaW09{9XT;{O`N)$$#qC45PlkkWZqa{v)D_Ur&>k!|?m>X%_YV zgE$Mtee%Em^M6_o-$(zCZMmuXd0U7D|Nd8%l2ZSt;7RYR?Lqqc?}KsI|K_iLdLomP zKff*Y{G)374+obo?1|$3hquNE`?=r$NqwDm{{25$wmZrJ6W#~;t6nodWR1B>sD2Dp z-gE!&z-RMU?x*y9`g$fMzei<1>rofd$44Gq`^;ZAK#KeSvdur``2DhfoUXcz|9_}C z57IA(QZVyAk|w`DR)3K-H0=2ORyqHBztRs3SomwNDf}e|@nM|B4@f zK?;9@-~X2W>=i#hx~h-+SAXt4$4Zl#pJ_5j{^k!-Vqaq){)NyB{{M+j7stGxx3Ab* z@-m~7q7obC$2xVsk3Rwf2QTzTygUECFTOBLkJ?Y)(~$4#$W@=M45|G1{`c*h)d2PW zy^j`=>7Aa)^lvqSrhl&7ya@m0AHNYZmb zQ`hw)zURL=<`OFqjokhF?EQtc_JKdNPd|mR)Iod8_c%4h_~g(3Yrc?#i2Or8ZQr%= z@S}gvB}lj>*Cpmf^6O5%AE(K_^q_B(M9TQb{}KQ4(;op$3$hg>@WPs zCrD_N->P9MAFnOT`W5O$|M^1!l~1DYc@ozvs>S~N61b}SIYgJ(lb_`owjn+IhyD1; z$4bd-Kl>^Bjea&l)v>Ap?@;vdUkihu%o}g!e!uIxq4^{qGd{^g-f8-%_u_pmKmCol zxH(zdhkv$`Ex7$*L0?h)%quYWLdik!_blvD{@+?8+=FTNll=3{|06P8`;hkhIq%hd zRr_GZ_*fWkem?K~P4A2p-}rHF!LYv7pWlAXUzsoRtNb=#$S-RV{C72&{ris(gX8;m zks{Ri@R?|+S>Wv=&f2iN*zl}n75!_SM_D? zPxu8N**xl{;p5L-c%uGX_4!_LpSVxLLf5Ep;DP+`?|%jXz!+9(Kfdd;z5)LK#qLL; zxbXhJ_>}(cADpQ1?fbuE73{ zf0zC0zqpsXzkV}s`9*(!B_!bIHGTAcy+1X*(s@{%_>Ah&-w|Wn{VY|k^XUHRpZn94 z#9w^xc`@))V4C}Vkcijsf8Gb7eD(h-jD4)%36JLO-hcWt+Xd)H8Y5nn`x*`Rey)M= zr~6oSMpoSIdCTBD9@^{)xNdmr+V{kIGIE`>lTd09$aE_xCC-`5r2Z_1x{>1(Ys*m!Z9={wtXME1^$g z{r91C_wD`he}9ah*TLcYQ>*5s{`~)T6h8`gfsgs-`u6i*NH3Bn0sH=@+Ww>bBmdEY z;7RC){z$#;iBqM_?RS5-4?d8;>b0_d|Lnhik0l3h6`I~UXmNBS{y)<<*Bbnc|9@#W z>7!W3@=*2kFHeTV;`~xWy*KwH{_=0BS^L+ILpJN;PyAKN7CZWVt6UnW|IvTx&VLo3 z`Jx{`=i=!@R zWY^#4fY9Rjn@+gDy0DAy?;85({byhFSD%p6!|Jo>ul-}AFg^C^gI~gz{{G>Vc;EbR zqvAgV{e7HS{V#qGxsSAev&_NpSMXIFd=>m2e9_*|{_4{^V~PLun`ONP{{~<4Z|}=% z`ELEML$89@gE!iz*?;4nEN6b&VZQhTtGN8jB<%5DLsjpVzkkM)n)w>b&+Bd0zrWp~ z`}TiB4w&3QLWf*5EX;1}SC|DxaaQ5awGasGAU%LGzu3BmJndIFMt2TDn62^Rc1AC%JY zpwT2uAW)%yl$Bg)z3t&jrMxK#!Y#eemn-T2O{)vkO4^g((+i#@&jckW1Pl}uJU@I-Q|6~Cs#!VzAhNJ2G`9^*){L|9tc^v6-_`V-?QtV0DpFX z5wnlKAJSI@PRwlW1O?7KzA$e)= zbDy@znZId6kPfT9r>E}MzU!hCsWt2B`h72meZ8kI$#RN|CO^_ORq=Op*nd^Cr>nF1 znzYY9^hH(dXWb=V-F?QWr~U8_C(*B~nybwG^QUG5!r;|EJ=9a4+X{$3znRK?o>I?S z>g?a)U3~7ZKaZYQ?A^zv{S096KQOi1{sGkMnP;wQ+Ins^AnY#p{3CyU_)~K&{DjZW z2YT*3Aev~>_2;jCm}ZXb=lEYeK=BV2e;;O*|7HLFBNtf1@`8Z*cm+L938%w!(|ZDa zf_19r`T@7p5hDm_>92a35YAF>4RKiD?d51#&|dzzCV}WZ9=kTFnEF_yP6c1gy*fZI z9SwG#rgCA0v`9A=4V2&V#j2Ca-ej!1MVY}wBS9cdpxs9$NGwcO;YiI&UeqTGI?bTp z$SX`o+@_03MiyXLu64Q1x~{p&gCjC^NN)9o*qF_|muV4P*@tRxE;>==up{ePEuk9 zx1tQrP-N@9Ry%ccmJ25KqzJL7FjJIT`?D8V3-+EnE$L+3?4D^AWxqfVDJ)vd-w46? zS{QuP`Yu<>+n~`{5yQZwwATOxenAe{iq8$jR|N3m^jmRDLveG2TL@2^F}uY0DiPi{ zJcqlX04uh!P|fB5QE8%-7m#CfP4v_`65PBIe>pwF^DjS~PnoPw+4QL)@eKw(S-}b#W*VQe zs5sq-8_J@$-nE2lpl0Os(&(~L1URqc<7PhE_GjoaqBECA6IH#FF!LsNdY`cHF^DLW z;}FOfC}&BPq$C zo3}tMMewmbRR zGQ4!0p#lW5NfLgWI* zf?_@3P$?O4@`6FYNPIvv&mjVLjOmd)7AqI-nnW^dyq&ih8?>jxY+sWv)N}xr^>;0# z!UP?-!^*ZSMPybABOrPeR^W`KO^zjXN?qH>E@^)EC6!{wW}O{!3?2#L3F2%CHf+@y z$xGQq9lAtH?(c8LW+edQ(3Z;>Fw#Z z0?^LDd2pcQMpGRrkXCv=XIH23T}&Ee!)N92jrdYQ5D7ewwcfrnI%3w0Q3qWLsyS=K8b7UK=FtNMhqfuyqixogQjVH;wai*>ImTRi9e%RU z&joVCYhSsTEac-Gh#Yz6dDSNnr(>GhJz7v&Te+Ajo&|x+c4&@YUTEAb;Ri*@mD-yE zlILhiFu_ZGRNV}f%O6k8JP%4J<3NrP9+d;+I&k(PIKrx#iF+LU;8U=9dpZshouXeq-*CstToP-Pb<)zI)U4W2hcfC{hrF8@Ck& zL|?6qGQnO0if3S?8&C#dpvj8Yhf0Id<1qvAf@j%vbU@*TuCs-Db^eJkXRi6d3bvaE z#}5X1GPH~lNoYT?lhPZ(=JaR)h&EHSial6%nFE21j(fo{xp3V+p&HR}h6lmRusFD( z1KLo;p=x1jaZAig2t39y!v4gzQg+O&79_9`*IAHI3M3h1_EtmJsKh9g?mRK)Y9hWK zSyW3FdKc7^*ke3Ok0N%GN&SFQpY(*5k#1e?>*waA_T85gq_$KGM11Vb&^kjdUN|HN~Ey3cHBFd9`LAhGc8wyGLSQvXd=et?iCY;Hj!ct<1{XR}{WqvD!_gDH+X zx!zkgwqLoSwa^D*Rc=aJ?t?FckA&^+o^;l{k7;4d3{ayd;@rl^^uaULrdAR+!k@k( z1j|wwU}#z=&if7ib6sS58V4i5%IHU`?Cguuf1Af7_+ z+e`Ni2;GpuPbx){il5LPW*T4aAkIB(ermIwK7*!hc1d){vC!w$Zo3mY%OR@@WNu)W z)yvtkJLK4842*8k_L!cAb7q{n>ix5G@oJu^HjjpP8_Y9yZV}20*Ej2pq>Ffg7sj}@ z!RfT4LFo$P*1$~&tUzhcf;grV!NA!sit1_|0fEZ%C{{sg0tG_J_$9oT)!fANcrCb) zkvwqPwpJp%;81J;e^x^nApb?UL7P6M!G@xOaxyxm>EXY%=pY_IspSPsBM+owJK**1 zcTr=bCT!CCvl}#0_w%kQQftUeTw#DG>jD=v*#o)^ys2T}DNm0rPxAf2v6(1pUmXa( zP_m-ah<(D;NSoOyc~!{DiAwk=un^GP8y4{7x}3m}I-{vjDh#NyT29x|jVzc!>nR39 zAAw?Lb?lAgE=&q0X=2pUR8>*?PA>ZRCP|UaTjT~h235Rk(Z?Vq?Dg!XKeQpEg?G-Vl3sxK_XmEju z1vh~eOXv;mgkQ7=+lh-CLy(wu@~H|z4>}VE2p?hRrqNGPva6t}XxX@P^xG&LX!K20 z+E|)^pCy?wYFc#x0y%PxZ7sE$Io9tvl-6b0o4nHyI~2mFSs0+02cf#E)8eSE(q&4Z zZi!+1Bzu#=$q6WkkN<2_4}8$=@b$=5veP6d6<(7bcY8 z<;6`y1_rfHLLLT_>%NV=hlIStxx56n$|3rnF618EA~f9E5)uS*BmfMxfBIUH)YVuA zBIe$0Pif)msDkLaE@G@wTX|G+Im8D<2piPfay%3T!WrDq@;V} zYg?4YH!vU0L`b^#?#Ozs+&`d1l+2cz@9+FN zpP29KlzW#W)^^4D)~YVYQ{uw{Bc^rS_qGS%czE6D0)o6e7 zE}xLbqf+$rVA@wLdU|JnFY0;%SIauZ_@3kXjb|?p23=>fr+3EZv$Xe956>Bz0zJ=k zqrH3&b7L>%wX^I_`JV4w(W(62x9wCa??rz{@ub)9x|15>JNvuL;^Omn-BXe2d7^W` z`ubqn#XNm{-hX6hefOTe0Q~#&6(RhO2%xYUV)3u2J#Pr{ahQHW_WAf#?%Lyye?IuvQ;(UUmtV-c zWhYP=-3%El@0^o40t5`Q{~qA;}_~`4oac=0$Vg)&v_j`{~%@7@*LlfllfLMDP z1bfA2RTh7HF@Q5diHD!^^`;vU>2}Bv85~mFXG8%i1Yc4Kx1#9q3sd}r2>6>_V3PRg zNz9%>{6;t8B;NyO34bL4I@J%O{el?3be=MdfBs525e=dOVy-bMzGj(>FQQpBF(U%P zBo8SlKBAT6E4>j9w1Fa8jHH_-Q&aqW^?74!6hw2pY9Rl(kO61cNLY{Wme1m%cRkaZ z&BhqOs3}FoN6!yL#>U_Iv&iK>-&=qeq^rWK&jfMOa zF<4zZT+cUtytR2GnfUtH7%~6++y{G5%JBJwvTjm7>r`kIxk$%fQ=XUP5;OGah0yvqnQ;SW&(4u-ZTsg$V{~QkJro9_Z2(unaE#gig8R#5#Qo<#-x_U zx*Spy4bKN1^Z3{Ze{o!_pkA7v1j;BXWi!GTz^f=WVZT=hDKTeMR4RT50}1LEWR9sQ z2nyqr8W_sznYaoX8VdRx8ygB5G}s;st^JrzcrqkF94Ukh)=XEjqDO7ET zS=NE$<;iZL&>ATa?Mop&@}y`gG8TG=!hHipa7fRKg- zrsDW4MuX{cO!L5vV)RKC}{KJN^Nti8t08mc+Q>Y7$m!-E;gaKR4NlziOe%V`A# z@5p0!wa$?3xw$r~@%p*C3WftTvam8YbgHB$V;`kxFXw`F>oaW2tPCe^qoRZazXXd$ zg#3Qi+Ia;Gvg*BjT@C#Xg@g^AVL&<|ZEvcPlB23&tK2D`3&D+-my-?q=FS(9u$k~W zOx7(C5UxYPt&2hKSXdb=`A_C-(4?z*Z1TIV9UB`Ny>f2QWCUHl(Q1WcGWW%tB^n9J zUL$YS?v9P&42*=Z7wynh2F81fGjc?tHlUMLb}f2o6BBsGiIjG$-M&FA)w3x0_F8Oh z04cGs9sSV*v9mp*PbD?dZIN8!7Uq5NI#k+Q!4N5t+wJzu#>efeb9jdQtrnc{gavnW zFgp01G}zR+Dj^Ab0X$ONt;kc9&p^p)fjEfG%7#si-Q6?s zEMs9n67aTS2w*NDVp?B$S&1!Z1geJ6l5gRycqEkdt#~^xE_pceagSoGFzfzae)Yr{ zWS%VCE#>ugkh3O|x6p)ZM*vGI+=is7egg0M{`<;`0~z83b5CEE$9L^L$KHd{75Yh)lN=SsF|ntKQ;2VJjZ<6wptJQeeZ?yV388hVo0emrwe^;brw`pp z$Cqov9Z3)T_u|s8e#6p}Y`cuIgI@w}&kVk^balzIYthv`kQhH)0kep7aDLM_g9wu-kK;dI53+}Z#6g+-p(>E;X==23`Y-Mi%*N6PFoM(3&}k< z-`u4q*Ux`zk52N>@r=t2X#(e2Y2EsSr%87{r>vdcyS~TLM50Ur)Y(JQy0x0sldc?t z+1QfQA;8(l&Q3R`z}kcmOUZkEL`v@aYwYx!kq~L?BElr6?d|a*uI}yZ!P2L(Y-lfG zT^ac|pddNI#`8DQ!yYDpH;UqrGT7gW$oGbx`5tYHVi{R{#b2I*xI@4`+`@Ou0$4emtsLFzmQ_~`9W0O)qa7agO8V!W7Mvy2RoQ6Nwa!}37Aw(WZ ziO05eJC^9dF0Wo5jg7p!oxAk;R_`Y%WNH%DcQx@MjwT~&YCZyoV|5ZZ)5o1IlY8_lQ&Jb0YJ3;x zp1FH*R+mY1k_DpoLVISJrMjI5UqdLHrmA~Vp&{m_nb3blAMvUpkEX?I-&m@2t~Pbw zw-uClZO8l_Z`?l4{)Jz8sk5~I3TkOt_E1yN=xZ8VxyLY$05u|q~&sQYCXpt24f3~UR%MN2M3mc z3<_PJ1Q>4uKiBCZJ;##O<(%{RR+e*)oqd*oe<%sX`m~Z9HK~l4mxok(KkVvVhUqvX zaedNTKdv|sD{fV1CcNA;V~U3Lv8lA#Ic{Y2X@)!qvF%tv5t*_M$Y;#OcUx14qeBeE{Ju`T$vBL2RC%K&qi)h zi5urt5Ylws`p+bJTb1!-hXw8_20q+7VQMBfydR(Wen>$JSMYSNzV56N!+<*FrlwEJ zr)}&hWAO~0ZiAcN^}1VQO3Y!$=bA(4?KoU${&1M%Gr!KNlgbAo0zYR}K|SW&K#!?! zn4%wZxZ)m_1Z+CUY=|8XwqY1PUR-R0Kd#J*Gz?!zsLr^Xg4dUzeN@TsCLkyhv?r5i*b2 z7*IrdP20dUBiu~M!s`p_HfTOiKs0W< zY(itG=jcb)6F>NdK#A*S~p6giqy+q2iqH`U)4*h$kevcQt z#}dWec-BvBhP?HaV|?ucAquZ>jTk<#kgtl=>q#zgOeWC>dOCI>-fL2c%+qy}Lb_AV#pAV`Eb7pjAS+%|c~QjH|3G{oENuV2kcmWB1x;}A?-P|~z& zCRJoB#;z|xrPbzeMqY^XthKr2kw{WR^rdON0`;rk(#15{60v4piaagJ%uW?AYHD2; z;?;*`zzUknN)=dd+m@43w8TUyFg=*bk`CN*_B8p61v9TKZo^-cmeZhHcQp_FFs29p zjM=}_vPI^>X%my|cYHe+Ed~^8q~xgr$6QJCZCciSPD)#?-Vc zq`H|!^iY=CAG)znhn>ptIQXe>!MaraLnETKYm_G?7HT-X-aK+oS@~TosWE-DQhV2_ zFmj}c$mPc^GolsX{ous@#~p0dGg`cwF?*?>k$$jL6Ph0 z$~6qe<6I2KRD_5i8_P7)i? zFqgpcr}4PEfH|R_xs3;1tQ`)@xFOy#lXEaJ6NZ*bp_E(NbrEq@5cK+{31(ZVYebqnO;8sq+0{H+r^wE;8d#nhffd4tT&>edzNn$bfvu+ZLeeXV>M^rcxeQI%g}?p>f)}5{T||mC1#A_$U=^YT7Qo(RNRowdI8h@%F9w zWJGSQ-MXl|10Vxh8`Q`RSw>Sw?DAfKRzt;i%|A`Cd}yku5>093tA9YC2_$hyo7L`k z)vn={?1xUE22@Wyi9OP%^)S;#r_2G^x+bpOkC@8czDK8Oh=BV*gX#b3!sM~5TkC05$Hg#v}RF1U( zrvh^#?~!Aghk93hQLw|l1wzDvPwcl*xpj70w}Cmn?fV(j%cQl-&1WZo+R&6u|W=iiR%bQy=oD^1RFUGiPL`HU(9uX}l;f zSBU}82{=MER+Qjm~Y(h zqLT8wN7Z#Q3+YO1gh{f8SfKrs{gVi?t_}3#Tkst>9>QmmhRP$UEeg*|%4{$;Vh#;} z_oea@#KZ|+)%ic;QHwZCmW{8HUERe)p=)-u`)En`r~P5DyIsC)@?^K_4W9QgNHgKF zr$UiCcIHeaSNgw(;1(Q?{sCc_aFIpPfqWizRi{jq@NHB!BTwTgLd;3icDi_-=`v6&Ai3x@{>UyqN|rRmaXRh^lO+gy_N3vB`R%<3LwwytVY`IL8s zU3%@{t-;f$`RYn5ER;F)(u;x1AVO3nO62j#V7xS}yA%wxi2Hd&Y+s5U0;JdQ*Wg6e z<}!AxETl4mE0Lk2jXz#bkSVy0f@sVV< zALy-y?hwhblccbHIh{Tl;ps)q)JxZ+va8WYx=3hy!%Ij}cH-otqLFT*lSq(``Oi0D z>?sFiT$QMvX`&T-WJ*`!9ErWiRD#7&QRMOr7$7NA`LK*j>eMh|wH9)eHuR6WR0^Zu zX2c>oLq+AGH2`J5^}s`rim3TuI%N zzpk^xXTA15PuAz9kFBV!&+RZv}^JG6X6Z27K1UZhN4u2HnVf?Iq_q=+pKPxYv>OAa# zF{6)I$&%v%QuYs!p5Fz3$tyav{`ygVBENBo&b}KZzrAa$PyhFO+08%Pj8Q-Q;SZPg zuaB~P&aE%`8v%!&ImCRl5AzfLjbLo~iT=jMxy3)x`C(+7@N9k@R%UOUiO#wpmQ_(b6rp${`3E{Vqy8G z-}8<`r8&a{x5y+@wu1#k!wBTVEIXZ~5^LH703$$;{c z``OU#>CcRffS-+#`5s5~5iw4_qKR4}$U)EV5!ZB^1tw$K*cHBH6uWkJgFs`tezcw> zNtCyau5ctPx5`Zm=qEOXuQJUw;gSCEf-qbREjVm`njBV&EWI%-m?efr8KfUT;)FO7 zB<+C=bT&B@m#QwHdv`AQ&>eF2%yRP$9=Fq;a3*q zZL<6@GUWApFSk6P9<52%uT&mh*^#PAS-V(PzdLUQE-im1`-%zw>?$NT=VF;jQ#i8a zJx)loJ(Jb?@pKdCEP znpTX(?gec_B91*2fsD|h!;3jXJ`2r{pz)W2J&*Uzvyt9}y!~<82oU|qan2@aU~(pe zf90YLyzcx{_~sy>1?y?hugQGV6%D5^%#+hXjLKN4H|Y;_SE!xgBos%JvJ7J{#L|L0oAu!_cDe}%CAw%vet&aPrK}BJg$Je`V zhz$>TF$-==&|y^8=Yu21FFKnrC` z94kEz!lDr17sx`w=Hf5L3bu`_hk~270`XEdCE*H}_jp1f_!4tW*beGK&h`LxaCeP` zC;BctZv16nBlBI6>io(hS19CTer@ecPg%zq%|z9pNY``bvnbKr+I~}mx_F>TUjV-A zfKblO2`7i@1Xwk(>Vhv!i^}qtH>VWIEot0UAfh9ql zoT89AN7WUEr~W#gH$Rq3F%uMwpv*fjiO@Up1|vFkv4Mn+ZDG0xCCrZ`UpEB{9RwCG zsp)jNyEiC-n}K-+N5i#F$~jzY>kZ**W0OJ6V(!NEMZzZ!n^VpLKH8TR>m5`3hox4< zRcN%59+P+em=45oSXFa!)_VlCvGoR+>Si50C14mR-mEVJ*@J(=iaq6+W86SE{3g{Y z6SBvnEXeOJ3g89c2W!ys_jIB@ z;s6q`VTW=!BQ7HSQD77E6D+3yajx)f2-(;g&X4M9f3s6B?7TT34DX>;8q&yCMAZJa z9Kcts8V@4H&a;4ro(}BxtkoSh-z*O{+9BprxkpDgsPOia5632)Lu%l)l-8ND(EdVY zHTg#)|Hy<-i7T2?rUT1yTXw%f|GFHwSW?;2C-Rn|R;{ihrp_PUm`qO_X(EL5FH*z< zy54wr4#``dTt=G)<#Z@DqYh%d9?*GeHlrNnMIMIy+z{ox`ARbe35yUt+1M7gceGs# z$}#r)si}#;HZO!xe%f7>P*zEW-YAZiIWXaf0Fx6!CaxjsXCn5%8j-s+N0k}om z{D>1G>3P5f?6gb7-ef_+itY=!{i$JcWFkqwiS~*M-p8h07_h>mlx<^YI~c1)Kii?? zuuB!k2<{^}+ZHbF{*;6*wu|aJMJ|DU@@f;gU#LV7a&yt(YA;)4F`Kwd(7(Q#PF#=E z4)ILfG-X*%vS~&!E*R$N;1wSbJts``O(Feg^XIQEW9^may8Wa!Xtw)C?xTu z<}5=}*9`V@YIO;tsI{aw1aJkJ!|F>H%iMIhITty*#@uwOeO4`0Ryo|vUJca}*3!zh zIJZuEPH?(o(~`=TEdefgnvcWdy483=fIi4$w?RqeBrZ49*jcuZYm7mw*_95EceEm} zo`#M43fx8S#-_m(xzjpFh%1TEZP${Bh^!PzQodqCG?>&cxLwjRc*c9&B^{sBf3#$H zpp(|4+r@1dJamS%`LuzK@CK}fFT_40zCP%K<6K?hEiYL(IX!ZQ*kNQI0rt|zCT89NnUa%%f>m#y{0vTlLZv%9w(Av7Dbc1m9C+S z|JJO{Tim0CzSyG>!WQog#!=RogLAvMa4E~1JI>nqJ+>L^68gU1uJ?Y(pxH&iSyH?% z;j8}d!1U$|8{2Ak5rGty(!F{14r8>FTlj+V!-&R!M>QkOO;#n9-JVOpuK8$F;B0VY zN%Qa9i^u|m6x#&AddTgK@1whY>y{*x&Vz5Rm{Y2(nyy?9*ZAS(*HCg>m4nW?aJhPF z?JTNr>w6hcT3Va;TQ-Glb#)IRQDt4^2h6=e)%L`2*II=TH@kHO*Wca5W?0)Pn z6|I|lIZCaqQ#V`Q$Mb=dQLVziKozqNgb2Yl-_h6dCnbE}?yLfo(uTpbfL(9*^z~id zM9Vcc-urydY_A&|&#&`0900E(f>1w*95^u3|2F|Z{3kw{UlR5I;&AQ1q}--`(KJR- z{~y}ssOoQ+IluV+>YnS)7_UoR&0KxF<8(D0`6H~1m`n{%5`MEN6OOr3zoSq<8H z{uH%*0X88YW=1fD&FnA#E)~?Jl?`i$y%OsA#s5kb)ceX!%$h8sMFoN+#*r#`A@H z+(si}uh@EC$8auR-^&FN$L>~aG(zc8UR*oV^=L<)I;!hFA9fQK-^$NymCK)TSVHil zo?$He4R_&kLL9`Q?s4p$2RHyzK&-#-iAWtDwG(wNCS!+K1fMxFZQ&LF>C ztJXhb%LqrFCC~tCF&3#}P~z>VjU{|Dv}c+w;}{SHS0rA=Qhd|3=!a&7L0K!C^m8VR zEmlusdtq}hOYHJiG^wZxGi_ITin0=!Ty%O9lX%2j+(IF4fw zoTPLGPo?~+CS9TNlF+ofAf@sL>L(is?%~JEgaa2%iS=|!(<<4#nBJRc^}FV z>m=jB zNI=Q+iFzaV5mDj83#RK{$CK+U5L7M@7`5CD5Vf{3<&wkluv)}vri=)*(DkJMZ}fbw z>^f#FGUT4F-3bY)0w)Irdl!g7%&cHhv{?llAhI>IGikQhA3oWV8j%yNoj9B69|8r> zb%aLA4@&$4O~Pc$Lpy-zgn=6MG2Xr0 z3H4$z>V?1}&Qg*5Nl*pV-jwV*c@H6XAWo9e<@t;z1HbSsZ_>yoYmUje#-VEw6bUpS zr-zy0VZm$|hf=&O$WAQ{TFm5Sjt%p%IjzTYWxTYumKgSBUd!GkY8_PAhX!S4mm;?z z6#+3Be1=?}EA9b)1|L2}A>>Vl15XCMxa(2^io8^WJ?_@nUI+~y+EE-TMee}dzmd5Q zY~R!B6r+9Dgu8*@!yO4s)TrapSA4NgJVXwtfv0@=7-+P59o$zEC%_Cd%L%5fKnZPM z)aL}lpPutmH6X}aybx)@v^DwsU;R4?n6Fqhp!$v;V6`N;4-c$fLn0W;$0I(MDst9O z3ImoB=UM?+oIBAS%k)pbf# zQXsbSwyaryec2$^Fk7(t|Hj=}#+qXwm;o~4C%E04fz{*Uakai+hw3~(a<==qkj=mw z-Aa)DLa!ppf~nsqM3m4$wCNwdsIa|DU_j60?--*WoG8LQ^l;FJ>)E2w9@t3Yh~kgc z672QwC*NXhS&6J`w-ev>LutukNZdqh_Jpb*{K`lHK@RmrVLn_7jv6#Q5@-CBOK=w2 zV!*Hr#!yfyWKwRsgKqi>28$?R#Qv!s`IweZ#5!RdJw%L86r9CUz&&NQ zIY53S8z zeb?--$2>oQvyc>L+MV*7w$jI=VVv+NKxuJ6mK>U_sz_9g>Q$SP%YNV|_ceyF+ zQWXp9>F)u#O48u}%x$5@EXggTh5!>uCxLB^gwxu!^fExfS>w&A>doy7rRIpY4t`YILvMeypjX4mI5YxJ&x#Fv6%I#r`Ktva< z`D}g%$(5$^r71&K?tgjdbHfG7Y8>={t zGgonXV;pLz1t?h1jTi%a{lvaiV}uVjiMDIUMFl5TkB-T;p29}$n2svIYe?ztvWHeb zKu_@dB9ihk4ouC{X`;py z+Z`fR!b)ZTHL*s)vEqcPjD1@n9=xsO*_VS*Rz1vl=WE*ZBJDES8nY5J8&w&C6?C+e z9lDbKY*S?qfV8*ypli9y#5fj1)uU=jtJ?8wiS@>5IdX#4#XS>3`|kfRVSm0Slo)QH z&Onj|T+QG4GUuI=lB7PpL#n7MtC$$JuZiRH6&ISHudY%YmlZcq&sWq7ZxGa5)@srC zmYn7Kz3H!n#tlHz_rqy~Vaf3%xNqPR8lkD8(iVL5y62<%%;Aw?P0S!))LK@3%`ntp zRowL8kH#TruGyzI?X4@p+J4a7lal&dj%?j*7T=R=C%gBC@3WXWTjt@HCGMv$xkgo* zwYj(?O$pPuH>7SO{rfsi)l^o1TGIC-%NRVj zIYXnKP0ez7=kPXG&f7+}ux-|6S*f;8Kc?I!N&BkIky>7xe3fl^V`aOUoOxDdRW+Gb zUgSI_;NS6$vp7*Xv=`oL2D>~Mq*zouDl^h^d7f`I7t)9L-@k%rINsrz#9`N?Fz4{8T!ymMpjrN)xVSaY= z0@Z?&Qk}jh_idEVpF)QuoBW?lZ}k_SpLhQk$V~dq=glEsYJ7c;-fL`qzv#IxDun}u zGq~6M=Sf@V=jZ2rp6CCId(3+6&&mh#`1kJ$TYLED=N)eN1dOOZ(fNFU@a4iQbkN84 z8;J?%=sjKu42*=i&kP1?o^5vqbJee2j-jK0f!^q)Wx?R}JtL4~f+2scuY!V}zOk@^ zfv(QAw}OK(Kb(z%_vrp3LsC5B!GnXo-ou}Rg9-}A$%KQ>Si7BqujoT&Wx_x#Ue#*C zVf5=|b)QiCOtzQs@T^o>gzsx&3(G*^mM7}aI^hT1MQjI!$PKwoVCV?c-B4=y)J`!6 z41V$*_YBLR&a>8Kh6kS(&|8Gwiu~MK9ELA&)6Ikn4Esdt17kqUQS*7K9Jt*46KB`RdAoUC}^f1Uz6yNhJKF@i`fc*bgda()LJ4flfb){6-b1DJ}{0 z?TjP>Wo_!17y>@qwj=767ZRBg5`QVGf&>=PzpcCzOU~i5_J$aZZ~O+_V)@E(#wa3w zw%Ru#C_eJ8MKQx=zqiL3(>Ga-jc9+Ia*GZ2FKxcf7-6$gRu~K^K3QJA8yBrG*Ag5* zKcm6nj++Yc%tuDY`@{Bq!1SN*;}?!1zk8sMjBtwYDo92kC7VmgNHoAfKt;nPU&Up} zN1WHuM#IGg5fl|g#4NxIzAZ?RR~#J1G5bK^YF}jaM9VWxkwh$@>5VNE*he{R&Bx!_ zl{A}wb}lYUET9Kb}kLGGVY0EU;?S*T>=6F znL6Yn6ZfCkn30)FK-fl^fZ*{xpFl^3nHb4Q%;yD#Tf0QYOm&fDA?W7%a#N{2#;K%v z37$4Ip-8!)>X)MU`TbRub*RZi>(1Pa^xmmjV+33P%fLiL2P)trySNxrZq`Bx85ro< z$?55+*SZQ^J=!xz@MsRK=v@iFTTY3}o z{?S93-ztLI_s8FV@GWL0_b=g+8k9OHR4vu@pwuv!5MsknEL`MpWk1k#7v3Tjbe zT2K3<#m5xtbh+bvi#nQ>t%Kqjy7gQv$LT1Nc+NRJP8YhPPGx6ycvMo;8!oQq`0Ub; zXuLH+0#jX-YJr8it%?`~PC`T#+9~3!B=_3n9(B1I>L?_07%wk_%8IJ?GH5_;u`&v( zO>vVpBaZ8BueQ~^Tv`CPgJBs;Q~|e|X5+1OA@Z<5(k=2yPb01~Gk|ofsdeFj z*RHNh5%AvDv5En&Mgh)y(8kBt*Wf0@!_?F0nQwPk!ME%B6ZTfH@)Hj>HT;732ez;N zi)l=xL+CZo)>wmZtXj#+JQ;Q25M0c2lUFWAl z$(9pxXGv^ixo_YU)?j9(rc~IZI!^4_*%{6C_U!qHv{!aE7Wgc9aP^v8Liq*N)@se0 zlUBCw_L+e;HhNW?7}XUaXE{L@>pj+8UaK1m9a>up>WB=KkQypZQl7BoZa;F`)P@UF zkd9th-W9xu?yo%0+xBUo5pc5JgCT+Ug$^Vp%W`r`LdV*-wrXn5_qe#;zS5hwXfGG= zY};BPdTxp)2UnCtorgxar{;QoYpvLaXJm9+D}MYAL5+PD$ZNuFl@)B&w-vW@kT`X@ zXB4k)U`0ipes}6EXn`yF_8L2g#K_Dm3(T>$+k5Cc!q(S2I0W)Ww@WJ;&E0?X4Hc+6 z^}YRjDeLnkbl}(%^K}*Nne&>TkP|bU3$(rXO#BR#Zbvl!jXH|oJNo|$nsrS60bf>F zP>lkQNpEMud$&b7>c|3v3pb4d{tjQ17zW+btnd7uFZh0tKK59?VBwJXhT!D5Z7=U& z?CtKaudF+-SJl1Vc3?2@c)OA;*jHHE9XU9>>!9D<`EFSB_-J}q>wQU#4J^!Mvp6pd zZ!f?TiD@Ns>xhYErM;txO+|;g35IpY-Yap%zC*rK55>jfb4M_g#gX;)Du0X-2`4Cw z!7!fN7{i+1cW*iO@i3$pTBxhWLctMNuB z#SVG=@&?9uxF)Y!wX1Hq9GjHvJPPNYAV)`AJHcVlJgQE}V#}Pazf#Goqf5EU$;wSI zp2<^jLhJ)&D(2sHlXBNG>LZr&^6>KOm$DaQ+!^dvliVub74q_Au-16gblTeT^Z3I# zP~og;X&qKJOf-w7MK$F#gDztu>!Pi4$r?_W*lRk*Ci)0#BYSp=)KY7nzQadabRH%; zNnCfXua)3DG?$mii8J1r4+qLJJM(MI=b)R1i3A&;pb2YS-IH~9-F=GB%%g;erp;61 z^;rBgk0vc3><9EbEUjLNS~X3if(Z*li6vQbkTcyZ+Jvn&AsJB5(vBuN`6fnfO^k{!yCgHrQKK%U0v<8 zV_R#yAL+qp)L_J8{d8`0e}7I`SQnF0TUb~V24K*zxX!lWOTUS^)359ALXeT`Yf}7? zc=!yMvN@|f6jVH^wTzB<%UkxaUOb6sYOv7**p%g#ooqID2~W<8b|HIA4FAcd&fO)- z&!*d4uxqtV?$#x3{6hUbyrei!+=l=vJS80n34Fg#ueP=ei?R{6w`+6mXl-$4+klI4 zxViJOW#+c+T^RDk#%)ck=+3YYo5%XCf1BMU^m0n}woOg?oYmJ&opG|}*KJ)G&(|)W ztPB$aL4j{#07CrUa`xXg?uo^3_xEAr<99ddapdGTZ@`SoOYm@;(R}a?KQIr>aM9KV z^#?8Q+i=6*{ROL)f+1q`|GZHi{UtVqbrYWW#>6xJ!_?442SySfQUqTIq|Wu<=Xg!l z&i}wo`7t5DFw4p!lVCs^>meer|4Tvm$8S-bHF|%3o|1mtwrY)4O`u+VX#PEy|JTQn zO-oHQ|1GO)Z(3=yyMl^oZ@aql)xG?>^ZOQ6EAA-m!me_b-eBi(xc&)p zg#U;-T>k_-Y5xL+u75%xu73m}u7AWK0)F%nvVY&c2G)amJ8Ybv<-h$M7sArNG@P8_ z)q6S|b?$ur1f^O511Q=L07>)q>xPCECEee#0GciL1&6}uXwGH*b^Mp~AX-%rkbB(J zSs!J4f%;j0s(Jznv;O`9CZl7{hv^V`n%Q3|L7dVyuUx!djC9^t^M=wa+c3a)b;|9ma$$=4`zAHB>>{PQ#aE&T3JH@N5Z^HV=suKV>WuQz*kvYtPB zMHyH2z+ z=caQYR0<*o!n}P%l!*Ul{?gZSntk%6M~@%T%8TtKxm+W?QO6%5z$K7Rd~`1yS&6|K zo%E$f!uawa0?Obs;kTK;6p~dcW~Uo4%~2u?pG!Ly%Ob>eY%7_#LJlVQ%jgwi&V0<@ ziO#5v+l`9HMnJ#wQxHHLKC-8h=1~p&D*M-NqS=yzaW9aA+>Tego{N!4l5X5#Es7E6 zL8KIR$K`Ya{dse3b=C=f9I)_+FxkETmNR1&oN>7YLg`$m$+AM8Dt*WIs-B1hz|jXF zV<^C&AEM6~XMA&y#2G7>g6jj<0E`Q_0=s zA8#lBI4tE5DZebfzh%X%WydYRuKtFs=QFv9h!(-jVeFy8OqbB=nvGFmBSC0IK){}( zR`+GCp=vi?)6*})?6l{s)p_${yuU1mXCQBuf!2zi%g9x_O2~l2)#|BEqh`x?+1X;`#ez7PHi*B|#)sTGaluP`Sfq`k->}VR4!8Isb)7jxoTmXZTAy;nXb?5{ec%LWm#iQQ znHe}B8wm_A3eqD$Tj_OjTScr>E<)MTM!2#)Hqw4x*D~R(sSOu+rCe|^0SvN}ONtCi zu~k1u*Nal|)XatJL(A(31=@iR0bw0fp$e__y2J>;vGxKRcL{oNE+FeF^<%O7yM{ZP zz6hD-rh{hhO1BDTMnD$f(~-CFkvddIGMWwHhv0-Zm9upnz>K$4oeqrl)QZP$@`4S7 zsysrt)EJsO8hoOH{-O8cQFtWL{x(B&W1|<}uw>PlYVyDvO!G*D++homY^_(@Il*OT z(^8;@3L7Sqf`m=Bw%qnOoB$8OyvCpfiW)VR&zQl9cr`V5008EM`e97tT<{#kzZ_V* z{AeLvG+oa}zuzT0<_DxmYZ8hSgjGU?ZtKX z3|_Ibdrl8r-9RNjvsW1Z#GKIEZt*n;cQ%Pe;>I>QLXP+yu%6J;?vNe#fiNqD!+0kz zjNz&@ZL(+mz=mqy2Z5*cngT!X)?C)Pq$j*RS0JD(C#S*JwDxo&#}Up^urB5BdAR-@ z{j3*r>INKvw+L2_EQ7-(8&(uT5LgevfQ)dR_XdL+kK6AjL=%y=>%u2C!)x<3;ar_T z>|DJ>y5B3sz0Gf6Z@|hxRc|2Hy!ATSNkE&Ps_utdf=PZ}NOG7+PwD{z0PQR@HgA?Vm8GG5#wtaA@24! z1!Jna9m4CO^$wU1X*XhQmi8?)_AZ~FA~-@OMGARpgtBlF22O7jYb$iw3wXBB;W#M< zy97n4CXrXECQF2mEZu8}BkChaLkvQ8SgV-EI+dD`_w&ep8WyB9Cp;j8+WNOCoMi$kD<8#6bo@y2QDr)YmTK;1m?I;cLi>VR}q~a#z4PT5=-(FIKNG zDQxx$-F{3X^p$DI0#WC1k`zJ`*n=h3W$z%~RH%F6oV*jyH{$a+(AWeh`W%6UKwW2=`^Dnwqa6NGKx-+(z){NUHsdv$;EmSa-)Fqv7^v!D*^WWK;Eeo zt>Z?Uo@xL1N!CO}0>0bM+fX1lkh&_%?NkW%h#@;RyudB3>R1Ppq0S?7{ z2Y>8A4@6^$=Gt>w0WGTTHR)zbn;vw5mG44zEfmvM&TZRP8Q< zV;nHvB!Pa>UZHdj_QAhYcRk>VG?SQ9jruB8G~bZuIra)R?E{u{K>BBP%rDU^ z*^a`QJWj2jtS4;QA@(>p4Ra^NSnb|;ZaN0OVR?Pe^w;K|pU6(Rags>aZQ!uegCywA zgV@M)&idzP9LFWces*wT!p6tFoeB2Lt@WPe-P{%j`;rF5HxJ-VuAnxXyk<+v*Gxmg zw<=G{mK7E@IqL}=>fPKi`-_ z7bWyU3@)0xKVleV#fvMRh&%|`ZT6G5(cKwVz(uH5VF88Xf@jGm)mPf+a2yRAW z5jrde^nPZRpWrbHi@^H}Vk^KQ3-Wpckq;@by~*_o?Z1Q(J^cT2VGr#q>22OmxfBZD z?`^xoPvLMAFHuu)a7t!XS8#BCompFO9QE_?P7joqjDo}*_LXdF_!G$m$@z8C*2&5B z2Hel@fgiBC!^kdTAuMk$&d(EYf39j-H{s!2{)9;{AM(CA{1?tI|B>}FPtxOeozfTs zCEXc*Z?@|ciucZcLFDq{IFS9&T5wy!;QW`uWQJWFbL1&5OTz{B^R=8t&S`^G&^?+NsnYhz;M^4+r(3%x&p5PEu^ z6Qbq@L3FPKWxWm6)xmx5C6IkEFrxKo+Vcn@QjOX(pD!^I=kC#x56Q8Yt-cScsyf;@GhrgftLajQu<;$Zb-uJ`8_3txG!$Mcv@oC?; zSY_=g{b9$%^i}xwhCTT?>JPvEG-83Fo^HHfuzq&E-=A20VEzgH<6P+Bs{H@1LIR~F z9E$PtQh)%k;zT(z642FNGi2kQP`m654-oKYZWHrk&#?ydR07Xi?({xxcV=kjUC^IL zKlq+S7WB}N5`G9Y7ypwRwH6p7a)SFG@?Omf%o@JF6I2c8Un`T{T*%`Zc= zJO>OFMH&<4^MFiqJYgQI7-=x?{M6wtoBt|QUKic_*O+^o3$^?7d`_Bw!rYh{7~;|? zCm8#EUzaxysq(EaC|z?1C;}sMlNk7IA9E3mh`%N2)WgFwN5q^%!(aS|hq3soan2MF z4YNHjUla--MPk7f4n04kp$-M=_$-8UH^0+YHw4}Mh-TcCz4-X2d9l6t_|xmYT12Vm ztC(rxqVqypQDWlnJ=HXPh|f>LDvFJt0ZSAC0hOxWj8D%|Pl|%}@!@`(Fyo?OOxe$3 zV^+wQVWQ!8E1;s|BN}(#x8kAmv*J7B@A>9RwGbYLbZiM}u&}2o2}zmt9}0(tLVo;e z*g6f~J}Na07%rpxIUNCC(L81$A4Fe2YYQQN>S1^~yZ9MHKPt*bLwY$4Hd6ALa9ev4P-Gr;_}QRB+G^e)8WzXyztb`UdinFRSg+ zAr3O=qPSL)5-?EYw=vQ;*yI!w++J)-vnGuFwCkJ9Oz?b$*!!aS6py~zdIW@=c&gH@ zl<}9ye!}>e(>n46pkf%O+DO0bvFMgA5*09GD6Wo2K<{5cKh}hQ|nZ}Rf^c)O=Ap8TZ1eSX7 z2Mub0ErNZfsR!Tzo=X*_r=k2Z;rqaYla!y}|EtT9wiMj~00}c&D=Ny6<0&ips@1w1 z0}44Or2E`p0#JCgROT~((J%R~Gf!0Ye0q8mw4yVgGG%R(lcwf(Qc$#T+R-@BwBfD$ zr7}$hIQ@o* zt6rSkj7IqU@ibHku;M;W`WIPta@wj^_<}Mgs&;~TVG1#l0TYvI7mF(+Vj3C^K#Y^h zai2uUM{adwCbZxdR|$Z>JqyATkGmJh3)r> zqdm}GU=v4ZG+`Sp)l5@i>%w9^x*;LH@|>9;V{4w4lph~XFp~ouIo>v(kix_!$AHG$ zl@0Y{?}qInk@x2f9h+CrBkgPmhc7pPx(=@mu@t_juQO`F+JdstKDli{w2t$KL+;ag z^X#l(W%j^q2Mt(i-ni9~OmjBuZQZLc6m4zDy`h{O zoObk1iL9<&P)?8Bt?bv&q&+#3v~`f2+)&+6OTN0>^=dJf+vZeqL=8jG7F!0`D5w=z zvVKk76(R?wiVLG@N229=i7KkjotDxhn&|0DcA`=0@%qZHjPc`M_tk`1Zg=8Bo(h`I z-MmoIqup2whc2~T-PXBC9^KxdyLQ*tw^A0+&{w-%bHeybLSCN9)}BTu1v}k%e1)Zt z5Pfw?!rF;UOPPP>)zf{_q(2~s${c`2&iqe z1yN*fO}+9b=dJw}CHVyY5grG?4s67?N!)dZt=sCy$Wu=G9(o=g9u~fkFCOoyuxw-$x9PggQ&?Dd@LLafSGp*Shj`d7 zVo@&mRH$%cXju57{g7$w%yoG#J1%zchc?@Ly+BU?9}~#EDf`Uk(N{OxdH6aaViH+{ zCEQ{)!L0aV@JM#LxLBBrLfgXl*-2(PdYIUOIQltGG>rzsJDx6~0$BZUY=o4(+s$IOLr9fI8APVh~vRK2tYkCQ!u} zN`-hI5ZLm@UJ47oc+3(71%>oxIlx^@S`#tdD~vvvf=&BBN53QHlJnPq87C>&Z2(uW z*xc_e7wqi9+8Fw4A>IG9&ji-wG+DFN>g{;-wDp6KDUeV$Hn9Lv9CF$jr~dBfc5VNA zE;VVB&Nl;`JZWub+eEQ%v5CJosIjvnh@NQUm`lWOzZz!x{!TRG<1QyfKlNWLu$^~j z|MZ6o?0;IfwpX3z{5C84nshDRY#lKIYa+K$UD)d9=uJEio)^y(=MD3R`NaIlixdk7>U$G6SBU*PcuuQZMg4JQtmQ5!3s zZgZY173Y87_KJ!Zll}yYCk7Z6EDoMgb38n54v{e`6Ar(T5R^^$c$Xb@U-q0kfOj(J6;fG+G}KU9=;yQWX| zc!#AC;s?MW4~MeYCH=KJS{}_xM#*xwp+n`(&|fd_)F&ChhIc|Z&G4(IbfcXxm5=>ZAgw3(0U8g=kQoWv?o2Q9V+`{HPkQz@1P*Me%pATNo ze$47YXcue0V`IS7B8G~Zu}I@sLRH|5ZgI+~q$4pErC#XeF;Ysa$w)VJFc9p!(B)>b z7Mbp`x%4H$rE*bQuHpdnf#KwYycS`=O9J*wnU^p9C9y#z#|ES*L2%@{T<3$^>W~n7fwBR%&dbQ!3oEKvI=ZWQfy2unA7J^aLq zjBJ~gLa93@>v))Vn}VQho+{nBtE45f^!i^3|CE`Y=90T)6D@hSMjc#e%9h1Deyv!! z-N)S zTq>LDl%F~hj3j>Ql2pRd5kHq#xkCs*9b3eaN@^6%+})0bgjVhEE0{RL=kwv!3*J^t zUm`Pm5$mjQD~6ykA0yT$;{A^bk(Bja*a&f4J_TWUcSA_E zgMRS~md^8X!mBry+XUV*D^JUoahH7t;%0RWhlI4DvG>$nLy$Y#gLph|#fXXYQKJ`PX zhX-X^Q%oJ5!C_zBDuu|ooFTGv*Fc70Zj3Wl3l3?hJEyCH?Vro^&n2wbp6$$rFo;>` zUFj}a0b)fogh?zn86E68yim9~t0e#?chN*KO5A6-^jinK??eLKnob-OJo?@y;mVg+ zhP2J>^l)>ddKj~ID%ZIS3YS0UgbmY+1v$kTZg$e6220$LZu6Xch{TBa+Kz(?yrFcm zio_OHYhNu2xFgQN&K)7Ch)A?aQ3kN)3+j|aZas`pb&Mq9MyO^0UAnXLpvpQb34}+M z^Y(LzpfL>$eL7a4kd%l9n(`{pM}@uY+^eagnndm)V|Whw3t>Ja++zKSrz65PV9 zkKcvOwVlg3LhEsdCuVi71}W`bw&sc3jujH{d-3x!Et}!vQZH5(=~+e+Qa1Z4r`rz~ zqvc4Vj$}ReV5eKM`eq{37y`t=KsCtwNfe)+=%uPyG6I6mrFU%$mb#l=w>@qQ@A80d zDE;&J1)Cglm_A=9<2Rb0-W0o7c3DNQ-^!myf>CahA<|x=Hsr$UB6l#+fG5n^l}5V6 zDbYU;SiE4z9)*j`-eFFG<0N>zio011u@DN8ePC>ZCEgilsIjx#i!PZjSSP_u;>a`W z?0A4^t7>=>*0Co+WvFE=#~Ku9w`;Wf!BVT*=pcSp5Z5~>L$l3FD%`7Tv^(oOSGhE& z;VxdhW%X|ITf2^)KuLwkUw?Nj^u&%Sq*T_v?oOl}N35hPxXDlNKL*y&z|iOq&J?ws zx$ItqgXTT2bIqjt6d=LK|x z44n`K*KGr66m}ws1laVvcAT2omMJr>U@bxHqHeE5a5kWdqVH03i%JTHMerYHi$~16 zlwO!#LHW%L%Lf+M*~(l6j$*`->UQ`fV+J%j#?BRtY_oxoy2QhAdDO4ra~t%A!-U?P zj3o(%Sw~i0R{Uzh|3kAkS(bjtaFVQBSfPbq&L5(l(Q#}}e;i$#UKrR6%&~3XvbdR* z;nhK}5o7wan{TRyb-%W(@D3VRD0;B0H#43igo7I9Cau!&vz4hYXE~eG!e&g~Ayn_n zv^OlyF=DXPkF7JPaKC?Sh_g2VcG@h7fGQWtk zJp)c^Qy%qtwhdYnm#D=6A`AvemWD=ie zho9<-A!A#qPDkcX&5R)N@=Nx5M$s8p}Up=qBLD18(mrI4mQ4M zE%mJ+IXA0MLt>&$)nh+x`RWKFR?3BGi&$#HlTEPsS^NPMQ0N`~3lpNC+JJY0sZu)Z zt&TVTA5eirNZEm&nV!XG5Y?szflXKH7A;Qu9;bn!VMK_dBn#k}367+>;Rt>i7g`^&EIWJ*ZIAH)WU?QK5Ct zcn$PAMIK`+5?bQQnWzD2pmNdD6Pu|qh8S}~m8=~a0@`?;jvD;NEk}NaKyF-Pq{t*% zG3k4zW(6asbfR&`M$4e#3t63_qR>-H9x0$B1-2fMs&z7Ts4&XwbS6utj;%JuqG~2n ziaXt8l#bD!rpFG<^bd=R2>9OAmC8yqW))jY>RI^4F=ON@2)o+m1GSm&W(B8C#utbt zHTef%{!TAb9pCVp`t=e_{WKFJ+|q#>c}n)K!NJTm7SdG@ASV{+jixpff2fd08W8dk z4VN%JYaMKogD>9)8kpv}1xAe6{_FyHCuKY`f=BhaV2zyMDd(w&hopu zIdw>Er>N3yNoda$dS1!DsAXU!><&+iY(pu0_E21zB_Sh5Zxq4iH#;k0YXOVE0*ya| z$OX`aM(3y|M$Vkah?+7{Z*)e|Tp-&DA7VQzJT#;#mG-4UQ}QCz+?oIz6xv;Qlk={) zubDv*RJ9L9n<8`M?rH-Y`zF1MP82I7T7Jykc_dm-=%6e9QLseK^}D;2unVwbiHI-< z0~N~G>!GCfHDrg_9y>}@8_AV44Ku3qb34JFRm~{8p>5|X;!Ewbb>%X&whV5xmlGQ* zWgB+la8D7~o@18HkFrWy+Ugy+&-bZ->O_S?AP5iElSBemn%kyt>lL5+a?M=-vv>g#)%W~Bb zyTR26237a6&TL&bjZj+wB}DY2-ePtudqjViS-1DltThmXGuSmQm$31nM;f3 zYhB$fP_w(B-&EU8ruMplaO8+5_8JpXkVnYFsC{%Y6q#OzwFHSs;Ns}vgw!Z4{wvzT zpkw^4Rf$cWUrlGTx_rPCG}!y3N~FX!ja0a!!o@M25o~&N=qw2;tob z9JAD0nUx+|X9?Jp1YH^R937MoFOo^l^XXZwdu(C?>Yhit?7|=kyeWxJ&5py$%GA^$JA>sj4|mBq z9>sN2^?q-2AT+{P@nCmVaZd5qrJ)XavgRugyeB(%7inIK@AHzYet2hFEdIkA44X^x z108rnZY;UtU794xI-K3))igMQT&=x8N|bFKzfg*_1F9%-FHT=Cg}D`iepi)|S!R}y zcAy@99M?U1d_bRejwrF7;>36k9(!qq#ArpCOySsfrMW9y5x0>yzNU8(jRH9ksAe zwNbuNDG$yv_dIWoMhYV#+Or-BO-Q+9XnE7?sKlZacMj4Wi{0NO*gJ-pi&v|hfar(R zx|Nly;51~1`vFd@DE?GKi|dXM2xFqx<3P3D^l^2-j3J+bPcHH;=ztJk4l8nWSYayT zZJi18n#0dhfmd}`plTTM}OL`&@Z}}HaoGLyp+*Q}-?+hjkjdPP-UY6HZE?ZHJs#lMwEJ|ad zu7+e`7lhBvES{;!!O~FjN)nyH@uT-xto^*SMy+%9)mh`!Ezb%&#l3Qo;Y?|~ysLWC z9y#WrkAk&t7c-jLzIWevl~Lj6yczt!fuMGv1*@+XQ?4PRoTqj~No#*)YAzF-l{QLd z^{|7+T-#lT2v4mu3h?Q#GF}TVfmWxP*SKOL)z{Ii7^kHGSEx=_zN}B0lDngl!f4Yt zvPC_6_X?Unr=o;46z~)x5jo zY%u)s?4{upZv7LU=AjXPUedil0Zw(@%_4_j z(td7Qq5iw0mT9A|mxT9XeN$W54Ce`ulg(3f6W0S z(7>Jzk}WWkMQF{|*~wjZx_gSSlJIv`Rx!9X5NB(+Y5o#C+cFuml1iOXm3c~(G0PB< zmI{;IaH{_NW@pN4tZ{i*T98Ja*^AI#Vwp9YCtTTtcr`B6YxBEG@8auk(sNc%Fw$p+ z@ionXJB}qY2EEiXH4Qwp^)WELowkcIp+zk=6mX_`*=D6I?u&!q9VlGIMMZ0}CCtof ztDW$7J!d(6je3%h7uSzPTv3$b}|=ZA6XZ7Sy|5F=65s=H!~>9~&;+kA#mL%U*sk8*NhS2&Zc$1vDK8%$(g0X~?! zxIA=)_GH!L!tzS@mXkDYtS?PV9&9O?F^wOKMp!i=P0wMqC}WH|1f_=n6Vct0<(_6F zEMi)uxnvwFPF4+iv?r!^<2f0;?Q)eQn$4;kWsOE1h5(Cc2_xV|TB)r~75MHMYEp3_ z&q_B7`n~4eActa4@uYX^W7vuWNP(nWvU= zfQh)t!K%y372vac2<@5~SRU_O0QHUe3CKL!;qMs6=5epJWy#^SY53bIb2%qxszgIMg9RS2y;CR;vEF3gJ@aq7*j!7j1pIZCoMe!Qs%_D z0;t-GbiriB9kc-h7cL62@UPD1SeL~+u9#{ONuJy;>f)poA%8wzas~^%sfD}XuSK(Y zf86+g@lf84B$}TYd^-af-L;Xog?58HNPx;IudkqPL?vq9@?CIeCwVs{?4?O9%#o;- zIN|o0@H7BTK(fF3DVzw)W_H@xK>Lbo{zk0Qy4V@cWhXl38`}n};~>_Kq{D!zBT!|Y zx^E{4ozSUn=Xa+fNjjr6&C^>aYCWA{wI;-_sX=`9{6Y}4f26FIq5YYNAkt&_$ji(;cE5?dcIlu!W>ZfSTv_;wP1vh#<&P=`#WZ-Sx znHB~BS0t~qA@b!EoU`QYAR{AqT$=B}9XkV(-+Z_leoR^=Nj%PXFFpl%+(XeQ%64NC zFE{j+mkk9vHNBQiWy#N&e>{p_z^0cYaJYBvtEYTym)u>f@zvEl#}vX0V39!8fk?@7 z=hq*KBKPn-?da3W5tse!R0-mMQ69LqbpL)e0eUY|Y#2gS41TG0cvh&wD@%^Gen=5I z$rGtKP*KzeR-6k>y=l=?brP&iBsd#&=#uADfGmp%$MZh?`!*#OC1nOmR@9CaI+EQA zFBqkwmPHC+A)#ThU98wGmd2K*yBEDtGO-K7VQ4UPS(uQ=xE*eTaH8eNGWjx`a~y*1 zz)+JfEwOxc->sV)wPKH>vlfqXBO2#hCMu`24(s&@2yVBU@TU1U5l`(&r^`5~{N+ep zpew&{9pHU-XNTc1LASZom5#2hg|e3MW#`N?#j@k4GRRNPGc8EGq^XS5>og%1>3QL3 z6&l5f;UpxjWAVB(?KTmF+m4V>rFw*JU>usj4T82g#@O+3n0s)`Q#ztnFMRYj=orpo{_53>D$HgceC%su_SqwNc!Jd%;FE~`0hw^%;qj+IlKw)JXyg0&< zQkocL_S?!zt;ZvtyHeK_h|>d)Vj4KdTs55VSGC2=?QsnU`SNMC`s1g`^;5u)lZJAH zi(nn*&h@c>ROwpY%s&J1o;Z7t^C>+O*-w${YY)u_ur+C+jRaUFtX&+p?(U49&fAz> z_h85zISFN&xXbYY2SpKJEhwobX-oDrdX4%NUf#aUtV-05Uky30Ujz##Vz71UJSeM& z!NAKN=t-szSK{uo{Nt}5c*w)r7_5!6GZ5BaS&;F2C+Y615>Xi~ON%)3SYP#rqI+>? z&Uc!A=r%0!@~G}_k1WhRkXO-whU#3iGYx>(u5rWmpzDGCE=QMyF(3W#nLhOy_b^>pNR`Gqr!t0;YPm+l?v2OkP*115X%B9 zB~O9HYK>kFf`IqaAY0u!!^G^OBU#;WbByJQFsf6KlE3+%)?LSu><(|Z354Dn@U!n5 zVQ9qT1@vdUvadn3;0HuOg{^UFxT8Rd24-gHb9=|W_z7;q6XIdV6M1Q(m`qb^V}ueN zU(DIFPC<|u`m&{OgD6^<0&kMR=SrVdJXs;VWHm4!HCB% z(uN4iM(G?x;C3c|`if!~%X!nl&%z=n!ohlSZ|fPuP}{)_Pb3}Wh|DE;^!bThqPRCf zQ^f3I2jb|}hAZ|(z^F0QDAK`d?$453Y_cvXx)!Y+z-~_by>WsTc3iLE?7u7e}uYK~*(k zDt5HfR(K-|)&G4}u<=o$y3hGijQWm5JqrL#H>;5otoL%e9Az(FGh@ z9%}1b-$zh$!;OXK&p^WrV4=m00BZLwg^^OCGIL=dtcqEEbI^UaHd}ie2eLj47+`&k-O9mEo7}Xxo zWk*?G>kUB$eAIWd;>N2#xY_#cXjW$&nz51U4TRDM=2WP1+?^Ci;})2k<{XOJvI|2VApQkkt{Iag z(w81On&iGgDc*`Di4EC7QBF+-Vah)oimdOgAkfYB=Qn8y?Dm?8r1Xs0IX8w}v~q0N zs~bbvh|3{+@>6qK6!BO@xl@5|z>-?F?=#`9=5{SY>MFQam$xU428$SSy`7<%jNbdE zY(wo9?-W;Nt?WS5E-$At}%>Y_2IED0drf2hQL~^oZwv3p)A0*hL)D znnBru->}%1gFLF9=!5^ zom6szHNgH7OGkMHC}&WxYmtO~1PW}A6>M_%_NvwA8p3V*@y^BbRe5o8yY2!E#z;_I zcI$`%bN!xDUn8stGp*9+6 zkkM6rPAult^X{3vRe~>PxF#%}gUBP2e&8Tx_jw$1II5<@q6VzLXg&@&vf)5L4vz0@ zJRNkQk~M5Lj*MC9I5T$Jj}G7EMklnW>6clgkwo$b$4N6oVs_{T&B4hD;>W`|N(J!) z13jgJI8lppD~sk(STr%?abct?{e6z+U_rqb_dK6Hr##tSz(cHr#! zIZjSN%nwe^A5RqH#tz^g%eUT8s_p|NOHoeUY#dQuD!Q!KP%%+G7!NMQ3$qm-{AxE# z6AHB`HiTRta>$!jp|UGHy2+C56?rJaDJdy?-1)TX734uyv)Sn6A-KuJq_jl4dp_t? ztS}}n6#w%QS{(eOr$i`?pghJdpAYn?$-*J!AS2&7Peie%ms_Ny7Sn4yQ&WrSM0Tpx zV!acU;MHP4SJiYPnVQvV`VsE#YBl{+kM@XdQpX6Sv}?L?Q&ej;eYm>2wVFQM<>p#V zA1-%yEqOc=LL=;^PY=Gn7(X88-FL0R5g zLyxYqvNA@GwFY+L{NMP&0I>(`%AF(9HrCiu{9JFjfi+gF z#mRx?cPvuJrq>8UI6();%vd6L*59}p6|DnX9s;9%x@+75vO%o9O6h2Or93YB5w$vabiazoXCEtraayTj8i$4mXl4BI9C+@mp2(F6cuFp{`iwmwW zC-D(v@)%O_;$-tRQu1-~KGv}Eaei2%ppzmZ)Ay8#F-5ee^~2jA$ImO4kPzk!OG`+| zl5{nb`nm>Z3$TDpzOLeg#COtdQbJZQZSAS@*%D>>K|*%lb!kFDljFQUshsa_{SE}# zd`3a316M;sA=GEPqN0$H!%YSaZ0bIwb*NVVF>e1Ob&pF&AtA2{;-6Rg=_qM(C>3a- z@k<>S2GlBG-9(~?H*~Mu)QuWFqn_=QupW%M8QitGjz;njy1tG^E=|6vkZ^8k;@r<(q<5vV*^C_dyAU#OEEjfh1qNf6PsgmNMM@{{{ozo8AUaC z#5m0*;l$ZDkj7)k9t*g0Hb~A!Tut@n<0O!A+Y@{2b!7)utpiKlvH@?oQMqK{pS2_; zSzy8f8SYcbUviSP(+9AuB$fR61&1W~D|vWWXL|PTMHjXD`D;7-4U2^Pxma5LQ6R}0 zaNc%Unx`d7f{wep;5Ua@P*IzJkhj^>)>X+ag>GLD#C=iISzy2{)01k_%+n;3cY818 z_b&Oof4E`x5?QFXHoD4*kMq}g`s!76Id%H-nHeK?pk_cl@sK1h<0eWq50!+hrCqyx(Lh-iZnvBpF1=AOonLhq5)kJhYq8Grs;c#QGrHbgqBg}MvQq;;k}=g z!BJs`q@8(D;byI-X;EQBv>9rHZ#A$t;42V@>T@xQ1qaSf=86eR&Q7L^O^?n_W=fIL z&Q4~9`-*2L)5VLdXD74rz2~!&8J6P~At1nKj+$2oMv==wEBBlT=0XFRth7QyE1A5+ zLqsc?%+y3hE1BE?MT}N75g?4#SxxAMbvjG)<8oazW>!e>!@$O-F~ZJbDNI5~(z9@_ zve`8(US&y1nwIZ4B_+)kJfC*EW~ESZiAj@%a+8T^j6Q>Y$+qg9CCR(qu3{l%c6QQd zp>lJ$Yq0<#JUnf+K%qmRHd-=2qM|lhOkJd;Ha2Yx1pN&Z&jgPB)QBiZNQj8|pME0| zawyRqOVo0z zdSzc8`qLus@eF81Fi{FUU*-aDf5z9h|9$PiDLW$2Uytz9PyYNg%=yQer(=JAudzc& zf>?d}mn3i>owh&TKIrE_byP`DxVu)r(e(*1XNdN*Lob}t-0d(D-LNz;uDP$8H`{mD z+hLmBp4MA_qY5%=3Wf=lSt{o5DU#xM{rsdjUqz)AH9ht&-D@iS^VZSTi%rwN?%fmh zS~C@0t=n7E+{54N1p76LJiO~<;3ti=4wjKy!8Ohnu_ig?&4CeYWmF%YjXlidSueI>aL{z@b*bhy}Pm2F+O1E zXWwn)_o_9}+}uiA;QRC7{6Hr+@cZ-Z=RbFN!#{$Fjve|p!r7tzA8FtJf0LxgDx#m6 z9oJX(Z(*SI@L2Q&{`_J5)-TATKNMG)!@}-M&c)nMTk^%9FJ*h&b^WvM5uSh4|MRPQ z=Al2g-E?+-SXY(c`r95Zw+s0+=G=gD^!^*+Gj+T7_|IJWP*=~N>UVaIe*9{Fe_91sENhhZLP8+<;I-zn^H<&?*)x?T|clPzhA9&X3Z=8kA}GIkexY6 zZltjX8JAAtgE57;J-#W;4U1fc508@Oi+tjoRQ`((&Uvwieo;JMF7lW8@`i7&19Gq6=4~KQGjQOHwqB12K`y`3 z=S_gkQSu&z^v4`a9s%lQ{6g-bEdwTKPFv1gJ(u3~hsv^m)$so6TYoQAAar^%50+9` zUQzJll!~eWwx{fk;W&FC3w4OE9E6#tV(C9k`2xWXjf1>^K$)jKZ@wtak~I2ko`zih zoWPIsGeYar>#{srIXaAk>ep($ek6hRdmK5k&D0`Jmpb`CRShc!wZtVGJ2I3coR_%q zspvAJ{>H;k8N#uyoy z>uc}OEc!ht9<@o>bKkfXQkUPW)&VszQ}Z9ZxL}ER&5U~SBXD9iR*E5WUJh#hmbbz8 zRg+Zg-n~m~vXshg0p7TiU?;r`T#;2BSBkr}kLr%6U68wj@@U0NDX>2>@Fjt>=Jz(Z zS{Pb<0n*_YU`0!Kkna>-na6?$iEKF)S`Ly3xT|4y4A5dgm$fC1!t3MfMbB}@zBi9r zdw#TsQ@~!(1Fk%;&CI;t8p8}>zIQ|OvEdei{qPLxNEOt%Smc4Z;GU$_`H=@yaf3jK!&|xyYYEbB<@~v!_d*1RC`` zgGO$>_XlB}8E`>*M%uu)Ta6B*tj&HwK+M`VWfgxMJi8NXSW(jNo~h0P4wU&v14GL6 zfiP;tHLY|PH`)AhJCT6_}fNon4M)jzy{Q2CUmwBd*lKz;o0JV?O3MHc%<0? z@$9C>$7%M!;=&E@1D*BYxxm)teSSD~nR0bTBh}0-*j`Y$Z z{JhD!!JyWa;ZUYVMIZ~CK7#j`bYG*-{dN>UFXFEuk9&E&tk>+zR~+$qw_9<{$6)!^ z0t%LAADhrS>ir2|QKu)@QmFpRa&aqda2ZHwYe^se*pS;O03SYIY5y8m*%)IfV}h&0 z14}`bXP8@xo^l*b0=s?woY&S>sF0B+fMv4`m!7`L%N4s@{?=&($^AHL*8 zL~$_7DTdTg3FAEiyHo!Iy9A(dd?iseOC6>Mjw*utM*lr9F}XjV;y3lRD5YJq8gUTs zHz@aP_Zp=Z_dBtm`_Vy8Y(0d5Xj4m}&6Jp-gSp~6XM3Gy9sw`!=%GAY%2>!V5nOe; z$|}-c(i;RLj%!*fBTfo3Ut|^yePqwW0_oIH?(kKZo>GhIsFxV+RO=2@2UO$A7CWWI zfcun{HBw(f0Z4OVj|w2VT;-sl``iax?hl&oCINuQuCh-Qn8Jb33rckwI-w)xZQWYs zfXxLNc;5*|#Z@m0LcrJcgF)06a4jpmCkxZvpk(FCC)v`3sm(AIda`2@qk&?!qMA-} z9%cf&{hRev6pkGua$HKj_r#U%7Mw9(V>D!zw)0((q^UswiZnQPNyFCOE6$@U}+PO*FcNHz1QIo;hO*lw2v|C$X_&RcS*{T3UWdxfy zw)Ul7@`Hk5l8=^-C~DV<2S@XXey+OS&4+RiF{4p~19cBP+^*5NRfAs;7jp|Bs)i4f z+=~gO+z5&Y>D>4WoKusJ1BXHR0h=)bgXRb_BDRMDN3R#o7v0u*>=3r;|D-i60)O?P zj+4O%gv}s&%ACa}-Y^3%3p_b~<<HU9djcK#k<7E9F4{FR7Elzqc zBkjEH8_yLjRGBpTrjMhDY=mmvF1KY@400!#lvB$yypF>IDz$cx7WQ3-)5t9K2F$PG z@@H_e{)^M3O(O>ikyKA2Rvr5T0yT$|7V>_N)BN)QQ>dGc;NT*KF2|8+yT?gsx!~t) z{F^`|XTS!gWOl&7X6BcPD; z78f@+zs?vLx3 zCUtA5e(EvmH-QEPlL|IcP3W5 z4(Ey{E>Py-&HbKlOrd<&eL&>?wB5YBEBsM;eTsj*$m7mp{&`?0eOR@+At7$%dOhEB zwQRvPcXx-~(Xn=K3H{5#Lc#+#ToNe6n+6DP4DU)3POkAg%u2&;A?=VVgTCwO%3s1k z|6Q%ud@Xrg$oPB));d~KiQ$TQF_M$VdY4?gFm`CM$zWD@SZ$DIgK_@>URFtYbAjd1-+vD<{ z`+N15^07sGyWzin3NTb{Y`^HU1$KXL;QlO5Fke_znw;bn2q=UbE`{ai+4VJ~hgt8B z#~S_g=RVhV`jdAhh28nG{rXDB0{}e}8Y=^V(J-6WZ+|`td}0NEj-G<-dOc5*?6JPS zv(K}fK0rrSa9lvX6A(9Uzdu$GS=_-vXZBp|px>Ncye`n7LXYom{Lnd|c1J$Ff%XSS zJkblDoGOI&K15)9(E7A0gU}2G71|4V@*s?(2Vn*qGHwOkn6A<76;41pkZwnEIlAvdH@T=A5zlu7&C~ICtNI z^4z@l$u{e5cz<+Wt>Cc1GwbsUpyHAR3dTH;LfK`)@G*w2BgR93T&|-pP;Kk z-csV;=ZrCuA>l6t-=8DnHwc?yqub+xS5dqXa5Jc(@iBq-ZL!gj0)p}flAzIR#vdOV z8uNez1Ra50haL_IClxFr5gB8bE_EUpx(thj8zU=!V`n2Ae(A&aGd1yYX>C^~9_JVJ z8y1(>oAwwiiAhmvGM?xR`CFczMD$5)o}T;@iG8+zeu$?_+YyTXzZ*c`*d z60$;u}B+7oMGz|0=xw!-c9xu7M1gtno!NHVdT4=!;1o?4#2=4f!_`ysBueia; ztd1wsU^1!GczrT513`g>GBSY!Z$~gOJ(IkMGBug?+0!x7OaxtS($WM6cLv6HO=gHs zx07am+K9*Yj%J|n*4HK`c>UL-Miyb>r$Uzk48ZOd&dtkUv^7pn@Cr7U&dwAiI&{tl zbW>Ou<;PdLSuBDR*de39lh3lc%}o=NNzl*GGZPdj$gwjs%ciPcLIG}%2zgLv1-p*# zvlCWauq+c(iwiz^>1}VuvK>@vrH=vx6$OTc@S2?}|c6CP>`D_u(|3JM&AGASAr&o2&-Ql^PJf3VsdQE<2) zwazThdY6LY$L69^p$3Y=&Pi}|@M0(gWRE=*4F<5E09j8-L7_MINJF92hryBdpoU%_ zTy{jm?mF5T4YhbpKr9Unbae?ujSb{$KowODa+^s>t=)Q27kCQBN+hJEHtQQ=X;N*X zCk0i>Rhzml5n6BC2dE7fa1h1q{cg2>f1E;Egxi)%sfCs)Q7mC2iJwtKA;WXkQ>dZe z`p=Y7L$_#YM_6G)%g$M*LLufiRf+rtz)KAckGosiRBULq{&j#bY_4yQA+*7A{BRXC zR=9z_BN`4A(t^sW)Fyy>n6b^+uAg(8BtqWV4(-wSyw@OwkUkC!NE9WueIT! zNtv?2^gHAyD)U;~z%GJuD-yuPR+FYE6;)E}ei}#@t}X0%jW(vP1*A?)rllQ|hFWee z0}xOS=B{wGQ4glQL*T7-T&B3YkV)59bY@LjR~NQ4NC{V$=6q@bSCeKPNwm8exQV4@ zVk_S9wZ(fN{VsOn-J>VuLukCbqQYt(`_v;5V{N^?H0^IQgx<43xw_tbQ9(TX4zE{y zK6{eB=kwio*ZMvB4%z`i`})?469?v+!^B@-k~6Kw-(R~-+sI#E(d@a(UtjSP@NnR~ zO83ncuycFP35C{FtK8GwQY@}>3KL8W%8m}}5M-K)r^-S{2Lb@S4;`VY-MFVql5M4> zDk+m=*dIDek$_pd4(+C6;bEG{(N#=NH6h z(fc9c)^}pC735X+rm+kbcR;9MU_spLSyjVK}nCDPtc}^2cP5PhM`UKQgK(!h`@00or9a~D(X^j^mwr=Fu03M@bNhPjLS{P zcS8ZuZO6kzIwr=(gq!Sp*H_}uKNsQRJ4u@w^)T|Vxb(Z{7#`L+qS$jv6gC;>@M{mkGAgH!}FM;+D{*tmdpBvfp zIgQ1H+;(HTgqJiGZow9%U2O=`_l8|x&gBHzLQBx-8YodM=yHMZqMqjF_{k)naYRk@ zm>{(D=uKyOVDd#lA?!I?QXDq4V0pSqJ<1HcX1Q#LD>3a0+0#6}UK5FkUa>B8;f1)! zFTuMjRnAAkUGuCP-*`~Yl&dCs~ zDT5 z5gls)WGHJ&%%&r$yJxWoAQa^T6w^o%$Rk);vmlBDP!&EQJdJ8gtQmiQMF9^RzYFB? z+QP?(BjiVIEErKxhih=!4G#lsFZhB&HgewhHutdUMJ!69tMb-40|P%-8=Bu22{t^m zQUh!3-V+nD2!<~&hGKgUMgt8E-304;VB7hJ->+omjCmkkmmMSfdr`Bk+a7JH`xt?s z)>!tJAv=QIq19baDx_&jxtaP-9a{dTp7&yOe3GJ~at(uKfFLm_LdO&iarx0xBF(-m zX>Od(8YE6_8wAyYY|Y!b~G8@lFb7eojHSbiaZnu-Q7+`YJI8- zI7Ac=9SI^gIjsi7w4&w^bxEJ+N_(4A*0Vk+7P`Z<`VAYn%L#26#;PxNvo$}bT6B&A z$hcETV%MZIKV2O}8;j1L<H^=KZH z2W{xmDgi2Qkc9(xJOj=p>=o4zn!M+^ z!*v&!27B)GC>{ITo|7Ii44SvBLmx>imy`}9r4jv*K&bk8$t=%wiZb!|L|qj#%JCQ);ySzv_3$UXzmi#CT`j`%*_;X*l8Pcch2i;wueDFX8mth0U68L^j=OK;jPL|&$qJdq-LLlJ5le7>#|ivxMt~)DvYEp8ThL5c{M7fj9 zWgDwH0x6N$qw~c9h*AEBX+Rj`?w~8m^>H~JLkQb@V1Okn7_0ia?wxa&>JN!QvMYs# z$upyv!?csN5OJ zM!YC4vfA0=<`x{r7YQF2dx0N#J6tJvUf^o*zDJ@f5ZeOY^P9Yev@ph#WH6V`c4o!k z4y5-C2h{KpziZp>u{UVcmy)5n>!t~%WZOIddFEC^(`Q5JVS<< z3H&-c{h}PJ?ofPGX|{3Lz=)5=e@}8sqrD-Ji-c3vk2Y-;P#Ku;6;dj z8de0Js=TvR8mmDn7I+x>>o3pqTNo{71<5ii`H^ohid)Uc>5Q|2B zlO)HOV;HxkXyi{Xctsl^Q<81B>CoT6@T##%8QCmFb)`0%P@wU&O8a@dQB-$)tr)7O zEJ1cd>sC#{#7*q=3!S6px!&g8>{9Jj0+}v9+{cHWR?8ewd#K$V)xMYzmHsLrsqQ>> zy6X9HE6VTvgZ!HgNMFfhK(CJC#khD|Sp>5#r0J&jVG~+Q^jszC(Am}|fY-ccc_+uK z10s+-##dC=@|}*e3MNB_44k*Vo4?0)Vz-|wQ1Zg=R)2-T4O<3}R2nd)2U$N#0O6+` zF+@6|m`JkGbDZm78BJyFOTjSH!qpje1*~dC^y%SUwuX6Ud+gIWb6c3D1Sel$YC`*JGVznM4;BiET6nU#h8F! zcL(Ms>P|lt=Sv(JIH%mOnohe(^E`!iD}kgDm8!O}Pq4CsBt@$zh%!Qw^PRYaI7Z?s zZNFyU6BBWzYVJ~7CNyt4_L8a7sD=sM7iVb~Ux}(6(t~2+5w4h@T*%A;vktFm3-gmI&Vgs9 z*sy0#QEk<=II#Slbo)eP|3dD|*ss6V2(oLuvanFc7;dzJPp0h?R!~DVsx!*ztVm3c&RcvO;7*s}V;BrTUNeqM9Ny zFm2)E^aRSQ8@Z|(|HE9;=)O3WRFbE8+zi^-uemH{~0+rM&2TwAOhSxSzo zSPVG|(;Ual^9Bk|t8rKeoLio)h)7#pu}Te0;OdIZOpYb$luk^Gj*eE2g&wM0@!VDk zoL!zTj89y=m=$QKAWck3y@XH~OVjhOt~Ol!7|qRepUw~*v`dUS+AFxZF+$kdfq6^P z*eZB!)ZtU#L3ENX-)Y)%e5e_mR(0Hb-W1A&@2w#@Y362vLf;Ww;qzeS(d`2AGtU(nt#0R)?QqN__Xp`xR7S6X4!-Oj9Z z8tdum%tJ`;3^d1iU?RGelM(Q2qU{GFy6|9IGY~x_NaFVT1@YeT)Vx#-dCI@_tw+jH zRL!wm!ytm2AZ}m{PMt*90O2d=8zx)4X--Gb@cva8Y^)OFl6lSe!;=2RjE5UTUe=kX zH$6=1y2wt~;7Iwx20;u&`J3QK$zl-_)F|DZ$s!t)CK;^=EPv8S8 z2)HQ|JT3d?iWJN&7qx-9RNPn!`y1Yt2IZ0`CWyxglb_cO6mvw`;#IWu#IeP$pzO%k zXooFQv2%a_4lrT>|5F8p5}3wyg)k$7=9^@Lj+t}AITUPHhRY@v#2jaYrmpqLXwGA~kUQjx z&01mHJp3CV2Ct(-Ak|F$wnr0QzE%jin=t;I$Tm zk%zHJy{o-3l)0{hpM@eYM3c&ju959lSy^R6r*9AB)F4AMheZTeSmR-%YE%N|L)5@; zvF^?|!@9B=cw6n90+o>vDD+f3ZA4566gX5Ak+*nj0^sRlO=>2KaB2PmU&ss} zTSQpjdg?I4%YY6qGW2R}CB4_ATlZ8erruYPspJ4f^y%eTPSu$u-FcD-d&4hvuCr3E z?<#}=^;Zo{r?jFuo}zM;(mzohEtgRjUvQ*+!Cepynug>J_H!;Xg{gY!wd3U3d zzHk~da)EdA#KehI7by{SQtB$T>qLcimfB=u)8fJ9H_lAGY}k?5SOSRnLwbi*4B0;J z&3d;8=~Tn?cRS+Jb_|jH^s!vOG2v`&b+X1fKAwoBH$7%1Ryw_{g zt8%9{!Rw)^>!4JJi8okRDMzBWP|KG2Q-d7Kj-%ucAMyaiQ!l~EZ9eFde;2lKxY zX%9WfU)3ih#Pua_3a;YjpRbrz<02%t{H^Hmw@LMoWAgVADH+o8S5TQ;QU|PiSYnCD z#9H2}Wc(eb!uJF84H?>}+yaNUdpRwE70hd(zreaffgPBjORA!tOkm|<(|>g)U$BQ# zYHALXC^J5@2G6~UtE^1m@blMeiqoLxD{QdDpnU9>DOg#hHu;aScbKJ?3GBR_D@i9L zo|L;QjH1m&%ge+L&-xWr;8NcDT`#9+ZUhKc6^Rr_p$G)Xuxs#6ZXOm+RaGS{{vjPl zks(*D+lP`zK^8@XLYJE&q}AxA8e~?=1$&XPk+5gZNI7GY%4hX{IEY=O#(&BQM{+yc zNWD*hNS*AEuCY%`1M`eB@Q&etrP~=g%Rs3m0Fir(!{oa)2xQu!@oP zM|ef2qVY)yiGKU-6!yMGASmAMN?a^?ir?#QZWqh9OUH?wv}CI+oIaPiw7!j@F4RGo z#=>Lp$aIVpVdw>7ag?ZP7=>}~;yXroDePR4dwA^3g3xg;{7sh+E!?#EKtqm>7dJ&g zj)2d*BP7Si%i|@A5>f*SiYS5P>6R1#UxgS_oBXHms!Rw?UuSzR3ocP(PESC==~TmR z7SfOfO`*F}EuL-qA&1?9$y*IPvxaDi^yH^hQGEgQ<1ZeDiVwz|vpntOuP0P(Bz6ZF z!;La*gQYR-%FA-79SP1gD6WO{Ua%`HaIoPo`-zB#_YiI`Kauwzn=@VTB6rbIP`FKa zsM!5r!gxF-Zf(@7fi{U>91sxqGW+^Y`9dxdx+BcV8}N zB5CDS5!<;8Wkr+?+61+LgeWSDuxjrMc=fc)^S{1wb1{bY;2F7TK5npQxUZIzcMzAf zp37jyDRo_L702}QG-~)a^YFOz6M)w$K3ai+8Y`LpqqgPb;-BX|S%04-l|wUZL^`SQe=t zhlg?)Z|otu^?Lirh=;lu1WF*;L$CM>=ELWpGeR+Vx(Soi0_3aSJ*5XlFOewwx@* zG6>r$+p^{l7O3r~!WSVUYqBKP8-p=yVrr`?RMa9P_XHU>CXvh5c4^^Hdnvn{8=zpM z><#_v&eHDVy$};BgYv4v`YW?83+dv*Hp9aPDcTNZ%uM5}5F!m6TuLAM%Iz?{`u{ z<|H__4VfiOT3VAAQYW}tk|k!dJB>9sD+KL3wPAEL3Cu-(6t4#VFbW6?K5~!ylXHyR z%F;d9oUN!=TsC}(RDd;WH#ousmCCy~V99N4nl^1xuDf_#8iOEL z{P}~SxAz*H(Jnw4uk5)?yqxteSnE9&w^dw>X3PvRyt(#Hlcyyd9?G4p+)Tz^mMK3N zZw|ocEDDIt>blH2&VSCn8(yP@zEGYI*x|7U+cuy;QY&rS00Cv=xXbK+$K*Nu1`goQ z3NL3_J^{?Q#{d9NKoC%vBd<}w5TM_~@$ zDn98;Jwm68^Pm7Bo!{Y)qPHefyknON0Tzj25|^hAYxH`!O2a7Um=FrebHxIw*+RVB zRPTwFUf^h-&rQZ8kmO2Eyzln=!BPms8M}W*8Ss%#tatS`2E*q2jT%e6_-1!%2@RnO#tXob4%;+Q zHVk_W%E^x0ig6;Fn&sg}AT*7ST;pzEHn;YhMyiD>`{5lKwRYHdf!s|Yc8x{{)fPel zLNJ#&dNQfKC$! zCk&bT(vJ#G$gq)$?|ZF|%D222!WFn~Z$25J1l-FWsH?I3nC2P9|H#}(13OOAjvrW& z@{m_~MaxsvLOh;tS#J4jtmLZ9FYaJ3WV7ngcXn`MzMl@>h5Vd5iaE8ZCby3dfKf!)0i9Mo>-WVw7mJ zW3QkP2c~1NFiFgZXM%DI`lVI+JC`z$Y_vJ(73-Naat7_sD_GV`>za?8NRtHEwYvNL zQww+M1zBAM{oqOF;#H!s{G>j)d%IPG>Qik7xp)hMm9#=9j|KEI$1x6&JYx}^@Mx`8 zAT8w3SmLfs*+H@RG=MbApj{Cj!YC)qqqHT(_~~q8 zRixKiL@c5`ywU1jEqEvkjgN1|LcaS+Wg-d%+zrV&mfQ70110Q&I*Lv{V-bbFcL!H? z5r8k$FdM%*!pX$Pa--D9F9lIAz46K6pycW%J(xA(WkRH87_>p(wZdhM_;XDBncpe6 zV;7`zZYZS8I7)PeCbSH&rtJfG^fbC!W?YnJ9JE@q$C@cVd<5a^HI%x0hDH_)KyCI- zkT#8zuI4*;n^eo2hE13aAaOTFyt~Gz)`_Ovdi?@k!zv9106M$|*1*QLI0Ue70L4S$ z4DRm$Z~`_U1p}o@<^#6(SoRem!umMAGWGzVq0(Vs3PGm?4_gnE75Yp$m{o#fxM+mA zCaYTnW!1Y)43QWJi4km-my+-ewc>_T7rof1yjwP=Pf4O#)jgD#22n~vJXD#ETP%w9G8Jwoga^$m-7)8V8mW}`mXYQsE&cebXje@ zWVW*e4x>6qp#AxubJS%>ZL>(EW`2Uj1Sx{Pen0Au_FL|uhmv$&M@Va!h zL;cjbUb*9mH%=Uwk{wU7m zx~hNfxMYsNcK;e?p;}}SDn5tDZ zRaI40RaFL6s%i+T&CD4U0Du7iHvo+*`g_QBfsSc5g4|^3_dz`d6Cy5n_W1RpWX-aETmqygS(>UkGm`1jC%ky? zr<9{%f2AVGa2TPt;TPgZ80X1|j5GwYX?B zx#KhPk&1bhNf+)gU%TTIRABoghC#29VT$`XkZvdkdKztFnyv#akX?kN^isLM> zZK)ZQaEzrzX{Ig3VE7kGM`c5kmtiOUNfDF&pCTlDZsu*FRYigOJWI|HQD)r21K^-n ziRki^Hc5dqMH# z=t42wX00V7IEyX%?AmYHqGM5`8%lq~G$&(rvPMHr|woxha_$l6#N%4Reur)|y zeW5=OE63#QMAz@YcR*Jz?jIrKAUG-~adL#uZS@`98q&B;&bDgh;Z-zAm;i6k zR9)~+wLHbqICxVzMh|!#a`Q53!FckUwDP1!j)Tnb8JAxa5biG%$ z^5sL;M{E`Fu$kq#TlBG${Aj7qm4s)Wo}yh^y2IA5IZmx4w;qnAF@^k$b3vr@#;1^ zd<_SRTwXuV3oius0#SKaV;++${mb^pT(cI6E7OF((|)NG?WnoD^p$=kt6|2n*_zdc zcE`+%hYnb?#7~7$KS?~vUCpbsY20a(&_0XBua!pQf{pJbOiRSgP#(!b(PQ&MXg43w zQh%RoKgC_mUB%GQ7d8>{nd95=~8%fh+O?HePjH#^$(o^g@^v+i|JerG=z;N>|z z((8t^tf2GMoEy4u;6uy&I;_JrxG4&y8=M?Qak?DrVOKlg88-^7^m6wQ3aw|H>=|?u z5Hd;r9zuAw4|xfWPZBXsrq2(Gb{Zf8OWE%_mbZiBuClljlS5b;9UEPYBQ`>UH41K7 zbkyDf(h6wOz8BpemX!g18PIrC?jQJp`{3Q3#h}5#WDFib7_y?_5*vRcvH&E}7x;X# z76T5|Oh20rL2z`3m_B9-+}f2lu^q zZDV~ar*L0+HyO=C)Uuxdvk$M0EGI>6dhYJgIJ(4HMifgH-o@X;r8SsFfc$(telyhy ziy~^ZNi!L?Vp)wojK(xEPok4t{UQtH$$n_A6vOh9V~h(%c%Tu92U1gZm?0rlGRc#` z{8gGmy-We0w26fmmq>JUU^@E6EKi*T9H~6VYjaj|%OfuT?;V$2-3ST<=q1+ybXF;39~ms7<=23 zvOv3?S+&{njFI~3CDuLH(X}QjAB-cS=1B*(O*t&HmH6N(JlJAp^#OU_3$PR+9{KL$PK^Ej#nk}S&d zWtn=$R1BgC64vzrxDlyS29&^QY@?QFvOiAA!_O6lQD*yQcGH`Lr^`xbhKBMm@?Qt@ zhtpLSU1q+lU6wfJTYd6I8LfW%3~9<w;36%J6GiTe7L#9JC#- z;fvqY2+eMVTeJ%*@llmO5kW_$7p6hl?L8g!6XmE+->pmco_fwSeceQ+N-I&U8n&ZZ z*{(3Rh+oL93KIxmVmBJTb||{wH+O8WcN68d#{S0vf48@1HUel^6{W92Wa6&$lpDIH zHhSB=Jm&-eW4^wCi8x5iygWoKSsI8PscwjhJ2t3-vVhh+qNCQ2iZrlnk#w}IBJJbR z%z-EITA60&YnI0bwu9-Q)i&v)Rr+*Pb%(Vs)|(dOaCj#iyYMx80gS-4q~A&%^mUho z@ftp6vj@*Et^l*h>Mo8ev+4scj|)=_J}-Aw8JCZrTfM5{@H@W?ocMAp5ldX*I--$L z!lm-eYgbvSgKO&#;k+fT5oKwG$Pw9<>tUyndpOpbhx;v{VCF$Lg#3`?pe;s6xx37a}s!2VnlL?)?_u(mddP_eLfYiDJ#@G7LG?vSxI zIJ-fu{_)RII%9H3wI{LR{zYOWG2Uuc7a8PW@&9h&D#WxaDw?9~#I9?ZTcZ@WZ}Hpm4(i?7P5=5J(AiWa6C5+C?XU~vwL0%I=hWRiaNsyCFYZ! zLi|gLp9>^6OL~?&D!n!_#;FVsy>O!}QnS0jTOJtg8mpTUaC~;(opF%34@DT9pm^E4 z_n%bG>{Xyo%95{?-9^-{?ZZV$dhKTCmz;hHcZo@C&e?uiDbFS}G)$cG-o+@f_{5(5 zuvuXmFW=;3(W;!su90r`%U2{jzvAm=Q?;{yF*MJo9ep!V-Fmg>REog9{n9Ypm+XzHB451u99_lCvL8Sdx*dP=_-=Hm$K?A#T=*T z>ngV+RN;p=weH*q)gVfC)39@X8*oWXV+GKo_scRJvdptI1Safg6Fp zR&t>oQ@>V{y&oaJR<7J3<;YgfeIg;lOh7*_#A~rGR`FQ8N+>iqCmdI+EFP#X%STc2N}1ZbIj&P{XXY2HK|FVm@+j* zFm*F{&fgCA^FBX<7&&#hR}Fg5-9+Z^O?&+v5}aBlTu2g{j%OK2OGG3HI!wRjTDZ+s zzeZ@W#|0rEW5M6DfUc$|+a z&^N(!7rIcv!5C+b=#4xsu{DZ_LCqI@mGD!U&wPYKexSr%@PAyO^v2MF)t47xh1pAT z9iG|^;L#V~I>lOMj4p^GOh+?cS|g)tI%HNP#S1g#{H6vJ-26p|5lwuizKLZ@NC~vt zgocU9%9TN zMb@ejQKiAY+t`k-9!T{9hkw#^H{~3qyjL>QqmOjfPBQM(<$y?y9x>%o;#yl=0;s56 ziD~s{yA0)14Jy^ouu~)Xubo%9lu@VG!6_*hLGl@@8U#L>`Vdv%vLhrTWM?=uN$I_wr(5vOt)KE~>)xZfDsgfO|ZRl#44$;z8G1!v4XQv~W z^wkW3)Z%D39D1sCcN`AA)m&K)+8oO8%BTAAl&6DE`n*H06Ppc9MCwv|qR`dn_#%}9 zwul6uCnMs9a>u{sF@pFWuu>;s$P?>;Rm;{(wi)1%2d8Nu`DT?Mt&_1@81q zOM->o{!6)=^+p9ut|z(!rq=od64>YzjxYAa&ZVdf6V6r9UO@{(Qz;pDFD=7*d=}hRJHMb zhn!S3afgVUTt$J1kfdC#>5!SEToqB7r=+f;jSMvZfHECB7AT>8>S1~|0{AuZ%1Iyb`A$b1MU4uxoYG64obRe;|>r? zsg8iK22jYSrU!mT;KD#Tz#REM%!~xU0Jm;#76~T$`yyfY2|$-f5|aKPVu_VN1?1Q7 z*$mc~{uj^J0I;yM{{bz!_dUUs6D4Fo0M!+ysK7#Ybtg!|#5FdFisfoQy8Si#vomz< z=(j-t0D>QrXY?$9`@jA%zt6ujar@8y*5G#l_J953|C#A$Z;;&npK!v!SARhX3B%<5 z>mRg!_meq_s{e$3z@JP%iz0rWkG1&jy=3A;$#=^C@2%U}XW#twhTjNlzx}*<_7lAQ zKf>&9V7;`T>___+O+O>Ni}s&=&3~Ww-t1-J)sHvU@4ink_u0Um`4`{5o3$sn!tcR; z{S_ncS0`JUg=Cm>@Uzdt$JM#nnu&}#LH}2SN8;gb?)E$H-k0}2LJ}7Dg?(Y4cbgyJ z-)Se|-)-A<6`7gK<43T}tj+td+xrm9WWQ1m+Q%EeyS&g7E!PRx&rLo&n*svPuy~k8 zCZP12|9!)KYB927@=F*%0OsbmSYl%5bU*xBf9&@Rj?d?VEYH>nWAJ94tRoY4`k&s{ z?Ffb*An)gf_n=AT)+81|qx;GF+ahP*ALvcqGX3fg?Eey_?@dg*;DaX(`|Q7UM0x15 zfrnFAzdx({>>qyz+GqT~KM3$=%6I!_zZu@G`pe4Az%{!o_s;))Cwud5tWVI}+pVtA z(%Tt6zpMRNdT$q6`kUza=~>?B-f#Kv`1jxRUBg@UpZ(9MU2|{O-(&sb-@E76&*NuP zz5e!}|7Uw!F7J5?>E;!zou*a z&5!+me||qUpV@c#G5+S>U;pmAThCAT_g{WfKlXQZZ`lUeoV%Igh^ z2Ma(j#KD?6D;BgEfdoAYLJc&BpTYl8u{oPTHd@0*yW?z!_4G;-lfh>* z(H4*o?WK>rtVGI_rS>Gz(D}$jZj%~n6@PsEbbirT2Ni5jScs#qL5B|?o2Iq+$;QqvXQrunVSfVQH}>CU2+?qDYHaYouB}qwSB0pO^K_ zPdl@-+c|DSwM$Doy^cM#t5dZ%TR*eQLA4HIO=@ZtzbHkwLvpt{dPlTlNWrh!@`%wm zK7uuTZ;^QHSQi;*76-oeJi=kGsUlNuF=cLMXbT!VhtDZBKHAb0fm##3)pOm^%aXqF zc?FE+EwN+*eo+8`QD!?=m|lplo6$Y9;3pEbU{1E+_ZE_VX^?NL;DVcZ0Ith*Nw0O} z4Z(y7pKQ|;LHW*M$ck;^Pxbm!oDSh9P{OVt$uQTv#z00qwo(Ypw&#{!k- z5G&KgGqFE0veVoreUz%9wVO>x{+4?_L7pB~o!zZSxq02Wb&7Ln)=k&yfrRCe#6sFd zyI*)9ML*OqR!-=Tjcy0{>(x=AxbC-PmACVD;{5m+Sq^XXhFkrzh4uA25L2@S%pH~C z{ku5VUufYg>K*x-aL(?6$CPxv|4B-FkmrIq%tQ3_(D;RL@T@HA0ehNug#cJDX{vM`|IO14ErOJ`)sRF+@c0eDP- z5*e-7Glb5u%_Q|>3$hD@djA}%ZzXjUI6*(SH#iT9>=bi%IyK4ZhA+DlkhKmQg$&T~ z92GNq)Fv^J53p0mbmLbc4s53$a0@=fY#@&E_M*FEPujOFKI)GPAQFhrjU>JI1fF za157+|87j>?tXbAzDUMEQJaZqS7pE#kNKB8$wuu4ruEX0mR)2 z)nFf*dN#!$b5qJ5-*?2mV=s?cs=+73@khj8ELTVoFvX0K^=r}mhW}3N?L`~PzRu1y zOaVlD#0&hiSO4;I&*2Ct$XF_N=E@-m0OKeSLjBC_?7LYPsZU$+hPk1bjk#g8kssk| zCq0M}LWYFm=z1hT0e1^58I^ZLW%g)$_F32lSrG1xVEcw#2BfygPcCTD;^2NSCS(`A z?@0Lmtz9{4e(BF@-s9mD`AsF3*Nd%eLr^Z4r@j2%QLiT@NIUF{&z62dq(e?;lAiT# zSz{Cs;yb|TQXzpKfji42jsRzyT}183!+fr+-^g2(JnqH10;Od|NUyq&fn&$cbk^m} z9Wlo**!mk{`Mo<10{gzB;zbJjrD&tjP**BqVPJeWqq56$nZ!7qH}%u>SM5sMMykGn zmH6yU_x;&|fY@!-G4Rzil_kV_{5UOt6+Qgc$pTPU>FJqWZpqS@dV&B6V?Wlpkd7@< zP%Ltf5a4`gP{(eut@$8C(`{gG%_=~w6@(SQSdO@{Hio9)`RkTf;ybhP8@bE!BpzrhMOLzz5~6kp<}!XlovT(o-uRHYV&L5$Gv;@}>R1O_#BJMqZ1cHxoaq=t_bqFr1S zo-a4x6{B^^F3f#T;mRsp1QOFFZt%0yGN-UYpD-DSh=s@I0MxIO0=u6AYJeDIDsE`x z&9%-%X~dLL&}azgTopJ8?0FqgWA5bj7b?!H`SG9($I%7gL8vHieu2KBL`O%0Pkuk1 zn0$QaUHyaZ-1Pt+q=9ST_ra9O%g4vU56NZ5h@T8&=AIJ&{%|>7NAHB0pZ)#LETZ!N ze=;ENs`3BU60frV|F{C(5DVfYqRY9M@J!agSPb$Gt|z(vadPp)lUjJf_~tx=g%I~d zoZt(wqv~@D3nM+$yZHTtnMc0(v4k1GP%Z;mSStLCTY}H+$KN12aIZClkUmY1bpwcC zodWqmpz89;%Ag>6#mZs(dJDS-!I8jGoCB0%LtH1Y12UZ=F#?U$HW(Q~gPH7_8v{c0 zi!s4G1)XIBBNYY3&_~6s_oETN_zHr6BYGqSb7XoFf*b~kn0L^ENnASFgaHU;l)WM~ z2q>UTDe4bHGw)}Jh)`^4!H5u|p;tr%mi*D! zbsKN@qcS^if^xDGFG2#@$3lLBaYkVOs7_0`0HBSR)(|+yHMJ?wkItouP@B-L4mB`P z9~8)h4k@X;-VOkX5(8!+Ad)hw{~*_HuzuHPLFQ}g7H z28Dt=s^2s_HiOAvegfF8{mHCni@aXR;sozR;Rqv5SwfB?^O#||)`>hN?$s91um1Sjm#+Cgg zlBO!_>oUD<;^Eij<*G8+*yUxq2H8C(lji>n6Rk|L#Wgm}%+=*LILyrSj5)eYOq#p) z%qSAPm&}5r3^|Bxw6 zX-(7%45_JGpA7LRX!I1WOhc*qh7L|?Y0YYVr&QFWv4*3Ql+RZl)5$4>aWrI_T9dV8 zWGd>`_+(|u!W$1fNXJwg)S=!qTGN$vbt>w%!gV5VRj0=_Qq@W}>2hAQfo zxQ2wv%G$j_MwxDr>TBN9w2By4j|xJL@6pNmEWKn!V4_)*7i&0#;RUn#G{iQ}q+f z0aga^@`PB30EWH+oCQzk-fKf#HheOl|F(3zt*J^ybogapcW>2ctZiywWjso1b&%zi zWpZw1tpVwJb*+1!+i}Fo$~QB)5K#%B2pG2Yihtb0L+eB3jzasZRppH8>&{iiM*hgJ zI@xNC&TgGl>q!<7!iF02DT+b1Nm zSA9c1$+M&U)tf$OV!>^G^;-pO&A@V@qMg-_lkDNP_aN~Gt+n+n zcgB=c+$)a64_@4|hm;hvev5U2Rz}Utei??Mew; zYn%HCU^?sC8q?|8soN z$RujpzI_4zsJHios;+8vb^SgddcN+Ei7%M^wvqWXWwy7I&z9S_^sNEWIhT~b4PCNt ztQ6xld~e?b6YBMd-`=;o*5Cep2sA=zhMiqUaQg(-w#g9&?5x$`dcDjQ(?_PAG7H<# zO}q=gIP#xCmrZbk=U04i6vbZARuuaX7I3glgFyyT61=`WRp4QbhST=pD1B3g#KN^U z?}H{6hNs_PNrr>jF=nHMX&W-(EX};0-&mCo&%UxkA;$kseu3%u8p943l-NX|uhV3` z0ASpVEL-ouZC26Eg|B;aA_CZYJLOOsY+C>(cl6W>?8g~pZ`|Bi>*9dn0JlAYQ80+W@6-P975Uy0cl1#MZm zsUTyPkQ<2}FPD~GGwS=6eARE>I+d7jwb$U5nTe@VGhcTdT{8!feSJ4n?whVc%m|~t z`Y1guYE47K9d1K~nAscYhnpSST}+Kx;fR);ouzzTDF;ir)5oHnpEo!1nVt<)aMRb% z{f>4ub9U~8W=~Xm?qt6CkAxOgb#BXL-)(kHUWbQvW^Vz25Y3G&YJ%t1IhV=9+uZHXA=*?Sey!5oFEWn6peq3=xBLDwdBaz4d zas!l*z4N zq1oeY6bdX_-fkm%yY-w^J#D|;N-yZFjwx#i&n-8;i4_U=^_81l0&h1Cxb|%~o5NcO z$GZ9&>>}Ab-Wp;i_=TMUxS_-F*Oc$5~q1*lwKQ;%-w{*Uiq?ZH}tAzEtk8DfRDe=D$$v-M7D!%@ZJxhtp+>1uf0fz;y9?aBjZH1V++J!bsuGKPi&7tZFcFA>0o1w zi>&F8oe%ZkaKPx!QE_A=O#U&U(m4=pr0S#kVL5=+yZJcd1>ox5MMF>P-cd8&?2xd@%k1pX?#<8a?HxJM`R#Tq-28RBJ7gey?Dlq* zF;~;|ZxeUkUruva;9zqBcgWaub$9po5bYWf4+SUl=-^%Ygo0MeaB{tLA77mpRu)F& z<-}a{i@}rUriB81cs}O;!%(34l0r`=g{55c1XD`sG~ z_^9bxs1n5xSu3P?l%7?=StJ}~lx@|?X$tdpSv(iaHX~lHez9~p6X1Sjl>A2aMjK|4 zX5nA+&c8QxI4{i9-pH6%s7WCY$y4^eNu*51L2B7aOjyoI3VqifK<8FxYnLZS=`r z`&0(;yq(61)wP&9(KgvktUPOZ`rE};W9KFvn5f{WI`H#r^I-?9Xl3%W z950Tlx}2}@T?cPB${0BT1Sc;nYl5swZATg5!VXLPhRCJitk|cXn%v4wFY0qC7Ud|1 z;UU%o3M9uLyn~D!4qzj=^ zznRJ?TcpPe!6_4;anc>_){pRUPob}?5EW^V_>3uv#*pfdF@boaT1Q|(D*TzWt9DtX z&Kl7yx!b-NAteGGT_zQu7>1*9Z29*r3k#*2rY1{p*kE?5S*G#*RBkE$0h`&$^v80O z$EdOKQ_xHfjbF1#Vmi8OJR51rJLA1PJt`tMpK8mKm`dELy>D)f?kJCqInc;`vYwfc zoQxQ^9nck%)a_56Oi{7YU{S`PQZcAvr{rW(6R;`t?)xeX*%TA-3OzZE6%CCF5PFQ> z2KJ7oR#gZ3Q(o5?=!jTdqH21E? ztWwrN@B2l~7;AzAjmr2vUI^xh6C4iAti2{h?W$3n-qB0VYURd`<(GqtEN))5&Tdv^ zn1ijx&lloAm$vq#o3r#!7Uw;m-aXBx#+ePHQSQZ{Tu!QJ){gh>UYkSPjmi!O{Egv6 z=-p(B?&wW^g*eS=gMRmhz8*Oy8>ifr=Z+X4;&PtAaAo8m{`w+mKBvXd6Pbbr2V^M>POMK7$~86tW?9G>>eT!Mp9&1C=tdf}ZaYyvo~4?gH0csGnp~ zF?K?$V%j*C(H?2fz^B`e3C!{B5jy&Mub?RYqg6hBQlaAAhs1lh%gA~zVQQ9cwMUpQ zaMPqnmh>ZYpK61c+fYKy>92e!Cs-L+AM${Cl31I*%B=1T`Zccz-ow7ynQ}SY$2I-{ zjW%pDr!k+Iq+iB|*TJWWClh`$AAfFoD-QzZKS+cxM?>+1mU)I-DK^@H;n7A%iIy7> zQV{&5({O8v%0vhq)+sptNP41G)`ca+UoAx(DrQsBLT9iNl0TCs+q8#BF3^;BlF%KH zvoiYUcj|_kPYfhzVYb*bzKGMvdsdPqxcA(VC#r1hdgJwZnxcx8(sUBtjZxE6RXn=kc}C$DrvP^Jky ztj=m@IVPh`=f_QndY@6Uo?FY!to{?r7kMt#Q=2ub=tSiXQ@e01r2YoEzoWY^0_(ST zmc!c*QJ5WJ=1xwVIJu)umVzmr*`RSwBz`ubCmR-`P1eFG5i< zM>Dc58qe*i{i?_cOqGO6PbO{Dk)=1MQeezz!^vZV+N@%}%5Kl=LN}<- z=9BcKF|=v9D|H2TP}Iq)s4-^l*=Bm2)F~%r0oGLmPQvU{XU~wP`oihp{a#lQzSCx4 zzv~WSEqDQ`i^d?bu-8LMPo7WBMCKYPfX}vzjETB7eeG{y8PiXgCAekJpn%hQzX{v< zCUQUZBW-fvS9mIMS* z)0vEZ1pxn+0OIH`ya1o@_`AEe+x6*x4v^k6I|=))!Y{~w{{jNgZ=a;!sQtUY|Nj&~ zf9v|u>Ax=jMc-KzKbE90rj1Yfboz%C^>23n{EH{TsrAfn8zXI@qubkYv87<&qinxr zPD1SWw?9Dq0Vwig>AzyX*nMXmTxe)__uRs7W?|v8vuPOr$YW*GSIp~&r$&Bw2yZO?{_zUh3#MF`;FhS-Mx4Dx_OCfd%EqLeeT|- zIs4DPuD_D*;H$fw{ptdY_umhH%j--L*n{pWeVzxz%g==Z?rT}pZx&i`Y-v11O3qd-vRs9&A)#B z{guc1vDhE}clcKS|9^-2{Q1kkkNz6@z5Dwtu>KGK{`S>xO>b{+(Et6%d*3(j@4huR zz5V`m*?-^snqqtZ|L^?vyAPfBXW!;`{{kPQ4)*_j`rE%X_)9+?Z{olG{(FIs_K)9v z4a@?6Z~p%O=O3S4QU4wL+1h9SFaLAihktMK7k>Ws?w@b#V}Jkl`Gu}DUGHmUu#VxXDlE>in7Rrje!5_!K|d!I#BV4&FNxm%#rvCqqda*17Tw&xYG znhS@ymtl)B{{0Ezm6hLmeSaKi-wkI)@GYeF`itSb->_~#BXF(!H_wIy*}fjpX@4*5 zKvEpm_5Fv1U3M`bj~;yWYb`}eBr->pFb?$|zWOYsqwkmm=w3MKgLJE86gm-GzUkwa z5Q`Zi%xbFtxK(K9#3!{Zq29(e>;!!*uhOx(}XhA zBxEwvTRzCRZ-ZGFX@XULKaf0;?nK8Fk>_;nbQ1q0uetFhn<10eF@4wBfs`dZlA28% z*j|a2n_HLIX^q&~k(kSEdD7ADe8a3N_t6yI3a(eE9U+x#qEE+%S(p&0-v!T}y zJV&>_-X`O%U&oST)yCeO>#qx59Qkk3q2W$c6TD7sJ+N;3`+&lV=d7#iXXu05gQ}}H z$-WET-ha2E>4qxft0$aiu?VZ5gEwB(?yy5pQ zSaGz6`t<{_Tc2t~z$7EwwfQjrZ3S+lyjGk+v!B5&1G}?S(h7hL=VVm9wJJJ+y}kxY zf)gNwGZDo~z~V_8Wz7%k9lJ`7GRlPP%|^tu_^$VF@j#tcdl?NVa?$_xI0Y49>1fyJ zpqP>E?nYhsY0mpsh(wv=TMP8OIm2K7rbj_wQZn<1vJH*EB(KM`T5kEycY7A#Rq{i| z^qXr=-FG1#0#TRQK{U*)Cw+e{Tv7BET@soZ4kh@BO zkqZ+C5N+ad!AzU24n)9e-oe*7v0<;qyaN2;D|0UGL9=i4T_O5eK=9=T+f~U*@ z%r_)Gessx3JFeCyPIyTu&^dR|f#d~e?E?d%Xv}&#S0?h4dK3*Fe#1v#ZnchnAlR7X zF}P511eDl}a3?H6HMxh^{IGkRJ)1ss3ov zi}*i-$+w3Da$-WWP2s*(*7ePo@`rPk6oU!|@Nh-^ZRFN7ILy)2EBUfPoOv|4Mfr`dlbXuOhCyWVOvR0=|9u zlJF%5dIpcoew)6DMus}d@lYGgRRYT5`ZfkebuAl#U&&vjrtBFOQ64bv9dLP@cR!r^ zxKGDHi=&<7L|jpvi^zG$0!3F1xaUV8d$J216SYU3BwafPJ$eHcI+yfN(1ZcinT_Up z+SbkQ8Hd;bYkuhsF7^F_;yYOc1fZQElE9{b@6xRODr39Q-6AseJzO+xV!Xo2x0o(g zJXF+_-7n0u;U3bIp4@s`>6<3z%&Y#)TAmP#|LK*YoS7qV;pWrOdW0|NQ?3#y1k=P| zqn)VXb|fHT@4Ox&7yBh!ptQ7&0SKLStZ|*%6chW+LlCfnZ+)MonvI0YedP>Zc?}GVLF(GGCp)F>?N4X*k>-1bPZ(F1q#Y-S-V86J!o4ro{k5oRejdOPxR+HtBWw=bR@ zmOYVye#a!O-yINnTgas*UL|%loY>Is20KdE5Z{~}!Ddp@UF>sUR9C%qIf#ta9|z zbfd=M@phcd>Y7LDcYcZTymWLh&eio%y< zghe$5M%>#|y?d$74)!VY(Vfx%M^4T+{U zIS+KXpY-~+-I~8}6DqqA;hrx#ykv7R*8M-QlX*JJ%X>H{UxGixM0;aDOX)a|W_EV? zh=AsIxs)#gsT~g436lrU7oX`?b@L^@^>a=gh)#)P1U!{g{IT<`2unm8};FY`S ze)Z=E0#o=s+42Y;vr)b7ut2}ufa`S+RQwb?h8;Tqg$7mi0bb@Q-2(w}$?IT)fe0c@ zf$cwB27!K>nWt)knEgY?76=7NPHXD&XytN#hFdusRvNW=mq$Ozq$=r5>*8cZZf z4<7z|5bQEyf<^{a+@1xPs9fT1=Qp?J_=7;0sC+?IBWI{v|4k`$g6EWPE=aeK?BB0L z!KW*C+k(-3n7Q?a)c~)+9>#YM+`hQ79ca<3Mi@zm4ANpns7-69@Psdo}gTDU9_0GSpN)gC0}PCuMwXzv z+}#*>{}cVlk^dKVv(4cU5LMDem+%p;isr(1h5B`Z4I&(~Q+4+7J@oU*c6>e%;Ri8M z#J_e8&rMu@Vf1R;%PlEt@ahRFW*f~D7k7a;&@C;yg57f;C;8j8-z}ox+#djs7hfGC zC^1lvv<4(geUw-v^`75xhxy3+nT{cF3=l58Rm0zJ0+>aFLrukzpXs*6z*Q2YHpfRG zMMyaO!yNgCj=^Rs*GnIp#KKS@>|v$eRQHe|Laxph$Sk(PEmERl< zexe36PWd&HV^NXMd40`qF-VO7c+_B3(Vz*DeRpoO6G+n=$qwRazX^30xf(lVt&|$P zx)BqXSA($~O^8U-HbGwKqV>%OpwwnG^N(#Q=qjd!x2CB1>ypSKA2V{eb)`Wf^Hh~7 zDQ_c*S|FzGdnaE1sdrySHu$_$>)PAAei>XkHV$-rCTFm8l&UxN7e$VD!2A-)m2&B| z$nlL{O4&V_!IRMT;tYW}y4n6W2%)MCVV^oR)ddF?A5BWR9&Cqlv8mJDLteuZ+G}R) zMd-UETyJQEK{QI0mtr~5`nSZNLGV?Tm9<5PP<4{8;SqyXHAA%} z4wChJCRt^0Et?nces%uu^yt${QIq!DQ-+~a;Z|0?%tTk#S9OM0!d6MCh1%o9Rugj> z+rqt{$mL>(!4;sU{#AHjgSO~Jh`F4^cbcOaZr7!G%=-o;I0vV%m9e^knl+U+a*ZX#^=EEAlk^zm(>w)q< z^3RN&Ojh6AY}KoVJu1`~XuxtiLsz)<4Jv1XnxTHPlW|EBz|I0IbEe zKrykgwR=l6|MOIB1)j3C-R&B&k%v8WYOTaOwB(_b&CDiCp}$@IQulEVWUo?FHkDtdV0y?;1A&p4(P>_D-FB z6R)L*T!PIp?f$A_7CiM4h-%>C*XvGMHS2(an^n`JgYBB@^0&63%{K!DY-n(<2MNFU zDD`D{VKBF>d;>An)4SB(Zcatl+YBbQCxxnv7}_K+jO8T)`5~r;i)0}mPMvDN-3`{% zTv-4~E2CO!L4l?Ad;B3PcAyHwm#bo+w@NxBG9v=4Kr-~U_9PfVQ+41$s;U)c7rZj6 z^n)WXx-{PArL!L}B5mlY%TaROeATCV_@$DuzadlTr^E_u^&PQMT0*;oV+W>D#&=mY z7#Qzsx+54EJHsjWAtpN~9%>;V`xD*e8~f06)9VHqeH{?6k&1^L^sCU5xfFkX7?*Xa zE;5&w;T<7g+)H!2n#BVqsC_E_d#S7(Y)#&C;Lt1bJ!mC*N=wzS73$pk5IAdu6BY+zba;&D+}u7c~2! zNlk(Z5>=SZ^<*8;N%y?xP>>&WL!SwTXz;_8C}{rv&C7VrkMRTVP;=rhGoqK&{r}yH zDP+={J(0)HoG6ByB~t`^1S}r1%sk%JFo9c*ZH46H&ka&*I)KXV@mEE zd(3?L!5_y9Yqu8gw;>5x$1MhjHkloXGn!Bk{g;x6T`%oFtwc9=U5&Fdda8~6X%u6h z{brqh#ln7;@@R80c6&T0M_OZih-GO^e#T+Ytgz<(Gda8APR>;q(La30adydKf8oTe z)%J7UcU7UP68XQX(vR-#*RdSFZ0p}g`(r*jfld&XI=}m5D34smF@U9!evXqN=CH>6 z9NP}#{{Blg$ioJE|5k}L9~L{w*K~{Pce-1;uHr8}K&cJ=iuBD6R$UY~xKI6VYpwT} zez&J@xAwDCGXH-5UE!|(p8sn-3kiQuP)G#>f9{Tu`RVRfdBDEud^Qr$vM#N3tVR1kPK&dJ_Z zZQ|RK893*W=lL_7yh8M6caGT(WmfO(){ygb2%t+ybaT0Ay}o30NN+#dab#Dy$Iw4? zXLixgboGv~PI~k@;M_QLdO6B4|7rr@u4^<+=+HR0v_6#TzE-zcw%oueA+enKu=Yz@ z@6bkERQ4R*F3M@vxDL~w_4OPg-j@AQ61r-Xss$c*oYTu{`UyYo&fDyF5bw-85ys$; zy{^sHRr8LAh*1HJGP#@Fp&)SFBiajB2%h_(%W*&%N+$dBk12rf+g34)QGxFCdN^oZ zbdn>From_IJA%6XBdqL1J(4H@D9V;Ft6wnFB5Wm|X|fiNG~A`mKZ~Q0{@&w~{J2w* zbUte?yrad{-PU?NZ(;Q1dfdr6yKVu6s_H8I#bN8Rc0nu!y|Vm9mZj=tYl{LKL6%0t zEAozY-t=5`;2Shn`yPXCt`}F=xd*g}tUGH0>*VB%pF4(z z=)Kjl2hrdFRfX3yhjq23CC#{RiOB{)+*gUEHX$Ff;x*l!4vUotU!sbvcZpMPmzgSA zkH3i7qe!ckt$+VI)AfA+{f|)RtLeM5en*7Yu=4??M!$o;O3gb< z2eF#<+VIki9*`T0c#$&7TZL`6e%vEoig!X7=)7`3WsD(SQ}RA6M;kq*ToJpIToY2& zq)g{O?L%5K8_@f2%Yp>LZl`4(fA@x0#C0VgJ+IU~!d;Aev9KX5 z9SUdHJt!^2T{SEG1{c8O;l+kUeiKAYi;ZyD_j?ci9S5c*PyZHk21EvF^J3y_Vn@qf zCL4qT47yj6v!xshaT$`?M{ALr%NNGq=UTyNuvF%=ljVk2$o1$Xl9sbICbS+K?Sx+e zkz_nJB@7tk3SX~!Uz8Q3G&78WoJ<6WkIX!DP$k3jl2;1tTb^E(nutHPCMx@z=%ibaBNtvu1mWU}Z&0>-C^?f28`z&(hw4B{|HqkKm4( zBbMvR*0a0)T_T{XsiSwhvavcq+Ov(;cH<);*YD}%j^xs~@@qJAX8B)GUoLeZNcU-6 zoPD0@liY>ZP|*Id(BSKsd0_5lsoqY+8#^Fyz;RGHPa!uMs>SiI8AEF^8`2H>mXcpG z3VBO)oc!4PCB{y%kHHZVhZXdiSu?<^WL@DRnZV{N?)|Xmy!64L(Lc$DmSv`@X9}BNQQ$##S`(K5rd1d!LAl_d7{`yVNSd)fuH^wFsig^3JZ@P9y`J$ z%Yb$YbOJn79w{?wdfTlgMYkfIwRIex`yJu8?5^$TZ)ajhDL93C$|t7iqtd3<)DIVJduR;$kd5aRgz2MA2ErmQ$Y&Zyc}X z^E2l+I*VM{tJlUbb3%{pBr=>f@-8Nc_R_0I5ap;|8UtCq_z%yD(-dWMVx-$G2+LMn z>;+@z((G5Dfnu(UR5!Jf!idz#aY^QwP=rx*f$f=fB(QR&2tZ)bUmk?2a;%w6s$pdYt=3 z<-`?5{NX-BymdTv$*A&Vt=l$3AL?nrw^Y2J0Ml-okiO!(dlY3z@$$kOBGZROzG^pV&r$VHPp8f$$8jJyIna0h*+2p^Lv+(Ci*{t4!-(dK`G> z8Iv>j41@z0@wjr$r8eBYPihfka?z9@=8{`F?q*X(`xK|4gKZLV6cg*GM4GklSK=!x z@p(v_V-)-J)pFF9ZEVcQr*DeP1d8&xZb~SpvOSQ+4H0+~`38KD+kJ_SL=;MLeQ9!@ z_*}Ta)-+Vq&ZKziN1S1;>}g#@9Mwo6gwmWBZ!)3!{{1XzDF@u;TVswR@_29Z{9<#+ z^}Tq3{_Jorxmw;V{qHSzR|`}@qM=W@7z7sH`NuJ(J`G=f!}V>zyg+nV$^5w%V_qgH zy`R%nO$NpiBuw9oIiWgPoA8An<%$BJk9Cn+&gFdwVy*566~7n{3ret zSCyHMuv$ij*9I#1rg749U(|$lgBKI+k|RFx_Tu?4THFS<#`XsOLKas=$e3%h^c8dg z2y0EA0l9o8cbi-+2m@;#l8ykq?&q!=ERmBRWUMZaVIgQQ(1=)U5T>SwB{gF!aER@N zid&D;F~Ilw=;{obd{n`QxPVYG=;*x+5uSeK5Gbwl$-bsUx?hsC>DN9ko{(&wEk(fV zfi%RnWfxo+gd`j(vzax}S!Se{B`#$|8Nn_vV)U{bGr8z9N=lP2vNU^buq3QIm7IX@ z?bPdrQD=mS8?#?`IBS-XUvXIKEE8*X#MVulG)wrYnTpuk8KsSkjNliB0Xg`ao-frl zRg@tVTDta?{gO{F&uQRkbGzyFoEl>8`V+r(oqX9nSu9IF*57dHEqyg1Zsojc<WumEH z(krd-G?a!Y-}x}FXL-}M@T5ULF0^!DGQA~Y-7tuKHD4MxSo6pPEMV{yHX)Yo2m>*IVQFF(cn z^1_cUcne^l-pG975br^EXpv0tmZ*b>F(PrBce=by)rY!rB_N`e`QX8AN5+ohrtseAx>SOUdGT{{14yyapMpJHNLKpHuPDKf~-QCJw^=!zxA>Wn9c2<{q)2z+z zTi)poh@)AJFxk8YOm%riq|(c%8JTf3pBhfQF=TTEHS3xO=32b%tBQ?BBILNTIGJ5T zq%zf8Z~ff@DzYi~jdbyo#vOX%S3UjPvpEyr)-7t~j8lBqXwwk4`U97u)J2Vp7QxK8 zNo`KMnyq|?h#QkESUZ-^&WB}z$FtG_fICt)yR^pyzikNO2Fg@5v}_pHzRXnVYsfvC zL@_y|-!5?u`O5dH1uKI*@eR2NG&sIg4hz4*ra=fF!ooXXx&%EjzIO4ZUnG-3bcmy1 zUt5iHVPTt_4G!QWhoXb>SC0BI`vPyRHu~L%i;4qzhlnf?nh6AO`v(0j$!BqO-d(E% zB;kZ&qUxGQ=8aSgbQ2ORdP7@^kvCi%l$kJ%=`aue))XFI!^0&Z)-`2w_EEB+N~GZt z@o}z{k0|lofo1^Q*qWJc|A>}z=Y0wPw&oU8d>ipCQBo}U+seb^#eI^=GkGTz*!5$c zy=T(2NoaKgJe>4>QA9Jmai|0o>cYKf=Tuzc*cJq7+-y@XKpt8epF&>-i43Py!Flz; zK)VuYft((-zj21oW1@~*(6sXhOyc>e!Ueh{9oCA97~`P@zp#-^=Zp;zrej~rtqW9O zxL2>&VOcxHO_ceupWjT-yr~X;Hcuiqc4wB5+u+)Anv{atcaU#fVbPj4Id*?1oKNGV zB$*@07*tm_Nl#40y;H@%DC4<@$fH4ybDT~-v$h4I$(w@YcX+nS|6=U%N2okhEMpl7 zWK?{!H@$gzKe{yn4yuDpg<)ExLHp%b-q1i>{NlXj1&!-#GG*eg9SsgzMk$AVIi|6> zT|e2@yDt-!O;5Dxm&<%%LsxxSwJ%fHMxf51XRvZCadY?GeaPv}w4_rEJ*7lk(a z;`IE)vCcF_>URUp4v2Xmzb-jecO0<-$0h}&bqucFGHF83_-;ND$MYNa2+6DZj;CDF zFluFei41MqJO+}kP~Znn-G}+~@7qAsbq0ox>HhrQo{1qEjX~T}-w>c4CZ{rndgP3y zWfws<2p72PmhYSqx~QM!sP@n22xf*uVCug&(+VFO2glL zpP~_~91UQGQK@dDfV7{h?54;ckE__=tiY>{P&UG|gPo0RwW6z^Cr*%jq&<}<#>6q7 ziG7W%p*wh@jhU>h$O%1;pP{+onzx~>3_M{-pGW+(u1;J_8S(Rk#K@EieGM(qhLYDQ zR}A=5g6HRGqDSuTQz7bNnFCQ}dxH$3A3e}2ltLOAXAtn_(ybmbBhi=L192WDy>F73 zWOV++6&gz#1@CkQtLSu(M&1ftjjJj%T@P;) zrlab*dpBi;^y|UnFeFPWM57*q71OQclajTt5!Lg9wS4SQ|KNZ18Sdzf-rRVD;z0!& z53TvG=|wM##G9eaipr>hq&x(>iL}RE{wi5mk@~WI<-jiz3xHO#VOOeib*lOUEP z*>-#z_l;V0i_T3d*LF&&$VhAE8D#pn2RF%o5MvG5w~S(W+bt6mbH-I)m1hH~h;6=B zf8!~A2|-S;2KKV!+qbG2Jo#|-=REtY>xW`r7i9}wm8NBNFPWD@YSRDF(0#94S%rpx zaJN8-oi*w-%Vxl9*x9eAl^@t%87YN^UeRLJc)a!N6XEZ;c@8Ce+su8d2nOMkI;Ke> zjOpZcYeEU{p6Pka%dsv7ccae*mE3L~{$qEqOb=mdw+#WRW#o%5_)ci1tEQt<8K+Mcq7ft2=KYX8Ep)b`WT2uduXk;3}Hims`)O>u#kOBID8R zhtqUxFznkm=SWtsrl=`jG3_FX=$R?jwD#|E?Au!pG2yXVJZcpj-m&q=M&<5_V-D?@ zcihL_tg^Uk@(=*`IBz;nV_4y#kjvQupl(>kiIp+$sxZZNGVbFzsbKE!XH#@FGAe&7 z10BAR-O3H=$=}Cm2JuiJz?_I*@Uo(*%p&kH?x%|RG8rJwLq&Gb*rWx)F&S`QK^#Kw zw+I1;v$#2@J1sszr@s%-9v5~NB>0h+kI|Ru?+Ki1XKDxtKj&wZ;RkxD zq9u6w=3Eo4aK`>*VQBp}1IIGq4+ZZ9xF^BD%-Ir;iV}i>VkFKN9>E%8=!&=*=V*-{ zEFk`L<);Hb4@YQF89s~0+1?R1weYJ##xXEZVgNYh417*$VsBgQu@&pykv>wVM1)6< zoVh-+UFwt>JVe!xi>eSq3;PL(LjW^HzQU2{VE-EkA#3>m@lPU5Ft3GZB4?=+t%Db# zaRXbf#LFQf>{;c;!Roc;yHQ|T-KDswFEu$Hk5(7;OgGrDQ0%^ z;J1l#Ny)Yc*b*1Ywl43W)k$nKyR>20nZp`&hR9V()wZf-{TlY=(5ra4pwbzA#ns;V10;3%o9 z8yj$7gR7gHw*;(c1c1Ssyip(^*@ss4EdaWyL-y@$><;($O${(o_xBAAbe8w`4Gp;3 z_xBCW`wai)4iWqe2iGAo3=5}chzBUYT0l7 zEsYv4`po{afBIWLHQ(-^{gSACQ{T1!W#<0ds-yq08aMjUzgsQdJCpv1soy%9`}$q= zZ|^?zHxP{`|NV6O|3n*|#XY|X;{GgqzNYLm`#t~r*}iLk%iH?=U;h|3_VI(~w_l`; zo_>qB^Ar02N85q?KMl>+g&zMikuOtYyGH+hl!JSp{{P>0->!Wo|Le#;f7h5obKAmu z{u_P0P5K+pZ-1%XOZEBpq&oTYiyz;QyIno~y^S3m{Y{5|_LoLmQ+@02-5C3CDdhR{ ze@Elu^Wp!`pI?dA;?J+IR7uc0KmVr|JMVtY4fYmHjtX zjF!IcmT2 zkN@R=;@#-)&D+^#-;eU-^`4(^+y{Oy{Xb~zrS$LjYNzMozdq6PZ{xFX`oCk`{d-lUg^X;*AOA+cl3{5Ysp~e)7@1DJi`T}k&C{I zctW*7M4K6tNgl}jU{UDpC4PXvcjxLN|A#bg#M$x2>pV2BQw2_LDIgsXa}{4Jwd6l* zBmdk&TNtofQk0mXBs~iEzz=HSUN57FZcmVx(8%w3%rLf;Qd!$86zdq@qK!lnbTUr;nVMJKlET-C0K^J=IzUB3FexgQ(yP8vbK!mG23pF?Zy z0|5T&e^-saoRL<~CkgDSJc0D7=bftuh0MpgXB6(}R1csLJih#O*pts3(Z;{+2u3dv zPtouS036IsWyq4n2+!3lNVj2OU6-iA_q-99&ooceTT%LROT6P7`@VfBa(g7vHxwfq z9Uu@ncFh50Z>lYl1CfpD|Y4l3J6WHFq63T34?r{ql&l7Se~o+l1xIG9O{- zRqjJbT18=B6a2KNa-1g+=*{v_SMwfN5HqSTKkzi?8q7aj}3HR$m> zFq(57m#b&>M<^Wbg6&o9)7Eb1Z+WQm0)6qb;Yitpaox~X>8d4FG&(>EeW4@O^w|aZ zKvoFITmI(k9rdWQhidS}iVxa#Z?CO}SFX3L2WSmxDVanHydGvFnrD%WILnm2gU>7H z*|O^w1Ip)ofeGzEw1nS-8L#{W-;|mt{yfmur-osWepuSM)2_(lI{`XlidVGWnR`t1 z*D^MVf2K(+3~l%Us&Ew03Sb~wK}*-7&`%_;fctr^HIV;a&$rW*5f?9Z;IL=M=cj~S ziyA2*+|AoS@JFC8sgQZ7*>BHbX4L3^!bID9Cs8TMyk=XN_lww~(0ww)H1(Yq2j}zp zRnHzE?Vx;?WFcabfV1ART_8#lABpxxhtlnTb>?|-9Rn5heul`Vg%QoS*WbS1E-9oY8aK@K9i`j|*vL2P zKg$^M5pkP{j}PJ4dPL&SU0rb+2W{S+c3$8y?Iu6u*>Kwe1z?8S-~%Ds+|`&r@IEpP z%2aK(0ZG+AisN0ST?NTRrTMz`AOh38KLYLFOOSPoK~oe4XSwpO?;jJ$s0#Qeb)F$~ z`Uft~zJQL3Kk|+{OCFRCzj_Sm9|&mkf|D*6sJ0=Y`Zf$?zJW)HM}9GAI9p6HFV!>} zqHL*3CD~X;GYX1Zd@-Q7!W?APJ=*H1EDJWL2iuq!(vzhW@=<^tR|)JfdRS}mf&D-z zZl7x>77atS9S3xp9Yy}YVoF9^22A5F4XxeZB5W_g?DoF%!+V55Fef|IxMdrx6`n1o zKNR(&?>S)N4UicfuIu~Oz|_qpuwCm z?7JXtSQnj~rqIx#)8;@r9pJALx!f*O>^IO)asusie3Oxt67_4kjbfUf$-3Arw=zt<$322N z+Z+h50xREy>xW>2$Y&4}LlWdiDcTRaQVzfOf@gFqHwXVTg~1zOck}z6z8%STgKXjfnJsGZ=PTb2)O%UlctD z3YjP+d0#$w9PMvmwWrA)n(*0l8FmbRaM|xiz2@2|b4$oiX#kuJ8{3j~<1H_|S>wT_u z|GOGHW&HyRD8KFRcQ{z>%pKpFcYWV``>c5@M5+H7^5^bR{KH=#{B7v6c{<)`9~=As zwzaA&GE~5Jz}E7AchugHoaF4Vz-#>7fz;dgKSFGokmk*^8r7ocfQc3SEQCafxE`|;QK zw*J0(!q>LLdVFfAv&{HU{Rx|3dV9$g(qeoC?=nqe`S`Dmgz)Weel~ za+0yL|84qr{`kB6mx~`Nj`n*~yZQ3N|L`x4YwLG+of-YxmzV6~?F%@`uc~1-5KrXd zkvh;XG4r6hPevcPH3HzD>JRuv;2=p1D=na)Q%pHQpdb`X$Tr_!?mlpIlE6&dYQT0( zH*&$j^HmP(LBHI7BOEt@x(Wp#fPs404hnvPy0-FVLc$-qdJZ8W6h%xB;Gu#Lf>9x% zUb%dzP>_v1$z>1@XtyO{PjANkqw5b32#uB|aPXo=;zDqbO*4W>P!N6Drf5)I2HNq2 z;UU!Oh7_XPMce#~5RpWy4aTq#8yR!mFfUO$ISKGzZ{?^rLPTsuyq-fq#l3^EH$>&2 zvcN<{-HG_WAei?J81w z#E1n8N4u8$1qdDjiIqOWbwT0(!Z^Ksf5?45nADxMB=*zm5+U{{oI?bS=7q#W^#*#K z!_y7&<9~x>E7ya^M=2K!y2t%tw?V-EMI!$YL`KTu_C*glb}GaqI5U1!^&huv{8SiE;CtGX8K>Aj=9-}9qP|6 zdsb!TGQXJbdOy6Vdk^&+{8P<@4-J#N|M$F?+TvD&i zmiX4MwL(kHMT|weN6og?EP?%Qb2B|(GFfEWr1$#!*=H6^W+pguMsn?$$qSF6nTKoU zxRiQtT_vHfoRG_HrNo(y2n(uPftoO`a+B!z@XaG-*`RH4Ez6Zz~!1 z*i}F^mv?6!KpB^Vu4WBC+1n->K;caHdLT4KFG*_eM4Ek&}opVJ*DWVC(6v>Sc#g?2cL{|Q#F~ERzb{_a`atWMOB|x zN>0U{0}@p%m1JC^(qR?Vo?AmqW$dMb#8Yv{}54--7M_@x?45{1Ov;P z*pv@%u?ZhoP_Pu&y}+RPiuXU8hdsz!*9_}yr+zhE=^L)J4b3h) zvb00i_4?WD2@vg}tLvADtxSZUj19B%Yp1$zy;`-}Pnxn9>O#kS>f`N01(%~We^#^1~iZLSob0~TCvYg;>MYug*u?CW~l z9d_#{?*^1yZtmMCert9X!yE5DcRSRrpyjq&GIeOEI||0WeUGYTO>L3y)ZA^I zTAbM3?aeqJ+6vy9{x*7c?&S8?gv0YA#T{BVV@lJikpXhUf2`DVU;;1idTR}(Wa>Fs z>jf__-*#GY?5msh=;ELrRBD_zudff6M0PJPLm!;>Y-%>|g`#e44Js(3zRYIkUv9|I zKA~vV+&exKYW;Vt$&AeX!0$$Utf~4r zqt1V5O?y`ZW-hYx>7EPNa%v1{$Vc4Pq|3*I*{>;wecQD_gMCjKtD{dv-=+qu+sSUW zE@SMpa=z)S$iuER(&THkHux6V;bG3+#+2bt&kfNPUSW35n0nYTJF7}fak1m84N|M6 zpIpNRJl&gZV~Nz^u-6!sS>LcBcdg#zo1!EdV`JB_pb^<)N7Y>!<69~lqbOZp8{V9A z*WW%p(6?Y>PpTKnV_T_KBxc*W_1~RZUR1XR>22BCW?d?h+uKZZn<>rPpCPdI%iN4l zMQvr}A$4{5W65&7-NDA6xC?0$$jh50utvymH?u39a&p{MdY`MiL{p)P%*<|7F_gTg zaO)wI!OWcvwvV^NtTv;g%(*nqv$eXZD1N<-{5{)5o18IkcwwD$9sOkF@y^Ta&pZEf zUSs|kbknutctLNURlA<zR)(3k?l@>`J;X*h)$;@1`HdCl_aduBJWpy)N7hl1b}t9%M=> zZtAV*FdLF8C~*!Q0#m`gJWN+s#f<(+pR(i7zdWC3!rnq3XP+#XLmDsj=)G_A9qBi3 z&G~%g3zvK-iIDA6XEo3b6-~1=4hAy4;jt>@S0t42;Y1Z0m($a(XdW;K#7eNi$=&Vc zJwn|brvOgS?3_~d>sd|RcBfjl?{8YZT1`7wotrILvwl9+)GdoYss=jdb`QmxT{(Zh zqB2tE_c_~Bqp!K+2tJ{)Plpc7u(7`#UH6)ye`~lvrLs{U=IXGs;~kUvvYlUx8Xt8} zUmqhfi?6H2HW0IWId{FXtg>-A21+ptHKitRx3FK6Q4Bb=Wf{fJsjS0-GEdE-cONMr zIN^$AKJ@Z!?(9k2?Q5LX*CBkhLKNn0SOGhAn3Nu=gQ&G9y znr9SyCilpZJ35;~+MAi0FIFty`s#zTh-T!4B* z6JJn?x+|wng)DyNc%_KvSs~D8T6-Z=x>maKRewmwl8-cO`GEXSDR-V^X*n^h`G6^L zXsdxBY|R{CD~fbMj}0yv6Rz{_b@2fpi?J z%FA?gxo(*2cjsf7JkR-b_m0pY{BFmXqfY)E)(kLJeY*p+bd?$%b|YSko(&3x0qs|g zb6~$s$42<8rqYXUm+JH^!rO&f{|B9SScrKi!xN-DJ_lQ2OEun@(qYjQ*k08xPpS6T zC7=Zky@w_vXUorGXtXpKKB^bvj8nT`*>&1o-TyOQTR&NXevPXW<)rWo&x({bP7ax1 ztj9bk#;Lg?{7mCwe=cb3{1CFm0{1GcYh*dHNHzA_TP?0QM76@&jj!AqA!s~jqBixW z5+zc6ziKhlWq1-9Ct@z=+xaZe+)(?y7;tlTgh$eV?-TxJ%%qY0{jr+O#7ayqHo}1X zA3|?SWuke1+AOL=6%vE_aAbd!#LjY4?Pu?HR6oh~V>T&k?;Fa{4d*TYWqk3;1ibQ; zx&e`eSV=Q0L{hR}u1rR1^CVf{j7^8(^BC#yHIbziro3y{+XN%iO|7qOB~Lr`hJyqD zxzFhYeCrpiJcw6IEvM-{H9dQrT-uu&+HM}|uE$!;>Yv~LQ?Gk#@yoDvc+ie~D~|;! zIsM*XSoPn{gTz$mPSU(5q01YX*P%Y7BvZD7%-gE(njsNkIjUIxhh_$|{SjXpoIpiD zBfOW(|6bn8i{LCcU-x!$-~5PDj^7tSV2<9_4~abQ8!19|th=9Wgu}HcIxnt6;tnt3 z1RcATy1K&CFJ^@>yzREcVCb{O)kbF8DsA(SUwrYA+1}3Ccs#4?{?ysgb54~I3?(lL z_wgY%HKZ?!{1zAR_=7MdUDO{@!Yzol=(#Q}-uBBnrrLTFIW!D-gOZUCfvq7T)8Q^S zt$sL}948x;>4}yCE7AO!vm32pS1i8TQj4a_ykE|i z8HZdG#FcW+ch5t#@&^s}g}@*uD&Obwll+EVpc?O3zTpkaf&LKpOW*XGY2qZzDsV7t zzR3_#PI`SdIke_)KRv=yK{F&$*D`lw@h-Nigq%l?A3KQIy9M5~HEBMA*jI3z%#eC*}SKBZOCR9@_a*Lla zvQ?I#TJLUj8Nx#=W;be9L%@f{AxW=y@RYZk%`JPtoW~={$V~G$fXc(}i1%YCrrJB} zPkPo1KgPN{&fv%=s1@|r>v&k|y2JehlHroO0$h1^I27WEv98H`ToVQz$8~uFxQZoL z0j4wgGcWdi3Pz#e%FmpgHQTUTE{K6K=*FNmH_W&CE7oZ;8#Kq>m^EVo;?JD8Ey>dg zy@)p-YdYm5^F;xK94%Sh6Yzf5V>+qD@RXS_2U|n1FYb)(d7jXi&4KZw;jpkthIWPe zNnw}WwkW-V8BY!aHfZ+rtHW#-;7$S$V~ikMoCE_4wx&ub`N@5yo=JhbWO`fWV|Ud6 z&BHjy@=8zIBP{g=o=ME0$LV1s+*1(;X!@wLSWg9}t1#=F%fg{?JN4Q8O^7S)h#K(y z40e)VIb3$B{~|m~2F({`5NlL*pP@i6q}QpQYU+dc4l1mTlduyK>|rQ;--~%lmARhl zzsYND*QaK@Psz?vP%A3V41QRmBP90`z6P^wRlvWY^G!-#49#L~?jZ>en<~9tG;FaD z#ud%ro!7h4ORKk3FRe2PEuIoItNQh&b6bS zHSg9tuq-$tkVVBzkM2=J{!*?|7CoywCz--TT;S8?X+uo<+>T14hz>`awofhQ$f-O` z+6A4Q7H1K2j414<`8wj(pXzcDt1i}Vf?#VJpxAp?dl{ohxaiaQZjB}~`~C13q?vaV z;vR#rT~5k`RDi)(dK*UL)%)dx;<(vu=Cw^_{uKqZ9QxSFlqrS<&s#rgxx^xs$;};f zQFuvk>ex`Ch;t2Ba;cXM;~DpmwQMso#{4SJ5v#7{d@g>~$$q*vcIL}o<#aji>aC^B z=2(ZyVQQjixhA&pRTP;-%?|5Etu8mE&H-Td34|byEX{%7>Pe(Q_H2s*pVhjAcbY=u z`>(}sjo82L8?;Z=8F^&uHwgB5qwDOMBAFVjlxBqO6PAfz**X=o{jJaGb*!bVy~1i+^xy=hn-yeb@U;xq(n!C`1EXJ75~j z4Y;WF8VMjOn!j0__lqsZL&%_SElt}OJyJ-C^yJp5{+_7yi|X%*M(LQ}-Fj`|(yP(@ zQ8~n*cYcUS*_}(%a@>|G1R1U7KHv4NvX{@s&q3AVw`TPr8K%O-@i6a@Y&MrdV6#VZ z$F5E#{k~CgbZAg0Uj_V}J5ur4KaDo?U6!)_Q8W!}(+o}|3s}*k`*S=|`sS$7d$@R} zoHi63-V#l*y1%YcfrGW^%e$=Az@D0oNM78^#D~M>9POLFd}Cr#xEaslTU=)IgHv>1 z)il+{>LTW#E^l7H;x&qc$&q&=Y|>MjQzrD2v3arLgdVg%IipI*T<-h0HV@IY5w9Iw zW2@RyyQ!)~x8ZSS5x(mW)m-#$-n%X-$(QO;HJaUd_BFkKnI<;05AuZZu6Pn1;R1zYIpj9_+FwG<_ta=AHMbjkr*7#5zHNucLu+@A zbR~uX7%-`5BQ)RuxjRIq6`&I?0K1gpJl9QLft~4Xj%T1>9UfeUXAp~dh>>bY-xegh3w_dg{1ss z=f?(Qe!o9@8roSg@f;}q#Ka>u>yp)h;9MidO3M+ca&F*drL}& zPn$q&o70_#DC=jP6kj2?t^J)qb@kY{XK;>Vc$d!Wi!+60o3>zYS3M4T`B~GL&&G@1 zW>@7*D}MCk5W#B{|CSqH@UmY4cC^Yo{Qr=AXWjYW4!qb2_LYDXmJ>eZZVegY0}J0@ z4haWuJC^_h0XpWILlU~5^p{3O+MrU(HpapER`beuEKpL=BU1gp9*-0Rt-?<#84p^# z7jfY(j)(9qrdW|C$!{YXPuLL;d1t*GLQcPL8aR5j%24Npo{X#PaGdc)ha zs@p0$+4nTlF<7Ud6Co?AuVCngR(8l}sLFPBXdmnwNAA#2U!(5sP=DuE5#FJp-e%w5 zp`q<{;Ftc)ZGS5Y;sa#a5ET;<4H+{NO@SRD6BE7lB`OmWHFYjB6A-n%&CWzb&D+n= zL`3Un(E>yO9!3PFi;HYS^VCH}Q()EBMMZCY*Vsixjh)%rMMbT>+uTJ(&D-7HMg8kE zbn_<{MRcU#Q?cN`fB?_{IoAL8lVzZ2f5;LzNU#qa;K>UB{K-tmCnsRW??1M%`gdOw zrS{W6(RBs^`|!V}p!Gv<20pO=(*>l*aI-S~_sG(}9$QMTT4&#pxpqxl9v&;5^#U7; zK~jacO4h zfWWas)bJj~V7%Z%P^9IV9Nk(-gNLS*Uq^(ozgvhikm>8%-$=w>E4O#WGi|LyT z-~&NcgDpFOfRfbds3JH1mZBTXFCn1p(zP5Kd{PRY-N;?_*UpR5xg1-f)vO>TCQVJU; z!b)}gqL0OIKOO&zC3`k@RvOd(V7QO^bz^^TL>WCC`d-SDd1O_ziLXGoNu2#QWX~q_ zZ%^gA^@lOiES~4+$}YEZ--G@GF9xj^7AYb3H1}S6b|#MEcMUwYX5Ov`OV%EJ)`eC) zTdmC=cxBsZoWivIAI$~}i*9)(!j}ZL@$dC9x@me>l}sFi9Jc3MqFL&NJ=#i+gIhK9 zw-E;>@0#Vj&28^IukKv{Yu*3r`L=xbj0^UXrn-qOh1$z>voY|xws3u9SwVO8-o)t% z@J@a?s;TjfNQ6{!Vx`x z$B=IB;Np>wFI=(Z9mT%IT6JfeL2*uQpz9^ zsdgxzsznf|immG04AjbK{0$ano2N=Um4-YT`t=3!H#UsVJvu6u1=Vl~r-{r%@0;m9 zlUi_N&v&{{P!y3T|F70b`>@EJ3AMTowa(-ijd2`ZHO#ML!(OesvuBH4! z%Ai`k0_T@knICLQdy0S5x`92^#g&#VBzMKRN>^W|Imea9p=Zqu1jfIHX$@gr->ZAa z#%+9a#qQ^P?!HThHHG&^l)JO6TMH7xSUr4$qk`pkSKoS;I)M`6hxWBR_H;Ia7H1HW5pJ4ArF*IX#mQGMAnR0mSpPdh>X_sByW1vjxBmj4 z8A8{qmHfzo5|@v_;_X^z81cmlafQ-}j;51wPgK8P`Fz6zFsm{g#>tDSvE?%)HU!-N#HWRm~#ba%TCnJ0B}s zz3s_OCDPW(Un!aIipsYhdk>977G9?veUD1v=jZhuj^htBgcF8UsK*2_h)t!B0`mQ9 zx7NG1L&PY)9uuZa%>-<5WT!+4rDK0kXXpjG8G1l{CLZDcVqaVDq%W4D@h<&_9_M-E z@z-~5H%34Yb{AhodKVg<&&d$pc#R2a4g0^E9JvV*%qEK%1(1j?;N?Nia|$}D@95-a z5)<7S1XVNgF}B#GQ>{3FF&AY!#_^-7u~I6P-(4xuk+s8Kc>s04|C8G8&6S4ui}T!R zxCHSg4g79aw>djx8$XyxcC$WuT5jfdxnuQj788HneJ@u>4{;*I*14D1=&&0QIp^#Es ze^0OZLj=}{49G(R$Uf7g>#C1n8K>KAZyrd*!xX)I{Gf?ZS5~bM5NG|FqL&mI$8(A6 zakMs_83b*#BZYT+&F?M^kpPJP+j&jFqUdi!IQnP&z7Kt$^3VP*G#|#6NID0Kk2$;u z&LB}xF$0gGAK_%Uf5Y$@(?8gj<}UWkaAx0T`)zh&U>#N&_n*bU>$3yGinxtT?!3CZ zoOZsJm)}>?U=y7#Rvg0bEV)~kjEaB4hvNF^ez~}TkMCjfa+2cz{f|_83pC>yCHNw8 zdGMXp+&_lr%Vyl61~C7vOxmRhwgQQx`|m2cLa=fYo0#qYQ~POP)^X?Yw+8LM{B2%J zRYzOSKlZP+`(|_tXvY7CT!igEdH+hHTECmOazETae4;+V+JZ7|fN?r*p%Oul`-_?U zJgi)-i;n(URnD$1=gkc*(c9d~){6}7r|w8BJmU(1y7jH(l(!%2!P?1hD>ju@ z+jd7cqAHel&p0Kw9K^T-YrfcOuHwlQZJG3mK^h`YDW08@+ zbp#Pm-m8gzIMt@`M{S%f|JAL2AqXI}&*gCN&gTDWrve22Qc1_b{5j=xv5Io1`i{^u z@oU=`WFS#2TclEcQIS0=ugh!w2`qb-tB#9n+aSLMw+62V+XTJ~yvCx3zd=~JSr1kB z$=#O5Y`mI{vtGqRW&6(_=A5lLi}UdpQ2;ZIK86sYei zoRYg_07K_=lKm?nF}ax3GPu^LE1$nH94=_Gjk!0R=+qS}ZaDSy2$+r+m6x0sqn832 z=M|c_fnoBiXz#Z%ZgWS|NqrkQpsNGibhh^^^;O{w7JvT!)eD>0-)C^@7yCVZPdd9J zRC^5;5hu1ksVYJ|t*~>Z^15q(>p>wAIx%CQ%;4M|%g@clJII#~-#WGWE#;-F zZDrMGH7kE?JM!ZnU*7!uP5)aD`{S{Xw+q)HLC!`m3yU}H#MweQTf^N&dkf9Kc65c$@T~UK4K9qgsmWt5wgzYrN4;|MTC)JhKnv^vYF!gZ!)0 z%~$lTRS(Mzj<=Y#Z+D;j7`{Kjbu0>V0ZRLEa5=ctUq4hT-dwF(-zNX@G0REmytc;e zEO>(a&EVCYIK|D{axUBCRG-TsApfuY1t4Sjxv>cINe6aY^TgX=qwSTYwIrIJFp;~Wk8i{-gqTfDmV>dzqt3Ba&`q=`opX`Wr-Uk2dduhd)tList zKKnCRxpJuW^c#GC^(Qa=2YRsSZ8gud)_W)C#uWZLWIY3HYhE8GO5(OJu3WhSjLBfI zb?B;WPq?4`?}n?&{cmpU^_OKlZ8JYtfK4F(`r<1xY>xdV?j9+gXpN=r4|^!$${SWL zpXcCVI!Ho9Ba-hu_Vt6^;T20cNgbd*KCN>b4Cg^;89@4Hhj1{+~!=m zbd>da^!EE5JFYXWeed_zioJ?KF%}rAz@|<5m`;H1Sj6{WE#K^V?j*Y4qELyjgvh-7 z<$lBFHt9(d)M@Kx&j_b57V4POd_f@*FOY{7%PT5d7 zi1yVu!*zW)?mLg9kM7@WHoxes>#!+&-t>3!D|FRlc{AHK7;U==-4&cM@oOwbSqZh- zy{wxTRhr)f20{6-KCG07TvSeG@afS*KK)dq;#%xgzZ0}IZ~~78pYJAIV+`!=$vJ!N zP0HlvCSLaLXU|bL&*xOQU*T5Re`R63>}#hSqQ?JIh=p3?{lwWE zeYZpT=$G7Gbj?w%RIH3NbZpyf4a{Au zJjXqM&1vKA30ZOfe!7jbujc-U+{B=lxO0Fn zzmk9&!J3jmhD6%&t0S4#3!HLmJN;zzO4}>KA;0-obFR){21*$$g>fOBn0A7N6-K%rZ35VOPDY=`-_{b?Hwng0JR~Fl0LCNja z;u~gFRe}0+DeHGj#%`CJ%`KUa)s)`x|807Ec;Fo@4vQ+! z%q~w39C4+0%Hzf5!fH5Olja7D4VR~snn|ygj6+=<;);~4NcG-VR&%u@Bqt=q+EZu)#Xjb3%4d z7WwLm#d(%N>*l*LxhrIaXRMu0HWaw8JUw0Rxp!Hc=e`>*-FmoW{*@Q*Ju1wGS0qpd zn--^*0fh1+-QMR|COEdL;~I`kf>u_$VO1HcDG@`;iuLDg`En z@K2gVjhc~LL(O~}2Uz$loEY0pYAV{a{cVSxGtD)wUPVB$Z(rN(MRhr8*ti{)fHnAP zZoMNNXmjFVg6Guvh;p(%3QC;*`ipr-Ji%C z$H%Y($sKVj4B$5Aus6S$Ow@lh*>lua#Yu(p1Dph?s#2KJHt?Z^W7O}gDqY8a`B(Kh zk;1_Ef?KCV(JAjXzYqT>b}|UKqmg^+ zD>=<;qPH?T6aV|OxdC??2{A*kaO`$xpX0F46RpVx!%97(7Rt?(=a|u52|@qRmZeR$ zWoj^wDpizZVS0#uP!!bDHayHRpctpULg}e4p(s6Vw&dM2f2S<@0e+(pEq%9DfDzAd zUT+~~N!80exZ^gk(}<$I469?~sjIMa@7B;!wr7EBlCx~9*~5S5X1c(e-xTE<9G1>M zs-}tE733-RHgX$wP2ltKX9Ln-lBi>`7Qr*9OEE~}@M%&~^iFGyM>ELjdq;(#(^k6e zjWRBda0wwl(mi!mIN!9^W|ZYGJWNeybhEZ5yf{chdq##SoRFiFweQ=T*ak4C88vHF zMR!j5GG&+|&qSvS(6%tnkv$Z+C7g-PfTz<_MQOUz@vM>Q^!GSiO^M@|=`g%BV2|H3>zu_~CX9srpmH!X?zfm`j|Ju-z=j2CM<5oB576kPF zY=ABek&WrS`R;%)l0$8dL~dolvf&TAmjc<~9y?D4t*Z33+T8|Tg-)(ql1kzzx(Rq* z>esZ*00)uA{Tvo#Z8)N9SdI-9tGuM31!D_X6%x8!H9miTCx}f8|IQxOaGg!DW129& z6CJa)jg-ECVk4aZQP!JB+MDDNbL75D(OT1W;l~qe{^~8pW7e7YG3A2G0SuHOCQwyc z$YVBZARQe?JI zK9L=4B~si)%ezFW3jZN6oBV{WJZGIDlx<}1{j6tiVlHB8x?{|?b$&%#{O8DRC8vR~ zL0CF0NxESQ%C-KEQNL5!ez9b^@t%rJBoM?)o#Xf8)j=A#j$hwJ^)OFf(}2Uic@3(9 z?UfriI&&n^7>&|t&w4;6;V6h1vKUVDvMSEGpzo0_6CHqN4Gfw&2ztSVCHWLEEMKox ze+dW_kkeFD;Ku_M%wj+amx(ly22eC3&0uF8ttY&-=-S-+)j2vT?_Xw8A88+vQDlZ$ zNEOL4bhs<={HCcrTvyIS?~gznUdQyh`eAUbj!4q=b-`6L8ozkI@KD+jw)6`vpO<|x zS0Slpm|0w5*bE_+?jvldLxK5Kp+p0*M0ro{rsEZs3W<^-r@$Ju+a`W1Wk>-lUwuKW z+C9fF>%|5EA-sFGgbi#jK6&|-d9otYtV-}YJI>a5Nd@#^G!Oq|_>gYWgKrqgxbZ;<)&$#m84<=dwXv#t)F1|R3IR$1bhJZUSP09g?GPOv zUGjSWQP2g^{K&2^WTwX|wF?6Ha6Y)2`$nB(8{X(T^ZJ_A&om&TMpi^z-s1`8$eJ;S zLvOkPQG|>&T+<~vF*^X%4&Zog#8tEHqs5Fu_cnF{XmSbSnSg-Ko#e1sYr0r*VNM_G za`Q3!@M@BL>{6xGcrLecya*Uohocatj{(4|Mo=bzaCh9xlfpnXh~#B#7R4f_QQ#!X z6s4s{KDeVndck(}y)4P-WMK|QVbiOf+NK@cj1j6j#8D!k6a(AQ%4YOX+>EXM1FP}| zfj&|35pJ;7Pi*yDE7tpTqX_B{D`SJOnI!KU7EmO~73si$g4t^lbb^yS5-mBCZ5H!1m7`)t(Kb=gg%ua{9MjF06)a&dBwi4>! z^JM9725-VSj3v&i_CH@s!t+Orb>_v!5r*WCa0}?-F3Q1z)%=~Hfl@*w{!+|ycBN_B z3oZED`X%S-_D*hV&9D%@ToT#)AjdDUNV*9OeMA!3@>m3@vq7w+DGoePGGI@x0dU@9 z1x1l}dG!jQ&FfTb;n69Wbb3dVl^6X-^8>25e2%Lg`-j(bDam0OJajL$9ycv*@tPeo zKl_=#;;2E4WJ$r{S$7Pm-?49-+^<=0+M*HzBa`unL|)+JmiU|Z%RzW};_x^ie7Tys0Z&sRNecG|N^!@9MX|3U?=@9llu1#&w6Iy|w=h2MdLO@r* zgMcgFGa>x5ztG}%I;cD2fphR8h;B(GImp|+Q#n@yL zl9#b$+WBEvD9#1ZF~C=H+9W2V0d#Z_5I~h3L-)zN!~yII=m>m5bJY>)m*i-gKeRac zJS)f`0%MBCa-z;7NptVoUP@G-@Nk1DY2AP^w-|$21VHLQWB4IKuSszz@zDmnk4KZ< zKJk^3e7i-e&GdwM<&tqA#Rc`+U6jM$?zxgk^t_-CW}bw_z;<_1I#EM^SSM}3Fs6sq znMznl*mI0~-&2?oUj!vW_G?fvrFh!(_ZTQWU2)}kSU-=D)(|^u7Z?dB>~;f+JDbRd zEB=Eo8@g{me8x>({7ha#_&3NwByS#Wwj>QhyHfXeNW15L-9sM!WR1oB$W01pcgglu^GWAfY0MV0Wq`STLXOo`#q+4+kcZHx)t zK+q0S;kh?8w9tZB&qUOd*Jrq!WdlTkA;Z7sJ={A4X!=0lI|+oj8-&dIBpdcwKt}xn zc^SPr>sUoB)%0Fzwjtiko%y%g3+-Kubx!VplbkkE+Cvm)*F>6T4~5J2cL61v7pV99stY7~$4MyQfi{}si+vnN8d0W$!qIkz&e)D;Iu7?>~}nH?C8 zAGQ%+*(O+(+sP&7Dhjn39!k+SEMN<2Iudc-Di|&W7Sy&EPHxOaa_^QX=&I-4c}i@rr~VS_%Sfq?Z?P(x`en!`twHyRBvOT%(P9dI!h?@ zD`s2hQ~KNeRxcg;S!F<0_WR(VSoFWeH814Sk!lN#Hpq;(J%WOpz9TPUxFcuP_oA_WPVo z{F%8Fn&hAWpi82J0%8=aOt;O0(OhSYOmEV3E#7HZ?I2q!<}9+@+=x7aOd|UF#6n8g z#zt81tdL64Y-O6g*(@fWyFWuqGnckQuwUS+3dCaG*mPRMPn>^*R&FulBqbiuRV2JQ z^l?IWgw7;nZ=}Gnyr2~6ywmOa z)KiDr#?@k9k`k#>^H(7{BVW=`bjZM);h2$V? zpqD{_!5)ODYR5mk`dKyrt>jAB<;V-&cXnR8${Jv!DVMhd?_$>x)_amk>KxcOj;h|u zK0cnTKYn^5(Em;V7hz426wK~U))7ikPH4uOkn<4|YJ+hNA4*(`^rE6JW2v1?O^s9c zYu(0^;#oI`!!3Rxq`A&!v#DRq z(s_B|-e@JwYb?S~6n6Ei{MdI5WFcw~cDYZ;**>DI34cOKV`%Zv)$G0zD3ds`ac5-H ztb_F?WqnS~y$#GwPHjUe7oLt^Wd_~BF5%)Hb^w>L247){qskmV^>1~*%OX?pkmyHA zg>9rVM*wS3U4W|VG}xQI=0|D{(zp!HxskvOw>VbKE^SUN4?bwRnU`szv@Gwmeik>d zjn`MFXZu=aKcBc3tN&#)$a&hJ`l4CwXQs3LnnIPEgnYyyB!A|%WsJ(@VO!N_LM zyCq__zsjhb;ye9-^h||Gg<^;bZ!kuS8+!XlBPxJ+?fFlT7`)9eJ}t_(g6A>9OL2ac z@fjs89~UkFO$shD<;IMkT3HmBBm)Mqy(Gvjj!m+NvxkxQb@`tKE~gSjX;f-MIg^*w zje-3_N|aKEWsv}fc|1I~zRpu$J=-sFA7E0O#`!HKF_>{7KrAaAl7JkJW+eS+I#dvC zOU|v%5`DPYIpX@##p50r5+y%8P95g2@rf#WHA0SUdeiqn!e)%w@e4mwz=fbd)L~j$ zZsO#?lFN^D^6?qN<}pi~37M+-`5D3th`!(~^_246ZAx6dWVEhaa3vK)JqnQf4YNk#@K zv%_5Rhs7B76p#>E0>Go7ORS&E1;GVTNnI;=T6TDrAy0$BgNkzjm22!$ct^8-g&_e1 zHx>|35wn^dP#;I}G)l4lzc8mDaBQ71T^$4!MJV|t@Z`m#zc&j}y;xdX`#N8JLOPMG zyj*p5x5)yKWp>dqy?R|Q$(32%i2QDPebw_R^&nitwvg(W@iHcf4se2Rq^*n;aOY_W z&yg8}DTLq;ryd`3g78^IrY9>9jA5*CWTQZ7^miG!FV`x>w^tJMn_6&wVSd%ENw+nC ze`>scF2$XIp?^@BT*u;M(dT%>9;64FRB%b;g`oM({>uRBTM<5 zrAt;|p3B08773x1A1r+WFl80iSQTdRZrm!P+4kT^QD$F%l0sPZ&!u_?d(?VFl=ohJkCG8W*Rx-T<-f%m8yuAZEJmtLkYo^R^S1Ao(G+C`Cz7QoVIctO z+M;8jM5U5o7-!zklD(G^3W+zrjC55a^q?;YK*8jM93`g4@~x2?IVvPNS(+Z!@&@e6 zMVjd!cAcZe$_*e#sSwdbXi(kEHJ^lEj400ZAKkA7Z4n*x7IIp?BK~(W2cWg^K8JsU zz6I)VV?z+MIBgt8mVClU5yE09IUM|V(tdEr6)QZSzop@tM@1#tR^puO9}nr(>#%Q#yeaBo+~qteR7}8l zGmXetR-h4T^C05t93v96{=OLLs|cXh>wb?5)!)NecVUeAFR4(|A+!%g9C)i}mATfH zx3W%m{l*HSXO=C(-K=8Iqw%{b7jb?56+`VD@K;!ViS$ehfKEgo7Q5F;m)C-$$641* zmH3GG7F7v{ybbHeGpQCRX6g_Q&#E8|_){chC72k!Rr0v7OC;8sCTl*l(%1EYmH8fi zNBrO;VQmIguxtKQ>rzkgpaZAM0%eP-ygPp6(H)J{@{IJQ#n%MnD}mB{zA>P@vfcx) zxo5s|I<%z85Q7VBUC+^qEosi`Gb}2rSO>D-i)sbbeh?Tl{v<*Wj_P_OBCVUX((&cl-GlF}V)?+CQgi|SBj-<9oO(%um>RG!Tu7f$7_Zm*2%%@#`gv1Zk|VRk*6 z=xO{8a|*b0IdjoTW=Q4}Ip9(jo%X8rX4vQIJQ!u&X@Q0bRSoHrUZsC$i>09L^{NkP zhnfwR-|E0N_BWZ-TVrFh-A>pJ9L5`(;wLJFl6Ps;b+w;!v#q!RhOeGQgSBo|!k0;1c!$Prp3jAqb^l*s5u+ zl2uvT*2&f;1G*)OACV5o>8DMaG2?-$cnH6Baqj)(61fZ2m&56g%d_%wqEZ!02zORFa> zOhA~#??s-Y-^BNPov6#4EMait>O88)%cFE>1AbIeNxt6+KwqvxOq*FUMvIF5bA9+h4w-TTY25eVVx3O!t_$|!#bbU&tg%KmnO_Z5)%(JJ`Rwc*PSy>$=KqD z`OO?D1nwulHr8R0Rso4{3mm@tCQP%kmK&p9#r_xn#gezb(??2Ji~AiA!q-fx4ZSkN z?Gs_A)yzP%^9w75Z;q0;k`?cbV}G^Ty~QVgAiPaKV9TEibiI-yf7MYc)x=D zwi8^rNpvL>P?>twyRHwm%Fu#4@=N(Xz!Q92_M z4DJdFfYdf1iM4-*gp;qkJ0KkahWNcWz}dMd%liWGph}{{0cLId&}E>9*NHe>K0<=g zCc%n;CXiBaDemfr>0Il=l$b@Gyf+aqE1^+V+5Mg!y@z0IRvk~DX_Ap6DOv%anHvY* z7QM(k!2!^@o@0_pv#A3DIh5PrXg9vpqDCjMI@Ga?v+1_TCp12DZdJ+YI^{I1)Y&He zi7YMU2Vlv*$yc&eVQ29qa$5lIm-41CI1hUA|LRy8PTa(M?GAWsvIW1OjsNiYPCUvd zt2XspO=m#Rs@VpsgB2TTA_zTYU1G9X9j~ZElfA*%D^aUFU){M4Asu-B^|H;JoKz>@ z^-9Zx9NXrVQ%%c~a@?(%+R`FbZqck)WX%vY7K-^0Af+e^xaa`><)#M&%9oZ|=La8| zN=jfmZC=a?V3VoGHZt}my+f8wl9;wxf+v}Zev%)c^8+&k0ZK?7EaJv%nzGD3XH{LC~zcMp5c zTKJD5^5(Rp&)NYuEW{mG*BDwRRS3Etn7KX9xf{UsIDguDDH2g*C>#%r9o>U?Y9`t} zV;|U0^GV>&%QDHOv6!j-BO2hd9K#wIHY9Iz^knb5t_`FKm5y0mW2ns%V)}>i%(ENs zaB`2lDBU8rpvn+~G3MPKuC%ICMyUew4JBV)=Pv3<9^qOPue9h+&U&=q0XxJ5IDjj9 z%Hjsp20a2DXoqY1C+_keRai#1oN*XewLW^Fk z^(3`YftDm_I^>-g(4y4z1#nGyFu&-X7|KEk$)+8mOpzDWK67zvf0{+ka(Y^)nm=>t zz&xQKZXxG>3Z>=zkMf${_$n#}`1Do8GI>BbO|PPay=@;kY4gA=`ep_jz}VdkNqB}K zLTLbtz`joHviZ9Gvzo_wbm8b7{Q>``MX~ zB4d=*Gbn(WwAT2gQ=Vi>m62Gj$tQ#2Fp9k?BU^S$TCmG)J7nqfM+v_Smf4WvnSl}c zRQ=FruX_!>WHH3M`6_-RKp@otOBEy~P=cJKOp87qgr`!A(VW6|Pv?>qk101W)|tK; zsXBAjmmYTu9A{OUq35B=zI*BB|xDvQ!4j>cJ`uxc&c<@$ ziPsQ++{G9asvL|R8N{IsV@eV+=Rpymi(%p)3)f{3_D0-(bGGM<=XErGWiBR}B10h) zYw`faeQy+&DD`RkpI;V6H02-NV*ZiQwy;t>B#c_FMZiQ}%7igDM#|#Kqjf(o zm59sl6XszZ;1?M2Dx9l>*uEqZ1i5{yZ7_PSTWdezzv?~p7bs(t@87XUTrE{ie5nJ& zi7_%9<-`x+O^CoALnlDO*SZu1CLVS-+|*lPEu-@TJD-5UjZ?u;*A^ z(l1C@f+5+PWUF3-(W_l|O9LwfKP5~e*gX)$!yt@Nnrt;#Che0VF`2U0slk*|FoNie!^Kdx$84#Q_JU0ibuU zL!xKi5|yW%Drj6e1`rgRs8W!!pfYzuQdlNNK82Jp@0{e?IY`;jQnN@O`R*x%mMH6d z4^t=7b!>|_W0(5^zDnqbmR;ik5A$qs*%_Qi(JsD`Gi0>fC9r{hHYNcD!7Z^D35&jj z@M{+=+Do<8zRXIrnVHZv7A12fdQM5p9FoOAnsl+W)tp{_Psxh(MeR+#?b>`!_`d7c z1NB5{P7^*fO^P_oMgsO zz9N4z%)%A2ScPtX=%8YF>Y*%3t@(z5Lc+(8&w61MIz=cK5Ype}>5xV5=CG-z24g7^ zsa!4yjI40^)SC z`Gd2vcy@=Vr?)@q;!Q~Zum!vDIoq!tjPmCsjU#r97usxm_GbFShmDe*?irqv_A(OC z)h6VxnX+7E&HnqDm-fbeXa8843z+K}lL`DNvPp!p<-xlr9ZD?n6SNCKavjgb*FU=C zi#X!)o)ZFW`IKlpr|FloQEZ7QrNkxH{$ms@a|z}Dg7=Vf$idI(K!|m`;P9?8{?-Fr zOGo&Gr6r{*rE*Pvwjsju%;NjoW8r_e@Fc%gK$%~pyS@mTu72%vpih0T3kJT$zK_TM z3b!Qf1_Agb&igKtX_P603J$fBWQI%PTq4Oigy$IIU-9r)iF#bcte;8J*S*9Z_qe84 zeV_^=F=1iqV~n}M`L!9EEXEmh`KehZUP88+GdLVY%!&{ntvdIKfmMwiVk$?aE@FBW z9cadVj589Cx*&p;GAgfT;Uw8zP9LEC^n`i;LrxukX)JcT_&<4xtCZ)86X6EhTqPgj z*!fE(eMk9f%r8LFFN+|S0R`TMMMmaXOKj%kXK`OOX%9R-L%>b)u%)L^$GP6>LSh8? zp}0?44GI_`KB2Jqppt5@B=M6oU?V!f-=!s0GRoB>R}d}@Y7ApSA}tLAt^eo}bb2Yc zWNAv%>QdClIUX(!eCGj9U}y?P2QkN&0oek=+9c)7!UYKa;fY?tRZdn60F+YFaJ6gv!<0TV1y}JHqGe<(RF)~}<7KR3vTU81HY44K7tp)E*G^rXWUdeawC^t( zWe*i&IWfT=zLw}EM;>ELb7{|GeFor(BuKM70K+c+$A3siZnaV%vaAvxacKw z#V=kjX&B#p@n#MOBAc{NUP{@&jyMmWum$Iqh2yY*d?6z2%U1|Q?^8# z@+`Uuo@wr*th4uG0zWbdWm)!jp0oFqkfvuiPH3BvaUS}U4tjT1FB-w)3|`>h9k@rV zUV;g(XH$RvxYDbxjw+w9F8Ffr?dNI;M1p^)sS&Ro-||?0%)vH_u>2SjbSBca7GGJW z{6D87pu+%p+{2yjZKf2zy#cUEBCk@=${?}?-)kizy^H_5|0JJA%#QPsMsvIjOP5C5 zWr=m_EiHE>D>OyTwr3;TM#f!h3nU*xO8jL9b9qlCmljO5IkM$FY~S!r$Bxs1gDuKb0z7wAZ5g0Pj++6i2eCjN-Y5a60Gs=L~U+Q-d3me5iECr ziqQ#UT{kD}1b|;H>$lT|Vy?;zeurw<)eZU3i0eI}dk!#mREcy&`sV$gNKyn5AVkGX z=wh5QQW++v=mhlX@=-!t@;>nRq|+L@=LW#0=^rxNq7E32~H6S|h8-`It&h&GK z=P0XA!qjb5%eVI=rMC&d>J{hQ7PT!k!yj1>rVi(DwDtzARMO2%1=iiUECi&{+a@f9 zx5*rHxV72hdF*doqGJE$V1wx{G zjT&)44@E3Yp&YrdkFtXKFb`!k^t`R0Dy+{j-z`9k^)B7y$hA3W*macZQ*QI%Moi@u0UvuW;ucdc62B8zYyd*K|p^VY`Z2Bj3~XVHk>?+ zo!jV%>{J|K2LC<7`49d|AU&`@7(65jog++13C6Y#&wYsM*ZeJ2mp&rFQQ7d!Tz*O* zyOE6In0o{=U@|-1HZi!ty$rWwMSW1`?pc$446n*~S-m~0KOzcf1gHRP<9Ig`jdlq_ zm5RgPgwKcmNdYtPX)G)NXk?yeiXKP%gz9vY@Pg%>sqMhrr+Trj-M`YhTxpq6jvHMZ z;EX7qvbAC}rn@Z~`gury+OuVWm4EBVlE*&ifckJ*S4z9$ejiXX#OvUM13ni@)K zUk3r8OueW{7k^~nlr)TmZ$D(J4HXh@sJI*X%CIlwIPmjKKJbq*CDS>EY@V()luSR2Rt)hXUz*R*=cx4Lhd?Bfc${_L1VRL?7>p(UYD4qD5 zIhO$eV(|NNBJCq5b^XoNs(Q{8gZ;c#r|Ks-TinA)WT52Tb{I1cdlj~;`-?g!P*Ap; zl)ZeJVq2cZRSrSxkGpyWIo*d%Z)^cqU*bRVfyy3ZIzDa=Ff8B_Y(&zzL*d%^%U?(} zO%Nm$6{utG#i?&SKORdCz+1kQC7N6xDxeHa29<;?O_q5D+>J-K)*=V|f$T=2%sCkP zv3To9*(>}sOqZO0b$sJM? zS0aVE>U?-6-UL+#@BDL+;;i}h5?yVZpFRc|>t1m)&4K;AmH4*HonIj?5({$E6!x%2 zAB}y%B}S7}D@m{zk@w+h%bQoW!PE=|3<<0YG8T>{Pq$IEKM(whF zM1gzWlaBSXXahrdW!ao7nDl|?1LnEXptdm4`*nCHr>5b)7o0jZJ+HkBPaS@EjsyLQp5}$4I(X@4{O~%oi&AEBlhc#ONa0Dy-C@S2gR# z4V0T5nZ(ztMoJVVYMxPCi-v+D8a3@T#3r_ef0dcYbtwQAUbM9UNIML*)74-L&n?Or`4rGpSa^lkK>#e2u)1dmZI0->X8LlE;dM#l zBkndZ5iOV)dR#xfbP-(6>-Yk=*ND&XD=VaHt}Ki1jYNq)**J)2cLL^+#N{FBtB9+v zx%$=B-F`IXW6=P9uqXJ=LLp$@bHW-U`0Lz`le*WH#GK7grCiHzRV#CwNV;bQvP>i# zhe$CdiEAMp<8v5Fe*KycNb@6T+`4lw>0@rERH1N_aj341aj9_3Gs&;_j{kR~zZoLi zW>fN1x#E;499_sP9D8MJr#yqT)i{Of*^9A@Xwv6zSSGZwm~vCg!dIW{q;l;Hx0>!2 zR@LOABNLZoxE9j8eQ0>+YQnzLKI(&%jc6y4(z+G$vLS%gGm*cPTEPfk-Z-G?Yg63x zVYC;8+>+s}3rnyGF#`Gvit`nU#Z$9|o(bv>ewwDL#lX6ZwO0g=hHdlU1XUrPNIy8g z>%dA+q@Nw$O-atow37rJY@iEIQ+N9Yn1v3*8PpY6Ue}vQkjjk=j#^qs#k+ zHsh5j{WbdHOzYX>p-;8$qv=*jCsy;I+!-Y|FVxb0wR~=E+UAN8-(G(ZdFmAdDEZ%S z11#jY^oRI;Zy?wt_U7THi$W7O2GQaCZXJKOnpjbxrW4!|-EI3`%=aUaeF=mUC&!?U zK#?1n6v?`}X&c@JK+vv&V}2*`{PJePv>!jH zBUZ?26gqSYY-)rCOgf~hLQH+5lGPu82n1i24EXH|DnmMQG|QN=d2YS8U--$836E`} z-O=gJmqsWFu1bcmP9=Mab6PZIHD_|*x>lP1mXAkKfLXtbvr>4jkuR&RGf#3 z#*MQ^Fb3kRmG!gq^zRRGK44jE;33Iy)`-`nrk~7kvYVr&z@pNs>epUOoac{P4D?Oo zk7G)J;^Zp1$g;C$Dwy{P9KyomRXasdKJM*ILobwW(o-cOxbn@~ccnzzR;IZ%A}t~9 z_YJ-_`Q+Dibzq+eJx_-KNa>1kE?ok8PVUWoV7*&hFzKphlE)K$^m{(kq!-bUbK7xL z*Ti~DV8^URXayh|)i%<$fre7Dc0oo4d$Ew;<9*;#SGE+z3@ndQ{&5ZWJ$AKWwta4+7|p;A0XHUwWOi(dsDK-U{oPP)_@B&qGm@a3pFjBL%?Xq zXU&*HuC3GretHESq^hr|3Q7^zs@DwG)H^0sYKGnS0D?#xnC!i}Oc@s#oWMiKmJdf{ z@zCGcw@|64x|i+0h#iWio$oPa`&65XtZg^w@}<>B#Tm zfex`|RSC_VcNAMBz2Spqv$&L0mmo71|Bq?Qq9QePm>BNjL9<0k+FfXdmmtDbnhd)j zA6V!aOUgZ7K1Vqc)2E5Ubmn1h0qz(k8-9*XnY=^;7D!2wZiOQe>~YjC$n^Jon}czqcSrMnW(IYxQgvS|1>+tOGdv_ly=uw^ANj z2U4TLMdf-zMUKi^=64(8t$ER4mJ3eTzQ zE3`ChTw^+Rl`UNIfPR##WQXDlb`ga37ZK6QmezP33Tx2#g)Y=X(FNui^|A@ym<gib*6{L?sT>B(W-0$y4#E2i14@7N z3KuC34h%=Yl|_-xu5mnErpka<^C}ieMY)F`NRE?R+37nmWVGdiBbQ)HpwbV@9#DJC zqHiZzY;4UFjzrD8)(7IAH>GaLkh;4*baq7o?!k$~-In$k5&TB3q3U zVYWl3h?1^=(4j(R7MX%xtYUvYUzF)E*2hF9uj)RWO1a>~*e@YlTC&pTC}s!rEa=PK zdS%4*f_M}_MwNXH6y63{gX3JZKMlA)vskL>nr^&Fnlwl{ng-sQE8cC zPM1#WRGsvcA-+w|avn1H=W$x?6qvvRrfW*up&ebvl0o|5p31DoY>?L@uQTDfvonmm z4Il)KWnJihSiS8NV7_|It#JOQSQBz?-^@!auiEHWQ%k%SxJJ00j(`9|nPbDP(Bk#Q z2mw-{(vU00@)uKvXc9m5M1I{U;|>vTvV@Cfr{M14W@#h#X~4Q|z;v6bTd(X`3y9P+ z0XeK4IzMj*v`_Moy}c-tgyUGlvkbTv+%GVB+#c`PVs)grU=cvMJ~72SruSlU^6Dot zw9{K8uwXMdwC_A-C|Snsv-M*6Il-2EJQG3!Vx(T+uw!aAg0}$TvQ=b|nFqAns*^|h zj0i5&(p`on*{HnE4P*-!v={qFug;Ij@Dbxa^5J;S2zp<T{AHZL6mLZ=k`G95BY^`49$tJV#$!9 z&m+?K7<|yYxPxSf@{rCG(3~NlUDfL?`koEM?KJz2O^Z{(Z3D_G`yrGIgYj*Ni2hVK z%#kHJ-^YGVjDeJuf){YW8H=;?wG$^i|qx-%7qs1t%j%vszbA}OpnVl^(icH-<;-jP;O@1SHwtWD; z4CB}bI)~w>2VwL>FWgYK*baJ%`|SO-G~N1vC=cOU&EHpLn0ACTeVby0L?ke3VL1Ut zWB6M8>ckINo0LyYCyZDUiG|#`r&`)u`zLuduek~gk%@|5-@RogE{~w?&QlI7dd`a* zM+Z*QLj_Q2i@IAvTL-TAhwq`Q?(p{*OhdADL z5q+t=qF?W4#(cn6xQvmQ6U=3kYc|un%Ib*AImQUd4{tBjNl&_07VbL9$(l+Ovg` z?4Le&JjIf@k#vNs5C^gjm$gZSm=|}%W5;5(i)#*uvJf*Eban(ae`tkZPEy4p{gXNl zaTH*ZFuKhMfEL6 z7c+f@8Ll1>l%ZFYUadHpmaSRz^~qvH?PMklJxUXWT+QO51t(SIBU9BBQT?`VIYFWj zU)B&gpeR8AHjC?Bw)QS7rh=EA9QVv-!%Hz;nDKVJn#`4Hb@*zj5H&BVe_-eMv1DvJ zDC!$Rg59V2S53Ome)y){wOIHd0xB_{9~x`T+3F6&5605#kSm?0g%=#CnrlAgu|LWQ zPJi#|9Cy-%t4MUy6q*9v1|KjzNobXY!z8Z(V~V@FTvy<=>=`Qw_0i|H7ua4(h#wqr z-Jbda?g$}@%lDl?50{LhUGVLAXF_>>wBvDdxDL)G5dV8wCQPp-F`i@CSxVd-_R!8W zw$H?zbzbl=P7|2tn5KGKg+kNutbMJmQ7iDU)C~`QAo-u~Vn=_iDqvt6Fmewj$+@&#WXs>i z8?QbT#E!eiI`Vs7Yyl)goBkk3p|=phDT z%@9Y+)m}EevaJ(HwIKw?x-)ZxMR2$z#PnHW7MF$6XRMjuiFgj1mpup{OmLfo>C2CL zP9uy@rU`+PuKZOPuhCv!;AcShF;{3grm}v!`=Gh;KFC~#rJ1Rdsiwm43@N`{H1SzA zTp-ruqWHy!&kODJl6Tm!xK(*Qt2wO+^ut?h4Kdc1fOSaQzt^U+zx=J1^@=~SQKv&- zMS(wAT`0;FhvCq%ZT%L*S!7W0m<5Bp`>Us0=@WJ#N$!8JepSQX2R;RqsfUeac$=;v%-npumU? z!Vt37Z7U%|Q&0`Lu@B77o4;65>_a^#-Ks}XUxs^wX-s9{_1NO7G&e#lnd!Y1|MVzH zK2sh1;tq`RuVA#9v%OsUuJiz|1`y{)Sh`%K74%|{#k{C=CK5N97H*C<{g8IpYD%ab zfdM|39Ay|h1FTmVrtAa8Sx-1Fy&@`Tml9N=CftV$m*2RU)RUuYmb5XnV{?3=Mp%(P z-O+CU8mECAxyq4$LFkdnTRP-#bC_=EJbWEp%cx^Qb!N~vQf!!ikY5~SUz*)$SaIj5 zGLOH&PDYO~(XGQ);Lu~NVU}jvj^WTTH=G^7en|JgojRjBMf!nVjkX7|jsq(E4bz(! zmKoyBCFiv^{sxL|&fr!&JjDJdwE7iVXz*H$AK`UmmQsog{p0_UMv#QFm%iuj7*D)g9>6U* zCdMG326GH~NtYEbovD+JfRR(fUjC5cg!Af{+tQ}VSQ`_tnro#W|_4BEO)c-qk+Gk>fnI3qM z5YZ6E8w~jXbTT1n(d=hcQgA-NVvIPA&u}?W;`#&UfkR52|9)4*?O8wL`{3fxV(M)B z1Y@(hiZn(I&r(*Y)>E=ebLu#q+Z;fFECu2EoVD&IkZZ76Zahp3owUB$&LJS>?) zo{X!N=accV13_=M;>m!z?Rt0#r9X)va+qjU2bIUn%$gE_ZYuED^hg200O9tiGg-1VmuaTB~*13 zPKELQ-g?|wVWM@hs8_~ z5xOvsl%woA*BFj}8S&{@fz!o4GKw?&(f4hIy zVFqb{M5C+$<9wNmmB=%D440{j!DUZ(U9qb9%ww&WJ+(xI;^G~#x|jd^z0QG{nMvyG z$u8Cf^*zU%=H~R#9SNeL62qqjJ$YiHr5mrQf!N%asz%5Zr7Xn;?GA%a`)mhPL9{k1 z)VBbd_4<%FRn@WUq*)nW6jAo?UX>N|ERLw{P88_o8`HQaoa+6O6G#>62F0#M-ArOch>!tuE~eO zXd)*eTl=byNPPM6^wK{&+ctc~GLuL{pE_q5*VuVt!AiDVJl8HRbi^)R?mF-6JSCU0 z3lim{6T5vA0-X~foK1}-bJ16!)um~{Y32=T?2SQ2FoS%R)i(~G zz7=1PeP`g4A6A_HO%p%q+YVf79P1K&490&>hu0t4J6{ZNrH74pk_?!vPhJeLZc=}x zDN>HCI=QK-YUO0n`2iYd!xn&=0&g8{H61rNsqPMM1&&+otid_2chWA1nfRQT@${El z01GW*L;t}KnTZ2&2zu5CF-B}EfWNwWS4%(|=`Z)Lbkj!2_v?dx&HL42qhoz?jMU6#BC;+-IWVKwhK4Jxlq^cxV{yNg zZA6z&Sxs=7dffg2Hiqg#O)JC>W6L1HKP__=igau?qJkRJ&ekzA4j*SPsvOj-EVtb) zdZG|ss8kSx8mfBkt6Nx}mH53j(n%}@%@%o~*{T)R3@9|_Oc<@IFsWq0$WSV&0u%~O zJgY6r&QqSndSlG8{$F~N8S}a{zuvZ7+Q^E5S}657YMIX=L{cs+<(Ujw)MBC)e3Yz$ zvvD5BtBy4mZo*d9PhpK9&raODbju->lD?Gb=ai#o)+-72bXt5VMdcP{r6iz%gUY3* zAvqD2{b@mlZ-0f6E)7ZfVPKZQ#VJ`)Pt4>7#C|ka#|fOj4-NiwGbp`fGf8uX#kcC9 zb3-u?q|cciC|}32{G+8M_?Lo45LGANwb9Y%hC%2hd8*dGy(UkuztyY6E$ zLyD5CKO#7P%Sb?WX&u`pBz)9#Kzo-PV#GSZ2|Ae$&XB`HMyG&Fa8$bGIm|?r0x1c? zha+mUkS=A(D_g(x?|We}FS}ZX#iHjw%xE>jm=KSmo7gm7rqD zxr(%^qv9fTLyv|uGx)7g$wceE?`||t328YHxwFj(C6s|uQMs51JbsR0cSb1dEg&K~&;`a(1qRV@ zP*eYKuY$X=pK-CNyBBxYa@3$q1jai$ETgOE_~h6IGxOfCfn!s1OTn8b-8H&wVyomB zeB7MHuNNBrhKTDRNc?+KN1}vtTBgy>8}v;Voo`cp6oE{|k}Z0G1~zz^E%Gor59Gm9 zJig=b*4G6WP5}WR5%1AQP5wjXp61d!5ZT@^bsoc1T%m1w6-K>EZ`35oHx1SRCPdP( zmIA=y7HiS1^b8&6@Py*yC@9#8A+kyuwEt1_}{9vD@m8Ur0s$c6^;I+2O8pKN)Ildz<7J{HQ})p-w||-Pfw-^J;g&H z0SKCAeSX90A=nASc5a?m7I<}0flli61C1Z!o6y^HHSQ=(8-P4;x774UYzHoZ1xRxP zRs(_Z<6nwC3LiF}ASgHXA9I5OrmIBZ?+(7AL?wZG6T_I-4;6Y=R0G|3k%yRAtRf0O zm*&OpB|tlUNIc3IAx-%zBmMQN+v`gz;WPUZJn(2DJ;3+?M5}Of!prQ3xWGZi`MH~9 z6{7N0;+hd5in5rvb?2z>GRk@enpF6K=!BGM4ZeJQDbJ&=jsVMMr!HtWWB`)J?`ytt zuJO+%=?kdalh_>dzkI%*r{86Tc^@ZsDQ#&Tb0`VpsjNH`!PySRo>%e-p0)kVjMMnT zEJrdnfX8wlXHjUjWfWxB)1e=e2H8yKj5tcn+?=x3xSj6SXL-$sROuvor)s#HjAn*e z-mNh~<8V8`GZSo}(nB-POm-W`cmYH*Pm~ZtRu_swZn^-(NZqI%^)@m9J4%!se|H_%O|%_k;I&`g^d?gIOnk7C*{5pWq%%ee==)&A50+ERnm_C6AewlwW)=n` z!U8}%$EkFZm(q7AQk|}_LCg}`Tr*F71bCxhBHx3dHXBjOzWU5_f+Vo$& z5ggFFj@Q$(&+Zgja|)c~O+75}5P0#FAYKl=8J>U)hDTGFZ|xP1ibl9%%|htEyp;KG zT$RXRoX5I5Wtb_*&kXJsbf~sKwDlEPVWoI$ALaABM{lfe8Zf_1y$^;N_b5$j-4CE* z@#Cl3ccP6 zQG-$$P2|Pn+XbESh4vr<`6JDx`TfTELjzLLD{qwgDJMaQX3Y-awvM!f@*@nm?F1z6!2d-DSRczwgjN6(?D0Dp-l7VCT{}TUkjB~(!V{4nN@m5x*`!-e2$E^Xj9=Pus5&`Q{7faM^<<*axluuWD0rvmEwX&{so{7CgIPA}RhHPmiQf=A zL=jVG>zTv@s8DMPYXxoVe~cvTxl#cW{Dm!K{%+C|URJ?<)0l4UdoQ-rP;+;cFaeAC zCHIdigXUjgE@$Y`VdlLFu$_G}rEy|L(Qc=BJ6)E{4wZDt`-IF~PoVK$RVtR(*-cV<)rgKDlkWy`Z z*)A20B@n|IeK*4lubNsVr56HmZay5$R66gso0m^W;^akBnt?YP32;CTNF)}9E2k1Q zN)rN{sb3!Enq==s(9j}|ViT@hE4Av~UAC$5Q83Td=D0e}{V7?Illc>3;Om&(Y3Vsf zs%7QfIUZjV30CsUS&YRW?zz|Lsx%#m1^fq!P`3?2uJfoYAxIxk#O2AC2I};Gs!T6& zkIF0X1}T=t?wW3TJP=3=mAxgDhs7g0`Fl;LV64{9tF!4ETt(G`2r$3;*Yl4JyEm%> zJ|7yDr-N5|e)bn)^kt@tJ+{;D`7(zoAa+kNZD&hf@3iS9;Z7LyWd(t$;CaS~7S4sP z+swMj&~ACVvPHrnj!HH#T3N7OvWFos(|Q^&=)FcjiZfA1-ntbm&gStp@g*X5%`~`E zT;9jhCsb)@<;(s0!&<+;esYY+JM&y6mBF!CP7}VNHK*)30&TtKRhph4ITP#V_Oe`_ zW#KfNuKE~QF|6M5+Wi(MyOoZlNL&{}K4SK@ct8K5I?fE569H8KqR=OL|(e(EP*zS}LAsMFWM?07@VxhpiSkbbiD#X0J z9O`gF*b3Zq2%qW`m4>Ti4R`iDIT>Ni%djG`ImLt9?GYMYX6hjTzH^_^$vfY7qmMB$Znut5NsJNqKkj%u z!_X01Ee?66$VbUHH6&dM@;C1G87d!WjWpF6+ltxTNE(!kjb5|>`q_1W+1_yE_PkO%M3VFo3zRGo zMxGe*oQ>l^IeI#n-_!u3q;d()fg@&4#&?+38KYS!*OC|6cYka=S^7eGb+Cof6ynop zhL=u;%Yy&vm%{U0l9yN7>$6iX$`-MwXR@qZ;41TT(?7GAGLayz!u+Rj2$smBYF7o48%8;CSH|* zy+WFR7Dp=8w3`Dk!{$|QzX(-t^0qKD`jn3$34;9$q#9;RQn%OavtWa!5@4`+iRvoS z%Fn{40U7cXQ-@wb!{QT^U+}PbcvQ(Ld20XYAe=) z`Q*?f)pM#Vo90Q8E(=WrzE$K)rIz?hmvxdFL~v6jlZ4)?4afIpR(#)}%1cD|68Fr7 zF~<&ZnUh()#Ts2Vz&l=AJ;QjwP>5Bo|8U~uUU^9{oLmre7IuG=Iuxs>s16DgUabA83a$-2UL*g646CWeJVi@kF%egKJ0OlQLO8H7WvX0q_1_hBT1D?NNC&BCE2S7Ws6s2ti z7hfRL1iNXpM%koFHTO+Kd(E>*oT2N$>?cTg)&@?`-fsoZ^0P%DS7JQT8(qZTnI*08 z$+7ylCy&G-Hc?7t2YP(9GBTmV!1JhkQ)Pfm>qHH#ubo|GK($}Xp(p9g>jQPfLwsqO z4TCvQa@AG|`hDEf(0o*lc5a*qn*qaG>)BsCme|$71uN!yuDqJ=*-I z94rj+Dv>M9ppZV}J!vLPWlq_Asp<^U10Sd;jQCOkwqERTK zz!~w$Z_>SWm`-u&v;L=J5VxhoSPT*xsh44ae-tLjK}()1kt>w7`SVX? z$}9%OkiWEx_vAea^+8yrm~$=JNBOlRl(;zaE8S(yG~v?LUMHn+U#k0l1;t*c0axNOYD4cE*!)mmOIHPM z&Vxw68Sy9}g?Rl>_BJ{kb0r>#;9EcFdqr?##w%RJnUzFd z9dqrD&iCTtL(V-6dv58N@(C-XBA4v^zz+gYP`kspWU)&{72=i8>EE!tXe#sddC~di zU@BJpcdOnfuHnec$Nb!MP;oX@TMrwi1?~o;<-E67=jLBW_nu)Dh}G$@ix6*E=cNQC zCGYU%;nLqX^=ES;HE|s$V;L*(|3Zb+P5_qdB~(PnJCPp_fyBe$`o)IJl&-^BbrBUl)G0lRF~D@R1uV(yDBCO8^=Gy4t~0pq4GulHBuH!zb>4Tf zO}UW_nr%&AeFm=IPSPFbd+AK#t#^4Da1PT%R23QU`SNR{6Uu)-d+dAPWM6guJj)iP zGX?KxU)^AiL}`|Xb2Z`6@;%$Qr-CicmR9~kzo|#5h#~xNRqH-wfMGhpM0^kfnZ5$a zpy2L!f+kz!shaJtFu@!L-X2wmHS@%8iT}u~1_qQOs@fGC-PW9m69HFZh|hlD%v#UTMvKntp4Fcj;j>;2 zR0AcuTlp`f){ksl*$mfLZ0_0R%EiA1ascbe&6%>}SXbFpopH^1ce#1tW&X3p+40OB zx_Y3cKw;@Z0D=s+tI4aB^n8GtLXo#td_|O0c!x`^7}+XRH1R@=Q_Cx9jM2|*!;H*4 zrPG;e3Oq|y9tb?Yq_R<>G}}``hv{vNLnuxs9~7==1N%e#fD>!QqBcl8+_VYV-r(9+ z>Sg+~iV1Zs1_bIb3M7OjbJofPx!bihE5AdxL{SyZ$=uzUN0LLuj|Tf<75xSSzBj-c zoHl8K(=lyq2|5}%d64>K`V!$1^YnNj1^ayq6gZMx}J29e9dDIwBpKi}%%@Z!_t?83i#6p0ky~tbIN`s_#V# zG5aJIC7@_%L7B0FfGV!~#~ZutRIX7Sc^!$oyraGs_5_Q%{d7|llq;TAF=<8m9amcu z9lVW^&r@TJ3Uz}v4{2G>KSO<)X)ATv*vM3pU$H3Iy*JVd&Ing61gZQW(D1bGujSNn zc-q7fAqOP+&l)@%cX^wER3Ph#rO`fEB)l+ZK!rXQ@`5XC4sLautz8;PH;SZBBfNF{ zvw7pmR5vZ;x+Uqwry7}hasY1_M~$o?A-zhMW+F&nzicpIRuKWU+&-0QcN9PKn-<_Y z)Yj4JD{pQkLN!O~M+r5Bz{TW)ySVF%h;#ICvp6twS-f1PoU442D%JJ4#llOnr#_9P zyw^e+5JJw6Zo_E<*Vo}a<jCb)&eQJ54Jy={``{$Z(M%VT`Vs3w*Up^!)AN$w@`LcBEy{(t#=(RqTbS zQ-C>30L>*SVj$4G&pPeTdc$Ba3*?sLR2`>KZ{&ujgW*{D9R(>{X#5!~wbh&|sC6t)k- zI$WK3gGFq8%vDbF7q<`)rCEG3I+XBI@G>$Pn|(ppSann%}B`0I7u z7&%rAVcP4HeN72;vy`|oVYAGmD>#MZM@5f)=5MwlQ`#i(WMjY`It4BDJvJH`LL&zM z)W0}st$o>8i%k0hxyF|Rm+A(QvqZOmykY8pJ`PSFqDWi&-W^<9E0a*WP=sULWU1V4 z7H6L1@+(TX6{`GL*Lo(3M|iF{dDi0rMv7L%$`|0szGEq zPD?Up&MZqps!mpu=}ZV1{6G`K&pCX{yaXU~Q%N$ZSbq}60faLSmoEFCD8xw6FttZz z7ubxIq$5->HMRz{irD|NL2_#eDu(klB+LEgBbiv?sB_|%=nF1Ny&k3?S4$Ac-uEMmCJziJKv z86euR^Q`+3pc;Cd8B#vBd`JY!4oSsY-R@l^g?JfH?Eff?P%y3ao`s`s)13Z#mD^Ox zJmSbl%7d%xE{K=OJMg(!yH0?lf7v}p{wZ9(MR41; z%s-fBH~dp3FM4fG}9E<|L3U?6~&-j(QtTySxw_S=H2a@*z>cVd#Orq%rTBjr2W zWcy&ANB`~BG!PU+eyFsXbfh)gNsk!2k2CTV0F`rHKZ(QOi-o8y0yIlm=d%Q>-k^S&<^ju;emkST=8tB zZxr_4S>_W3^_)a4aGxxSIF5#fAXzRHeGUN&hB=AnAi4M^tOo#I4E1x0NEfQTKXkEJL_&DV@fL*zL?!esPeH%Tz zr=4BB`jzYunhZbLO<~|4Ya7qn$LTSLM{{uE1DnEbCkA5$!Nv`-NO+&wOPT8QC^UGb z4o_187PYZV%!H%xDSkdLH>m+|-nOKk0=-gOg7d}TtIJ~w>0z{4?$7*z`{AF2Lv|*R zfvu1TyDHJUB_Q%?Z1|wA@z%bTUDx{vaZaHR3dYAJcF=5RP-loyWxL>dQ$B#P){AKS z&2(lImK~(C+=d!y*079&4?+iAXukCXeW3E&99asQ{M#jN1u);^%)w+sb5LaU3E{_u zB(`x)y>7{e*Z zKlWj;IBF-gh@^C>y9l6D(o2DWp@SeNIq_VZ9k0Y?ecQ(6+Qw#vS@-&|#{di{H!jE@ z34aDggoRu20qVy!HzuNiSBA&9bp4(%Lx7tymauW_H)j^q$YAJ&OnAFKTh}B+lP{Fd zMrgH4GBmep6d-+c%g<9)*d_$h&h5Mw9s62RH|;)>4O!IXr3CQpIdI7n6^_+O#sFI| zGLCl*kOos9z-c$qZ&&oJ}^~SwOmJ?~;1cvjT*nBhcwV53eVia+Fi(D7Qd?B;f zL@lH8-7?M;#S7&3Fl%s4y8JgSAg8}s5(Kq-CG6eE&eqC@mt5q4PhsJ~CL9PppDC7_ zoOpey-yi8=nio36B(JZ;Kle!3N}KNwEpgN5etbw#0?OV~fcBlnc>sYeAXD@-ITn5& zVcQQnSO<2D0q?=I>rIaPqI(Va(0$ zZ35idLxn2{PC~cd9}=_(Z51mm04@JHhHYXH02Wk%S9NJk?j7iq?rw1CsQ)k)f($fk zyIDPiN)oVx62rClnlP&mXvoD75C8xG00RI36951&0BTfIqty(kO{!{!Y8t9)gQlvg zs;H`}YO1Ols;a7pfDz4{RR91L0K3DJjgmX_0s&uu%O?-nga>?tFT&TLaw88r-~%Ec z+ieee00)bp?b(k5WX0|F0|Hv2ZQ=$utim$I9Ogt6MyT8~CpN-S*b1bAWn|JvkV5zX z0000&001)yG)ZIvY6v$R=Y*sG@BjZh^E%h_c4i2?pLhxJpv66yYWRe?bcpW;Zcgq*9}$^*R01^V8l#KM5zr`CbIB~q&Md7 z#nE{yqk+4OBOP)qGdE~wBI%qoBKBVRlS_4nR67srpPNOL0=O|CJ}dBrgm7LkF((t6 zXEJ00b2E+QFSw8q!`F>$t3!>+lkPqVSLTFp6`Ty19PC`2y_hJPeZ1XfZuxChIUcvr zvR{COqa;g4I{BuBMnHzmHGEhXruW9~SFkfnX1AJ=(GfjK(O2N4)|XkX-gA$o1S!DR zv_4IYOe^7~9a`H&cZU}(O8)xRgqOVJeA5E&n%>cNA^k>7&9{dQh00BrDtr?TjO0d* zns~42G68@qHqhY0GGO{Y=#B}ran~@QC~&%ibW8a0L%oKn!ZAwN1$k83ms&XDMI3CO zR(ov?k34k9_hf{<#Obhcf+^LQsWs8ln=L+g1;KdgU&>jRV_4#q=B;dTM16`%x5PyB z-khBX$)tBplJ2_o%1g{gAy9sQ-%b(iL!@<)2*OSvqStprJT4b1fmQ(PF8nMF12S=FF%sts z1yJQrQlWXydD=3n*Har9PtS0=ZwS=(Uh_usl}Wq$YQf<0fm@uE9gmUsi|%Z^;XREw&c-NvHE?vjJ zI=m3&$%7&>4=<7qQE#5j4g8YL+>G-9lTPh9P@gP^n>|@OltP?7`-A@xPSN3_`d74dSAPqLlWWuWZob@|IoHzZFxTqf3D zdK&Ra?$?*w%){vN}395u8HJ-z72tQ7CAFsF1ZY$M{CsnijUhtLs zZ}MqN={nP3GH9mASD+)YZGb2o!lCO4%z)Lr01WAcN{!kSHhkw;$D@lhAm_{BegLnZ zUIwriQiSVqiS}+p44yTOZY%RiU`N@G#~?6*P5Dwd0j~pdt8QuUjvxr78>?>?o4`oh z%h?v92jsO;eF(6*p-MuBnK zxeUT<05mAfsTpIyK7|FZ26o3Xx_ThNoezB4iUoT7puz@PR;Q{uZqk3FTFfV;v##D3 z;EH_%kzr3=qKb|2Xu8Wi<&XwNKB!H<>Y*u|OdG%F!07IDQj~-?oqF>5>Bk0XkL1l= zqSP^QgMwvI(VxHw%|LRz$^x4=$;2o8xT208Q(Vj;Zq~Gk*@5(*d3-5a$R7?ue85o5 zNMJ?EJJe9cy$l*2^(Jgn(-y9)0G@Dgda3kn*uz^=*>BW9u3%kW#8d)t$g4F;X!=p0 zaz<06^xo{@E7P=y>VjRvGiqvSG?`G#xB(fwFjSR(IkPZyQ&@{bj+<|AE_SSDs4<6% zowb$+x`pf3WXhOPDN__f^cQXXQ8*tLaRl?^qu4|jHlbb$3`j*V?gKE=DOmbZAgN$P ziY@fJtXL+4}zQ8j}`ObYugCIC|k-T-7EpA%>JgL-l zHm_f6Xe;s#=#?01048utxe5>w0q0t<-^r;=Q$h#}tV`yXpfO&{<#;++5;@o?tpFXC_+Nd%Jo^lttjVBWu%RWws%9RR5)U}SDdE{y8*Bh zvM5=W?J}(%dW+9<2lB#!lro;WcVNXmA?IU}>*!@sNPfMOYQQto$OV@3= z>;OJ<2607XE$zXdrun+cm-9Go`z1qG|3&!9F%Rcmd<-FpHffh?Iu zfZhHg7*_NGlWmt244;9YA;kNa)}iSWLDhUq7Ii7K8a^ybp|K~;3wNcADxwKUc8lVP z+U^Qg*cxM&uf8(^CJWl?!bc7@8R;TKpAecIA)jEZeth~_o0=EYJYwGI30Vg;+pKkn z*bED^iR_H0NxIB(-`MynQbvmd2;|J4HI~8C^K$}Ob}d4}v9AslPMBL7KzSHBC1C?M z00OB3NC3>cQMG99+R4^Lv&vyX{98z?P>YRCChV@&N%7#yg}7ELf^avKWmU=r^0#lN z2o(FF9vr4-)!f#)wz#t5KTm-~cq(@J_&#x&xHVp4-JSxFKyT7W*~YX;ojf=s9}#z! zE3v@fgBO41GCeOsom%4kQ}$PSvt|uwp-#=}K4&Ex7tZfzUJ6fuy7#|B9&5%zwLUkX zD2*W>_In|}!QyHIF@fA& z_k5(oP2Q3u=5ule$$5uxSzJ32E6E5Ft89ch-Xl^SOgycNGj`z1hp~xpfi0eVxnfqA z_VY0&IqmjCqMPe`B00L(#}R!NxCN=>oY`Y>!x1({aNLyE2?B5#R(|LgwP!mGI;{tS zPs{m&6XW}N^~S@{d?Ov+!6C2>$aJVD!37^u1b<^;jQ#Gmw-tEa6glaaj{>3@dCgmG z(u3&Z8)?bD59bXQx z;X-$<8iNbA6D91v{jJ)$8|rVxlyXi6+7&k-xILDEJ92*jiQB78A>9JTDR5vFK|9L^ z_wtd@O?J(VTh2;&(uMsOO<_>slQW%4HK?}_7w+o8@0bV;joKScd*$LR>ZDGGhW9?$^BocBX7%NxP~g5sNOo17r@2ALC<<=bu=|IkIbQKz1G(b zn4StISIWz*Xur**lJ8*OY3?$8awy3eYIMcom67%tznJrAy7Jw3WoZ{$?KkT>3*}>| zy0q?ZfjI)t-%x)h2|a1MH;W*BsI@yTyj!d?&JW0&w0>YZ(jGyyPM1iEnBXrMyg$T% zy_=p1qlkQE^scP*fT2pUjG-(D=c48Vdf!a)v54^qxelDux?J`4s|11ZI1IPk#ehnF zAGVxv29ctR&AG(w9&;3E#(-uSGY70TUPnO1r1Uk&~O2@9exKc!L{I-a+s zsjMuXhdK!-4|`{ z0pBo4k|l^Y@kP2ojAu@)lP{@aQ2vXTX0JP9P7~EYq(>XCc6@24DYxi4Ni0!Qx5Q)aQ4D z6)V-C2?Pdwj{qbnvpCFc==Cf|G`W&eB6(bZ{Cr)#e=@(=5sT{mf1*iXK;tb##h?$5 zh____8l_#w#NjEXrIQ~qk~0WAKTn~)Fo*WBMBvcUx8^O$aK8^xd<7awaYu6bpb{5j zl72#&3OQ`*WCNIB1M@RHT-L&SL&fc3Pch@O)lH0Khp;OudoGof8xMzRlK3v)K;>#0 zF6p#rT>zagO@A_o$CusNP|-_WUAh#aPejJFJ^M&n>FHY}lS~#c9etYmIfDmUaKXxz zVLC-K&{7qVq54du9VL!qoV_Sx!^nO&eO7!0&6h3P^P3b}1fG{u&Y?pFfJ|{u--Fe? z9)9VWtaxWj##BMz2j1Y1(>{SB-2!FLW-4X$5^i<6+HmjSS7=nATrH`lbXRNDZ)@jM zRA=GtBgAflaH$@pp5@Wb8PA`f_4jQ#w@{rycfl`73JJqc(^pm zi4*}ZO?NU@fE`y_uD?^&E zA~av?Y1Z=~XpTV%(Dx_XSomaJSLUv6VJ5A`t`I9>E*9M-j3D*M@8Sm8RgGfReH$(NPO7=4Vsut1k56Ja67 z`jMhS&ifa5c*^o+-5sUc*t(Xne-W-sF83)=cBt4;L?OWpQ5K9>Uu>O@Q$a$i6H5jC zJ;?(sAvS6M>U9r8nB-4OkdqKRM^2J$vv;pGlGeCztd!wN|6t++^>5`ov>Eprl8-Sb7V``l$)NO$9cU z${1#m8XtFq`QxtiC+4kTkBlMNEqfXis0ZZjMm@oc29KbWff~Pm%qQw+m>S!)9(!JL za2|&IJT%+q_44tylIk?u(`z`_bec9s&Sc~;0HOZ$!)S18X`|dZ7kS$|h?sP8MX;#; z2dOCW0tn8ld8+7XrH(C_;wEYiEZBVln}y1WajUn($~P@g&vLQh)1?K4Do%tlHzk5Z zAE4*o`+SzVV1%tKBjCy=SgiriUfg5&uGndy#tW)=3<$c!YC>X4I@^c<9S~(>Jf};| zqbMsCKn=1ge$9Ik$HPm;am&E_jY&#StL7K^5GZyO53eZjzoGFeakeOTvXhkPAmPJ2 zd^2%wY%=n~%=|Kd>lu}$78q6v)U7LpM3Saa&HzCiFiGbZu}vM4WMWzRq|2b)b*jPV z_42MdWTp{g#F{$X4jbSwNoD&=Ug#t6{GFawezWCooS|Y`I=dkg@CA0OAt{XNFdpEL z8MY#a=n(4={ghBKtRA1-P)LINqf1Y3o(N}cfiWa9O5v8X8d-ooa5XvImP%{}IzdA< zf}d?R)HeJbj+IgpSz0`;X>UON4apGv?;-mPbrXBxJk1Y^Pd9o)KTtgE8}s?=_X9Coqbo$v`9hLnIS5n={;bnB9IxNgtGi zXU;$fSQEqcu7)8<#I6hE)xBR^QV2Se?5vMDz+2s1taGh%oOG&i&O7@1rA6*4(~?olConNcAsfStggy(Q{RCExSk{5n6mS zgqDe8j6z5Inb=c)5+k_8zS`E*JHa2H#11!O@WE(&0NSy4D6&?>vqO z7|6Bny>}Fr#ZAAHeX|0TiVRK-B_^gUi#Vl(sx&Lj=iOF6rei|7E=j;#W{J(xXbHC7 z8OO-8iwZfMk_C1*-|HvGCMLx#s}<94TXE zXguJ`2e{n4#<%aMe}~RQaTR=Pr@9HUQ=j^`gBhbL0OP??*Y`ghwJf~}m4WYC3S}Q! zy$K{k`JS+=SnYn>WfNaM@LkQfEWdQf>lxPO+fFcF^|Zj016?hztA+mpI7dVA3Q19T zKp^SeJwSZZw|p9|2xBz~n%=}7+Mz`G^o$BtTJQc%&TH?K?!9y&HyP}UBf0uox9bxR zf7zD6+$wyz7n?D6Ee8&r%LJKk-GP_JZpzk`O6VOjmSq!(AFtSj`4gSr&PlirmrAxE3xseKeiasaT8&OE)&{ z!XWYm-b%FZH)h7F0n3v4eWS4iA2dKGr?Qp@Ex1gcCtvgR+YNjnmZX45h-FcL>uT{{ zPX|bOm=X%{qp`fH9Y;3KiWgybj}Kzx#Bkfm|D&OV%nPd?BaE}Oo)>lVd=VLt zF{!{ua&{=;kexkpH)rEwh$%r(hUFun9_s&8Y1^%Fa-i2dhqPZ#Cepekou(lRAR_4f z{UZ^dOIIz#x+q)@-3E#yS)7|Xd|VeuB%pAt5BKaXmeRyUhA*S!>Cg6G%PcJGs&n^4 z6xMc*Q5p$zNS97po)zd@+Li^eN9apF&9J;&CT3M)%4ApA?pt|pTD4CB$G!R*7&4!y zj8*(tud~tkHD7e8;IEBCm(C?LC53lQTQ8QFjgtFkU|}i1ecj0V9d(lkIe-bIqU-sMyX_+)5f4t@vaC}!_}sf z!+s||HMgl35{1TMl|I1SUy-<9lbMg?s+xlD!@^)dLsk8X`O*WXB9D@Ro4ZLNN~;LS z$JLvzt3GSr`g!7KE_M0EbT}E$GF$RwEOrNisg2N=D?H5aIJ@!~U>;^}B?7OvT*fu` zt@wrC_Se^vEBGL}GkqGJg6&tjuV&|avt6^PBHi#c>olX)e}-xcS{1wf!T>Ay?hY<> z?#@34vH|bzkZxVI=h)hgX5rqCUmyAUsH0e{>Y4Gk%4RrXX6T{h0{|bN%0bHR`bnx0Devl+(S{5y z&;{unZaxrz8@@^V4>i)43y@4p>O_>W3d7qidp&;ND#E zrIG=<4F?}dLh3km!xTYmV1OO8;+;I8+5949a6>O-eRLH!SI0hE>`1c+03u9x{xR!C z8SHz#!rk+DiQ{yan7wbSLYJ~H35~*RAz_zYA;YN%p>63&z)@ndZss!R22GU!Riu-* zsCZQ!^wsn11nJ5$3HG4KlQUmiYJ5|YW1y;O1DM%b z(TK3rK9igr&G!3~$77c%T8lj3afYQmWwWT$@U6OBGlXo(V_w|t0)fKpllKw$^oEt% zIM2v7oV4{lb*z^l+sBdu)Yj5mkg6?;F98@}6+14y!G*$oas|_VIy{IjpbajuVs{wG zfVtQVHy3M&Mee_c-XnCZ-V~;*iy)WuQ43POcuq#B@c9KHplX8Z^^nS0<9S~)HR9-cCONTjG>Fbt>K;`@(3!ymy6r6B(}Up*JvsiBzT z9b+VsUvMe8sUcb?ovksbe+3hP$xh83M)wJCg*ppOtutyyciXo<1SaEnH++v1smj$_ zLVshe;bxKM zj$OipP$VwehtrxXg(vdQ&To<_wHxa({eiY}i9!q3cea!mB9LUUR^Qi2l7a0m<2FEj zePvc0b5jZ5afon=b*0lHg>nDE6W7HlJic!EQ;CO%0_Gw)nZ+~W^@=*wh5!U7bCfKH zp0wI(<(A`ET@1Ccl$Rr)3u$i6z&VD)pte#yg;|pxrT1F}Yer_-Dx1|~q7V!uV4|kH zJUP+};;QWE`b8+?x*cb^4JMMnJ5~yhOh&@(MngSWh}0fSO)u z=pKP9c23R=rOMizB!%8d0QK%`8?IQ-d--wzImoEL*uEAydCid&h=imE-k2%b-Fw4E z>fJ1Gw4Gs&f#?Ghwgbc8(p~rO*M>$k=)^_M*P#V;iVQ``rtYjw+R)MZ=xgk6`MnZ? zBxl*WQ7dc+C9+6s&YNr0f_AVX$=X-XVk!hgaPg z@74!rhlJLY1@&7!GJXCo$2fmC9L8IK-aaoe?Tkf~{Q>q*^PkQAl)M>`EBw?^mwGiZ z+Vd@+r^M#|eSNGP6;FGt5*VEfcHtTv`4!&3FN0u{r_GjVm+8k)mK+N9*IP1UQ>35^ zU)bwJ7+}5EteJh~YqTj%W+~lom&(7{!CM}>(&w;wgLb561bqk)bTBcAd}y4MO#o1} zB$-t+68eL5=9pQ)G3GimJ%%60Y_hUYA`ld0i%!sP5K!E*Henz@o&MM(We9b7aR?Y~ zv8OjlN`u)o#K`S4?b{4rO!F=@&(THMG2L|Bee|CS0_UBxf zq2AO4lI6S>`|=Ajz>O@M1H^`E596cJEhiRIZxA1F8!B0Pl0<}6h?b97rC5;BK46bX z8GAHExR6}h=SH}MYt3w%nrxQj^1ILwA;3+^p^DauzzYI{)8DB+H0+{`H3xk-tR*Z9 zi31rbuV)+UI>A0C+-d3fO?(8_!1~=}E>Nrb$G zvzKpS()Nb}@Omd8t6fukB zK19n+G@<8uaEBem#tjc>C7U~$Jn|6P#DFv|PPSUpkjq<)00`ax7PYj)Um{yoV{`B0la;oJpw!L_ zvARj#ep^=GZ68NAsC@8WMFj+810@TlnO9y7Yb8L8SLv7-7j`w@e$jfZr@xzOOB%WY z39f9iM4e2@$cnwmb>MTu=%#Pb?!kj#K6@5&K<=c6_oV$`Ht%~g-6LW4{ne25VAOrZ zByGr=dXlP**5-^TioK1QzurjYiojs8SFHVNqXtj32caYKuR{J%G86Xlug>TFLI{l} zv0H{?8SXDdZvF6j{Rv(kU7Kc?`y0LX92X9on4e~66FobYr)xU26u9?lH1~4fD<_$0 zlqZ-N!(j=a5w!>>h4tshjv75rjADvliUPJXnm|*D+g{o)XVI3i2Nx=09~A(!@Ap zy?Q}lSP4HHWO;}#w?s#Sby?g5G23HxiID0wv}0c|XWs`$Bt>%_vJ?rf z0fXvYwKv)YEGt%B&XmL}Qk)^Q6F~@@b9Wb}S7Pfsl7ZM!cB+9Vk=LPeQ?tAt3>=hP z*sbbZ-Eg=+x999l(0H>b{zX@$sKnzi(8>Q10trv@+d_!T8!5{G!KcyC&o6v1{Y>My zSuT_elkQON9EUQhNpvjRi0Iugt$$3gS=~*TbEQuC3E>HR&y6_P{=Wsl=ItcFE`I52 zDF>43{3VfBk!;V8OdpW%*$E2hx?4LA%Z&MZt_?T9VahK!v*k5E;m8ch3T%)VXTq6kS? zoOFm;@7C2ynxo|Fh#=6g`HG!xNU5oCff+0?%9zW@3B^xRq_<&rdC2!#XxG<#MeH^r zw=lqYzD#NMz4_YNk>AeD#j{(+jU#7L-L1NbHY*hD|HDg%S042R;P*RXCJZN)kU7J= z6Jz)s^9&_PgDPE|=5FBBzu8Tt8LmZRrcOEy0Kt~oH-g98WA!3v^R~|_r8STJSGV@q ziSanc7x6Z!e{T3ApJ7CQKr@HY0tW{0Dg4sGmhXe-BBpz*e?0eq0D{oe-IIuC^5nk?O31UMJX+E~1hM-;3c2mW&}ZlCj@db{hqN^rfr(1lqd z%GBCTZ1@Y+p{}B}`U4_g)tOR4)>N%KZeU0f0Gc;J*Rem%w<~N~^PL0x5!+^$6n%#Y zI|sKa#=v&GuHba@fS*!yQ+SkQVzxmlXt*gv;)*Zz{zLNH^lPh^7B$Lq?$PtG~)Pd8+x zi|x8M-2?3^M=hjbT3APR@f@>_hpC@~qUt zdV{x%ok{!7PBuU&(jY)i%>oAZcj^KIZ{Pb?ym#~k`>07O-uV0YuIeMj%WhEPuEbL)wg$oWSIh)Kb zrqy3_vb(vsv<`WX8%?RqHvoK(uLRVYoo%enMGsCY2-zoH!48WU+WQuEiqba2hlEZj z#TyTIkYZf={}SLw^ZkGw5Y4em8-48gb^KZn(npwNbXe9w&~Kw9QWO#$hdn{(+qD|( zT=fApZt4KkCCbco-k8X=s8-uCE{aUD9n?`NKIiPPBWS{@9=qo4)Ldr8xr%iXpt-rK zdfqj8IHM87C%|Fz!keoEr>O(og!yDRI_*Qwdwc&PWqPbS%{Zhup4_#ZZT0QG8xS%f z)9hby<(`2hPta4j9Bn$Kb)|b2B%xJ<4A;-?<^?Sz83j@~P9dka_8{^&c`bm++S?R@ zf9OCDOL98xA<-ixUMI!*Yn=GB6Oij)lDY?kM@GaU*q~p82#3{+_dzMjr!>DTLBQ~7 z05&fN^FCWl5X&kt!=e1&wfIto(|Mtqq<2sU#5KNlbEKnZR{;t06p5OdN?Se43aLvh zI1+&snZ^D?qOE8V$d7nfk5v;6SPVEb8;aBq`|Oru_%hqoGC+KDC^nTcg+TT>lK@k7 zogMdLPwzp=9KZAiF|M-{gOvINE@c85`xUHq8ha_Yn0ZA&$@wM!Th|kqz_NR;8)c^Gfcbv-Z&=3gvqC3K6oLQuQQb!n=k*%+bJrjZ#Bxgk7= z-Ia?lNaP9<)d`*7cxl>O)PVufbAero><|poA_8prWWA;J1`2MJ^U(O(V6f(4F2?!* znTqcfJPLPHQ@AyedGwd@4M9*Tm1v+$%6cE3#5s-2JRJ@fA}r>!cg84|WO=dhg`<`v^ zV~qe!XGfOpxU590*%$nWRR6-aB z)=#4_mGTe(rFj@CqyvPIbIO8t@Ig)5%0=|2^E| zp3`;07jjPam}rr%hvcUA$a`|~(q_+cNa*q3nI}%hByEUT1ZeUjV_-;Mnwjci(joT>0A}lvtQHqV` zLFo({MUPhp68M;`2Ewt)Y!mwhH8Bb;;T=NuKA$jA0D_0jtfpw!8ht`W;LBiMB?n=xP) z>IYDzvWf@-=_BnW*#l4#e00(BQX(^pnH={6&TAAC$20PZ4&kZ_P!d&%3;+`=_PQvz zf`W#DfRw4@FEP0u@(A_$9|3I9(K`S{)}M)NGrj;-HLi_rUbLXPFeJSc-yw>?TmB4E z1~%Cv-RltE3)Qjdh!?`TDBeaQFS?5W@<$0So3gRpEA24bBUFDlnZAE2#+U0~!tk5u zR}D=i5*CD5#!5qt3sK#wry;TqQNnF@1*t%iW*Kfu<&V_bQ-0!LHdNalOdPIm6|zfq zH98=eGST;s`!+&;CBxRXq@SRnKqPfUVqxvo1VM9=`nM*MJI~*xFgMJ9B~>S-8NqqI7 zbATCieBR%U#4`==?P(QoXc!1W!@}CMK}8TN%%Y_vL8+^UR5~yU1Is1Q6;#6oPQ1$Q zY`5Q$q7piJ(b9ZO2!G_sMsS0W2wA_WQm6iOyaa*yD=bVxgw}`%7iAwX`d4X~O4M_# z@<=W}Z&&wJdS-8J|7AD7a+!lhj=5qsY1+lD@FxflH#aI)+FL(aDVeCZti={k{-2j9 zR@d{!c;nG;)ko>65p-!RM48fQ(L4Vc=Z8m7S(X*f1$|DX3(sqeE(Q?q0fotN8f5Xw zMA?e?6j>_)%KxLiKb-2bZ$p8qba>uMv?7OA`66dLchuwltbjn~YvgNUclf~a9%{q* zFyx>{zHPPNLqR{jaa#I75KK+>mIur%rRrsL)-m8O6e%o*xW@HCJOjL39Oh>t+Abe< z-{u|4cvyk;UE6>OG(Hb9@JyievU?bi@^~{8GtUU*AXx+2H#UDamJM)FSSoigfqI8+ z!RB+hjxHI^J(oejdh=)Ff#rj#4wNN)i=8TE4jmEO7$RQ$s3W!W*gtr7%f@`OYAx

4r!14Gk4=)q? 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⪚DL2ERklRU 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

3NdXFcP3?-68^ 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

QD2BK8T_!$XUYW~(Gkzn9UW1T*8?0l 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

;C_MBthMHfii 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

hy|_A;UxKzLji^H83};_24e`nrp)Fej5hT& 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%0AvxjN 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 z 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 kbI@?i$ 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%0D7^F1JfhkK9VZ-9M0zd&4kOtG6>c{|r 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 z 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%0AF;*D3;Kx9C)v#V3gfL<4 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,FDMVR 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

_R@a+ZF_X5cq|pn35S1Vj5fu@> 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 z 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 z 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

R$~eCL9(N)A4%l$f`&_%=FjGmr%0*v$G*KxR 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 z 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≶ebyj5)llc)rcH~;cQ23K#i6HQ8vZOe+gPpph!y6 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

WvQ34m6b+rjbaOdh7AP)qovV(t%M?S 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

=K3M@(Ak!XG+C;(N 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%0DduE+&420}^DeKV11L-^zGp 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

-Fm~MWIv~_G6WZTQF8jgLR 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 z

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�(m4*Av$`Dekc+Efib%XtL;`IFY4X*mryTe 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

WlMINMM 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%0A;YTdyjs4KWEi)8 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°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�T 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 z

#>iJZif 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

)MINkpFF@E`iJX*S1&FcMD% z{YO~{Rof!i>;BNK8_ca^PyGU5%(GZ;BNJa$4947;bcs1OskCxaxcoShRr5XT@|m5q zeygTuFp|`c?wlzt9OmvpR_A#!NdSGa0$!|;ZGOQP<#TBeY}^fdiFQQE$&*eC<|xsJ z$XgL)F`Khe(4VNEJX1nTr?DX}dD(JIc5z30y(|Nduy?;L5aBECcw@qr?JyC6Lsjr8E{qk$(C+p%5%oErBE=iR( z)mPy?aS5Uoa-H^_E5d1g@>0H{;#9%td|{T|AhqZozTpRxCl{9=x^YNmLx(LZc=~t`==|z3T4ll7Og29 z)8}CYt8IPM$c|PD1QXU&oPX1eWET6B;;9<=8=fJ+i@1t)ODd?Qk z{7R45WH+#ou+3yk7hwgFuSVW!LLjJz2G>k=n{-?al7B04JScj7;Pp# zh9lyZ&Q}~iXv4jzCMH>A&};T)6IPyYYrK43b{-Wbp^lL3vQb3TuW6 zm&D*})5RfyrHG~rLQV+-LgshpDn`wzJ#B>^0Qb00)-z?s%h9ID4lV?qx$3K{KjOPb zQF5NAy{gs^ADujE_qRX+3AEQ6*!6CJASL4$ZK^V3wh~$L=p zAaFigo-}bNb0h+Csch#jbHM1F8DreL<`QNf3EchyxMWrsuSjYzpj(q()rq&+v`U!a zY-}b=#rr<3=UZ$Z^u}XzPO3!VXikUCy0frX5p&Uyz3F9f|sloW^Y z#e?!7=V*6B^gD^B*GEs}xYt0~x(HL{uW1anwj!L&3x=kj+N%0wkvUh@2V@wVVs6#T zPPmdmj!4A`n4s*oeB_aW_(idjoAW5j=Er{jhp_s$h_B;|9u(0yn?6pc0>j*r>JfpA zc?Sf-34HT>*=EJuC8AE4OBplBv|z`-D}hvvouihGhnD@{q;gr!H`N#TFyc z1tnR?nAvv9(v?<0%Zw~D${{lueuvr>Pca8?k+Ku!;Ob5Zz2lftVABbhnqOuElRp_A z@&*^{Uf~pi59Emad%K#M%02sOs&md>zi-xt<&G4?%s89QL8L*Dy%FMDe0NAbf@N42 zoHiDDppOM*Bqy_r6~w2{e~@rQYes(dIuQx^KJdmjX}5#nBc~-&%h`%DV9XnAG?ix&_`B0FKu7S-}A&^9v`d>+(==8a_zQRi~Wh6 z*j7hJ+|X`VDid-l+pi_@+tjr2P|dk9Wb$lsu8U4kLh$>J8qwMPEBn(+i8H^-M1|~ zt^WJcMD0)OCjdr<3T9*gz~BH$?1{I#JI%49CN4?tObYyxlZ{Fz`R_+8d2>j)l{fE> zfch8IK$?*V$q{VqlhR4GZ(p(jt*yL#2uP^b^2&rm+Gs0K8I_@zwrMMh4E$0Bih;>U zE)|kJB_z(=y@1gG0FfCunkxW)x9;w>y<*pG?Tr`^2ohjl>2tu`OSTsuz+f$o3|ngu z_#z2nn}i}!LYl-iZD|rb$+rnl>ZjB{p-=U&&a=yvs|bVu!9}Ekqj01|C@5Y~12~KT zOHu{az(|J(iZbGQ^E`7@8(M)ZqSe3w~tMGJWsG;QN{;PUh(&eiZcU}&^7pcwDtT```Xm$Vhyu#BrIMSP zU_a};s%tTlqd=nWd=i2COrt_AalsL8lWngBwLDo=gr&W^{WKLnEV5PGML?n9hzX>R z=Fpxb6}h7bmRwCd!6^wPhw*B&sL!AQJ%BV_ik?3y47c)37AZ7I(-x~qXiH#{NqObw z%ORLr<5eT2IhEhK(5<9gc!on3v9zlGKjBbRP`Nyelrouh)QpBU!XEjdZ&gwj%txpy zu4JZquqFNE{MT!i(!gPzwheWRT`_#qwMfOFTH=Wt;Y}&pXw)D$(Y#fU375Z_uT?aH zsyT&qY&RA?kjits8q)8hTAz?(`H#b#S~yp5&Q4Ofl_@z%<4X=zlOrM|j7rS3u#!rt zX1JYlI8%d5g#9zsN@_Gj`rV;!;>b9Hf;@2Pw~;b-0!WE6-jSq$n!%a&_>%j4NzF{d z%?Go7pQaT(S==6^@|azifB^23bD3oDRH-y6JKt6rOO&P8Ztq##=`Ns7r`k@q^KjEB z_wLl!q{DXx@EUM|`t~W1x=W{x;i#P{GCr!pRaDfHXUT4*xY9Y+MST@jo208Td*Gul zL%14H!CQe|x{J(Bnegeto<=vqKaN#PBQ@mogOG+iB<^UFg`4l0{&FcuB1%33+H*w$ zd^V*Oluw~5@vNL$byuguC+#HxR2!XsW}6-jE(*HK;p-M3ilQm?gkc#hRnm|OYrMh$ z_*kG%uIS7&&ko+Z&t+l$svG3BZm5KxYLTQ);E3Hz_P*c#bql+pgC%jfFQA4{z(k?Z zoNvNJ*hC!afNfjUO%^*jR#@4lRy5f~>iz^PSp~(Rp+&v-Hs`lKV zy9#HkAH>1Xt?s%M4q2PXc8Fg-ZCzeFy=l+ku5~bB6$+g)I2oYnmsd+F>YET9t9)FB z7$HEn{qrp!R8+UONs6OV7Ph-ba24=99Wk&LEBzZ;KjEfBg8ov2ouM%4Hkp`Estvp??9dO!HDtLKCUQj}5 zpqje%R0$E1$K}^d%9k?`S`*f5^_lrq^{zL_Z|mk(q?p`WmAHmHRrk?(vR_6-9y``Y z*vgJ_hsRUr5n|yP=);`-1S6_T*Y0?y6)auh&sDU<$wa5+4DZ6-Q(#5#$*F?HsXZzx zlTYD>6{_|&R46a1bWjA6rIR@jtiu1FWL*&26d|!yDidinC)0SH(||xAseT+5tkQSZU}sg%yadxxaBJBTuCKZt z|Im1^6O?T7`#7fC`q;7NBDr+VQpW#MTBv85rj|X&%#Kdeu^3-C8A=TgRP$S@U;~C_ zJ-*u&;D|v@GD~)*k7+)p1EsIX$h=4cw3p3NxOAgM_);G@*jwc<%B_aj;Icc!LzCyv8e9zXW`07NcgN#-J-$L;u zUt<0Ok@*@l)Y4Lt)Dw8}dlC?63B7)a!lJ<>R^jA0E8P+P_Ec^opz%b4RXAlLcpoKEZENC<)lCi2hiu*4)5oM#p zTs_BLMsT_Nf;xEBE2{#mIw3WOEr0{trW3HAXrDQr(Ud@f_M2R#&l>=wfc&0ctsa2s zlI!>)6_;OH^BNRy&^SchU4@ho1*<9aDbokwOX#B%ewSJJqJ9ptseat_h^NF;h>qZb zx`t}3SPrlHA6kvDYyFJU+w+ z?**h(ADY@aT}Wh&tMuWhBQ0Pmo|6d9!z$?rP9*9#I6b`5YX8L{wYy&IY~&TFMr=sv zT@Nd%fDnU>^2GTm({B$AR+gXkhRdOm{gbWc5Vyltv%g*0&p?@kbGm7q-N!I5zDASN zkFz10CU6s@)83J6W#tT2eu3v%4LFf0c@_Fuk+K%~5y*o~rook%j?kJou>Tg@udqg& zDxfoOjdIN%Px_F%^aApu$mujlVpKT52A%r?{yEx6 z_Z9B-{m_cMhrIa0=V$v2tL#ok%$tLxf&dcxt6pUVjt*7DAymO;fxum5#7AN=nW0d% z?q99c>tJ9>pWiYmm-B7-mFG#Tc5}JpcFSMPqf@@7@Y3i8lXPmsw)?K%v38EKeAS4J zVWYyd^NUiDkm)9cLc=Gh7cM#S&^plgE~stH+$$7MZFJ|{i!=b1cBJNR);H{+GA*qR z2BBy}U_=U2jO3VRbZZ266)blAk{C}-PGM%N384Ic@pT+}9F)*wScBG)ZToJZatK>s zKlAT8pw{oeNK7dU<0&k)eTr($y37pz!_>y56jsdZe>!Mve*W`p)*?k3o6HZp!-7*M z6XFi8DkDG97vyK-PoiCbK%?3IndmnamfvujE2Pnt5e-m|w!alI1Wp!um2O*vmvQ!< zwb5P1L?{dN-(Yf82Pg&hC$fIPFqT>u2;}NmB?GUB3>9xL)!nnj54uGUW0Hw&J+GNu z!l15Hc*2-eW)vk1Jb#8*r}w^3+(6Jl4M9lr%L97%&1NhzwF&-A#qh;M;Gr%h+f$gI zSw1K8m@F&*d6YgB#|nm~0r978R9-$7RSbxv`o@!kS8%rOyyY@h;F^hV(|IX$og}L{ zQX)drhKSf|b~>>rHk+iG^^v63$lIG_YHBApmAG6j>9nriXa9w$ zSuLKG*ZY#}G;k@c;X`5M*|~njR4#Ja98@B#@%$h2<(nz&!IKiJr?}tlK~Zwg0h}2U z<`IDgkFTufc3fRK@9|;0*Do}WwI*-hO9mRxXe@+@116O%g^+Zz;B^&Z()12@aG;2YhYA8_au> zYdFvjg-fEr#(9i$?z=t@9i<*~{r>Vn<*jHb{R8*ZEnGuxPk{A3kWGk&xg!HeZlXPm zEUW|-X74{aY65|}cg2MLKfY376JaMQ+1nBx)3frXx2@tl)urxG8p zY0mhD2@mYrM&GOl|VsPd4Ceef8u$)hK#Dx~&Uj%|!Ez zm)1FXg@U#RhpjfG3ExHbUg^yyZ$I9YhJOfQ`|RpfL-*%xb(BB@7eY+;XZrq5^yXcY z4~E@Dnn2Werus-W$0I~UR#=!$p@Lm4O$fvZV1iG2UXZjHwjlNaRK8M1xewrpIXJc` z6Ln5s5Gk@!o&}Ng@586k)h2Fylhteh`SgAnixWVuF}|%&;m!qE4V(1Sh`P9`mNS}y zIJE&W)XxRe+`|!0iACB5Rf;wa@ca2>*PlxWr|FjI6Q^gYVMIKd0f{I}8rr3d(9FgP zg&Rt7%!OmW+2%51C^7zH&UXE~3J#r>a?8ZNFSv{@#F?iKZXZe+Ocz1=*wI{ri5Bx7 z8unKOUt%?PTZlIPnG7aWgwCliD3cVRtRwmP7e6g_b{%+9J&UmD1LSS$YgBS`%qm8* zS5-)leqTu-TXmIF4}z;Dy<2Y;ak|CUPnr9*`f^5uDsPdQw0gs9RkN?k4E+;X>}`pH zoED>3tMWc7#dS0S1}7bt?zpp@CfJZ>vDPx8_3hqS-V4{cp$aTh#db_7dRqJM<$ zUyD|7ySY9K&X4Yfl9iuSljMNX%nz#>lTP+@$%BZmzRKl0eh7+xxz{yiPD#T*C$%+D4wsn^k@&qBo%ytRH9Pktk-h*0hGMYzhGZBE^tdnkG(z^1H z^>Y-p6y3Ay^-AxRaxx=9R{b=BTE(6;@+v@m3jxr>Vq!SImS2%73=Kb6=-znFjhvKq z`o7L}j=&VK^UghDZbS-P!;@>lB!EV>!+)f&<@d!F1`uJ&ehU5wA=T zMY8e0vk8mz6sZ!~eNr;*%x&S!3C9ZUlgR*3!wle} zNGb|Yfv+It&7b&fr&I+BeUqEuP2vH*!_@5T6jn9D+w_2>u__-bj`r}JWxjjJOf?~& z7v+uU1{X@59hN~3Jn5Wk7A5})dl{jKdRpDYiuo_7t>QAP)9dtqi~Y(({>xQavBK1q zMEvk*h5*+8@DI-%(m7v<gL{L6GIFnw-ueTf};JR=no$pO#$3ckl z7y~>D)UuT|kT>%WWkW>CpDg&>d>`bn*wGkuD=;78oZsVlZXOE%vJ7t>l#7`~bS=7Y z_x%;`I}behN6W8;Hq#UT&R!ovd(fw zU8E>=sPsaWzG7`tR3It&Oop3lr)lp#@YgCfa?q)SVz)T2*SSGMH&MK%Ws)@USUPi6 z!c=H#7d&AcDhmKYSv|0uvY8!6M>HH#XB%v$fX_-4uY#j0qJHXAMH^VuO3z>Cv`9=J z#X;*Fl6G(nO5?1?I5|@?&Vb; zM}({gAuD`3t$3PPO&kV>bo{Y|8nP&z4BpqNv@i6(GrN&f;SC9jsYK{Y#iy9$Fo#ex zqdLRWikqJy-#Ooo1|I<`WWMUTV@QZGkw%lkPdz%M&^Jis8dVscjBVWVlmXpD`L6(` zTFP`;jo}ncx^APO|C|G`(%9r6c_51?Laz6ZoQ8s#JUXfX~B)1F8xYIz0gFrw|(wO+~;)(Li~; z4mbZxe-7i1l|4Bxsmn5QvgfZP# z@Al0;9PX^u5VwRmed|mxELo~TRkRNNA#Xq*jWo63bbE7Ydu>fa-=0)m-EUSGg`0C( zV$m(w8XH%(R@u0};qW>}+s=7o&x+YCtZPa5i1+vmV?U-@ndDlN8+@rA<8tH}UpKH( zsY<{Fy$)_*%cJbXofDt%)jEemGtAyhqJDcZD_e3yACMZf{As!*Fi;o0H{!yI_ZP<` z%Tj#vTiXuZl<)wE)%z*?F`+%QX`hne&ye;c{Eq+ukBcaO0<%zZ^66$3w7`~6O?F+| z@OO~!W$@^G>K_17?hoPQ*w%}Z+qvC!IYP*%8^TKF?04+r z?76LrUDQJSX^k$l!}H#6qVs4UbmVueJW!kAPe=ReST0;;aq*W3u>sn%sA%r4v)*6s zhw`!a>X)ehJ_QwnH=IjZ?YA=PwgeDJidjs00+^q%uO?tr+kdUC+Sg2Gu1;oHPWT}y zBj`un@vk3|0N0VsfNEIUd|Vn!C>DVd-m6)`_ZAyOXX@w>iSA~QqK7P3G&->0BT9k% z0Q<-PRep?l|0qO|R+uqK-f8F?i!ob)(iG#aV9SX-q@b72DA&wJZXRU4mG-16kDz_SS`FERtG4z``^mOZPZgcRObU50_ zf}dm}zS?-QwN@|of!d$G?%k6cTI5o#hGQ(<^snYa4{ArD8<77Y+5x^Ue@AV_p(;6E zveHwD#g( zsKeveowRi%k*V#}>R7Mq>UhHYBDJkI4TKzO^84L^Jv7X&sBD0`;q>FKt?Ufuzt#TG zTuMS92th)^sTnRPuDrXx%(l)Tjlx30)y@1eP-PFdn^V|{cymT)CuC8`(&&5d7H-H zlo-<_`M26|5^8%5P+PKUMIPAmEIp2(cKNa?#AW5SdtR-}sYn3H*9ekW3du*x9a>0gN$FZnF{%l6TiP}V9hGX(e zKuo4Ij(hihGD>TA;Pg<`*elcptUXR1Khn}#mVbbmPqWuWfFT&k`_h!TvCYWdnnAg~ zrR{HfiV(;hTK@i5G1_bP!_?U$@QhI30h^e_KYRzjPq}2f{~sKll3BT(T|{zrkkF!z z;VG=zO6vv&0y>@vj%3$e@L+>ATe6!`YQH+Y|!r(p? zzZz2nwnZQ$Ul3mZ^HNjlH#0S$J{>MQ*A!5#erHN+=~g3PR}rd59F!FOxeE)3?q(Pn-${lvZ+`6i6wx$x=!qgU zANM2oO8<{r(od&#Yu!|&F_v2EE<71SG+u?p+Z%IJ+7x43qU*8whVnRh?X_t;A)Pz=|yZ;>qT5!m|aG8ho{^KVoxP zFK*|jN)hd9Q}$JDE?#5Xn(ZIlnRB?Rli~DG|A3r^Q`1o`AUzvvK>Vi`U>{y5lF4f; zo^Fx*lsqh(?Lr3lLm&1Bv2n4l|K|L)VxnC?iL)ccCcAT+0iKhY#@OVx{LsraH5ytN zZdH063xO$pX(fVtY)c%8Z0d?)E2Ys@0!iAtr5W2i0GGuOJxSuYf_ytWevirJ`&`xk zO&RvAeY{IkE+24?I}=XLB*{Ha5x+U3MEPAe zvLNF8&Vm9y+N!+72JWDlTeU$wt>qWNGE+}1?-|=d`Nb&8lw;+mJzB%5+1|O`(VG&5 z@R8#z>5YOc2v+0BDZWk^^;HfD54tJwdLr2c7LnsW=z&IbqWV^(Q!ao#PqVJHG~C*fiRTPA#6M~$Sb?dZ2DT_d@oZc z&s&~*;KolaosQP+xt{Fc=2lEPAp6O#=4Qitwmj}*?#Ue@EBoO0o*l!GYza>RgMMx^g$#Yd25=GN?>~>|Fm2=^t;pCf*x6?t4Mji^$0hD1+{0LchAz!po7dU~ zNVYX0ONOCuYZw`-F@++adEGovR4RL4IU`ZJ4C^`4TN=`hS9|I{G9nC3~n zI{}9sMN_LF%WOmj(!2b@`iOgS<#!VY^nGr2MLA^S4~cdyHFPMTPoryDWUV*cr@5yH z(Xp$|$3E<9F;?LJEQgKMJa4t9?`Cgc@1lrrAhTroK#Joz#1}-m$EcZ!k8VGN=X8!=MkF-E8DgP>GbZIIKTj&JRS~Fqr8bfsqCQ z_H7Q#-;5jrREnV%^FDhswhUwzi!t)f9D9KN1*4DCP2gPF*i=dqUzHwG)2GXQKw>I9 zzJxwv&wj;aJPyli?pd)B4iBq^jl9N+k%qsGzs8R_M~Ch9DuZay>3)@-{C>vHTIY8p zBA=hfFu*5#(hhJNtx&KYFT0DA!;eu#zA?Q3-`nCI@(7TxsLiu;3dT}=pqb;j3>REv z6Iz`=A5fl$7f&LLv|%R=JFFD+KPRkVVeEvMHo{J^e`)l)Y@-uOYMZyP{cVVVnb+tv z%VVIQjeEZ*pag^Y2iUlT=ZTw5Kb^4bgkdKMJAc^kdH>=Zl6?9wu>^o7bN=oTAhD6> z@g~osm8K5kJ3z`F@<^vIen;>fjrGxnc=sV7nwN1S(0&%7kY`SZc0$H9KnntTqN8FF z^F-ZlmTX)JXgY5!fQ+<&bdL;2tF5H8A#_J?KgqL%NKv4ryeasE;mJ0>zW+Z1LDX=% zsC0)jMuLP#$4ozkUX~vNbdqMs-M4^_?Zsw+4r;_?MC`Rb{%mLyL}LHFHlVWafwqW@Q98OIwFTQHUa1{YCP?SkoHCsh{PmM*V@M9kypgQ=wGj zcms*(0fJrt>Au4^TAX|29nahR<%SFk!Ghy|M|W);6`@m75^{3qy>W554yv%j>M-!R z$b#@dTwp+Gb#RwaaIF{VgxTqMtG*GmlD5|S55NlQ;{1^hzl2!tFx&ooWHxu**oR?!50(8oj)x_R{oseMaH_1KVqa;`5is&q?GcC zV_d^apx0!Q;(Si`)0yqO@n__JlcNCh5o{@*b7Enh&amtKoAfD0000)1VtkN01ichQbfCB&Lk{UZLBIQ7ATcb zTIY&H5$suJSlG?jP1v^o8~^_xFaQ9EXv~TT0CEA<2Qqh6**F7<)0H?AI07euN)RsL zWbkG4DlRYX=68GCe#y(5dH3z|w~`>G5vxI-gd|n2e3b|Jz^Y_e@=AHjhm*+ENO2JsE=na?nw0kRtFHS2A2->cVqRjis|6*FuG zV3L0ZIkGkG))MId27J+M$wq4G=s7WmPV=F4{@3>&`d)U^FOkRVowuzgKaK8_$!_T6 z2h8`+Yta`l=tVC%kG^^7r2BK=!}&BNbiU5*S1Z3y{dBmsFR5kkM{#ma=9$DwGJn3- zu`5|_X|Q+4BgV|=%8l;OB7a&_M1cG8XPsTlAH(I)u#5VumzqmOvlOh$2Yddxl{C7) zu>LDqeIMM21fs?V)7THRxRrjjCbWMo>f(I*;E>F=i@AfyYA~HSBp0H?VsIO=^{{Bg z!n(qOAQ)RCfa*&D&Rz_Fjl~h-(9Yq@a-%7HxE6reFjfwCN!UfoF`(1MSK3=*Edx7< z7mIV)@~{_W26DVXSf|?10DoCqr8tv2KI55&~cli zg-l0kt2T3xOAoll^w`D)p&cW#wJ!M)%x)H~<{+vG&5<1_yb;UUkHwKjJ8hxghuRlC2vtBOtV_o z;9^N*%Tr5X5^Zn!ySKQR@@TDyTP|s*7UG9#;|UvRpD<&m&WRigs<|S$b2#Qr*i9=( zvTb3=3G?d>meO%HunC=1bTeSoNJB&P_G-uS_E|`kNeR?xUOGYNHq&CMt%XERrz+h+ zQ>3Y_1S4fPRYdp(j5Bg;>k=4;6Efo{61B#RBP3?2l3OoL8Id;`>8YB3d$*stM8y+Z zK#Q6F!H?O1N`X@pU4phW-3Y99n%Aw74Uw{5K!c#Q8eJT@j*=SF)ut4JI1>zEkhr*= z(hk}P8-hpf#*6{oS~K9Ki#6e#LIXD5Z|>fo13>b6=VZWwU;~&?e*G;n5U*y?2@xZaViUj+g9EM)QoWe=wJ$s#wDe#`8$H(c@l;5ITZMR>K8tT=nKvQ`CWPmhR=9D_~*8)gDU=k2L0;Oa; zx!>Sw`p{#&uFwVPfO2+pJ=AYB&TdY>Z}ihm=6;g3T#v9QZ=-C;(S83z2*aWvxHo)jnetgK2dk`tfjzkL-?GOhz+p{;Z zvY4L+RBa~3N6q#Ic4yg@)|%pC(ok%U4h++6kV8m>;5ug35A)#rICddCVZE^6-&300 zMOngcRhXVg1M8rny09qURUmPNumsxKV~__MwIiUhUsgrjU6LYidxc!NMcrO7tU^rM zk{I7m?t?hF>Ngq+RI5nKscM#kj6#l3j@87u(+A85)`X>1$_S%sOYz2 z&`VO;AIaE$#vM&yx6;-*Je1cRsUq`~LYeg{km4smXdb0f!$<`-?T|2>F1+TJ9fKSD zRIg2$8tS5}b)>QSETs1_#>pc?Plp_?^pH&K4}tOsG;MN7GO|1}XiAMkctwUCP%~EO z%GxLVe;bg};DbT;Zmw-kVRT25msrkjM_PpL#a5Kk2sx#?I;n9BxyPACQ=M5A@}z^> znx|PApO84&wplr!UT@=@$nmtX9aGXOk98Z)!}y2nQ6l*`Lanr;XBlyF{(NEgWevR% zW1-S7;tpK}8>O?P!~9p1FbSze_1UJNAgN$---!e)3DE>13ElmEXgkcVD0|G~C|zb* zlznD4lse4={`}SA2gN-Sm6xWDj5^6>wD59^%u)cH)ABz{9x3U0@1!--mBo`TB%6jh z5^3p1YWaQVcy>~Nnpsw;_Gyoy9p)}x7-H|Tut`=(d4y$T8M-Jk7E#G8Xvt3%U~3e} zaO!}Xk-3tcGlMn>T9lVoHamQVoxgf)HUz^Qd~A6>MZ)DFF0sfQ?zIHm?W`nS+kBmF z9ChwQ^S;>#A?lVFm0}2v3SK&@!*38xM{$`^1TnJ6EH|!+7denS z1-tU6gI2CdxXSnf$C5q5t=W$5Ren2vNh(p1wyc>q=m;TBhx(D!(xg@W2%6~VHCQyA zp)>xay>B1l$S4wf9N4{at%Aj+Vs^%h0^;%o>#0RQ#h@zgDQzUz&D}rWH@;cU0)D@K4oN4axen_ua3B^iMY! zQqQeM?GDll1U9D{W0HV5+8DJ?>&Oc!_iJ&0=H|cR0!$O`VkW=0qy*+H%$OI-ej{W`B4o^=QA$8D{PYfUFNwkAUq2dZY3N?-4f=C3anjb&l0DyqEtg82NB$6756S=LHGVbTTO zIXE!!f$2!sE8Lr2VJL!3H;bxJ!Q^31t9=+(^#qVGUkpx@qHq9kRL(DvPrl3<94`$k zNloa*pl=zUppqF+3HWzu^dJ%LU79=vmhk)Zq7+o*nl zE%YC8g8zCBw6DMgwpt>DvU@6*$+50O}`&L|5jCS+az-t~o;GJ@Ay95Ss4c z?z%L{Qs9a2=&1+j<|2zrr=_6jbmQsA_oQVJBYb0@emakEe=1>m#P0>@V(=CI9+oz& zIDiPPxp=7A{jsT8c8vbfR4p;_qsg1Vl)ijKM8Re1WJJoxrM8+VuxI)*0M}4=vF~03 z@^=TnwJMm~_74_wPw0=mJ;v6)fpPWg*P?h6k=e|WRZj`=Zn}f){8d5N`_hB#{_R2b ze{LZ00Y)m)a%d$DJ$Hg+CRv<(;jEBij2DuSgU-~S>)g6Z}9>%IDV%0qke zUVonb!)NNWm*zbm&%Tr@o;1mT3bIKr(nkWKS!G>IHO15bz7P-s0000}1VtkN01s7x zDbb$hImIMZUS~p;0p*Np%vhs{=WD|kd$vg~?PTo^aR2|z{{RRY03sp)Gk^jITHaNu zF=RoNC&F_fsKk?mxD&rjJQJkyF6~6!?YG~mGk5QMH~MoLPl6*{jpdM~T$FMpSEM2>>t!03$O1FlGc&y9vD6CMrF* zHf>W|gC9zu?fOM}Pp2e*0$5p<*rUT?P@lkD-sq`9P!w*s?nhtE&QVXi1TE~oeqfI@ zbL284@>EU}RLGzC6i1V8_`glpncc^w6se(%&=EbFDB@achsi6CP~WY|G;&5gbl$T&nwG>!idFA~ z(gw1RPb}MAS(-YBk`G7%L4nYqXIjLTZ0+P4JvA)g5>ApV3Bq2bTvK1gKBTFCz(wHd)jmIlKK@re^+mp|rnzM>tw=wkD z)G2yMDPsMK0GmK$zqm%*OQ{H{@n5xr&N%L+C-Igs&MI2Q3JqL)`s%~~(-?*8=jU7O z)k`bvY^-YovJTlCj>~Sh$vT)=73*u1GD0-g|}XQ z%$Dg!+a+C$y9oR77NwhfMVD7q|Khrvrt|1JjysY8TiqHf&~V}G>o4;Q2-6@S86+xQ zU^B8^n8oes%!sW+tfHlZyVs=?709&l!&$j1!ztEQKyc9N&Av{f z>-^ql=IWxNLZyzsbTZv-J!0}co5B5n8odd~V{CwJKRkPzw*IF%Y=7lwxA++t(g4(& zzpRX?iRnW0Di)?ZC4R0Uv@AdstquWo@Q^L$l)z(v=iRq5bzfym)py!1s^e=|MOw6s z^LfmdLG4FAxB}~_Dw8!&CSrM`Q^xZyW*d@{LV=flVirT%t&W9u&(nvhr;mUW74 zkpVz)VsDkUA5InTtz#9F7;Z|LpA}%jJZ?Ve>i1)wvJ^?W4IhG zJ%u*h?|e!S72q=RPn(vE`RGfTG{A-=Q>Z^tyUqOGSMr8QYdPMCx8viCdMJ+Z18$7> zeDf=aCy$=)bgCRSQU50Y+?>#Ue$M?3+;6>v7V<^wIX`7>ovsK<@z0BrmhRVWKt}4l z9%}NiXmv0;Yd8C@c!G6_&On_Y9)#!cv4D_Ac^%h26uJ)w1yCge!M=eIZ-1}HTzD`; zq6SAZgJ>-zxWR!p^fUE+gXiL0=9zs|(g4t8C+ z0liC<_cd1|1IuYKnkLgycj>V1IXcatC1ak>o1TSbi%*fMoq%LrG#K6f7<}*;SN4u` zR`HyhvY@J{B%2;Gig^Lh2b}0;?nZNJcxGsA4>A5;P$1m&4-)5L*k=zn!7Y$r{CLtP zIQYx-j!2H7=Wg`WPg4k>gDnh#)%U{vH<6$Nx=$CO4Sq~uNw6B**t>&0&_ddW>@t0N z8sn$XV4R}&(6pEG#!vbVOGxi=!+0+vtEJOA#m4vWW$?Ru8-m%}>9cybg1b+e{YRe~ zyuxtct%NcxX93)y;&?jYaP#H#c6@Te2X5>!FI#H$P_~2eG$0Pa zqv#-8JJVj+zlksCz7FNGsiT16i(6)}f1C&ATMYn{Y7n@b69COA34o3?HGk@QdFDAq z#qM<7|3Kc+4c9QX~?8v(c7%+aq=1AIv228JCVThyB`4pQY zMJWa?OcAI>Vj11h^%Q%>{XAY+6iqazN;(Z%C?Ti14NTT8W}w)M?i%=n{PKtw(v0a7 zT7A6;@g6;ie4n1ffR`S{!qE?6#6|C6#y@Xi5y68QO`sXdo`{}s^XlSpxbuytDAK9gD{!SfXU^^?`v0=`fjUL5W5wNdDW4-vSmb@7nd+A} z?zLhj>UuZCPagwy=vk63UT*4UmnLS(f_jROp@6}87_mT2Wgn$0zpVBpIBFsV=HP*B zS;RV7mHAI=itmEib^PJ->Do@W(-AMAx4UA#lwmCsWGSH2uD@o!Pgqg>v}8IIxCna& z;XKHncZ@k5jR+rN3WG{#hFJdN zpl&~F(v{0i-SyH$PX4E8fN-%a{&QVc^S}i@2kVe!OJMj!g1gT4{!T`jRo#7Ww-P3Q z_qsV%jK#O%0~u(j)#a+2)x5&cNk$H;1MWht+a&-;;+RiF47*0Vj2@r)0m zoymc;XXNNnehD>;aS6!`yD-QI9}8tF8u0A#2qgxOpBF74j|t=ppD`-WY$F$J?&%hR zkd4ZJYX!oicsSi{B@BS)|B&pslQ18DJ8Nnx-L*G?o=scAPIKBKJa2z$a}5x7C_jX1 zcOO4RAou~^$RRf`a9+dy)+-dXLH5>uCw8{2+lMFvZWXM5U2Ko3y&{10= z-?$bT)1&j>gAw7iuea$3E#3zQ+U0qyjs?)Te~&iwiAJ!f@Aq*P++QjVyQ0WvilNTj z<^?o|O2G)yitSR0Z@(VE7YEZsAmjdGlfsx}9-4lyR`Crz;K2ShPdK5tH6BFbFL8j! zL~}N)6#R1j3ve2mWN;X{Mrb8V(8T-fiuc#C2X2cA;pE~ybc95jNs2$Jtn=-@5$chl zhNY}P*S$@ASxptQRCC2_)KoE>YATownxqDDw@-op18L;QqtsR>x{tN`W)XO1=q+Xn z?|c{bnJ2-~OaCs?HUEMmJF;Hw{m!o6Zu9*Hf>)2v?Wz!3vfk~Gy>i!+_QzLG*%P=r z!99>6&n>T`RN7f&Q&EH39U_6RbHDA^1}?pNK0_ZKd^x7K(>f@69x17cq9Q%AiC6^3 zcp744P!KHJ1Cf1Rc)#;2fg4xBGm;AAd+|Yng(tj1Oe2-_8OUK5Nw&9Q7I1vaZM*N{ zV7H)>&--iMn@WY$+;lOHN}8W}GD(+4);mO}nw(fVh9( z@!tS~0svGqa7I7?@OU#H`qIH*)*B*TAs`87fDqu-1U)?iEWowCzq_B=u4i9b-CX$F z0v;xU1By_Eu{7cb8Ulkbf~5qX!Vs=DSPdZP2~GF~O+bVQBi;ZA000aLfX$QvmNq2m z5bi)w5r0JR0YMHBr_<{;-)*ja*}Cf_maOJ<2y**?h^5vILqZUqd>_siD&lG`WxRSQ zBu()tpFHxHx3P*mCTJ{$dSqD-zVyV&*~X1RPfrQtN?!e1j~j?Wp``IzeYCJg@09Do zzyD(WLjz7u7LPSjG^O#WPDLek=DyK6I`rTgSjwH4*u|Ar>>8f3yfmTzBcbh6Bd;ry z^T|_vu8c6%x%h`R9@8C`K35!?gDI{UrJ#aIq1n<}?nfy1Ok{HsZ99ltn%KxdM@Y|v zZ)qJrGb)&uL<_B}RP?(=qzcBJcljpOyG|Kj$)%mH zUSKCgS%Qs8FW~ekBWPbb5-g*w82~52#F$H+qa`ak?487P$)nlI!z)~nyyzx4^axJZ zGg7{i>czk65=)}&B@{hGamZY``H-itEx=X6C7`(jE)NKqz8d<#A|Gj@@w~UmgZ9rE365aXEwlv8NPL65t>$>j2Lt<=Sv51YlN( zNEui4sjrW?`Z~Fu3)d$1DJRllW#&hm=A4#>=3vr>kkKlY6?K<#VIMliTlX#S3v8Zz z_?}pY@fPc)A$_ZB_^ARw2w@bUP_;#=15gxf(caxCje_OAWQNRg7QxD1+50Y_R$yxv z=H>2=FY9-6IXPW^r!GN(n)_6}CVGdWOVI>pkAP+^Q3U@@LnO_iNC|AV#~fHbc=owD zC+YOG&Z8^pzG$8e;e+0b+Ctr)%nxiHu)$_>2Mk~yX8ErUK6(~^cD}uQqZj5WLoC2C z!#>=kh8l*=0;meX;>)D#&?Uj7@lQ-*wka)K8%}g@=M_;0*zw!>+Wy)Zq`wkTMG(!r zwIW}0eidW+C)xoO+AX%ZGMqqGrE7ZnKEFI+O{;rv<>XS zjuk@?&yS&Fj{6QZaZJbbULBXZwR6BxWGdBCVe^94@l zlJJeK7SksLm=>5=3L6`pI?lXEQUxp)je&p&Ln;_Jp4CJi15SGG6`}>Ea+uao5EV9K z02b}19@!^Aoi-hn9$^*dn}RDWo&{7oV(BW6%E?VUQptltRiQ9DR+qtcS>2w;mYSv+ zZIwrYZF6Ii=AnlO`k~?K_FNSzHqp1HfMCL|ArlR!&MGnOEevDY-!^5O$Fv#e-?@35 zX69IkpFJ8p44QfCDM*Ae%Jng%<4cojzydfFp}bF&<)H^hHZY@Y#KGB+`#k*@lnly> zT1T#4bimD#&$0`jNe7u7{xo=m<76Z1ch|z_)6iOqS{skU4MqhHWKj7tN)^w?s+9Pf ziaW@x;D?JYiVTl--wPNfHZ*6xE%`qvtWBbP-yYn-1|mO15drjFi1(3^(N234WN2eC zNfT|Y0S*g!X!kxRVbap@p_?e5H%52xX#@|EBfx!^;XPy?v{N1=-|zwcgtxwO!;)e- z?-?ua>pzh53xer?4)O-lU0h(|$8AuaftEW|VFLU&)GDgfuO}serN#6J z3UFaWguGSPuQJnIex!;{4trex9q8BY--};l|Be49uj8S~Nzx8a3Cm@W6=758kRjpw z^cVmNL&z!DBEwVuAq7HCgxq|9+OyzNJ{qm=eL6uTP6HbqX7gsvjUs!}!Xo?my)#I+o+uGI?z3hyieeI30vR<~Ax{nN>t%cpC=KbY7Yq-s( zTf=TM(;49gEt@xc4SigZNHW)yg-*sZE{p5q4HH5SW-G<7IYk-vq8AsnCjTmbXyYI% zeuA&3gtF|QmF>qIm2ws@FN3p3mPOpBsf4UjHC8zaA4Fn#oM7cDC(9D~ubCsU5QYYn zpPK;JU9;+%Fp0GB>yL#ERSuqD`BQd!-7OH_n4pWuR|naz&0QJ1#ak}qgwvVXW>I<) zt!9O$p#sr-42;OCUd&Fe%2wPXwGs8i=8|{9-)%R%Lp#GEv1{_(Iu|1I*FyhUb(mA} zjx$=WVui;VtJN*N!sjHNR@?=f#TQ64(av~MD!;S$6)fHvZvlyd&0z@e zW>?~T%j=c=;9}B1s=UC&8mveL!A>+W=J)aj*{AQ9uv_XAh-}~TyY41dA1MUF7oUvq zH*ocSWNx-P^4*!Ms}f3JG}|7GYHP8{cWGK2u8>j75PlP_+74$J{)?7&i(cAkt}8Mm zGB^?|bA$UFvcP-1f;U&Ht}}{`*eqjwGtd!in&nOL;*?$36(5RM=^(PSXxRGH4U{4p zOW7rsCKPWuY(v&~bcT6hV4yuFHL?6yAxHf-xZ&0lxcOsN)on? zO6iH-TvCEk_dZkwe6%7`GBnckD&*ZBF)1C&T(fOZ(wc04C(g{achXS4MT)YY%!)4> znH9iw?}+IwE816{D0q3TUr(I4d-BA=lGjGdf4$^OsZf=9Ar{Y5-?O8s-FEpK_cbD0 z_nTdJ-1ru6Ge${oyPH=O?!L7o;)8JFM~FMBzS0j>KIYg|4Ek!X^{z@;#XC%79Pf+&MrDGag3<{xAH2r*(N99+qDeho>~GahQb#LgGAf=)Q^d-N>Nsh!A`D z1g<*<+Wiv(ejWVoQyyX?8HESme3Zh{0voZ)T0Pt^fIF|?Zt)ohaDO;>j~NJXGcVyj zRuH{r3F;ITDpeR?rPY2A#8M7^e*$^f@c*22Byo@i$%W$c{fnc9vDgg7z@XdF0(|y5 z_*p~dqwrvA5D)?Y002`2MI!(J4^@FF(VmzmF_WrD&K%VOI9?Jflhs4SyJc|~yW6`< zCRyJB|Nnvc002}1S5yFS3}9aP+q=b97f$EUq{NpQ%)rVa8Tc)HIl;VhIq&zLceihU zn|GO+ySxAGTqyD)NP}Wt$}hVXo`dH|DV9j)JM;Qet>i3cIi8pnf~P<@004#vs$>cP z&duE_ySd3F-wZto`Q`&n08QJL|2Dl>-s4tvSlMi=A(>~G0^b75Z&eHFG~=|-mP+kR z-CRCCN{Tg~oH^!mr*+O#vGnK9ne|EOl0O4Y)YYOtsjhV0AFo+u@o4|N@P|IJosZ?n zd}io;+uC-XkCxM)$NF9o!<0AvUKw)CLliRUna-E?%;#i>XkG%BCB~mO#v`+G6Ey86|T$DkpFqsMTg1c$iGf zzC-D*Oo)Ic50#dcEugb91`uociK>?-ptG_q8nZDH(%@dt^*!Di9OZ|rqB^SqDqm(6BKa}Z(0tz#QY!;Pwvz-Z*S)2aY?7V;r?Sz`-X z!veIBxxa+UGDIXd{rzjR4?WMg&G%HjKl?QLub6p^A;@WQGX5bCX=*+Dwi7KK+UHh$ zZy-(%&PuH0D{EyX7A?|BftV{f?NjxuqlT^z}ouydHR@T5$<*+L)>!K}X zHnIrH_R8GVMQ6&@c_Hs|Qy1GPsX5Sdo!CFvD7*8~sQvjx+EhCFl|8WxVef3S`DcW7 zpfYntUy)zaw8g0@e&GXOw>`16!U_Z1jJrTt4vl!Lk4{lSWjT)9#(Ag5`SJ%d0cI9mWlMr(_T(bPc& z8v{DnI0%W<@mV~8a0numVQsYihd7c8BN_DduGzseh89P0&c^KuYyNG3QlM0I2>)?O6)dn58--Y0jZTntDFaY+hfsWzFTwd809Zkq zU?yfFr{dx#*XO8Dk+4J!Lc_I7`QCDrOx?QiC+h2to~KwK~PjmcXU$*1eS@)zXIXZzG-uwFnMeJYF!J=CKmwKE; z>kpDDp^^X+bm-UWcTx-EZTG2P{CM}F5VJBS{`1K2V%FMB!XSXVT!E@qIPpF*Zu;!_ zyV|a8f04n94&V_upd8w%Mn_oS5(I%e5OCfQ01SqLWT5jmz<0&+Y=ZSSy!ItB&BNRr ztNHllQp5L~;f1m!pk|In7P8Gl$~ma(G+TgEbuyxPk_W?rYq zALY!=v-yNOgqXxQE-o;(#!4VCBVnIxy8^wv%?nlIkQ!ir>?B|O9fx?<{xVy}}28a65RDn5EEYcGlDt?lk_2*oiMig1twi!Un)6(gWG85;B;6Hvq#DA92681CD*RB{ zlaz$6GNoR~1wU%k!>nbqTRwz_Fskv}*`c6cih`-|d{Q|rSGk&%ZZ^$7FZ+&Z8>PzA zq-%DF#6Wn$pQCpsb&k!pP8`gtPch}i8s2;r>RzAJzYP2tO_`a-{`KkKoQP&ZFMMv% zW$F-SMcD-FJPzNr@4!3D4uY}V=&_aC3hk@*^#>Z4?a3}4^Bs~&1fs-_cNT`wx3maY z@^Stie+S$kb`bsXMvpz-D7eSb@_l%Jr{p(Qo1XTN5M(W^JFs-5m*iZYfXNjJHwpG~ zcpRSs`wq|lZHFiSHN$BBl0&SvQn`M)K%R2$iziZ$Z!2ThA z9C+21``G3B@W{i}abLwFY`$_F5fx*Kb>`7 z432^sz=qlH1AX_-`r}>v8Q6t{W5MZgUV^xOmTxtRk&}_vVgcaoRD>g9ax8)<4Ck;7 zl;~cenTqDp@KHLM!%(ARto!zm7ipige7y;b?=2iDBN8OsNq}~bK1mfVa;%F8Ak4H3 zk4j+??>}LowJP==p0T2C{%f5a_0vN2hSuYu{@cxkLl1_ttr{+UO?WP3WJKW*+zKCG zz4l=hb*L;qz9fCV3-&U0?EKFOf1%8LY;dlI4{BMIxAC0|?rPTnh{_{t- zLEizGB>65c+70{>5ZABj+tw6kgwU<;XdadVH^5e)2H6(W6T$?7hppg@DZx#@W-|f9 zHcCH*HBkO}1|uSa-trc_tFFO8xZ?S%%LUMCRFJ&1AGH%f72s{J7vk^)NJ^=+*sZA~ zD9EX-Xvo3GVS7w`MQvD75@ZW&()*R0Sj{sx(f};mt&(G^@<5|wiA z1|R)M6}cR;#cm~I5No1kgax;880^o zx?;;gMM8sI&k+lg=Ddlvnkgq6tX?7AdCjh#`v$Vb`5^aQqX+H6itODq^M@!rO&t=~ zGbK303}f`TmD2ql%L0wj;e#gNCySbmA#8Sv9#xq*!DMm&nHQXx;8@;STeMf;6trMl zuT@sur@%O9fv7Y`PxL>cKH9r)v>pnnufk@GBb(5tMFN0>?j6$9b?heAl-cRZ_b`=- z-h(1GDxsTxuJa(UirQaahovUC5$rU>&0uxNHifHZrv}AM(x8%4QX=JLl{b0^_VVx1 zT~dL>xW7lZ69o9*6&2v8^HdZ;w24cMTV!m_K4Ea^TNs))QXwSO zo@}>zhKX;IHxtdiNMmIHNp7wAUGG}=wvVbPY@~_^_~5WSXX;mb_RJ&v;zi#%YJmOM zM){!2+GW})_)Me8V5r(-j9kK`;l+TnVaydYMXi4yf{kGdSrGk@Kah-KrXOy-XE=){ z@)~32k3$KzGQP|<|2MXikICgLzJampt^ZUm;?X_=h6n~VVOJ_|Zf;FxCmb7T^9UK2UC#sXHwH`p&BY2Jh0>FH5xbI{G^_#!{2lLPI1!2_Lby?nzSHu@< zNN8)fUk|U?4%V^It5bshXYIfaS=g0K*btAGEje7s?VD-SDxPuY&SrANyXv?>7-&m3 zOo^GxK=wlM0ssI2Lj*=6000kGfhp0Rm?ssJwQ@|Cxd#R|Z-v|Hy zVEzDri~teQ0GI+4Pk7w5<)kn{0Ut#?74ewxg`m)=gsFMLJ6pI0RilKqx`tC=U2VL!$(YD0srB@QR!W2NV#20MY;eGXelKRsim9 zwEf7EShNo!e2nTN5fGaINk?njcelE2ZQZWB_1j9aLB!#HmUOi{vfB7X58@NV$(w9G zf~k{_k&BSYr;_Z>eoa$9C6|^?(@%x$Jy2sosh+mp+b!}_3;#H=29%a2$2Ti@l- z`Ex#>Y&^QYIrKfUQy&}db>)9Ha_3n)SJR@DRvnpSfxrBIlTA!IIqh@6%X#Ni~rnjQb^z(mdzeh+T3^NcPHZnFh+m_a9Km2q0#WtpJ zxIYJNsK@Une)9J*!XuAkvZrjxSKn%ImrX`QXeIHALjH0Jkh54y=|=DZStIRJu0mRw z(CmZYV2nE4Myue_BHKmtVAAEa!KGblzc*JJm|ZaeqHSO27_O`hM>}vuc)kpGaakZt7m$kpj0)#D}nI37zM3}m`m`G)&NJ^pu1_~Ku0$OI7$To(YgV! zp)HLXexOTtb0r{VZ=sNE!VB{va(e&^YFkEbC^b1uDp~Zpw0+ek>0YUEmjHfmxB#%j zB>rOUNm-+|NL8}-ASm7*JHa#GW5ybQ^+P{dQy*VW$BOmfVIo8w+@_2wZ<|u0@o6lBgJ-C>p#Lv4xv@gd( z_$(rIDYVyR(3ll}dG+M^G7j&PGweLctO9?Res*HM@JQ01&FA2a&1bHYHV0tD4>xp! z5PsWWpk&j#2Ijj4tXDc1zwCt!^Cfr_o_sV6w=Ge=cmT3q9_O5*<-_2hFwJP-S&F#g zRt-wWOi(KQE?ugg+0LP9)iW3>kKcNt8$}CxRkCQ&IdQv-o#aP3ujk-eHfOxnf<+D9 z>tc|Z(olfIhINb!L9&)}`D>UNba_@D3r)gjhU z>5C|tCiw&g{pBwG)mLi68}Y zr_z%5!!Pnm06=vQvt=?(b~*OxEkKdF3X)Tev6bkl-k!Pxh$uA}1=@NmRG(_LQq9)w zr8--;m1^x8I_zEJzsKu3ERiqW+Jm>zC%(oAKK=hX_M2S!nj_6;bn#SFxWVi92rFHH zug+U{FjI1F0^{DniseDym17zhw+??Odp`nq`k7m#p|0&uu<>CLgf@c)AvVCCKgCPt zk#x-7U{z7<%jbePX=pRh7)k`)`759MTyeW#VpUc7O24EQYF(@P6Il%qs&94q54P4o zeT#Sll?!hJS{KR&A1?tFBKp7-2f0D4D-c7p{!_o7#mRJ6Wu-UIbwaXsQ)`5`cvFHW8~=HFjPR*!8tw9N zMs_l%&QN?-+~@68YtU^ zcmHq5xd|$WZ?w@Ca87#!ieMawD~7esBSkrf)x)c-UVn^Zkd~U0EsX0kY33Qtkp`eY}>U23bu+`*6TxSTgv5+(ccEPLsy}|OdoB- z4vU-!xe@NGb_T0Cb^@zAI|bDqy@KkGm%$ul!^Ke2Wc+{U|3(M7_|?3KS`7Wwjz;=% zfmLOMS)ht=@w%i-Z&`?fy%IoDu}D_WagI?eh=jUX84^PT6%v8 zK;wWMz=jwRvW+gbic*N{^1`-rAX@eo0gElHP3HD>dU0H%iK}6I`>o#otx3g|gS>oN zB3GRkt~El!d#KIX-)aa47do`U_jBhU8N&94_Ye-@*m zQdeFysO~SSsBSMhPfwAN^gv&g2S^)yhzn$bUle=~xo4x>4{O|32rP5=R&D9^P8n+iJoe!CMs#}Cfd{7OcaxbEs^IW{~s#nZP+?b85vZv zH$J6U#@3j8u$dfO-k^cd`&P4WuZRz4h}Ghnvp*XVzy2X6E!~QDvN=f*lL;N>Y(DAK z`CJcQc0{C0v6N3lnobean|<`*s^4As_BRJ#`lf+zS6qA1%lN5d90twXJ$k8o)!ks--xvJ%fM5Us z(Ttc86aWwcqyq*f2EZ9#3110ch=@Gd#05|SaZm%EfG2mCcYAxgH#>{%%OsN_jX%Xu zegL5=@T6HB;uO3BELhRvEe&|I(Q?@0;>WP$<0vSn!D=?S>001EYnxO)KUnqB3 zF&h@*VPKBTa8x0o2?^LFWXH0;yGgbrElZO1k8IF%4sU+ce2CTvz%Bki6h(-(HtfKMLy!yV+{+${@(2i`OhFMl(z5qG0(N23J30Hz8TF_shZ;@x`J;a1*eA0f;b zk&DSN3*A_`F=0cRI$HbROjcb$E%AIawk`V~$D( zuP=G+ZSkJdH{ETgY`V)%{&eYf0qM#D7|svevLdVfwg5!)vxes9IsK;J?ev{~?#Z8i z`psT?i$UlxC)s94_s&G~jbvbkSsK({30u zAe=d%d*KWwHj?L|g2Q|a99xy&;3n-BPs6u=9%Z}Yn;DI+-*7ETdc!YK1#3jSjgr>$goL94gez?wJiZm#42#d5WPlF-)+akII+j&jq3XEC6ZJfwU(c^7z8?E=#=2|s zUYH5nBL-y32F$q_;{it35Kb$7NA# zQn_M{4{*(pg2}rDe&xybY_HRsY_k)aY_Cn9da|Wz99*Z9^d`FOdeP#d@=p>9^l5xMqv5ZnCrg=`toh%9*gNfVj-C z^luTezL&f6cTK%%E<0k=-F4EZKJ5=3OGw^ofb4bwA$diQ5@-8pBvT*fLb}qE{6C5R zAnQXqSrhjI4pm|WRjm4w&5JM)b&i&m(zSBxi*u+ui8Jq`?Yk`lPF)8auxH*c<` z#)xozY9w z9q4~Ph{V`+kGW5|w}(H)zHOO{ShexbN%F^ooG8!3o+#^qPn7pi7}AHD^Urs{+l{*D zYVdce_#QFzP4Rd?zT`c{{W&`OIb(bMk6v@`^!9Vdb6|C<#?LKh1xxPuEMN?wm-^KPSKY zDbg#?(aXXKJ%T1WtBY%{u>@6eK>vk`qwE-8R5M{iGaWdDje8n>Qthqkt9NQ$8ef)F z%6mr@T`eDG8r4MdvyUjOQcCEjTx7Wdlj(u1a7bf9aD?CzVnN}4oAHe&CInDDru8Ym zg@|Ya^~c7$mSLV^1kC~BMKYzAA0=}bqnF~rt8%OQ6&#+Q%^>1m3j|8FZ ziJV8AGCG>UlsPf;>*uZT>XD|Sw@aO4?akGOdK>0KktB2HMPXQZ?WjK7NByE}TSKeE zYXmDQ|5OELB$eUd@RMQTtP2NpKpw_5IuK9-^5DA=*6^+WItB;{G6an|qt$>MhZB<5sHdGuB9%4~bH(v!jU%X8{oJ8?6syI)H$Y!9 zkvdoM9s4Z&V3{Fl95E0Ld2IxR0)a1H0PSwf5DtMO!NN|e;G-!Yti+qDIZotcBkPk9 zGVrnpkc`3yeO<5(^oHbmE-W+U8 z;_86V#tuU(2lH8Q>)!~gdc6h`>`3+kFu!)}V^oY!%fLnc0g?go(jpMR3Nx6JUG|?R zVHWYxFun-`7d--qXiWUtP0ViDsV8fpMpr#E%P|)@9!9sRAWHsn=~mDjdFz*rJ%@#i z(MD$YUVMge#UP;?6!Ljg4(i$|C)G*c*2v_s- zIA>i%l96ISO%;TUBqKBg=w$!HpoA90qtL~v9R8F{qinlAHDHY;m%Cbm~~=ZoLeAjaSItA7$-6(f`0QN7T5R@*X8O; zx}jU{A=Xw$C~nwkSeq!>(CSFAUrPT)P_zDQyt4>HU8F-36F+r{%l?CDbx5I265ylJ zUOz#lD*?9X?8U{;z0@2#jWb8)*&7>%ZXwbZBJW1ngQM_b3$oNX>dowX-{AEbmFD%!|Y4XZh4Cz_OAnCHjv0 z3yT7Jrh01dYim!CGwBt25aH>_K}@jWhYAwsB=XzvWJ4RqIVx!3@Dnrf`ro5f_Odss z4tLVUW4^=+o}aznDjr+2Hj{tiQ-tTehXB^j6%|r+ z+@3TTiCv*^xYc}Il70lXDXDOPyE5lJQo1jC#ohBizu9qKPfhVQSv&T*! zBldv~_GM^2wbW7No%ZBkMf@b^e28)b6^b_wnt*8y!68ElZJ~M>2JPH|-;DFT26m%> z1*@<>IC&oyA%&@M|??J z(?3qjY(M4#hSHA4HO$b|Q)?(6b6zd}4R#b^;^3WXm6L<*;@`gDLqsQd;J>%37;{GXsPtH6xNM8 za(Mj2Sv;azP51jJtwQlTvl#bF%d$4vGBr~TwtrgkmDosy@ADF3f*wkmmM(G{F&d?k zUz+6ATyGFkd8i@C2%YW1vQgcS8sDb%YMetUfCJa%XVa!vRG9PjQs#{AsauK^b6!%I zB~!J;1vL(pecH$dW&m5w0>ZyDs*gmn7oO?Vg)xfXGLs%T(2k(16_dL+7H;3?mov*p z%TVQ|gKPzjLISky+xAW%9E7Do7Q$2@{(eW=Y_x~lHl1mKdP!;+FA2zy5pX|MbvA#Z z2Sq>mt71FwGDUWIc8)GbPRnQCM(;;^vt}26yw$V=c9C`WnX??mt#i33Q^TFp0Ux=~ z)RJWT3tQT zCi?9iU})MtTX(EoSUA~N9ArNzaDrP%rLB1Y+&^BS@IfxCUXh!G)r=N}3-c`oV`}-I zZ<{UrWPlHJ{6xM~YkmEs4<;xSJIPj`N!&w%Z%x4R?UZ~0zb z*-Ilsk#pyLI2p~|bJw;1XD;B}us{B=z5^UoUp^ll2z^X;a-XD`wuZz6-kWw#lMcv(bW53FMto+SFaUU@{>>v9}uY1)R9U`l#u+^`F z_SxN=+b2^>ylOTrCif5=ECj2bYKwARnwIDz-x?z|n}_hLzc^v@=~DoW%Bpk+>}qMy z3_LAa?)&>spp6g^0ssI2Ljy%K000g}0#P9C1o$3+S|^yrrh!`y$Q#^H z+f)m?Te|~r|KIcf00aa8h-To5zyK)f31&b8zg2!&AR>YxYn z`>6{4-njq!ynUC*TtbEWBsn&|@#0Bb?rAtKoxD&UzPiDc-Q2pU6;#~Fk)?Pt-M*Qr za@{g_#MivWvYeFjAe-r1HE<3z@!;Q1A`of}PP-FXB&jM$@*LV~hHMv}72YhEle~xemofnwV_J$QX zs$fVT@YzmPx)iP{v>)V+zBBRnza31yfQ9eQPSuBHAii>4g{0wKxGC8fl*Wa?|1J+J z^MBB5yB2c@Kf0`X>>SWkKX@c5YV(0XcDe-*kpCE7sTl8YPG(HK*7HpM2D=Qr zKA8EQBenryf7;H4Rw+$}wJS>{^1d2gyh-#1_Toj8N9(a0L}d*4j{Z(TaEfNu8QhJf zs})x+%%LgrB&oKIDAne8$^IB$Y=kivoUUxGb%{0s9N+Kgn7K z|JY7uphz%>iF^Rje+(j;2c5H`74j@mUeFIw7j|H06WETh#$_Bl!|0@Caexoc0VX=t zVu%*G)IAdyaXe+eIp`*0RRW1R0@!T{ZRxOcjzYjJF2nE)PZ<-ADv)PILE9R$1Y-4Qm-z`t%tpP zSQ1VtH-JHyCW7D(+xt<&0G~i$zaT$w>@C3uJF;8$9)QW%BH)W4Y%->g>vRV4mzM0;<8!*SBQ)Xs13!0;)y&Oz*b-r{I~;^)$plcB znR>%~YqjtJNW&A=`2yuD&_Ir-LY0HThat*|*pO=rhw%O3OAEFea5eF}2b&5xg*GlK z3;ZL#kV)-t2oPAS+$#EHV2G(z21vbgC?vItA%g%;)8+4{a^&}`-Y*;FOK524W%SA1 zoIwUx!o>?2Z{7DKJ=hjlE(8_mGmnWsR(u<0&VniWtyNsoaSAk?v}$QfO?&|($wo&1 zu|`Ocq(xTpK-o+D`Omc7TfV51Z31or|>DUsLVzPC!lQ|D1UMi*@1 zx5lIhTxBoC2_guW?}T1D?87U&8+BlK6JUvRdzIz~$@7w|Rk^epp=K4HCM5{*ndp}2 z5%6{0lKrgMxZ+fjAx%Xw?)Mi%$9tv6Y~zgx$lV%)Zh8X;5-QwjJ=8Kuz@sj_n39(j ztqjj73*JOn9%#>Qka}|a)IA6Lh?egkOQn};0R%QlD=OHlrjI~9y?6`0Kq{o^!U(lESv_U0}uHR z{tTbEF0REW0bx3F(B@M#X{C3EID1m4yaEpB$0Sm4NwiEcu>$OaNf@mU=zrRxy->L6 zC0SJi>X!PEf(Iqj8VmVrtVQN>K19m}GwVBn&|tR^mgCELse8D50}-D;T#71l3AY5a z&rc|=kE9ghd8wzu1-0uYW@Mbe4aFnCIt(lY|Gzv;{&gktqVvV)|${Y;D~)Y zdOc_I>cPi|z2tp$#@XbjDuu$u`-Ipj8JH$*T~L8YO>v2{1!sI}ug)L|mU3Y8Gf9~x zg?3Cm{uM|+RpM1ce%enDf7C0V2S1C4K&WygklY~_Ua?}LuO{`M6j7ZV!U^`BgPj81 zgtS6$b81};03fF)?73)pXGOw(zB@1|1v%|LvP}diuQ1UEu1Kc6BbE#^LY7_Z#~CUr z9T@U;_O^Tb$%Ik(wpTC~j8p!h{KN_%$0CcWBoC8=VGCeM6xzP=#mBRmcSb2**x)o2 zC)Dx;d%v;McWT!7}Z~F_tr6C)4%%f>fcM#g8^IZmyn~3zUi34&QZ% z^Olo{hroZY%s+DLw_`L0jHZhrx&RJ|1uhaJzv~AQ3xV)RQ>#j zX(u{DMl=xQP_?Hd1%(2KI4^=6%O@1pu&*P7;ma1TDz4DsxarEz@VF{J0?logO}}kk zPDIl8bEdjKbcR(#VS1$eY`7%4-yLa4O;<68Z5e6N%?JObbAiid-{W7r0XX85>AykF zP-58#ib?|uk`_;)SdardI^t%-=|qLJsc3fn4Q&&$#7@Qd5#(eE6Gtkq%qB!Gg=H7N z*opHYJ8@D zeR>h0IlT}VR+Z6+S!!sP0X-B}! z#u(8X>75w!!{hN7%QnvKHpmdPM+&3r6IaWkv-hlV=V+{vI%UEg{qd8_o%S)<5%k4) zExB@Z+)A`cfp#54Hd4d2iBFHD$idhCK=*xblq&1+dN}Q52nc*|{b7+kSOCbk%BSQX z8^ImdZN_Ga<~D0K;X$Q?|15(uIw9*4TkM3Ph(D-jWdOtiTeYAPF%0T6E>^@ohH5IZ z@vVYqDbHVw+4Pd~erUfe)QyLN5J%B)eM5(wAAsr2H9jQ;kkYQ5W z3yXFZmFL*^5 z%3^=wb(x4ggN@F_zq=L7cfm3yZnwQFFg3r+&nbS;0vu!uOc7T`{(}44v_QEAgAqe_ zBIp;g>6??cq)qI{_o#~0y&6V(fboJ_(`+v-c7YfRqT9hujwy9opZ&JSM%M&jRup_nv5f??VNeXzAZu!El3gVL$=8fAcXZb<2J^uO~ z&tGh_vv*tb_;Tx>{^BF-Ajc0v)E*t$M_ob(A41+Aot#Iug{#xH$GZc>!}Tr|gI+bN zLDrIO5VfKkv@Pfaan8I5bC3y52uGH1oknIiL!G_$g?&9Tm`ajbD}X!R|P zjcij^(u-$X?eBHEV??0F$eD-^>e@F9^!grrYWst;s2hZ=>ILnVm4bNZnrs#gbemoQ zT@!1cZf@-pZm#u2P0RWcF#GGdHEvPe7J>+-vtBN@g9hQD$?4N{yf{mSn`eu8bJl1! zc^z#T#zVR^giG4THcLr;>0QA}8f09y84gr)lT=wxy2ed(vYMaosx{o|Buz=~fUZee z6-*J;9~RU6VCVI?_o9wkNhoYmV$ODpnGk7Rw9~oby;OT6sY6f*8fWBJv-aN(pl@?iFoXY@azcid1#2e_(XVhME^ZvxcY^#SR7-xr-e1W+28$j zR)>F`O`qS~W0owm+Ufm+i?e7!=2ME$LXT=xv0@uxtoQ~QTRcG}10;`VA3y3i7~SRw zALcS2=@yiBb2N`u6QoHr5N$MdfsKnfU_)a9acr!=T2qEr!dGIt)rnlh81f!91jlR# zUU{B0um~*WaD4{_j!M8%ELV%Ql)_rumQq`5-&2a<{|>>a4l^np z3Rz}t)8h{5E{D9Bf!}mNL#>%>8|bIodK;?OWNK8QmGP8Vy54puwV+I(#J|jU{3~Q5 zWML7EnQDwsiWr3y(;49avamgoIFUfakVSBVrFBQ8-};MkdMca)S$MdYn zWFSU)8Q2Eh$1@gSqKkjfSv)%2;?8rJj~uw8<0|fJ4q&?RcWLweWg2|HwrjgLS8Dj` zYWe(E$dUN_yZ@-LfBTPU`u^x;bx;+Lrs#^^Gls&F6yn-ahTB~)9`|*sa}0Akr+cSF zY(tak(@Zv7`&ks7Gtq5k#@w2zqKub;Y|YgQ68&md*vTUU$KxpD@k{4?yb(G3(w84P zCF5Vp%>*3jl!#!0k^J!SziwTmjY8B5@GroG0K!Cz2|&Qs4HrSTOLq6$?yPA|OpFp1V5F-H* z5=xTFl?^$lB5bF5MP65dbM~TjhCQv7t>=C*x9G3T_4_MAJu3SYY7sJ7o-HM;cwmrb zbsEsw|C91URT*`xfaALHt4@gg>qj|fXc>a#4nmHw!)LGr0q%gUjw!AEu5QYrzh9S1 z*-Kek>IJSX_YgkF*YZTm^wL;Yo>H#b>xC(l?Jud=38Xz^(Rpugn)P0*=Dph2ymxzz zx~h!Q7}svGA#NrO;V-FZcS&!&TS`M=NpxmlO{!*FB_~2#&z7afmbOdwn%^aRPw;ZR zsCCKPR9|6iSE{AjwC!>!ebwe(%8J%&Z!2Y=w&&-{UR_Y+J+ zx6SH>Y@64hl7mIjvD~{4%?Yyb$wN9Mx`*o5T^J?qVi@Un!;o${jEHtD`=}}b8An}- znq12#x?rs4x>#@0U9y+aEwuL$Evs3DQY1iCk+vDSB04*#ZsE6O0XiY#7^R{%{DDO{ zmy2yLgWoU)7~x(rrsy&(78o)u9yu&W&)GWGyKYYP){C>fxZZqk?lx1QD^v^r4OjEF z&N0DsKC!+`{;5yN^J2`Xr`Sn{-@S=rMthJs0$^iq_w^~)GW!Bm+3k%qKTu(~CtMhp z3T-pp2r~eh=EFWFW398a-u2emTmG7RpHov-(qKgcITkGwvKKv|cPEm5@0`YD*Kw3& z6rG@Ib~{RQ@ZR4av_}gTcrHPoYuA$Ok!wyzyEt7W zuDH=#YmPPj2DRp2zSq=yx0?Iqmg+FiRM-by?-G2#6F7hqHpAc;TmTfj!;~1qAQjw1 zl;*@6r>Y4fz?z)PRwnV}sJoJ5;Sso7#6~WQeb8;;&%1B_88Z!a&sROb3Y_LbfjSu{ zHe_7Y@XMXkj}ZcE$pCR>V+5{9Q;m^QgfK~r$K$8EDV0XbqSPd!R*mh_xe;8Q(Mv|i zB4my{G8Ty=O_WG-WJFLXyG;L&8)Q>G&S_=v{qRqA1ifzfMRCS27&O@03~0YI(*1T& zuLsyUUxqkDRQH3%t9FnqiAdQZ+wGetxvDR(O+*{3mVr0pi+2 zO>OZfui~7x_vJeK+qszF^4;8@&*u(zEj)5sr$t-a+BV_M|)5vNS z5U@uYsheVw0ThEamzEW0lU~>!TIODz2ellrtlQX3TCVTceH|+^=)C<{*)R-TnLNcB6y@LK{B5bnZ^b;$A>?26k}&uF;_N(l;c-mbF~@LSw*2jZ)Bz}DJFEUihb;(2q_ zh|$s)J=`VtweU90U;NGamxpuyMe5wF>>r0rg#XW{0_YQnVRpBNd24*BQEPelib26o3@OwK zcHDE0#};aZUmuYaTHSt|Ye(_Wf1*2^_WTBXGhO^77V< zsmtR3cViv9GsXY8QH`H}K72-J$7NEe&<^@Z<&QuJh-A|bKj8%<`rc}acUcped2%N{ zze^t?lk-@eQ;s7cjrH@5JxF4&F&U->KwQ9M$+g z{Ut_)O^ONkPFsCZn9ZG%sr$49>r01UtfNB#Vj>-mL7_%fBYarG8!r(H{~e5afa7-k8s*i=$z#2hMsITDvCM;&E;9FE(UXYZGR}~OK2dSVIY-V(w z70a+slx2%0ThCLG`wV6gs8|zNfLLkrrLJ*637gRm-)Lw=*dgy? z=Me$wqD<1fBOkvEg>tWhi0F(yE(O zjXB-)Tjw7laj_bR5bI{DlxFg~lRd9q! z0+;7#TW36)KcbKOAqWsBjoO;V$ok_^`O9`S6VY|iZVUmtmtgH?&X8JjS#yl}uZeOr z?yk!8~aO4)E)#|1FhW~!M9K>DwDKb@H==#O+riOhgP=<@H?C4%hxq`nT62h^j`$cm1E$WF&hBgHlC^*)l{UjbNi&z3r*~ z=cpS*nI#42^jNsc%DYm2KmvpWew+#LIb@Bu<^H-gCXV9a!O4j{Y|^sU@If zIf_#a4)y;Tv7-!OY5?RA5CQ-I08?Z}BLDynRq&~FXV6IiGcw8IRZOTBfpW5};8}x6 zCsxC*?6>5XcB^&=IRF0RzW@Z}0ElMbjGzF74^ZVKyUzhU8RA3XD@I(?&I4TX|qz=WfER{Io11H87#U|c95mFdN{J^6$ z5sd*K@c@hf0LaY1(Om(%yL@+;+FU6pv1yWOKly3j69~9kpzgr1-5+B$HpRtLp(%CJ z2&9c|+LQPv^-^598HqroHvj)yS~(Zi6pD(IxtLN)vb85#&8=MKrQ_%Kf83C_ZGX5I zGbLXts>$7T=kjXoU z_q(l9N|-lm{7E&R7d9S=EVX+`C2vOZg+D09m?`7VnJ}M=U5mc8k7kV=dd;LWs@6HU zFWSsWuvrVDz$)>G?>_}O75>r-dN(P?f$3EM%7$qsxIqv`^Kja*|n^L#> zjX9Em=%;esePxi4?-=)>B`)FWk(-?#z)l=5(lvI@$+0Ft4jP*4;a@q~b z8Rtz)pS^l8V>AnSbeZ4Tn$+osnD1lNy?52gT-E$LOVvZt+XGizmNI0N(Io+g7$5DU zWAu12I&lrB`W)8bSjDjQkmSlC6?&qu{q548+)sK_NY}2~b&0~0)EOmI7OLNzQ_vKbIvx(QIy1 znLP;;Rmrpa)+n<%#`ik|s@3_H*ZNZo`|=jk$`hsvxh{(Grs|p+tlj+-^lGv5jZm*t0u)%+iyK+N5*;8t18wmdGItUn8ZGI=d z$`F-vW{?1YQO$=O?HYbaD25|4n#_@pBF9(Q0G-*`B^0_fIbcf?EzItyz?UJsZOFny-;_&@jEU5M5qZ%bQ>RNX zo(L*%Y>g#qP_9Qf_6xZ3vhjMexhop$#xE%v5eL1eS_~ltP}v@7l+H;sd@w3X^zv=M z$^^uHpL9Xnm4jaQ?2usGOGensHjeR>hxH-jQ2+@fiD0_5|C#e@SepE=NHJKTg zj=hLRKaqTf0ep<3BNh!uV6Ioip4`fa%Sx>~xg(R@l@y-4WJHie|B&5GpvCZ!K#jZY zF$Lm$*MrzxPndaL!_TtDq7gjRIq-u{Qkg>5>S%OLuN$R(UpF!1uuEd8kjMajTP2vzRko)^Xcc2#kMyQJtX{HFeUDtJP|6HimuH@hg)&j}z8*jDIOZ7a^XpE( zyWpy#ub)42Gw=TAyBV&CH%}i11a@$u%f3QS6lF|9GmPZLnyCKXG@86&wt18hgVoQ$ z6~8l?$Ok>E?H+hz^bZm3L5u{T_xcG|8cc5I!834FA2c%?AOp!?-_etn3TP~HDo?@? zs`P`@jVG4a$^>Ex|OjKLeu3IPN~j$-wthmY>6unfv^p!>|zv zO9ZP(8SW*@D}lv#ny39wA=u&KTD%xT5L?iXk;*8MR$Z0m-ETI5u{H88gbzNFoq=ws zKO?~2Kck9CF65GFWC%cz(>aC&8DM?nXRtInb)Rz3GKVjb6I8!J=aU*z^cZ=byl||7 ztWP*P4)IZ6@=|#F)Na-XU>HxIL?3M5o?i8>gIutp33UO&B{2(hyQner@RFl{hI=ye zPa~jxVO$4X`T1Zp&`oP2^r5V!S9wrsE5Jn_LJmUKeHCyPHmtZ5ZgY^RxRf-&{no*c z|7@MkhM~yB-X}7Vf8y3IDV1hqS1Df({L<|Mi<+<~<;+%LDp7I%!I$UUZh{T<1P$m_N zA>=Socb2N(C(X#MRAdI{Vf3_lKI;DjOfl4UTIaHME4J4L$O~guTpcv}Oy1`Q{LGUa zfD6krTnMwHhtCRhs?-JJVF1HT@m5wG8jq+=#581PF;dN^YIJM?ojFxy2vV{A18Ytu zjpUZ6&ubwPJoj&{+*;bm2)J>+KRQRSG6^aHrU`Pa9BJR=D38>pYQCXHOYj>Znnh#< zDigNhG>7m+si!n<3v3Ef85M}5LX4WdMU@6Igi6~bI*+=oDdX$EdcZy&RR2)^5cv@K zIwI9$O(}O8PP{1{+HKH~Q=YXeWKabwDSVDEeSe^PZ(*>7l%+?`;D4w5)D~11Lm5E8PoZ%{DJ(-uflQwsCrTJ; z;3gf_rCA4Q%UoG(5P^8Kl^~>seXAAJ=d!`jSylJzyC9G=pXDbY9FTkY>A3BpfMgd1 zhPx>sB)k+kM?B&X7h|{mlL{F{h;HM`m7wP;du+6HFOrSbY+QWjumir9i0~U&ntHH% z*k^-K4*%DSG5*Ie4Omrz&npz^xbMjZdz2@rBN$!*|Svu(vda3%solt?nO$$fY- zgdvBu3vz`(M*NH+g&~h&H~v*Fu~->4*G=CO-TeyIE4CjEz5cfI{H99#|7}xk<;PTh zKvHn_PQoV#u<2t{3?V-7(O1xN5|YyXS2|M$5dk_E^Y#Hmlv**=>tw?y`PTAMN{wnV zQ&+!rZk#4Eg!tG!r16szTXF~$SVEhC{U2G_q~6(>iIF#OCFtTP1r?WM8TfIgn*J&- zY(^s(0!-YHI5@~jbSR7lW}T4p(~SCL0nA)f@3^gju&@h;I#G8Atl(FrVW?GiICA<| z6_>cAbQ>f7g|*x)9Z9()CkDfv?f{7)D&38FExVM3g|o37K7d9uvct;vRmWav)FGfi z;cm}4;zTRw{Q>WNFi-j6l$7p3gFU=bHw;JN3?WYF6Q6A z(1&vf=#mTjgJGi(bDswHT-yB4$txc@T&}+^*U3-1e%CMkt`~ms>t4SFY=F^tz3>ZP zzygk7^Ng?2{NtCrg!n%~#Z7cPweC;1ZXlW5n;7&iwELPk zvPYNn^OmisHp6?mSCKs^G7YeVZE{?)6ze9Jd){P~wJU%vCGUI{Sfx!QxLC=8mWq6U1&t+1zDXnUH#2Giv?*qei3 zPn_F(`mF}1(P*$cUB&5AM#d%eyF^Yx>%Pm)8-z z>}F7fzXO?h)__m|tDm)f-M~w0{9g9YC&FKQ%$2w1TKyh5KI`s_wGN+Kd*iuh$8d;# zr7jHCid0ae=6`c6;w6p!6R4B`fDjM@0000o0AM5l01sA!DM)+5e68vObsCTywx&|} zG;_?$ce`<-yLP!ZK>z=k{{SEZ05(McHUI*eh6uSN48FDhxgw+yLc4U zXsytb$m`c~$*)TK*`8%*Ju8LzZpYSM^ zbzAWGyP*opUExc-l+#Ml=Z{y&AH7esj~grL^<5D%CEj~eS*PXICrFP+YW{u7j72%S zC+=6}57!?L%==@<271~czG&%n9^LC+(%L)sOVZ!}UrB=_el&kCo?W&{?=ri6RC;Of zM`C1;$Uq*{S010&L09S_kJ<~jUy4sU#WmiJq!;+Sc&_?$K@;|$|7XBEn=8|2;jToP zeUda8e~#ws&muSB*A}K}e0q|@WSC5m>4ch4v(%FsCdY)EP|<(EEBI+Xfx!3s7pPCx zOTvDMe%tY8sA}z5lY;cQd>8(w_?JL>g7*ovr#B;Cq*o^v^0L?c-thX<8%}+mt)BSj z+o!$m#-H9ms6oE|(Vf8s`0=N=36q`Q>jSzPLCu?+9Ujr!8v0kl*WCfI&q{9ya3^vd zVD9u@q#4kQlQCGTSCFu}Pwnl5Zwo$yD7fq& z#@}$$w0s(C{Pc{`;?punyHCfo4VA;5dk{YFK7lrP`vPyn*+-}jU%SB~S3EY!+hNZP zhu4wY;k6`p*uTjpTHAXUo4P#_FcfF0aSlDJU}&dc+*2vi}5;#>P-%KVi0SIb*$;S zPPfF6hN^_fTU54ik5s~-52uV!BcR!m!&nwF@)XMfM74*DR6|E1_2TiJ{h%|}2u`30 zbUzWzBH4aAG9Z87;bvE0&|vb@?5z?5-&ilzr&^Qo zXBVCJ2_dEu+^p2`W@~XheJZ^86q!opoOZe?3 zhE(vkIO-FKs}#elYL4jDDe+e-URCg$DEJj5DvMoJHFeC~;*%7lq`+|1J*JcXFjv88 zoPvotqAAmIRZZon1>HBkn*h*pH~KzhWM5hU;|C_2D+3oWf(8+6p0BFXTAKNH08jDI+Ehu{=*j}7r!3gnFp}7gNOsR~h4ktHd$D)%~d@JEwh z;Lq471xs8{RrRaKCu>L{_DIM5i?T410^Lz((Hc9hk?DC^3Bw z=I<*E_Se?JUF6za!|k7Ya+B+&kEi0ZUfFCJZ`rfk6WDM9@pjxnEZ9X>z#?B`%qT0c z4&D-`GZP80+jsgb4>=3(%J1i%B4&HRfh^Nbn^Io&W z__cYVeA~=qKe{W0nC^isY8tSLFaE0{2U5{yE@6)|IGK-;b|C`PTtix4gb)=WyV;tf ztO3ldBIvKk_fN}m05S`BeVu|q}`2M0O z3I>;B6ve@~8=^oGe!nORg~BBm#li6IM*A8XvzI<+HUlFz3MVnYcO#?z7e_jCO;s8; z*CS^N12HypBY9gkPr01Cwz2y5eqC z?I%G0|H1qK01*HpssJbj7=$BrWJ;n)V~CU%(GiJ_LDCZ%f%ZgW=Ioj8nQv}(Z$W*O z3~EFl2z8{?BczScXlOJ@9V7h!fk4oaI!Ck!zyM(Y02%=(8X^F_hq$nSnD!t*k5P{^ zBX-+r%*;$=+pc1f{?(^E z^mU)z>YtC{PwlS1eQPb-mtMCkw^KX+|Do^Z>&jy|0E-SM59c8l2j>-&^Nd@Z5KL z<=>giw^y~-%Fl9BE0)mQT)uLTb?_rE{q>}}D{bYk-*(t--^K1Sulw{}Bb(~!$%+a1 zKyz)`FWs|Vz*p_Td$`T-dv)gZwdDgMw0o}Hmh<)>qvf)4N00LPbH#ms^D;t4{QlU- zBD$CdJv5IFeNlZo_PV>nKD~OsPFC;MtMxhQe9-Ro>Pd&khcxi6_IUt;bPA-T%U&h3 zBUfju%(-p2Q^TqdApol#a4?l0AfE<4p#P2mjq}+#plJQ44}jkO`VMH_|7;UB(I$G) z^sYCziPd{sZF74%z^}c0Y}0%2fKKR~!rUn~dn2XyDl;WG5rxWk@=KNRgv%=xE=9`j zWo1fnG76RN1d}S_Nx5IvDYwBCKYSg6n9?bSjpRN)cxYaC^lN-aZ%b$l!t{yZ9s^D* z=zXy5MjH!vZ>h-5)zcC0Sf(WE5lTzg<4K>rwIvk4r#*oR9%qVz{Jgmb7SmZ);9CcG z$II=_g39ngx4CQWwg_o+tDH~1cj}R&`gLH{%8VG_6-XUY)-*Pijd3G8q+c zVQ;L-xg2oDqmEhcu?H>qh&GyXsur5gzQo^4?I~)zo6J!KBf2C~HY3YMbr@9=syCe| zt#_oO@QRKk)mdC(snH^ZQRRvYLe6Q^_ME+T4@bp2c8XgY)qxJit2AJ)aA6eXqi`kt zXaY}u;zc-@*!GcTzaPh~X&?v2;C#@$S~v$yIz_qL8FEZCv6MIHHfn#~@OrY|(}aW77H zqEmhE!(QRot8&DLt+7cOs!@nxjU-pFvHU6vW7>W+nRx8I;jPjLh@_qq99Pt_LBsE(mRS0iYvS4SY1(0g&iCfazTj8cKT*;|;Km zJ2eAbY8il5+koU6&y@Qebqe0Lou)VO?&*lHFyAA1Z5i8#-%@7L*nn zC1@=-I%r%mDkxkk9;mF{4d<*d`cGPH)StE8XrFJCIG(b0_nx!Cs61)1(RkK%qj$bj z;${o&ZnB5L$Tpj6Os3lDZ0wuZ!rM#x@t}J3H?N5n-n}k)_yZn?hudkjTh*GvLbkw* zDr^R--4~HZ9B}IxPj)j;?>tPKo5@@=h}0yejd0GBM^1V6$n1D>_&jfmHtPmcJ01hC zvD8*tjv~TKk{w{$43Q>@zQnV5xR~d!dH?VV5Q^-+%nk%yj?!e z_oQ=0_czurbNF>9r##g(KmGD7+_!!Fx|36$>Y5*Zc_!{-74L=tON_>2iX4>(6*)S` zD+5peI-p`JxIKLEK?7(LI^cuQ93;Hx0hArm&1v#9G;VuqTVZaS29_K49?Gq&4{~Sh zLoVEWK)xH8bYyXjNDdGv0942!pjk6aFV1Mrj`V;zvUTcb~O&hQMR9ZSVFgA|%AuIEr*%@Y0Me4=!ok5o_kWcLIwMoyx4w39wG zhx9qW*Ple4Pgnl7Jn>-!p5i;tq4BmSQFz>=sFUs))$u;jJ^R!_=xEKaecOlp z5NH4o)d$d+O#pvwJO063gxAvXO;7uvT{Sx5HPZuLS3RIa^6-Xv9YY{mhit|7czrW1 zR!qcL)EvR{=FM2jim%5zI+Zgy_>cFb*d$3)Uk{v`no z34ti8z$J0SW4ee?T2kW02T!$(hAlX8l2JaWB}m*%D=k{wvuA% zIKOT`l|`i$K6VN%#$CYN-P&z2n01Z9)(P60HYia~nnBBtNu>SXuTt=ug3Xks$d*Yw zJlKew+kZr*C=V~;kESOYxLI+(n=G^QQfVo3?v|9|hJEWi^}es}-r=K|d3bT_J4mj? z#c$sme^R=^bd7yE$13`hZqPrSWpOj+zQZJ)rs*y_9`Tm}|5nb(dFU&`_&HN4DX-~> zO-jWyMZ)w{e}DFBo=9`^v8(FwJXvVf#fG1*TP_yQ`j*RXmDUA0(MYE_5CKlxJ(%9{ z!5b4t_K3Fu%g?_7PH;Wj2`0SZUEV446DPdzu49p#O7(Yl+oz)8TeZ)1lWlX|aJziB zT#~D^`QP!!H~ETqyPI!t{5M~ItB3q2zw#S?Tg6W``N(eBeVRC%verDg6w>BrQl*%A z9_7Ay7AULDb3tKkp8h0?d1p`Vo99llnmlt8*5-Mdg!1L*xgciaA~ls=x~|Hh^$Ms#MX8nA6j4Y;d9s^2!IssW9xEhCzmC*gt+mq z_G?H_(o1?tFX?SJBdT3*phrv8K+4&w2GGhzf1qo*Za|Ha-huv?pj{f(Z|IeyKTs*J zf6yk=e^4ZxenE$^`Umx6^bnc`<1jh~?l3A0z`8AgP1|K>%z)t-PlIt7B?EUD9fNon z6$WT98V2a`2{j*xGU7?d61IdRAw!5HL<#XiWM5n3c6{36(I+8Gh!P@%*v5?J*khl~ z8f%Iqb}<~IKOTgS7(=hU8-AK=^vOH#t&awnyV%|L(^*pu-E(h!G{(p#?zo>08s6Sp zO&^r*GsHi?5D4NhAATP^aDe^$b>l$5`BLBMF+=dRPw7$gPEkVi{;eog}3>rP{G^{0!z zc(J3APAHsCfMeFPW7cq2%gJ1Y9$6&F6xLOLPuW(_B8f|SS5{=%mF$JCgK2_H7>5I68jozS2JO{dl-bNn-*7QhI3&1n~Mzk1ximx|;Sw zn%n2=00A!lbIGn)#tPP<4b$a=#J`(d5p9BU8YrYBS~F3!6!Zt z=<6eKDW|lsz!j&Vad6V6NiQh`F`36uOfW+n>A*{iB#|v#**!qQISQ+ep_ZzUmk;h+ zx6tVEnv|{O@aD`|xx|n5hnN}fTNbh- zIsq<@^;xZ2?k%)XqReSMnT=&QV~!F=CUP;K^FzzUvCifISs^v8HXhloKGTgkl9F~x z5OIwL0Rwkv^n9faiA^>bV>)aivr~iwl~l|`+!Iwark7C;zbVuknRVAPJ9%+)PSXFaH&UjPG zcjZ)`P+IKHhbu00TgrFki=YuU7#&Ngs+h}-%_1djD5GR=eW-V3Xtt{wGw(eI(2o@~ z2)(6^<0{L~{KZAiz;z;n9bEm5$Ji&YT?Vf;)+- zq6TnRH)Tc-Mh<~Shm?@jIO|;w@Lh`PT1xf_h=6}0lm=e8CC6rb4|0vsjzF%gTL(j? zNk3Z|UjLdG$tkabKgOZJ+I-`jiz>qoduX79$&~prHUz)EGhwbWscs5(t%2~xX=4MH zKI@vA37J)M2YptYI6xy&nHBnv1yAcV9`>|!1Rs-2Qce@kReo&@s<)i-0og>9MDS6a zBqO~x;agdjoq0Eh9OtcT;`ydSMDPEPcW{t?=0nQTY)k^ih=3t;d8KG&r4V`YstOKs`02d6p)kD&q=P5D7qWcQhSW{a_u@qrpS5C)6FR1Ok)S~NKJIB^B_It0 zicPN-P}`WA=c0FUBG$#Vv8R;Lf3!?XV+wuh4~U^_41tG)XW;WZrV7@?<*Ay(JgaKK!5 zds(W4xMNyH2#^0noSrX|aTSs=T#_d+HFqy8!GYyZcX>Y?JIN425qu@I`8d+=>nhN3 zi9G8V9YZL&{=sZ1z|?Mq;AGLEm=@UhXU=;Nw5uH2C2rN4Z=HWl+VIy|y-iK!w-TS#JT{ezG99DHkt!B?-u3 zt92uB4ph8$5S>}Vgh_kO`?j!B{&gesGPTTr38yAEg;KU24bTM7%%FXzU}%%+xRA#^ z#g1IAB4Hh@c~T7Bn_9u5df@9&^aulGcV*s}ey33`prKk2RZ{Omd}94!m6MM=KOuJ@ z^LdPaq5Kl0v~cAL)k`p4#zYSakc*;p+TzZCQR9nQY=EgCKG@?=B89;a?4g|yL4>Z0 zxZzA84mQ`ru3&<>8v4|M0yx(p9`I>;CFn^up`%CaWyrM3nlToQ zB8A=X&(ojyv|MTiTAz$e`x{ZskAyT67yf^I>tk$T->3RApdJI6-~!Q5nJU9s6Ji5p zd-V>CyG}xPk<5ZBP={+!I}D5$+a#<$iRQiwNQ^Ui>GvrLVheX>XdHStAF_q7RL-Cv zDvH<|?|EN7j1Ye|5xk#NyGm1X;q2Kr66nfmO11 z39BZs9z3-kwhiLIm1$e0N7fNGW}tADX6-k_N<%ieCce*JEfeHkn)%6g6SnFsl9$`I zTez2ki)8}V(!!F@($7u>=}2^2sG+z>Vz-@6jZt;PLt&!UIF$*i6C~QBzLR~+q@RK- zKhtJOiR9G)-H@Xci}onkxL_l@0Ca}*#r9FXzuUkwNC+#fZ zax@@5;>NQ9#luSwAu8kW8CF~pq$ohzqT;iY#>oe_mx`a?cQlK{Lz7|b?@LM*^y+!; zHVah9>dTT(V33eg>PH-L!iJQE!*ns*L|z;;=!~n62EY_V1zX#u$0e{6hKyxH^_8PX z<`FJ7mOp1mgWHw1t)6X(QuvTBW@|2)T5l{wX}tn}L@|26hn}k+}B#;&`xi3Otqz zj)Jr?Xr!awdWq^>h1iz+#5mdmL6QqM>WnP*^`23uD%H%~0r{!pWW+R6BNRUrUPQEP zWjqQf_lP=Wh1&z#lFSgqL8KEj$bd}dqOuGcDv)@D7<-JVn$VcFFvBF%kxXO;Cz<|A z>*^eRe$EVP$_9JA6I$a>_zn~iwU7k#ziYidCfEY^U0DVC+~5f!W}#5d2V>Ion#MFl zxfZY}d);jybf~(h`pCpe3bA63QA$$r(i=FM#RZ|hah+ZnArj}MX zS;fc~L7Lu8Q>^#=8pPcF7A4oMlxIg3g;|G`3WWp%Pzl0*E^H{Ky^zkvE z4jQoBEh~&T_(=5}m}p%o>uprsRZ|omc3JVy{X+JNh@)Y0nXr;l8hEaiO&=3}HnhYZ z5~1F>_h}ZwV-0HAt*bAkm~v9^uC*^W~{%9oiMY$rZwl`!1~oCMJ#=2MMD?p!?j zp@s4Ycvj4yH}4*nJM+$ya0@XdsfU@1h?p^G zqB!#y|8`vIfH2s(p?n5s&A%*Pd?SgFQbkF3sW&YKpu-m*ET z{jq72u0lV~SQbd22=N`BNuk&bniyL`FGY|+2*xth2Ms-lyf+lrs@22X> zWAtowYmKXXCG-H`;2m_g-}P)WpnSIYP6Jc!a<)+nOX!64LIIl{u{1RQwYh?5@?#g{ z230%y^xMC|yL*6(qRycSPG+;N6Vr6pY_OS7!w&x{Eah~xW$Mv8e`$R;TLE=xFJrWe zX?ERv$zou#6KIcCBSuK|G{L|w#+iM^oqZ{;uB@v$PTbOF_iC9FJRZjwKT17DTzAx; z3gXu|lWK?W7a-8~m^P)R%`urrJ2|LnC-ZD4G5i_SeZ$cazuH6~I!aBRtPd$8WD}ih zJ)yQ=)xj=gW%S9>dB>QtXr`hNSd(IrJ6m2CALLCkAYe|QKNL%!D|m}mW62-oWVJoe zYYMbfF*4i3L*%qUCE~sJ+w!vZsL|!)#z&*1+s~wu;fIrlk$YM8wCOmG_b5rNWQuBt^`yyKG>MSj<<&K2hm=c*WZr9NaNLQ?4rGl z$WeiAwC=4F!NI1dsGx_yL6bpo(poY@gh|LX!PKirsY%U=@Z3tL5i8IZT0>^TGm01L zsZtDrS<9sgvABScF3qLlVt#>A{uofgPoyxTM9KGv`yXc~|Ch^jVEV#g&hq_~EU!OP zPM=ge=g@iY_u#{@?Nu*PiVs+)vnYsT5p(D?3fW9IMP`-l{x2b zj632$i?O0w#cti`l)r@)bqb~En9Fq`^spfJ4rnz=Xiz9QwN>QsQgMRUHj_jKGd`R) zUsWJ=(zZ4G0-HQ?vX@_>E0O^^KgQFiUzDC{N_ivX70NfA}PUxn%tvkyj^eF-rz2$cnsQ0ibZH z0SJ8S%E`2O_FKA$U&HyR_20!%d`R(#yW%$(`*)ylIg4UPm*WS<3T}!lEW|MI!FL=0 zu7JmTsspNko|*XcIw@2R;l3}5+rf)w-K9@th1yb)|5|c44W%nxn58!cYk!)p(s0;- zHaB%lL)ic!zyhr9+%dK@9y*ZW$M{5Y|6o(Jvv|>a5Cn0mKX9td!-pWFanTSzlL2gi zyv8~iLXS$y6o_|{d610qnaA&)Aw!T-)GAjJeMR6Rc4xS6(Y6sR3bdf{peCtZY{d2} zKR=ET6J9JB^o_lU`yeYv@LLcIHY&&-x)}`KF9AUb!61#GTnKelVua(Xik7L=OXCP-BIMkhuJMI+v!I(-ww!T@c87R zrn5xmLKI!RQ<!Dy8Rf@RPK z;GnzsfI-FnXThn{U`T&I>!77Rt5UCG=Km1#N*Mx!?BGr>NN=NN%mKeL=sUxf_RNhn z#R4KB)=MdpCJlCSV_u?p&ObHFAQm;gGqsXmFY+D!P3$4_G> zz+x4Jv#I#yUZQ9rwL_FK5|OZh9Lbbu?@EP=wVA~?5>x>q>YZi7TJTVmr>wK4FAfv> z5BJIdap0PyK`=EyoavyXs6~z$N@I*72`7^IkRJB`T9Xy*ns&2Il4e9k+zcWqaX9c? zNY-ihy9xni{sbIf@M$-Ui*ml~&l+9+42T(D2?ZFJU@j|FMFfraUnU|B5Jaj%K^~qb z*K_ZT>^)jlJPhRLby_A0AKo{}N0Si|5FW68cL{V8I(i)Hj02l-{d4u${^)#7J%yY; ziWxys-9oFGIi6*aToTf|F-3WDd$qsGrW^2xr-fbsT5l_Zx_%biz>^RV0{{R3G$LR% z003+NTld=5RNI1kv&89<@;Hab(?1xVCQ#wBWF%SPI-YI7#u-_Y;);e!(B%+J2n& zdSfNs{qIfw)kHt~4B4d|di$K@N_#{`-FKnEZ4^Q`RF@Sj+%nZK$*46`BTVtwPp)yx zO~zGN+DrN4WQJy~MM1GiA6Y{x0!kigDf6)=2Zl=>QL@WemFJ-=a@-^W2A{f0BEC){ zOkw7&i&12$%HTutm@M{7%Z{DMW5Hez8faGr*ybj$AkZTIY|14(teH>dq5Sx~g=cjC z=ul6dMGAqUv-MCaA2&h>lD1=t=J8oW#pLz<&dkZ*gkgv#jU~&>C>aDFneY=ob%i9= zBQFaeG9^)+cq~;5 zLUrNgHZm>{LCt-Xa5N?+LBd?#^}J}gf89^X@6mx4;dw8vsPtAn(LQa zY>!KegLgzyRr6_~R>Wdnd~e+|7=|lXezzWLoRZYu^`r>KSS;|1@HPoOg-baq# zbJ6=>hBieCQ?G3MODbyma8(*I){k*;1 z7vji*h_D`Gj83WaF{R=Rr+5ad$P#Uq3NTccWQO=dvx@)f7p3SlP@4TUOzy?kQbnUyReVbVfmmX66-@{X=zeL7?I)OFn|i50=qJHmm9} zSjpk(7wP?wrSBdY+ApughB+ZQ%_gj#csTUkd+>H0YMEWFRYnh%j&E@l7G3kW!jvgX zP&v->@QOY0{nCfoXw*ng(nSL+8BIfBcr4v4WS&S$E-RQhA9yIB!hgP={EtkJ9okGR zY2~(}MId;n11B1da|Q&-gEg$k6Va#LfFw(H0iqWU=qofI@!x-}6ruWwsn8TI?g^69 zJ4E6og+nCHX+9*=P`_d35`}+S8LmOq@UXXGhj9#pf(%lW(;1~rGT>nnN>k1Ny1T%p zCY4!=aGGi)7lH||5mQ?z9?5#wr|xFgQNdDeFFeSaB`cchm_xaWJg3#nLnfXKisUW1 z&X8THU0sR-Oa+lv(=sI;mp8lKHQ`=OT=FoQ(IbEpg>fAi;~qlCZL3@%JI z?V3~eJ0U`wEuI+{5h3c7ZSc`(e7C%$B<#EFqaRW{8y2*iI6$t}VzAvtnF6aNX*IXN z5Bk@0AOK^rCJyw-Qh390JO(It1Ew;|)({+~u}ETtlQtP%HKW<+Q^$z+kpS|-Bg0@$ zedv^(Q-B&146O{B_6~tAx>aK4#Dk0e5ejs}WN7=kb2#H*KDRA=MoKu6`*Wenni1GYYC5U>3kSq>}b z8xdp$!v)I;FqTv5SI6pP+=S&KgswVLQ46n^edtw}Rf`r3k8{{32j>736{bndDrb$V zn=xxh7?yPxBtVV!DV#(u!wa@)6Ei3Xe^Trs^sQNCuX%@b7fUFKF#PDIcby(kfwD zmlF{UF5z2M=l=4}DSn8Tkcoq13G1l&nnSsMq%q-=Fxn#4k<*LBWf^}Gv!Gxf;sly< zoNdryGYIvLv1*=BzjVU2Dp)Qj-CJhFJK{qW>JzLJVvLo4zxvGSU3B^?3jDcU$^QOK3vl@R^D`W9UDx6DhteIK@XyRc{MhnhJ_ z4zX~!?80oYmvUG!A{cEK9fHjeA8OAeJ?hDv*McH(-t7LI@T7GWYL7HNk~Am|V<@^N zUgu<=(dfN+P2H2f5|2st*|W>6#SgsRKIC~vvZ!yf?od1a`pZ~aAAv9yn>ifEnr&0% z-OCk8pD|I~>1Lk@XYm9fpJ|aD5j_fjxu79E8OVu~5yd192^u~}xv5m*}h?V}c(&6Giu?qI1;b<_3vh8ZIfVrX`OC&^?P%ZG8w zgNP$r53)o#h5BS%P?(^d8520Sw_YM9RuO5&L;jjC^;DMdiB^`&fOASCYsX?TcF>Zn zl!9GDbK}M`qUA%d%Z^t&_1H182p`YZFt7|Ykfve?j7zw2BDk|i#<~5(n zrV0Fi6*L{7#Tuy&oCP=Ho^i1YqUrM@u&<0{X(lQSQsjy>rt7bi7cH`pCDv<}9NR4E zv120aO0fu+*Oib}INlrjBkO^Yy$RW-Umz1i&6t%kLn>NZoX8^N46yJ2r%FS<(zIXt zg%izZ&jydBcXR-+Aw^kNwwd%Zh9Cg^Y&J0MM)~mb!rD=+7OhPZz5|*EoK5sp1$fHL zF=?g$4-L5)Zm|}yWI$tg(n%CWuu8P?0^(B@n(}_2OPilAyj=~<6H@Xf5Y3`fSTQIc zz_L_@`L#MYk&AZJ1~T%W^GVWmyIp0hnrBJ3vStqt3mxEkrD^|AkWDN7LmK97Mzoz$Vv;R^V}!|@}3)r zEaS4{x&E(!-{P%0!+T%-stA>fMTA?vA0eJWj^FlSc@;~GEvSFG$Q6Q(c+Sm;)Ln06 zc*U#pP@1N8P%i1hO7O^TWUV4`w9a!96_?7CUXn4srj$D=7cgNO!~x6Y0y`zO67;@ z*D{~-W+>_|S&d``NZfK?>^t@eQfK-LJ8Q>HV}29n@oP*xii$Pc8JKgn43c~&sFIDq7Y<}#6(l)Y4?h|-e*}S4AlP! z_~@1@hBKwqN=K-4Hq8!*YAhV#X)w81JTfl)2=V1O;$Qey-mivUaZxLBg@bMt5KOFqub{&4!fSGLQF}dLub4` zB$|?)xY6m1M9Q(Zl1b+hN_7Ws<9__xox1(oZ5w}*r zJUx?sKiVy?mbVYswqavm@te)}WXE%~-e*_uU8BwLp}wuR@ujy^?|8IBz2V7D+J>w+ z+s=5W9m&TO-fcVNS9WOWIO(kEZrR3X%5j*Z5l2NGP8^{=b>y__QMXs3+h%WjwVYI` zw8i(1Dv!?MxiK!sV~$oFwtW2DIS|&i*>9#?pq0bM5>>?d#K*Z<7?(<46t9lc8i}{D z^O>Ygskx*vxToeS!x9oC1iS;JVm|cOmi$!$)x!&Uo>Zeqwk0JSUl+Wl@=j z^DDlL){i?#?;A4Ra7+ssW%6NW0|&eh`=xJ2z^34h=fhr%I4JOryJ<+7G$^!(_~ma# zA;UJX2F`)Hr0^$W$_j6hAzn>jsWm(!hj0VZ1>4c^Gn|d=3nrzAMxo*MXF%hahiEPB zC9IvRnK70T2Ues+ff-vhS_RAnmmy^%+pO~pU9X7<7KgukYDaCwxGkI>l2u$wP$ayr z1ePJ%#y&`X(uV3hmC92+tT_FXH~ly0+Z#8ldhwO6vP*X0n_S1hW1b08#(gIxuz(ceLZ8FDg4{{1qoi=5Cggbn zRnXrg`;4OFKqBSq2p@|V{H9_EwME=v17$>n zv|U|%y!ioAknBPDS-qo@&WlEoe*ftw^qGVPL+%tbkHV#uQ>;*t-VK(i)wxN+igIfO z^Z=n+3c?b-dWBrn z1ZNucvZJ#Xo8rndJc;>*6a0OqpU{c)jlNM_jJn@J^vpUOZz;MFKGjcGrmds&39{V* zH5AVnXDT=5t`zQF9AP~E5T4b~(&6n5K5&LystF(VNVOt0_nUIPmY(P|bBw8iwlt6+ zY|aGfLKXAhT|pAvf0dLN=C6*pha{3v;trD+ejjmXt$T_w!)DmhE9*|>d}>~eH0UVf zDhh1j-Pzo5?^wDz+}f-|ijx*)csPek*a~jxVMRP{cPO;7Kp39h1n=sAV^|aF9gvx? zu_yyHo>jy)Tc1VB6Czv?By$Ac121ccvud7M7zyM`XDk9^7NJ2L;0h@LioXAr4P82N z>28j6_#LglkNda?^a5q*fBr zE2}nd#v?YoN@YnwTgf46ds>z7T!~-R>tpMgmW-^B8P0MTWggV<9WU{p+vNa?9=yEq zo_XDH0ePeB#&#+OXJ~DsyR8urdTg&oCJA-)W0$ziR!<)P#Z~@$UR}ubwqeDhZzg)vJeO-J=JTH@pZox=IJ`Aq&+awBBIi8Q= z?+G-exe|``7fArb^|kFSd%ALS1MZ@uyyha_%@xSl9~CvDGjWvO@@(gy1GEJdr$EiDx@%;z!u z1<51TTtjkBe?)pnxI8DowoYUFC_gpX!$s#N25{TBiqu~;5%Zl&Um_a7Aw#;vbZYD&COepxEFAMtelo#Lt4KHaKGLlh>k7 zCZwnd=Tyz^;fM*jn!KwD+FGM?t>+(jXXj$C1>|D4>22R5lsxA%BgG~Xf+VJ2W<2we z;nQ6aU+OcXYzCcuDlH6tiG(9tyE{!~kiPKEvPuU#$AP}958Ts~#^z3>liIQ?eEb1a z-J~eYv{vr>vbn}M&HMOZcrwCk_&0aLh5AXB&t7lErd?LM(4ydcO(4->UIQ4Nq`_E zzy7>|a)k0xU8yLw=K{PC=4?>w@n`EXfcsvCU~{S1)3!-u;Ra|08@zDz6_07W$7L3b z)6JwLWO^O5<0n9Xn?J3X3vq~^WJpZ7raR>d-Zk-f?(Bewzgb|@Bt;&x93kLpq!iP| z07noY2LM%+0AK_FRT2OI005LfHkJ3vwW+X#>XmR+m2#93PN^##uh(8)dA;86cFJ(H z?Ql+O+8vA59Y-D7Ypq&ZA}jy`GY3^8h*xj`cMd;~{P_#N&&NSN2)ru+OZW+YB6Ua; z=>Qf$K~hUwX>*%b-D}$Q=RM}uMX!5ivu?z9Z)~-Rz}KCz)+)O6y6II-cky}~WmYxt zLN_;ENJ0WV=q3Y6kOcUBcnJVtY5-a@R}BheY8v9$a4are>%(bbPwXv;LL|9{rTbxr=Vx74R<+g-c04Pl>dR{NLTb(pA)r5$ew zs*fnQ?t%_lS=hXfAKq*zAu@HG_qhFL{@_nqTH4YlUss`c+3e8;523L!pD1yx-ye0p zVkmJs-BE`1=-{77>j$<4xqvTh4vYT1!#1pJK?jL3Wq+Ejteh%%|E(5Vuj1bkl(C~P ziDfOjlXz0IAG>F(ejq41s7oU!S8U{Ty2Xcv z85+tK!7_URPJM~*u_I;hrsglz=rs?=0HT+bUM?BJ$hwG+1Wr>ixl_M7W94{x2rOFM z+^ryQ>aNV+WE1S^E22F+@D`i9?R-CBqfSqekH&fveG^Uwm(#}QjJwKJV_ryV+jc*g ztwg;`tlq_PxN$^oy=`OO(o7hUfBC>?pHlzcD(cRWQI3scbf%KHGXDs z)=@DDpw01bkv*=XH@iK^;OJK?Bonp62v3i0*Z4t z<|`cH6Nho~kjRU2B9qz0Wh@RUe|49ixVX37kqYalndm1@UG~a!JKB}`NM4Q1cl_$m zoxiajtC$cU+eIYjyV%r(`$jaPuYSa<*k6Yj#EPINL|n( zKE@%(I^5}fOgx}bL0%!GSDir2+WypF#Q%$oZa0y)r>VvM6MHsKaQ~~qcoXrroIwqL zspPzzfQvHA#wFqvqA$|ZuOJ;JW=|ART zZ)46$;HEeL>>~`C@_kT8zHlyMs-*d-n^;LtIkrS7;!rGA#XZOPqfdiaRpI|rVi3p& zt3lugvWc8_*vUD;Y`<(0oi$L#Do&NE@uh#(TYT>*^qVURT>mm0WGg8dmBvD%Pe$Wu zJu63spB7+~AT0=1CVd~7Hbq-eXg%5M;8bpgT6q9OH*zyFm7?l9&>uoK6E~I9!*eM{ z)hbNF6E&%@+P4v0ZE?vf`DpO6_wcoQtI{3@{Zw{;9X4mryjzJLj+U84K3@mz*4R@Q zE!wWQH=}D<-5_ovy4jtR8cN>?ii`|Z={Q*@?bC7eLr0#HQ3t1Nmm}qm;6JznNwf4H zbG4vP?2&#;5gkDxqnalbZ(TTwVE@=@{4H5a;}^N)N6jGi2Z(`QHm_STQl#S2Llq|o z4X~S5sE+or6F2ec#GTC|5QWadMdU&$VUlQ+)mbgmo?*ECJ%%Ass#nqt#SHHOr)WCR zT~Way2tuC3LnP~k|DU^Ct_q_PNu)9<)2#Nwczm!rU+fI(W#C#7Tue23-LchyF;Ah} ztQvZUO|mMLtyc5g3Ah^KMU3(;YhUf>xw2}Y7a2A>tjiJLiZ}Git=M-X<+yU=W_Mtv zUk1CbwnB7aaJ&d6T&uwn>FR4}LxHfc68YY!yR}?G-raXaZISr0jtjVm?Yc;3QsK|H zjixc^#*Rj=C0c!|8NlZ7Rh$7#hv6+vJ~gm)s1fjWr8mz;ak!T!_zsq^lb+uLziz0sn}Eo*vLZh=b=^z z1+Rk~6e)#rbxGxlEY^k*6p)2fg)q4%io^|}N!sc`&2R|~a7jo`!7_OUK?=wbv9c*; zxg;njZK<3H$=soM9j2Ec)H|&4Qj%$X1+i>Ier6M-U5pk`dUB0RMK*6my(Jv^sc;ky zvex4{AU8+LVSHwSq-fEfrVWgGeq&i?)Oarqx+by{zzm0L$<-r; zdy=!Esg|U!745k>S(1YlORlpJz7f`%3UPL?lQ5jW-qK`>@&^f zYPORl`~!o`L38gnPk{vha{-U+-}*oEoSW*o>DDRoW~c^;GQWBWpD$go?!< z&p;d08Csu#Iml3{W+iGCo27VMkg$8WAh*;r#|7#(_t+Q4dpO}Ua0P~HI3MFRkWt|S zxDc~~D&lJsFC|{VR&P}2pOq!wZkv2Ww>aI2vE&41V|=YxTA^_Wex}->=IH*6%|Yo( z$4WpM!sane<~AR53>pkfgM7kkb94?eZfaCIGhwYqw)!`LC?p-m`)*7Q<5Eu53t*pr zeF*6PF6@;1NbC7IPV}-1P2IXLaZ^%dUpHPhDqA=qu zgq-&%)8<_g;ps3057vp~CkD+W#KuWpv@aF$+eWL(_8mv5xt{S+xJ-1w)K%pn35PBq zpQxxXJ{5UW$Z>d1x+_GUwKnG=WyW(zXrYc7?9MPf^!kI zfaq%_WS`xC9# z>Oy%974hx~TS)Hnh0nq~@8)ORv_tLzTZmDf%&1rVTL|I874f_XsH(^Qfd0wC`NngH zJi`(-)S>Y?Or)UHN&x}!VKM)1DdcAkH9)gJM^(WZWD{2LN6CfwioN=xq=(dx$WRi2T58q^nT#}lWX^?|MX)+KjdodhI zC4mVaRMQVs7C9a6rOlp>j^^6sNT0zpnkagQQ+B>lO#I#A*y~XrX;Fvio13il5oGo3 z5O(0@qz;ICj{4e5tQ*0hp?aQ_C$nbFDw<2iI6IpzX^^tw=VO3PaN0S92bniDD>!^o ztZs#9+FRA#Wh@5NZJg6FHlQ`6`LhioM$~`GK_z3&F>cLXUn^VbUUSCOHTU^bPyh^n z-CB^}n$>o;Cu$%SN7aiCcg8-#gX%n#+W{M+0q-8ru#t@5lXLYrs)Nfg#?<~Bd2`r1;LxN^8tmQ8816^GY@Lonf|`{#9=JtU(+N%Ex9j#?^DA z4l-_PR=oM398*Zzzagk&ONH8--N=#vN;Z5TiGJkjuDk$0Z;$x8?_@9I%ucPpq8G0rnbpO+I3sB7<^^ z-!KqKDxTprGfJcEU!hb81CQSzGlIY)a}Xd@wTkmj7)y%H(JQ~MO#4i>rQ1KF6E&B1 zIJAU5SS3<=J?2HFu)QAVh`{V6R)>@=EdP0Ro$^aSS!d)(rhMZM@7x9v42mz+Zdh@ludy8Mlx6vV2g^(G@OHMXdfZCj2#S8LcC^8 znx<5}wD648V%1Oogbj%SmSZ!@EmJ|soDIxZA-|X%j9EgwL`})i_7`zfXrpNwqqY#J zsBK1Th}&sLAsgzpY7%f;t}P*QV{J8h=87#3aI}8L-Jo)?e`e+&bESpkVKfJyWK!1q zp4tZFa2rjPxy_A`KAia&?FJa*nK?BFf;Oa9K5&$b)yPpf0XNN+@zi1f*+08yZ2i<3 znzA=qSRsjMt|2SpMrPz8jMmlM_wRUFjce>SqO;ncmO_h4W97JfQQD} zH7Y_9JdXxWbGxWy-K^W`+L&+*$L)1jp&JO|bT{!EF5+w4u9~9a`ta-yjpcH=*+*}J zogRt~*e?wot~%K+{n$Q6sf?+8>wjJVS9sVBOiOr{sdWRzxVucn;e4O3V+=EAdLeBf zk`T-A@pMv*{71Llaj45Xw}nxG1v3#W5SmeZnV6N580O-u=?Yj9V-||$JoFu2HXr0k zM$f@~>UUokAaKx|JuJZZ4VIC&;-vYecSE;ts<9xRcZ08?BA)1l?SiYYdv36}&E54p z?eA`~2j5}>umomOzd<+-3B_SvcZz7yOCl}-(R6elY0(@=Nn8f!J!7Z8*c0o)9Xu0c ziWAp*&}lPGFb-xXUauyZEMp#L^C8vPAJxWz9)(#r)4fdLy()2z2e$az8mf1)o(#kI zH8g~D0eET#g#3e=DrI9~o?yj7wy~izD-{{=g10BN09HV$zmve7*Zs7#k6XekxNwXp zYo-r𓀒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

L+HVnLEqwHgFobI&`Ek2TL!ireM$l1d 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�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%0D!i+` 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

~6c=wR``8b5 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

)@bY*{ZdMF{&xu&~MVu-bx6I94>1Vft0eh<{X<6 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

(MfbaFHGSaXAZ|Zvq`aR(^}KzY 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%0Dmu@!ku>5K?k&d{lMnEnF_rgRic@pG^kPRMKM6Hn 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 $QyN8pj0rb1iM^g3Yr(P4 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

#oNXX%E&U;?h1GBQ8>RL4b(3zTA2J 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%0D(Bi9*5RHR9c2ZP=emMg-fw!e` zVHwI~Wug^;24)zv;EqVXdxLN>6hN~8%(ReAaAooa(3m#gZ&R!$u>Lj7W9$SrBKUs!n zqPirW3z8W?LAOU2Y!H;K7Yzubhsy{jCQW8fMCY#4VYUVc!^B-9hbIJ|?PP~|HEgtH ze$WwjaHMzmoA5x;IEwD~A&Z7q8HqUql1)FuA(jl5R5SlTxnj#?O)6D$Z@;`1DsBgF zCpYaoj9YNM;HP(Dq6J``F_Vc9JGI-!53zMUVGNQsvi$W>EbL1l zPC-8ZG6N`d4mD}yo7DRUriz(0G2h;W1mgq>$T`b=Eu7WUjwRw7O_9_$=7m#dLLo9d;MCZ2BLWrCpSGi=<-$$@*(TRBQh2pAW zWr*w`bW4lmtK29n$XWsi_mWJQMF1Vwi0jVgj7B(XWSm$mMmjUB26zZ31i@!rq?k;9 z1%kaJvH&|JgUtXhAyeg`jTVJJl?zV4%3LF({))uII(~bD~92? zTHoq+Ev9hDur;X-DNaY|8e45;rd$wGz+o~alfc5=yTcS81mEe6Cd92It13U5mPbZh z#Jfcwh>bAcygH&qV@WkMAcO943v32_}0VF&d35ava20yl{YmV5?7neDC{#w)}00!wICo%a&;mCZ;*Y7)3v*#cTx@xd0}`3;<~wmrZLz?&0XkwMa%L1`Lt~MO5~t3p z*WDdgcJ)IUkaqQZV5OBaL_KejMqKt_`>ejvALa*mJ?qzxE=m0`8N{kxT1+!YMwjjU z1kWRgpwY~zR_I?rwB)T;v~^b`5W&Hn$WDgyIcekKWycJ_@UpgEV1|^+`2a#H^yx;I z5dI7x&6Dv2lVgbpq!r^hsbUF+=<4)j1)p~_JDd{~hOAw!lP!39GL5w|93tC)qHEWG z5xWeHT1H~cDm#LqB2T@WpMZkUHNbx%)~XZw9`HBus>~j7gUDg>jU%!Ou_`Ql!m7nz z7r(zR1FVa@HL%NDAp+G2rYEqK(^XUEv*6Vo7F)S^c*ziL_&)6a~h`-iI_xzz> zVg7m*84N6mtvc-b#_`Pcdca}$mLP_Y!oKJw#TfmLwqtZE2pG7)WTqv=Vn^42?}{M6 z*DuR~Ab#2Y6cGwgRkD?CuRd{TJ(v89+Y8(<4#{E>CZA==Ob_Um&m|FGo9e>M(+@^I znDh)<9#vs>g~i07n;G`TCgsNZf`k`V|wg&Q9TX*ij7fmp%f@X`zRK2z;pcrE9AkgrK@~Ef{X{oTxJ2pZ| z${F(VfM!V+$e17zxOWVnrr77{?J@j;$5b5wQhg-?1fRRWY zWI?xrS6v86b}S=VCqR*tQv)5qTN9MGN9qtW@M||zNg%X7L6CbP9?*hED}@E%p0bTJ z`N+_Rjrw81FELZkD&Z6Kky*&~Q5E&3Eb{ILvro8lvFu2bU38Pddqf<;#}+Ks`}iUD zWHhA$$6n&366&pJ=r{@6Cx+Api=z7(2vF9wRxdm*e^BKtz1$Uf%E%3VoIt2?*BTIe zJEJ3}z&}7<1H3kPZSmUUwZ?0W*Fx<#_nOa*)as$GvVkakt6Z8Ofcm(eCRg@aB6pLR zZGK~eyS^K_7Av5(N#pPkd>?86_UAvL!Gq?)(YXR3qJF}zS%02+r|Ua29a8}$J#7T7 zu4*e>5ni>SWvjNqNxiF7ZbwLI)9}_b2}paSP6c6awQjx-vm#cm0E@yNL84kk;aW`> zG$6C=jq*%^5Sg1WExEu4e7jo)iu;^ZhE;Q^To=?UC86^rHa>Gm2R2x!EfwZV=$>o1 zy7U~+{fQ6Iq5-kj(OP>;eE_$h8X>)4^_}jq>a)Dz4FxE0t?6ev-?Ef58YCh2be&*T z0j6(X9<9h#xc1y>C2`~U)KBY-F4U^Q1fOv>n6ym2zlROK=qa&Wv@*#8t+U}goO+uW14qqOIX;IPb@wc}prl2&`&Gv^@ z{T)S3yzh$f%r)EXoBz(iMI#0WtwWkav#j#4xwUx~O_f|HqRWSuA@aC!Ny2d_U`zz0(sVeIF zwvt2I>{CKf#Vq0mMTGBcxN}BDIO$>1y7M}P-YJ#GcDy_kFWQ~k@;WF{1_ka63#a)* zKP{r#Ur$%AbZOG5q(ILq;kG*NzD@3V!d|ukQ=Y&^GKc9$6xEGDj9`W7hYsn}c`~^2 zxwUxJhuzaM970qKFXZ?)7TJrifReepm+^$B{tK83bzd7?eEFDq|yuVln1V^cA7x9O}5C!$gINNtR}5F#t^lbs>`w4*6MHRT2ob=HkI za%S@%y}nQzF3XNm5zu%iw>@rY&7xu`@z|-|Gujq8P2K|y zQML`5#)#0?rBYOO=o9gz#51C}P&Pc0ySIDfKy`2@y!tTn3zZ2l;7l)9 z(6|<)%-Qf66uBX7>L>agK8UNqB%x3jcaf&_@Bq3wlNN){i}rD)ESob9lzb-l3Zzgk z)bbwa#1S*uF`IqAmi9_I!(Kx8MuLaSO_cB3iKV+x4y`_ZIVNpx45)scVd&(m+AS{r?v0Mk>^auwl$z@PbnCa%=*onS^}f7gE83=jVZB@g zauV`Q`rW+8rFeOOq|@1X%&Y9Z&|DjY=zj}8PCRQ@8MF!96|^%p>jw90p`x_$-^#hw z4Z#0dugtYFxOS#Yxz3Hx^yWbI^Rm%wrM$5X`YzQ$m-CPDvPTv9&;>4@;Fo*Mgr8xo zdSx8|{u~`hI<_@!;ObBnGTbRDFgWc`ZF^c8l;WfbL?PNdG{wTk=^U;l11!aOxiF`|rm107<2$;`GL}Wr!*H6@%|zOTKOcXuC5~FZs3UkddJk=AN3HKhXm*2~ zhs(gl0$nCv{3f<2{<7)6)20AC6PoIg%ZT~GZ@Kesenb)-G(+BT*U)9RI< zKL^iZh=U3}>&zzAdJ{iWTQy6rUpzInaRWZd+PeyQ%pi$m;#Q)7l@I*B$-ZcCLE|64 zMnURJT%QKc9{|F@$II~aQVZr(Pv?RZVxtj))b|z3@Hsrb-0KuF{Tz#5b zP0l8nJH>;{nzD6IA+wH`Oinc#n|ToBl0Qo(;}3Q{m3&>1lT`-CPE8|4BStO>qsYHB@{xJnIk#;~gwN=rpKjch0`o`|QWR-z(hb7*6l zrYKC7x{JO~F9BzLPFilMX_R)uvcyJIf9*!XpMF>W1O7KA5FVFHt~QDHH=h7fK&`*7 z6**1S}G(R88LItyUTEx)JtRL*w zD_h_eW7HOk+N0OBIGvnsWqF>K@N7;V6RiyZf*)27jh3dmS<rg=}rp(l>EiXSGtBt5NLK-{BgBx#S;IVVp56B%B*V|D+pZGLWHDH>#q2 z;&V_{kkK0C)g2?h_*9h*(Qv%9laF>~N%&}UA?1~7-Rh|$0JeD2`&MQU|B4LrmKvK5 z>P4@ewSO_wdg%f{IQ%cU`z_f=3D^U;*zMOU8guXs->JEX7mPr~PSsnKr9-vQE80ORA?J zvI%jF+>o6CTFG~GXzs!6g6^8y2f4-RvkOx9{675iqV^pYI}+A(ax(KCN4 zI=V{pkD6}bpO#7W{%OL;MVwG~0S$@c?RuY6!#ka>QwMqMY#LgVG76kb1qc(P( zyfcr@7g-AwrkdN%)l=MDtoMF#tctXHDS%&83CmCj*aeWovdGSx|SgkAUzofOr+DRI< zRPuE0YU~+g*${&8> zWG&B@F>jW8(Bo036>12xejK7{UYb=z)Kn=?&B!R&r){a$GKlUKUqJ*N7!P_t~9n&Q@uLpdhT#CtEX>Z zlB=^Wme0`xzN-ylt2Cs^zVJV>0>LcIWaxFBY8SB>#x{!C!gJG3=cNTL>)o;M(<%>#lN(o@F-;+X?#{nxgT3uT_}RBRN}bN+lC;vCE(qJ(LIi@+l1mMf2<1nm+S}RDjH%L$$LFjB2elE|)Mb z+<%AX;7?_+4ScUC*^`m8B_Ad$NgTFp9uLb{XnVYB5G^dppXSiwM{A!$1)t95XTn?6 z3Hy~@zi>Q7+w1GYf`il_UxI1sY-scT`)~gS zHP;w5^Sfzl8Qn5_U=G?=YqikE4j_~LJ-Yj&DQx!n-)1}5OoxB-C#;R*^e6n`uj_=M z@T+M|et0}LJC~se;a>FzZ0WG_%BQ>Q>gvl={*nI;9}-5>PK_OKmTU*4J2LJh-imJv zm2NNgI>sZeh`(8x!Ic&FIVmXCp7YkEXYQN#ao4eL2!hX))g9Vy)Hx!hU`r zLW5b%jo-z)XjDF7ubS%_{W@=9(X7YcgtPrhZZ>ZqcN*`EOML#6-VTj^C`jPk3-8Da!d98mg zzU%d0FU<-1hiT<;T$CtBalnJE_rmJ)rU# zA9!ZvPvq13K9h<9@eO}m&&T{7TBRbR(+!Q&YIAFF-RQ|hi|2fyrI}L!QrB#`cpo$C ziGJ|IR(70Z&Kk~bw)fTfls-QSt^5yk*407&==Go3N1n?5{BIpEFMQ$d$C%Ik#?SqN z?gtd^@!qI=HDlyS*t5Js%tv2o>(#9NqTgLF`FrG@Zq>o?U*|gQD2jQV%>PX{`o!L%bMSgqmg$#(POz8!OpwlM*7!!LKnqF>3fg6YU_K$697T%tMy7i zbi+Ivy~UOIbB6{-9M*Wo0vLbT>o|)z>CJDPCs~WbnhbhgH&*4y2%PhYWE&ut{ z!jjjYhw=YS1StFKFAEo<@#Zo<-|W~9UU$2G`nT}#vAraY(uJy4XwIVNTp7C3FASvo zqpEVO^N(x#5=Hhk*&lAdwqe-5t)iH;Ea_@VsK*D+1}^2mmr zW}lxS=NjN5Q-|H1_*$P(ETKbWvw!*dhW=rU#k+F=a8%U4Otin^PA>NA_LuzBSJNkY z%!xT3!PXa`^a_Xm$=$^Z=_#gJa7f1mk$f3z2|B|Fu}mb=PwA9JMW&)!?cz7xM+ z%0Xx2%6IkP^`^RV+L|+)mI_b1NR#b({+TyCE!Fb{c6o0N`3aEO1CA(<#unAU0>en> zap0L!p{AbE%={;2nEcvr1aJ&ljk9xR+BY%8iQfwQyR?(;@_M`e?ore`jm>x(eI5u* z*=ps|piF}}U{06*#@w;3Q})1V0M*gb8K@JQ3z$0JIbIwJ8gIg#(thu0;OG6%8mB%_ z&a%V?d?G2O_oNs#k76~M?1%w->;vD|aI$j!`A;VZZwqSK>Wy-}TlL^4;kd>=g&$Kq zzn6>hJt4e%ntga7k!STKasOu(t=x~2Ua?;B2r|Mn#J=2Y%NGbOX*BYk`lxbuCGqSb z;6}4o%%c6Cy`=j)7x|&&x?fK19d_w!tp%%LiYUOjn(XlDuS9D|hAe&l6skQXA6|Xr z2Q!*+vTDs-Kc(o}MOG07XY!;@ryrejZ)2ZD_1Im2;QxK@_nmkAkAMER9#bE&58H^n59ez%u~F-#d_ov{y*^sF+V`zn zKXEnv*U_)Y$Y3}x%n*AZW<{DR=SAE6zikj4H=q9pc@v)Nwg1XNO;jV6<4KjP<+5f) z##hVpz&U8y|NrUmWCJYta~W68vH8jLM~F86$HsKf-D+!CNH@@0tmcQu$5!95e0zgQ zxS<;*Gfiv<_y~#_9qHNR($Fi*V2xT15V#Xp0$YB>zz3kG(lE*b=pe`r%_IFH{p`=D zZXByjX$o6rEq3~f%s0^3{yHAwLU{-)vJ6j}Z6#o=fwn4MGtBjMe{e`*VQCv+dtltk zxRMquz2PUQw9kHt^}XLav8eanFMLH<-|b{GrT{<)U=|s$G47H6gcV+~IKH5ljn!Fi zAwG}wOB&p=we+8=O5|Nv42vdH%37JF81FwTcc2{UyCcjFx5_6w%-eyn@dFpJoZN57 zm`Z3nm_NKd4@<=${Kp|1-7^PhVb~@~tYS9I zI`hh!qJD$Ked`Upw)w%0^;98<7fk8?DI|X2DK^+o@bYI4nt z8Ip}-GgABaLI|U5_1K}B6+OWD-WqF3e|Hr_uORi$Fw>1qXRuMzcz*sJ^Uo1Z`!$we z|4v}Iyv?<&%9Oo9@QSzuET+r0cnplrdx|yI(wtFe?-}-!MipyTU^xC8mhXptO)f(ZVh~(I~)D&;QE|3 zb^NAx-YxDQ?Kgx`)TecpsE5VV)0?Fc1Samz{gUo7*(HZ}P9zRzl2|*95Yrws9&q)^ zI0;{5W=NOK2U;e%?7k42gFOwRVs8CybY`fxyd(Uj{wPM>%;XT{wF+CEBC$!kTV<%| z2`|?FKEYym=MON>zf?Hgo>67cyX=$k+jaVoeHsSlNaI3nyk{1?nd6Akz|L0vs+WR+ zu_UF2(u@$U%ZG|>GxS~FKIaX8m&pCT)nez&#pv@FH(WK)tgT65r`_EMkeQ^w%b-p$ z+V@`;cz0I7@6)86=@*G?p(4pA{?cu^8sn1P zwqU32YDmy1Y92xT*}BeKuxn!taaDUlg}Q7RvRck>5M%-CQrXF8BiPXm;1O_dG8?@czjTvAjx^|!PByV^C!>!m|2$Gh1bbV)gHWBz^^{wL^B4#wX=wp-YAW(}`U;pc!t)@4_` zM|_CYeKPqPB`X2S>D=+?TL?=mm*H=9k)8UJy6*jnNEaVmSLDosMJFYVGs(}ODOc~# zugrvMTl(|f68X;%Ca(M7Md=2Zkqcx4z2igvBL9oG(DAFj&ob=~^w;oV`odxOwBNo) zB8GmVXrvNSoR`2=xMv1CqZTrjqpy6s7`qK?%0T&+e$il7?EB_7a6{P(bNsFUKlt!3 zKV>A%aL-{9hQJU!1;k!?WIu5A@D)dnD>C%E>?`!myN zL1A5UpUy7}`d(lqp|_16jsK{t|Mp7^G^SHq`1lzEt=ps|T@{8-Zb*?ndMERfx)^?| zvK;FZ${_MGL6{pg@fW=2tPnk8jA^aZR&d|XR?^wl`krS%5;7S2lG{tmB^EalCk+g> zL9l>~HTLHBLom9rf-mdFW4;f}FNQ&G&X>$FgNEk0@z&|AhQZlJ%9SUvEF)Qr-X+u6 zq3@$3)=pZ1TaR0Zjd!iTjTSJs4b&1_1GaKD{asT6;-U-E`u%IeXT^HlDZ^V3F604P zTG)W{R6o7JtvxNgEkLnQgJS}JtHqyW%kuFw>yz(Pw!v`+?1{A6{x2%blMT2a)}pWk z3+K02)VTm_%P?UL0d9G{TjWV^8QP^S7>1C+?W@@1KypA#1;1gk7>Jj!Z>E$DD-*`= z?`k6qon$wxc44n?jm^nsn5J8^rvo=AB=E)dqRtg(ArOUT+@1xbvUA@Ej7Tgc9+iec z#LG8eB2iH_%h`CsnDvnb&P+haB>7qpFX5ZnR(WJJw6!gtg?lxI`5}z4;tFjMP8zF{ zSc4?p!{AxO2u{z)D3~OFx4>J0zq%T2FfgOUR&ZN5dAaBZjJB9B%rJp=EzB{X067e@ zIh2JND7+u@>p^U=HR%{U{r%n;1ZWd=7LqkHQH%|t2Mma%CCIf)wgM-gaz>sRXZNx- zWC?d}HD9`?W|3QoQ1UH{ux^|af1r-^ZrV4zjDr5h6}FMa&dPQ)Q-*Px1-rSm8tZ+F zFvJbAJ!i5zUq&&XS_j`g&dfc}4gq^|!`REwnh(Q?c zwvO^joh9?#Ywjf-1ooE0!qZ$Y6gD>Iz#`qVXrVSsNxVhGMCH@0F0ol->G3lLG0m)M z3kwIDXVu8B6?w=yE|Wd&1YiAQNA`t_oELRv+8~|wxM_$VUCxVDg8ZCyy+Kyi?6Oy~JSbO+Fb4Xz zUSk?#edm~hX$3M`ifK81iE6L4%TsG1S!~uE^UxSNK0_ESJ)=pWwT$lZAmXV{hZ+>9Ai^ib6X;J zm%RTa2YaOx(#={4b>|AwQa8vuVS{wo`^DItRdPA_GrOFuP35jb0wbW&ti@65AsPAO zkaD-cqO2TLqUoq~&5dU|*1}5&kdDidZ$<%Pfvj#x3qU4K8z#aFH%BXjV|p$3@RE0r zUK{fN4_H6r*w(#QziQ9c``3J653ue35EwtLA&&k0V&>PTTaCvKmuP1+6$F2YMFIh1 zGy^{iUQMDICH<^=G}Xz;0dsqQVKHdVa5lmFVn$KC+YwK($YT`ln)QNZqwkXS>_u2i zq1Cgm(o8_eQrDg!%JROOeR^tg)J)D5feqF!UJ2v$wK5ju`5o?W_w60l-H3-(V{S>9 z2LoAV+>*9{ti4CyY%|SQu0a`X!>%U_d6xYO%_Bf$Rh0we@3(;(IRM@tlDd}7!*Q*}+Uu?lo64&x&UE$R{uu$t#1`yV8W;LG+#9PgAsN3*{s`X( z>WHtDp9R{`As@d9n!c>>g6|7)CT(I8Si6q37FZeC!Fw>ujD|s)G)8QZ3}<7jfL5|L zND8vAmk%`Z79=f$EzLo~^WIx>s6}n|h>~tC81e#VR?Oh<7ki59tJSq}uyxrR#68uTPO zF%R4Q(ybbM$j134Y)NK3chXvx{5FtZJOer}F#?OFxwm@Bd?DaXbTV^J(@?od%Wxn? zHsIn=|B@f> zu!e(Bi}(}m`2-bjU1s_7IFIN8QUrpN>qFJQ`?dOafV2LIIghC=UM6Sw*x0w+CK0N8 z^SIQ`_$n!u;ZRrUn{Iz_->V3g3I;v^it*bc3}mt#kr%C|QQ2{Ycsq`gE^SaCVg|E2xI%G@!=*;+ajqlTVR<*#s$^=8eG-YHKL7nSZpo>tp9%+j z?4qD^hbvSdX>|`XHT&(j)S`5Ah5x2%CgaNtV+oam?$!VfCFb+6u?v&D>Y+wA-tYn! zJOTTbvPJ~Qbmk%t&8}AgL%jZokl4^XwrH!Q8STm5wxJ^2kn_ZMd_#UG+ULI_&9DDADY#>hU z_|H)<0eh4kr5n&rP$k zy6_XM=yp#p5Of+{XxkIA0nPzrH|3<}*nseB>B7x;z;5g_qiZ`qbjjzqC6sWZ7*&Gj z_|IXEk0U678ta-5a!BUr(w55~EgETX+AmhZJlWSd#`hwG8D#YK=5=iazO$X#lHXsA zQN>DufVQ(RR6rd9Y(Ct1$q;(*ExExMl6%nj#Ix*@0oH_S#uqFutM9=W%ghD8&Zl4k zW{w1Z=7hl#mhEUOgSe>MoaTYGpW{3?uuU$zf0tqz&0J1=(_YOv7S?Cc7j^9{C z1b)hl$JFLpOy-Tfzr;)!TYtTo(k;>1QAS%; z8wS*sntYeZOzXcvst+U1X6LS$I@r;ut7L~|7*LguH)`N;j&&xys@W`_dT8}~kG@X} z6Z~~>i?A&{)25cK7Trsx?Mu}g4^>V7yAgw=UhJe~vF)t*r&62y$M%YZF?* zS0&h;E6MZZy`^L^W|ede@uM^f_3)arodAO-@m88yzI{v35N*0kNo{}nsxG%UV(`1s z{1;6a!%Ipo@(7nADhMqO8^as)S&8e%?i$0KO^41xROyJsdfNCMCvfEV}E5ho) zz#sf{N7zpD1dP^5rBzvWDe4nHVSxs+xHoWE`#m zQ+b-;L@RSN+!703yg zb+2f@YL|k9_f8?9d0p?mv`%$N7boznF;qQnbqg!^EQrmE-%EHD;|zVQg(8oOO1I`j zDBTxycA^En(z$K9Sv=jwxuyiaq{Gt@&oi!d(X20n+RQmGb7OJCFQO|Lr85Zcq@_gIUnlaWLw7B@ z06Z+W<7fX%;=6KlY)F@ldo94xuq0SY_t3qDc|4VkcvQ=Fef~IhyPSs3rd&0xR_xV^ zezRw|)^JB+F%nVuR!-8MgxiwwWLmrJhiJt=AkK2wGqw#)S!$eUN)%T$i5jzbF7PwG zJu{U&PPRkl;;GU&k;h&0_#9SAq}78~OQL!Au0gCr_+QiKZB{!qsbijPEAPl5=Ne*a zdxN|`zF{}&=7#AJoz3#cA^K&Y%Y;KL&vUDQRLO^JT7~AN71Nf zM|@{Lv}*H5rVQqGa&yLtQ;H5yf6uoBStnj^#%d3qa&NVaUqa3~msmcEdN#X2`<1rC z1o+$qxp-)p*?kJhm51%Qqne+#r8@&Ha!zOG$=Ai^sG(7Zz*k+=T`%TFlH1+YPAwBw zc4T2MF`Fy*eux~ai28S@;$$jNnQ~J&S`2l~0r^UG!Roh|;(+>)j=C&u>z(UxUs5@y zUdKiH1|H2vWj%?71i^gq^dosm=*1T8kTX8E!jt7_4)}v;-bnzy+1sd>D67sEpJ=o2 zZ1*m}r&e6m*-N9O1iVNAw<;{20+s1j`U25vverIu6*S%^TWEFageLIKc zLYh0rME}<4SHc!viJgxNGI;;)B+!~qG4oSdvgiKI&jL826e<=CyZrlwKJh+jLbEN% z0{dtlzv*Jg8r<(&J>+-}&H09#ouq-Q;OMJ#MR|?534?(5jtw4obS;Q&+J^OPJda!e zSR+0xw7~uR&!wtA9-VvPv0&~E^0;~2Dfs8upB*UWGyc3wekS6D8yte!SNzhXtjyI) zz*@^PsZafZ;bybW+VPN!@Njz?d0>^R(1|pXC@Zt{ituG5r?Jva4C!mHG1<=FO>5|p zi@7^ADaS4vp#4RB-<8MHX*iB+H=F)g7Zp!WPc-ut<${r6uy3z;&k{>HB!w+cxA<8* zSEUZ|73g|lT2`>Uc6=$KI$u{i{dVFPb#xLwqtUJLD2TUMhU@G2m216k`TODSyE7;4 zHUxy9JMDB_S|XM8;J^FxHTwN#`Y2NQSg_03MtKYV+O~EjH)wZ-D;U=8C)LH06GK%L^U* zH6&^JETbyC%=Eu>bX_8b11Do{&7^L&TGS)XylC}^OtW1o3GE`w(YxQ(OV^r-@ruU|A%u4 zhL3NI{J(tb2JDvA`@FU;g|cj+UIOL^ePAxWOG_^D&FFy5;o z=j$q@=`}a*oBzPC%eFY^yDuP@H}0G7xxVp8@AZvaP^Uwfy8CpW{%jj#$3arU$Y-<@ zc|h;2Ij^<0Hd3+|&1cF1-Ox2apjei2qXJTCj2>ZZ99dK?1O`4f{3-{1@H8l{kx~`vZB*tD0c6lP3Nw zIa33@oJQ00&$-U%?MXB!qdrg;Lh?aQ%$`r2Jb{{fUyxnPGOfgWlgS~r$(V^%cKpss zD-Kxl*mM;CRkMs^!IFDrIEMWC;sp^4sgO1bx*33jPNKutUHB1%idLiA%bLcy{5Vd$ zt9dx}$xY>2aV`-Xy<4SkTyZ=mkBPdM2GHYJ<(bX-Avk|&fD5SdnGILa^S(M-KutB%1HU+QnK zv_ySF{iRrU#We{H&-Px5tHSZXNb=~!@n4sx$#m8btjEIxB(1w}vAxLdJStlsf-;dz zGSA25*_fEx*oozv<`XQ+uRU_1*qSC4=6MC#>g@d^|K*o@kj|a}`Y*jM@o}f|?%VTK z&X8<&w~DURFLe3=TNMaLZ`B=G7ao=}uzPpa6_a{YrA~!x^|}5??IIGpz)SpW=7iR6 z{=i-StrcLQNCF;Q5qE^9IkEnCb?7qtfc+>fc2919;n{9CQ403tjQ_q41M`uc)7;=? zuI`K%>ME8J-qL>WibXk(wqQ50}uc@002P%P$K{UUjShU$#f7V z)8B?%G^CH~AtZtwR^`#!M{TxR)@9wLecn|`ps5V0bS|X2Aim$@AksU&o%0uxNaG|m z03b6nU^D;#Uok3u&wS7KF zNY>hyndq|ijU)tP1ZT)H5SRj93BT}S02;p`>ImTe0Du4h0syEI10rGBqHjG2?ce_{ zZ#gl(Yl}TS559E@8kdNf9b6|yS@F%*4)7Sb3<63}mubbCL%r%+kl)?mXd~zIyw}4z zFW)&F_VrzOfwueAG8SIzUD#RFR4|Pbs-#Ufi)MqxjC5*bR8-8qtY*_qI#wUTdoDnS z^2P;q{qY9@v|0)isuYSmg_f_&=i;dHZV4ty)1JulO`?76^^LOIhdJWhm zx$Af_z1_12j#hz_8rwhE=!C|qsHXVFTcb^@-g#JPBU`o?`VAP(L@uM7;z_wz`)LUF zjeB*aYXh;RF$@<~2gQo)=&VKe3~a{h|J7B>TGQj#OWjj#rPUau#7C%BEh=4?N*#(j z)Ooqz|F*qZ1;fT5N70(e?6Vtq^FsMyEWWRaaZ!?~iD#>9uT?WnZLhuA>II6WKFMCm z(Dj187Q|TjNzJ%LK0v;8>C(P0XWet0b>is{6~asb+PB%;&7H>SXMD)K`UVx#JXXC*^jQ29|4sQ)ysn!0B6a~!-*Uj2ynpXk2A29 z<#{LykK(yZz&FKNle5G!Mb_3?rgra|yv~zceqM>;jkvF)Vn0?(6wVng5J>ghrIq@d zndqS?_O$yRUQf<>N%XWYn)TvLtHiK%V1_4lP-;bJ!xaf=nW6v|;%iX?9zairb2cuf zh**(u3$_ej%MwWga_EBA;X=#PK<<1s%up0wlrbk$E!UY`ISLK*J_KQFTdU$OX6m@6 zoG#IR$&PEoMjBNFG#_!4fNAs$Qa(v(|0m!+Favf}m6~$-3pk+&2c#yD@Z{UtO=mz90bx_c zGlpgpS~?oZpe;w6i9$FFw);zbZ~_qm*#=!q9$nG9BYhAl6Tvwupddy4D;=}N>v-we%9GaE2Wp-uY>A^A}24qE$74vHH5(PEyLmU-C#uITI zAqk)K3-L1`iSs8Q^WK%1lb@XIL}(iYmlENkdFp{bli#gH9&{kjWXcESO3}$Y`7+eU zT>3(X!xy0dK(0YZ?ERg|Kcb^0rdOSOP*mx_K<^8SW)LFe!!_ZFmBQ>x>0Z0D4sVTKzdlpU5u_&VF(ypamw!8 z>blXgMA^%-CZgseDWxqu9}rbKwm;N4shi=5Wx+sg*OXuTrr!?;Xpml-_&60UwDJ7x z#qEJB@fa1;`*|{#pdW<^}qVT%1bc#cnHxk%|z}{E#N6!JKaD^xuh!=z~@Koh^36q zsXL!n5z&As9qohHUHlgk`QR>J=LceH$LNV5*V9mI>zAT5euyjjHl_BMP*G3{J?Uw% zaClPMr+%|)9)P9UibQDp1yViW+K?N3Hxz&7^7fk+C~ZZP7O8*?0aK8l%9qtZ>F#`D z$&I5zfMiXC(^zJ1oV+=XWp_`cjB$eYeU5Z#?fVT#?PxFfC9nHn)bc0uRo;IVeZbx^ zp}$O8frERIHIEQ}LL4w*=v<_rwQ_^1UBU8jg-I%Fvn2prgFiCnghG(GTvQTj0_A6< z?gpf6R4}@})p9tMiop&F&L(*%>5In!<6w1s%&>G5K1#hAQ}ALoSL3MS!fz^;uW9np2@Fod*SduzE?KWhb?eO} z1&;jlrYh+Gun-!%4Yxt{|9py(_j{^!xkh`ez2;}Ib?>MQJ;$4!SqEd%)ia}dj+A{p z2J>O^n%KqsRWi%!V=$BwaytGNmJwv!U}~C1vJ^vi(6(@#4>jmS-qKKc^CV1yS>TSI zqT|g)gj_6_*6y~C4RYyi0xOYe;aYWwfyCfT%|;ofrXuN77?OFCA_tOc)sDuaY_?Y| z_gKrmima(u4OQXh74haV+~bgND$69=<%DRs%0|JaASvl2*ap=+2IBw;11VtoY$Y24 zBH7Ww)?FnN-PYTN6NJoTvZFz)CL~wb%Z_u3hnEt^I3}n8ouZ!=K&`wkw^fymO|IO zi5HYqvWYOB)M};TV@>aNJ<{+r=YBGJ_!0bIamZnLe)6co@%t&a&8ZN2AZy6eMwL<@l2NoS96=pCS;SLIN0 zrg1lQ5rU(@C?x$X%Y3uytga+neT8;m)?mxRWP?MfK&>|P?(3LKlu-p-+lLnn$J`e& zDgt=Tv_|E~SlJ#NOH6l>!H5tfgutv;4tNt}ok4q$f>M&~DSgX2LDCDC5#v~fU`1Y> z_U$>hAuw*EyNTPQXLuI&yZ1au;PNa<0xmgc!DfHm4$mlEly8>Fl~wvXo?A^-Xtkfa zB9e|}wK_5Q0*qT-e94J;RM3hVIpK9G&YgNue zW^L*l5LOR5JW^AfMJx+eTL_(gl??1kRXx;|X;r>9wWHOz7#?b+@|ZYob>&k{fD@>^ zXUu3NESWoopJaWB#5k#GR57zc0H03+E^f=(6|`Kab2FyL$^v1f6fR8$1`s4TC%N)w zTm~{O)*E>lv_Q1^kJ3kA4`@C)6Ka}W@2uM7xdp2{$ge*wwYbJcQc-MiR!LON zj*(1Ar*)zx+`@_mfbS2;C*AEbGeA;gj&rZx>Po9!c|jF4s%rM@R4Gv4-^98@B= zcdUZ_542Q4u=R^f%A93b44j*`h<2)Q-1l$5zGr$*~2MKfaH+tV!|zgtmlvf-8sWr za?^(&?^qSL58$bANQ~4_qvs}K%^AfE-!k9Zo0y#GwlAbJAx;V+CR1d{jOg+Dv6>W_ zlI|2zKRxiI5L2Rf%~og#R?o(*mEo8ReQf}mqQ`@~!wI;_O9aNt-o#`XN%q*fI7!FD z;xyu8sZ?ditG)0jAM3o5PN-Qy?{NKv=m$tfVu3J$+}1+^H*?n^B-}TQw~9@Xd~ztX z;j;{$u3(@yH_U6?`&`~#2cm!n79L9f@ArZ&%Nog;2|dH<0TDX#CM7~IIIp+S*SvBj z!GjSRO3luPC_e%ERLT9leo-|_`s(e1oa6OFsWs-&2AaxjZCk#mVs5jB;9bme11i}Z zZSN%2G0*IAb;%?4K`9r-GfJzn78(E{>g9u)H3~#hXVgM3azXNL7Pmww(PXPC=j;@l z5f0xpw^5cc$$MCUve%V!ROY$9aHnhvm`(`_Avqe{$m$$vEDL=45CYsVg9C|Jh1InT zRef@Vx09UoHte_9b1w51krUUDffm z*D}dOn`CUUvDH`(*+-c>^+0#oYJ&v?(l_t{~>l^mB0#Xr8 zxshVL1|GIJwZ7xr4w@pgOje^_ATT?<>Iz6BC8b8c|8541_BM%-51n~%X%H3}OxcLY z?HIGjRS%+)GK+=0iJxrKySzu?zvo5K!fM~?n?2)m3yIO)W7w8@wADI|;b1L|qtvUk zoj62@(wmCy;If92A9%7UdwsJlqT#hsLGi!gkWQI7n;)|6w92;We-a=`m-a+NHwony zqD=B(9M}o;RhL&)n}Q9{IUguh_;Q%5z5yiOp<|Le_LKom(`r2~q{4WbR?a85L{P2y z_4Hb9V$P(@9psP6r*kt_vNRtC^Cw9E<&;yU-Xov`O)tZrJy_TTDHHRUY__&G~QHvz^? zXrZ6o)&kf~F@q7adM}MoCNiJMgHthO z+m93ox>h|yHxhG)--a5FxAHEQSJjDxi5*JPnD5wLn<`?kAm$76=u;`t@maR9DkJhp z3&$vN)L_VT%TTOI2bVg{lZ*LaWW{nSdMAmNk{CQ8$_l1wjZr%lae~isfRUyWMlAB( zIKLWADb|fzyWjb(nN%9tI)ec1i7Q4%Mb;AYrl)!>nDv7KA97G$ux_@ZVRX4 z-wbIj@TSiDnL9`z@=PfF5aM+1et$(fBKo`68aBjSi7yi()A)W2a5H03mq-WtI1}Ne z=gc{Eplv!lIm7-xncJu!W!sNY`=8W9&2yLZ+@MwE*_seH=X;^riZbjqDKu~aqXL4i zN%5hn7p12g`CSFbk21H%Hlgb+ra%*t2nEwNIA;V?ik5}1$^&;)Hv-Zr0D)(BL-G*H zYfOykkjt`3pat!jK&wo9&YT_i(62}4lK_tiye<*&H;?(*B*vE4r+m$UD$#B(ZlWSF z3Zj6oMWRHr zd5S?v-8^~AeD@V-ZJ`z7gaKU5Sv4h7^4)SQ&FxADNuGl|K`qS{&wiUx7ED=MicWD2 zzLkNUYU819r?&;qvIlv`%!Tb{=W`FgL=qg!EnvVLft0kCi$>it_UzP`u7}Pn=Ea(I z1l=a&m}RX~i^lff^URCtWFu2y4=)82*%s{9DIq ztkd}7_H5FGeTb#@x~rpY_#4_W`;J&NbN0~D_h5ebCZ9|!>R|jS?|vEua5Jg+G8}v` zKy^*r9e!sPeT?BT%&yWa=wo-WQMNt z>M9(=Kyd!OPp?d<*PG&@X)Al?ZCtUBr*J_Rf*^}s)YK1EZX2$~0@!miq#wqs(>;)y z^DxnxH~Oe0XtqtcQ$AZQwJo{6n&>1J`0Eu6!UkvOrWCW9e{ggQRG(oZD#*SV!>xpR znS99C3$4df%ZfNQj$?C{bSTjA#6N?5AM8+Lf;}!gOaMzjw7)jcD}g*Bo#<(3c)BJ0 z8M~L(`0@8LZTW+F8S|2^`jj7~)5;r5*p~4zx<2Xi2~GU|0IgPOYAs~#xG?EYCYO(i z+ppXw>|hfQB)c?&6SJVUSh7a|^1HNYof9NKOXWM#0Pa`*cSu`jU&v7g%Hhb~>WLur zRQeXy6|m4xi)D9`dE!N|Axs@mF11)zRRmqz?xs>Y7KGA zr^7`%UkiRYwo0z%m1^m%=0V=7=xcY?^8C(osZ1Y-UT`dUXw99aU^SfiGPuaImfP@n zB~CGB8ea7`5he}LKZ4CC*(DaM9gOFA&ehMB+_jT+BT(fy`Zn^ZkiHcI;(dmvsF^=K zRJuz`Lcjj{0BB0`UQv=k1OPFIW3hKS%c2gKbVglDfaw?c=BSb8dn9Ra0^pN#RT|*J zb+O+u-lN?W^LRH+$XcL|3gAU9BS~A$%*RkM2Ebltm|=ZMeh%EJkF-~qHJ0BZezQ3q zKiT%eEHkg=lLsRvgeOP3Z(X!i3L%c`17F{FyJcG&Y}=+uq95u4`4)0oz; z*Y}42H!0K%$D}zn;){*8N>nQ?zoMpiT*_MY3{Q=WUelnZvNPQ2S$hOKVf5vW)qB|Y*@8IhqbRrum&Zf-}Pw6`UlJ#5(^v1quL z^FkCxdbg?xCv_WQzm5@@2c5|X1rBS1`;TZQci@)Dw$zpLisDhbv8;Ssl7?D^198!a2PhC)5b;x)$%JL$j$oJt;XB&9iZ>aQsf7 z?+H}wBQGt5R15E(Enz`kl&@NtUQf3pvm~=2iH)@7Zu!;AY#%IC%UB`n&8>MNPGJ&eh6#&dZSCKFh#vws?*ILkN zSs(-XS^U-&k5ER%j&jG@TG*Cj=Y417BDSMIn`=oKkSNouB`^d(E{lpK;da{eijrVFIhiEc%{7p@T5%Uj^tIEfdWBQRV?U= zy~hd^B=Yqc0L{w@#Bc1nl>+Xc-{g%Rs|a8y-fojXwk{r3+4~n(dkN&QnfTA~!kDs% zQn>60;c&}5jY8o}pa-E))H9$SEY#7DfLf$46IAr2Tu@u>Qbe*F5I{9UwexLZt>S;c z?~zwM;N2?}?^zC&izms7l9eTNB6*Bt5s^eh8_0bTnZ5t?HlBf8xyn1; zIo8nvM8iFaQDb8HqTJ^%kB|?i1Be1lgNhWHJL#BCr$qolAIukpJ}{k15hlcp{)^=d z+efqx+FT;yfdms$O(f-R`-HkEbt=7Ad+y$ewh}0A5}=m3e_Psvsh&9t-f-PJVX0Nyns7KWu6|(aO6|K&P_i1f;Sd3`U@Jp&Q)nwxnK)t zaVX;g&j8wDWNawg3+ND2cXERk_11o?P~e&?xmaA>^G2+%s-L=Z&GMn^pV)JK6G>uj zz*^vj{3Vb;_Hb@r90pgB1hlCQ6R0An-+>2CuhUE3%WTQ!Wm==)Yw~3@AcEV%K_zjY z!Rf5#s9h}PBEsBT;!V5;Iv}k_I|8UNl(yP@axSY!gvJ-jJKnQCY!ImK7)->it<679DtP3t|+%UWs4ksQ)DwvdbClpe1 zaej-Uh7&CZyKU}_pZ(YiN_>1L?9Vp0#0J7<;qskbDH1(6*%M8L+zh^j z3xcZZtl+%Ku~4a^tXfUufuYQyF?E*l(wK(&&;0FfS(jc|&8nedgo-}5PJ2}HWKR}c z?WY!x*PP~02JorV1oeD=>l`)9^A3Dy+rN9^9-d@4^XUZ*68NHmjB{L8bZn0A}a*1;ZUvZy1oTo_d%tC|xNd%`%U%W0r1mg=vx$JWK zv;4iUZ@E22-x2oQdU8_?y0MR)V~z9LqB+BS%9R2Rx%B7SD6XK|x|@=Do`vapmbk4| z_a6g?B?YpQXJfiUUv;FV6P^k)$mpk%@|*$_D4iawzNurNXQEI+d*!}Qr+ZaX256p@ z>_KDRk3^myhs@O_(kp&mmQ{#s1vT7-q|p;=(~@u4E^st)!%6HKx5FSxB5`W zf>wpBa5VDnd*Y4Dpac6=5RADsbQ`TJQrzy3oX;muY^39BS5rYL^>?+SjeNuIu7i&1 z5&4TJ?siac6VE++>qNT7v%sviQg@R3c30eL-WDy;^B7#D-d9%hyI1ZKLu38}?w44b z27HrizxDuoA66OG<56OCN2sC5+c(imE+zlC-xE54y#{4|%Rve{8jjAPrO~Pbbz}z8Mon&@;@h3IQBTC zx#KWW*XQ<`|#Gg)Tje*PO$NwZsDmL-O7hWg?gQLdu*3au+p|4|D!Kp@6=44w!002Y_@`dI@<&YB~BFI||OM1p9+kDHO`XgcE??RfX7-zetX=lup%LbcRGVtpz1oS(h3P%ZUfY7UCwhcu*t z>rnU6zTZ3|hE>116m}XQgT)UQYs2V6e4~ywg%zDp2X#j~+Fjub9FwZo-w|4j2x}Db zl|SZ?R5AT`_(EL$9GOG9(HsAS@xWFG_(#Y3L_&@Dh$liD>TQbp|NONYdp)8<;D?X@ zWOn)dC(Ag6^>3AQLp?wGNg3@b`*837A&J%QV)jv}fN!odbkrB$?8=4QE8w5&f$!xf z-@3kjhe@s7-aA4A89n~Bl#ll@bRy095_hWhOiq5C^cQOCpz{tSG){9o_+;A%706}8{!)d%Mvou!-*>6( zoBabeDRVDL{~rAPw9VR5;BEQt|M+t}CdXDue~0}2Lm(qG|9{w-&b9dPJ&tyvcAx*v zAMls{3(u;seyRgk-vH3)mUM{owf`B47^zkAcl<9EI7HhXePoA_KlG=>i86fGCfYp@ zhpMvL;HQZU&xo6Jw!VDe;IUa9uwIO(4-{#eHibU z>v9xQn}#67QgeMkL^(F_9^?rdh9Zae%k8@=pp#_Ax()5b`ULnGr!Zi>B!oX?O+7Y# zX+^R%{t2NFh=Z0e%>qQ+#!h-uu77FpZCA%@>ByFG;`+Tul)bVz;f*pfHr;`*jL~r(C0#} zC`31e3O7XgxGe5laJ$o(M=`-1ipa!2z|e7wf$SG^DV}5%^ski%rV$UMt{<@o`kjeL{ znf5++Yu~32#&}d~dOxP0;@;xZul;)Jc&|7;y?Uf0h#v9Snbf=PSyAh+NGRuI_ct7; zH@$-P$@Sh|QDOL_y?WUFPVJaWFU3FsfREk!En!|tkM>F$yr`+PG}3;aj$P%dKoOUYzn<$UF{CSP!Z&h zoHI>J67)hW6A;w?L%0Hq21)C_Xh^V$Z!RQnXa)2DoB#lo0N6nf*!e%P$GP4}E)!Z{ z*>X-LmT9%+R$rN7K^Iuh-)s03n0tNyEASXyn8z5#^As)+x!{JrzaPly_4l(6>mvwK z+5kGT4zJIHjr0s=VvzsNP==Dn!*L3ok87)M;31>|1flRNB`2veifF{SeBd~|vN`->x;&7xwBt`or6ps_-5j#B?Q;WqC8t3&stg^OrHUrMc~t*ZkSraL$4!t<;BYl#z|tsXaOU zLaW*2tt4oDxQrqvrF(%ELD^n$|a?8CXA}*>8R!qTzp5;vqvVg zc))F+)@luGoH@2dQ*!c*w_@zpjdTgCH-Ul`o;-`a$JQrh)s8q#EL)w+wY!J>#hEr` z!y}hDxy8SR5w=UdR;hza@l9ncKetol7>VA z>31m4%kJ1WUagS{zP%&q-a>qRJ4)w5z?2RRLEg%+wd~d*vBP@EJx##JM2Ljm122QX z%^Pv_rONENGuDmu2)Mgss9LQ;0=ZDtncmr#39=*SZzBtz zuS7uM!GHfW|Y?G z-r;P<5F%_vgLxA;s;^Jv)s|vt5ubfb=W>+Eu=nY9x^Y_$F?|^sbKPgk&QG@qjEuUN zpESL4`gi%{Emf8t{#Y6dRo9SHqcO+locAlYi=^h|<0j)Jif(Uuy(jP5!~{o#H828? z`!0y)!%r3u|KQa}U#cJ5zQQAM-y^bCE<5tyYY|!y3&_|KW;Yvx2K5?9kw4e@*PIPZ z#F`PsfJ(+U0Et40aYk^D%DBW8WGFU-F$ROlpacQRok{0sZ%X=3tRdAywM8ryhI~Y1siQ-+@kB;3#n}a*;~v( zm+>g-=vDJw04)J&pxSuQXTXSKP|W?;N`yE=LbJu?$U|=FZyMOynjG_u;!XXRRW(D# zXfB)ZHvfeR72BoQmh4D)O8xfAG5_oDB1Wrg*fyzAPEQEZh|xigfGO5cmT}#=f9Os^ z4)|Y8q`Ycw*zeBbarmNiPR>AiGH_dg1J8)`A@;L||7oUm{I+Hn*@82p>W=jbm_w$lJtSsE}A z`Xs8rxYHhVSRUa>!c|{gDfK6tpkrWx*Lm}>q`Jz94NNbYnUnDjTFN(Iv?GEQzy%yE zOET|tJwxGaoXE1kXw%<9-lzigS(k29^lSmJ>#oRSLIN$TJ&I}#c)5*}Tmo6`3L9aGM)NF=0pEwxnW3YPq>RuPHGY~(hzh@F7`eYToeq|~aRU#?zyqxeu8Te1kC zfW13pyd8`AScQH!anCAdkjiHo)bnoFu$mL)i2a$Tn07yDEffk5{3SuKHBSq>3#KzZ zSM|!W+n>*Q;-&b)o^X9ilSmZylC0F6B=m27#hSp*+F03aji1evRz0%!i*C00vx!NQ zRh3q-hac=$LR|LSN%pML5}BLFY9A10W9^e)pIV#l^J&S|tpA1S~ zG?!Dtdz9SWkOPsFblA^W(W$HLUUrs?tbj{Y37;7Bt{woVMc&(p%H)SZ5P8B3S9B7NZEURvEGWRTDbRn-^Rj-oEE`XO|G4iv3;DX1h@CUBTsisNolH|589t?yr1kkgC7#j zdoeZdGl4kPXO8#VQzp&j!S;D}3a;D?L7Sa8x%RN(J^O0DC&MK&`sy``uDK_P1@Dj6%{^PLKe8TRr2m+@VL?;j|FC=N zs_{rB`IlUI+AkwP{U}TUd=z$*QvGQkEosv~$>o63v#n-LW0u~Ul(^>~goWk}Xjx6F z3=RbBgwt~L4>yvP4eNo@lZZyrXP^6dzQJVr4h23g5Xb%%tpEHgc{C#`N1TM`&L6zK z(i`9|Q}stqwB@dvTV2ujYH^FvyS6U3pEqgVm5&z7Y`!6e?MzE?_Dfg4j0W7Mj1E=i z{phBN z&fV~$?rnmnh(~b|_H9p0`{XkFK0mMhvuNe{)bCEF79xvPLc7hX{s}6_sD2;5S9g>9 zZmkv&$ucC2evR)}-|1`CXO~4c_xB!q5Y*mXiezMvJ@>IviVq77NBWg1OHCqFa8KbngyKwqyQ* zYjY;J{Qki=;akDFM)VJroD}Wdw+OEI#z;OJaRS~_5>!ZgMDG=Z%nql4#V0B3Dc3P! zu}eu@_kVfRpjp4&^z?+5)Tf*_+pv)&@2=Vti#|=f)1VNkj{pxs$-D>sR&3M5$L`b# z>cUk3o*&iUqigAY$Q9i5FWV20ZsP_*>};a|$}cU@u}DlvOO#H1-L&!k4g%^2O(%I* zrzlZ!KIvZ7>VG%Je5|%Zj*KdUl`XvK3Epfu`wa}Tggpe@mZpClE3z)x8IfDc6W!C+ zyMMUaW7TT?ux~tPMab>lY7_Rz5@a_DynkX;pCl*fBso8l(p3GTl_>1tcQw+Se~Ohn z)(DEdYyJc3{VTg(Jv(j53jc{|UY;CP!nI(^5RTO6X9xnbeVHBPPfv=jLJPcdUr(sJ zK1uiM+u8jF-8<7SU83Zf;spCNlI8s%-w{OGt5-ky3H;~25cbPYKa$r85o>6B$>!*K z&-51oG9R=IMEobFEPS8lGkf)>hG;3E6KENw56$;K==iNcH}oyx;G?w1RiHcSid2 z559kY+&oryKdNb(ckO-dKhr|x2L4(9=x%xX|F#y3%xiPuZ$!^U|AyDJvYF(RaxVN` z!YzHInkD|*XCi^UJCo7|l)e5EiKRc-f0>-`$s!9%5yewYBr*CfHj@ARL)TBtj}kze z9T!wMdHDB~2*d)wt@86VNw~}Y33gwk+J01p1S|eM?t8CxV2)x%SuopOanc;AacDMukI<&JGw+_LTy#eEdxF| zZs}LkG)DNuKiwM=o_Qw`l z?LOl6tG7sK5cK!ro%WSnKkk(8_8-7~Rf$cD{Avx0e?TQ2JO4>jh&%LQM; zx7mgE7}a_^m>ISo3rb+UPmbfQs{Z{(&)LOlZh^=qTkI?Rm%qk?1C!s4_rUi_xcXl0 zbCCf4hK+nnrep7F;`>KP^okkx#)5vmPbWo-b1(Z6*!KTb*D|O5k)q`-RQ*xd#(s)J z9pn8-HSPYapu)5dSxExQi}|qn{=g$Zdxs3!cv8~+dn)DdFPjJnd?P>JGpG(sTYJf! zp`I~+eP-W9`kk>Sgz99EmW;4NV!2Q6L;ujla6gjH-t)UPWwRs7kT>|+Zh5`cjb(QT@!<8cX5!{}6WGo61#7^58H2he(E}Z`}X0QDT1mWwH;SgZOrY2#`V` zXHwJO^QfC6duUM!dwEs4?;pP<%_#P~GFa5lC(R~p; z+xXdH0;Wj!%CCy}+nxH)Umkr+IYsb+vXDym#EkS`I*r;*C;jEW&z=K6&ezV3_nmT! zs5)iSUZt?sPMJllo^}k?D^;<>Z%fMWju$JS?+zW7>VJqr?>i-CzfQa9YYMOTt+lul z$>iO`W4B)=67Ku&&izj$*P21)h6#MDd@Eb9S8Z6=KlAAZd{9Obk=0F!Vs*QaQd#T; zzqMz-{7`r2|0=*m|EVc|jf#!bo>5~8aJ{61b={zPfXPbRBdf~eQlBWb4HUCZE)1eG z*ac@#jaCY)Q@E#YQ6$so zUtq));~DW3pC&42Ev}WX3GK<^u?1esV;aj%Gi(AhO~R5xV1dD~qy7$s51Uki0sOBZ zUhkTyae@ETj_FLZKmpu{{xz#ayv=${LgOA|GFa<8RigI6=uVmf>%WFcNb$1^Cj!+$lplvp6le!Gi?#-4+$F2MA-+pJ z3euAkrX=ywI z1$U5_Wg@)y$WP*0d6vhgk@(*b*wMLtg^oyoSxlpZvOV?~WjL(YBRIk;*j%rFiK5QD z+z11u6MX)-3ftj5RxdK?Rk&kqIi~&AjpJm^1J*|7D3~{HBaS%s-O?YvWToRlDJ%S6 zJ7OD)6StO@jDNk`u^XbnW(}-lkW@C5tCx&B>(=go-_cIlCXOyN&bqlc0_RkpwD3^+ z(ZM?&8eXot^YTm8ZJd|0aNOG_PbXVSti+z~(|KAT!KZ(UNky8-obcC}PL?>ELmnXq zq>HgCG@h4anRCw4>1a;eVguDW@C*w1QF@R>y}x@^*Q9?Z?v}Er|5xl@t{`F1|09@r z!m1md3S@yHhd^F=AMPe-8G_cv9^5-G9|63r$6XCcWitG|or}9XIU9Gg`$B90*J=F| zHHmzBYjyf|yRgBeOx$ZuWuM}I<##W{p(0caK$TSwMs91WYt_-r=M z+uf*Ji-QGcQp$Jyq9YG`$|L2$5ltRr853J|Ng0tjaRPQWG$Vkow@sk|%9|xcoSO;o}Lj3%$Fl?}#lm1gWC7d8Ihc zW4AHds4j2p@^^~sn;4&Z*4MvETMmc8npJ&6giK#rcSetGd)ta?;R>yng6>$=ABlDj zAS*#a>y83)N{UKC_P$;HU@4UQhHD)4(>4wV_j_4J-@G^swE_>pL8gzV!<0E8n&c@2 zM9EP%S8&8J>O{=*<<<(59%Sr}L7p_fzG>$2Q@8XFtC}w3%e1AFtm99!O+v$6QFLBp zE|+*g%an3jsr4LFnPL%ebs2K<$Z8B~EZeTBs%LJQ2!*@Ox<;J(JwXsT9$+>PDkh(k zYtvKkNZE)4w3#_Z00p)>sMh)K*01#qjd#?&2b+Bm$Ti>beT>!R9g;q zdLhcK9=HXw<-nJD&CUu@E;PJpt|f|XWwr)HE(0g%y5PohX8dP^(4>>bBs^e8V`B%B*ll*@hX}pZW2QJiki@_ zc0DcQrV(pbPf`bV;x%r>&R03d z>=F^gR(}*-z(Q**oW%1G24%ZH2I3JLaPcUs8KezqRdVs{7a8&{P@%(m&d(P9KOn72>bXl1Dz^V!g^QXY^hMB}SRgfBlRN_sq>e*G>(yN9*S7l$s~iIy#LlZwLG z=I!vx?j#DcS-y>VEpxu=cgLO16O_;j#NRU0L7&2&<1;|o_t#VMh#_A{7?$v1ck2_n z!iF&=ih#ZwnTA4mFC00@k-cWK6dMr%(l!B|KHIA*tFr>>m}oVf8;hzl5zLfiW`mZ#)w@+?y~;l3N-NA@=n zaMVnVYX;mVqd9?WJ;tU?JMm=~6Y(uDzBRBExkSWfS**8-P;p63D*f|I7S1$dwDo)s z4^L+ZGrN#b3-U2pvMCcY_H$V? z*1Niej#0&LdlD;(hz_GPUsjT4`QDyfHu|uzTj0HOPr*{*5t;2Fjp5y9NY!+LadgZ? zz0NN=>M>6v&p8=KVN=qhqxY@r0@l)X^yj267-KfggzeYC-GUp;&G5Ei^fe7@7MV9geVDecX`C>j$`Cij#KdE^=VPy#a zzCW|N1&wt?5*@3|R{3Q_9!4|$l_v_c9Y`+us|QZ=XP0CfG6@ZFNKr=eE%Tle_HrBR zHJys^XcxCdJ(U;Z^!#-9H@*va=Ch1^+sCc)K7p_#NwfEwPuRur+S)n&OSqp(PSdN} zpBLu}fe$&{2(;IVE^#PiL6+W%Jxl_&MuN7N5r%xzl}t#|)@o>~V{Z?d>!c1rr+;C% z#^VAjn6+H}!dUDYj;oIZImq>vlqt53tfg?ux_2FQ$ByBWtg;O}VU1xuY`Je$-o^RG zm?J>Y?lk2CEdh0VjR~#U%8x1Ci}35VPAKu<(W=eJF)-XAHir+pEe4)x;B+tF4iNrl z*ZWD+qFWT&a{!g-N3x3;5`QM2e7_moe>xSg^$Q9EVIUb&133S>5~%iJ(suI+aO@+n znFJYy8>w{bv!X(oco9}3a0?DrC{$*VQYMqZ#KUXjk|~D>F2T2ja7J3-&lXs9Jd8jknhqI=3H@;WFH??K*3pT$>S5}-b2N>p&n)qRnQ-5DQ)#xW?zJP`y*m@n);DA2UKF;DF} z8X58Cv~T%6`r$q^%W{H2M4Ln~H3tQi+$E)#gWS;Pji>`chGs$5l~>ER`iNX;Tu^qm zqtQ7}a{a%g6thSc`*)33(UN zx+bhKHl~_*es%>Er|2Dicu!a_oP{qZ!_mn1c2dWpqA% z9;=A$Y)|lrKLyF4M!>u0ksZOmO>{h~&>b+eH1(l>tCfYDFIwN%bOB1Fd)N1tqJ{+W z%7k1XwlhH;cFVb7$@Ly$_hlX?;G^kIxW{!QDutuX`kb&m+=%FA`9tWJZmNB185(jR zSm=nKpbA!<6x~(e*i|sPHCkETs^`4Vs&a7Tg1p@QjoW@-4+ad*$=qmH_m7-hH@5C% z_$?G2nCh6-=puG6x)Y#`yAikF+Yh(`)+Xn9%|M>dpIZ!o}lI>Op#Yr0!GP3JbW86Q#LZqX6%-I0UBe)ZT_R5IS^G|7RdT3)nl z@{08)#&xpybV=lkz5VM*BXrhO_=;R|bcxNBLyd(t5^V+oRwAVvH z`wbh}J-K|sT#K91m1QSjrLrqWk`6sNh{74xInS%fMHVJDDKp zJ!#S%!z60AeihEv558_J1dY4vorohe>M~6t+)*@`$WI}QP`d0Z;T+PVrJiw=Zs`Vh zhrT?JjxQqdglgtX!_`mT=}2@Za6Wu-sjYsure{^Xy+rOhqN`O=-}iK(UhE7yTCQ*{ zZaJrRM0M9Kqe$Ib-*PE-BAF$HeAl+21oDwK<=&I`Tq{qwFLm3p?BkVu zT+X&CWC_@^@E`|{JU%JsdeB9I)q#i(f7D;vYJ+0|Aq{%&8K0)!G9o3q#j*KS8Vy#tN4rkt zvOAZFg>u&%F&11a4T4w4m;6Nn0Yk(tY(c-h%P@|YnUzGcn`^_m8#mpyZxs*vqfez@09dUqHdYBbOPbF-gWbdR9c`isEuPv@V^&X?><3nSfmP-|) zxuhHz8CjwV?#7<|-ry=P^$ma@?z&RYig zXccVmZYAr;kS?%W5R~?e$4My8Hv_Yxc#e8zvF-9cek#wcDP~_WZ0`31a6IpjuZi05 ze3~uGDHyj+n7f6IjQcpLJeaSN6OEmj|Hf@MvVL-GbZJJl4bw9Ix{63gdn0&uss{8DjDA0}B|TT?dLVnw)bhGFy);ebFb0$??c~yS zx*r6@YR?tCbZ@ExG~RhxmMU{~g=^tBKP;-YpzMyd7hOGtd?VU708Hc!K*pJLguJ#!p)tS3KE?@$_xHsScT5kLgu%B&F*5rp~H>f%- z{MYl}p_~0z?8WHjy+fXxgTlDwWwl@&d!?&HfSpK@Wdc=iIuk*bg&ryJ>@@O3m{MU2 z(de(Foa|azk57e@XzhamQ#T<6YPChT3b0Qvwy2PgJ@2EMflx!AxB8F^D@aA`(J$Nz zR=X;F+tn_jAaitHSLMnouk0rls^*;DBp&%ZhW5LvKQf3_=fjC-8-&i-?`Z!!={X$U znsXlxcYUztA9~s^UQJi@Hto;PL1X+%`pce@PP=B=W2UYkzk6cpzyAw~R@l;VHw%cf zb=lZUm7@Op4~up5E5|A_GSBu6x>A|Aq5g#oz;{&|{eGu^%0J3>wJ&71INg4lCG?;A zm9L44%K4hyigK?-MVnRuo<9bWP;~vn$u( zYA0(oY_l61W3}=By@+($0@l_bpp_J0xQ?1Ty z-5OWWB<>?%PP9KkLFt(?pzsarz_d~1Nn-cojiBCYK->f($j2z;3crH zQ4gSPGnaL2Yk@n;c7*hX@UmBVs`L8s?Q3mgn~i?Fc*HtNZftZf4hGIISazw3KP+yr zIL#tQahXBP9*@i# zG^jgWgG+OmMquSuAUV0Sy1)4`o=%krJg1P)uN)yadmMkwK-%fZj-VX}L2D! zG_du>Y9rYF)u;V^w|kKG3>XqFZE14a`yx zbdIZ__UIVMG0$O|S%UrjITeYa^{x6YKR$h)Z=vjs1I_Bq!1}2Wd;5HP7`^)H18Hr2 z_i}}C1`lc{SQ>_7^#asvL9h>chu4GTZZOibm)A%Aw*kQfjU6)PsBn*;%^2DUw(DjI z+HL40u=O2r?WG9|nAR`=+uxe&uHda3&B-}CnZF}Zx=P2!wAl%bu;XDrzC7fHp7WL2 zM&oXV_`Dq!YwNjjL__mxF9|Zr>ygM~Vuc(}r?B~uGiIsgHai8L$ii|!KAoHfwEGx9 z$i+naWRI5tpwaF)uV}BGmP-}#WZ2(jPSam*k&c|>`^7pL&+Yo9T-IgT@&4hzGVxekFs|Gn+SD2u-VT+8Ve zCdW+G_7MctA*&xV|NqQ>t@d@Xek1*`9!N}t8d(f`BbwJYYgj-A2=zEHdU8in#lP5- z;O!Ay6YcS83FPsg4yIXk&`m3pRz%IuXx3zUgiF3aX-utt@venTfpA6LQRR$0`L+Ru z(C>&V`{o?pQ8RURSY?3(x@o2+c3&rO3suSRrDG`}yn>~!=}gI0Pw=9f0iVVD@yfck6wP)}mBvDCoFb&BW-BzZxrGSmr?B@k}X!xS{ zNXaIN6wvfNR4p4+cRxoU69)k~TlNeCHZ?RTJlNUNri~99fw+c>d$3VMa)6@)*IU&r zw4)e3#&eu}JH}=2DK*SvN ztQFTOR12(CmnjNVE>y^Cwoj*kCsJg@7FqFl8c5?fa!t{dm75P4vOSO9W+?>#)Xue* zl`b&vM$=DQ!DHAac{{;U<652rQ^o#oErtdH*lw&Mn2+BsYQV}*Rs)O;!*xUbt*mo{ z35)@ucIU(YU1u{5heCWKp;U^r&LdICIM*iwb#{3!uqxplx`}YP$8LTYounHlTFS8E z^HTTH+mo!l>xEzVbZ~&x@cgIVRwC?FmBrUM= zQEG@2R~mvO^n`9Oy+E0Y%8EULy+&8ndPBK1+cbG4B-nIsXOys3k}jlJQZ#Hhru99U zUAV(AsblFcHM3!EfUWxC|M3s`u?8?}0-g_KRA(F!rVqs-4{!3zkKcHW%2o8g4qu&` z3&zl$6hYB8pD%q;yTx7g7O4F1L(bs&FO@xQWS}lVbN6_(&{>bt!8npY^!Y)U^C@83 z=&FF5d|FvX8PNfjvm_peYGL>_%#@uGJp~n7fL)SJC7hY=4}I6(2d~@o!J~YU|nNgwIVa-vp4CWJvdN$X}o-raLxL6Ic zE`AJY$f;=Wp02L8)H827rcfzPbU(v@@*43T58}Z40LG=h4#?__B@GySTohgGm7X}4 zWIgwD=Jz%I673WfRpFqiIVM+>()jBvg8=s}>t+4X;AQP$lcJ}2gZtL2fpfrFpcu5x zfqc}x)Dad57D5hn9npZts~7k4lDrhVfy`jUp}YY{0#t3E%Hb9(GDyB*bUUy2;^3}D z^S&?|~_4B&^%XcTc8@JIOt!RD(!&`(jUh*tF8kl%B=U zdJ%!eFc&b(NkltJp!u>PX8XZ))OQ90tK9At)$m#HygZ%G&PX0=DS<}5tr;5OhcIR@ z5=$dnhkzco5sY7KF#P_HmZ7h02q}!Olb_W|VU#RZc~CrCqci2>!$KH*JEG^!r$Un) z1|af(AU)Zn%}$|vEdWG7yT2kWN@iJjjD<#UzYW4idfnT!yZ8WwaZi+sGz8Swivu?j za)Q+mktGt#Q%-ROXgF$VpqWHO;i%)eULzZT45fW;a|aNi4dv}sD)|8RRhqBxHqAR6 z-th1dF~*J%3e|MV_f>^;iV$_ELq3ht9<8}Ql$kiI|Fe^<&j)`LiadFL=$<_PSkEBE zbr>bU3*VusdNC2uvNl}K6cJZseV2@ zwpWh1t>Nnfga=!)ONy4h(2L#bV=9=yTn@L7&}PUUkX5s0poD5)Qu!xkTq}TFh~Y;* zq?(1Y$Wg0g5IvYEe0Jg9H~<8!$+(XLcv7S&oJ)0hOAsxjV z&oUD-t8+7OtrTo6wkcsQY@18-gwsdr3-}5!5eNAM8pz*HCLYFj@(co79_}&@DM-CF z$&%QaJs3oG7BT@d$`Al?cRiM4JCB@~QtH=XrOrA~cOI<6e;i^mff82@t1gIKHXr0> z^%I8i!_c-mFo_;@#JL<2w?z(WPK$?QA~|zIx0=2KSC0AHyKGxWl}eVqIsfOG-(|Tm zpKD=erR6x zt(I%-*Eu-t$(C8hZkrN&2fOIRi|E&olV9UPv>LaAoFkS2WZSX#j{-BW*N`c>F=P6Z z^EiCW+2_(MsoqX~f0Z7Viue2Oc!8ZBJR*uj2PwunV}-|nMgwxz6-w;3T|#s32CJ`9vTzUQNKYvmD87BcVAI zwpTpBRrL{6t^XAAw@5u`>fhWoB^f^?D$;~-+RK>mg$@z9en4l_zw|Vpp%-8$-(vs1&?(Ce{g#mNN~Z1 zB$SMBjXX1S6$jI7d64FEkQkYo-aCIquUC7i@Z{=?!^w7SZ8@E_CaYFi$LS`n1rAtf_^@uMDmp3GduezZ^`r z+LkUVa;XXukK`4@2{~w5{prj70pFpQXTOaEc1Kp3953q$=p}G0J9Ndc9;cRG5rnE9 z+Il0lE-G@pqETNXUDMK%M{xMFs;uXi7}bIHWHl;W;U@zqL_!{AI0vFH-(3f(EIF^Mx)F})uIHnSdNhoxaD2jQJk&<;*tYbhrJ;?*Zbb)MJjR6d?1_0%AT zeuX6Lxc?Vk|Jfj{qgd728l=0o&Qw1&+`sl&A+?d4>L6|+RF(j2lbPY1fVOw15&B{S zXC|xRQ{y;5%Gc1PW3QvpwIj>`{ed`j9bd1r0!oN2FV~=3H)$H=1H1}T$b@ks!e>s{ zgYGV4rirZ52v19e>6vu`4Nl33RFo2Q&4D6anMG0-5_V1oeDR%O(eZ>HOA~a>-KGW` z{f*xW=`^TPP+wf8T=L*H+s~+-$wW9Sl~#{O{gp=Y#UYzIcK{m4R`E!9UtI3(m;3$V zyxM>V%snYF6w@aUJs=tQj}UiYPQtwT-KWf|PfTYu@ zsmyvFe!G+S_+|_b6jy*hgocc#_km#RLr#%g3Jh^^mbHHGM@OD<5 zUS3lj&G!@t)pxn6&_DyhDonD98Msf)dWNfzkBo(yF>^OijO3OIM6H7X0={3TKpptS zEdmc=+>!x>LaQEyRgSsJbt1N68@KzB;SCM1zTh5AiMYZWg95F7!Qg`l*Ofv5)FrV# zu-y3EY7_zdXt)bt0q3ed zAa~Z>Uu_G-M|X05Qn-$8c3#A;#2Aej!UrJ3{3FGJ6IRIAZ zOCyhNH1HRUg|jAqLdkF$LC!R#XFw!T0e0LK^B_Rm*@wg|i!={vj%i(Vly~JE1kN>T z8i5k+?iGHVR(>Lkx!5%$$gDeq%+4V3WJ}yf@rN3tFo0zp%j<}>;KSTBtsWqowMc&0 zqXfg=)JeiN88vZ9PfY70?e$4NbCYZ_*BsQzw{RFyy0Gw0sxUpQTu~#y^JENxQNlAQ zZAMwhV*2u4+r(RZf%jymnp^0-JHubJ_BxwZGN}^<+Tm`VcY89*VS@7kqjY5~!+RcP1Qp;1 z)7eu|ys`oQ7enfVyaAA#z_|4YSTiK8k3A4z+VY|h3Svn<3Qd-OlK2V?wHkdA zcm<4uog7fTk$?h3K3RkV10wQ(BwE){*Q$IB`UX`21e6T4%VB9jk%fV}WW$h5yOa?p zv6B{b6#vqD8&VRxW;fywBH)(H3FyczsXl%LqBwAiW9oI-o@Pi|ZgGY;1tXIHM~ha4 zf7NCThXeWCX0=}Wd;<;?-Gemp{b;{DC1=^mCDlJ~4fSW1xU_A0QKJ z^;5>>RK7}?rZG@($sTpM!Fd~EGO_xF(XcF4XZNSgtbhr=B6O?@q>54Z=5?k}|7iTv znkCA2cFsXaLZzo0fD&5Bn&>$(fTITJM1<8I&D4h{i_Yyrl4#c80kQ!1L4wNGzI?OK z(1q-ks$Nj?Hdks5$YJwg+miHLPp@IAuXjk!Jw-ZWZ-B_#=bg_uGw^Yv5^YNIu1s3K zy3XUt+BX_6ifxmZ@t*T!0W8y1i`FmUw%-;gMnRFe@!JMwU^wp32tIpWnh(t#3yL`&8sMH~!Fw{3YPIAb zWRfHWAcUxKIe0GB(vJIdpepj(C$!HB!oVt=$g*rAnBu0xJv_K=_aSOU+cN0@x32Wo z3tu<~%eamN4JqJYVJDmd2;TGflUf<7vECprfrgDzj_U$yVd7ef{!EIVpu`fovXHj< z_`3I?^&d9_@VMS!e{|R4u-?ZP)r8C9@B|AbAoby8i~Z>z_TQMF>O}*G<7vS#L}{MY z{69U3-RU);npNSC)ehJWa~I-YFY>SLms#0jIKW%nH8aaBgF4qp$U!w4Axzequd4(e z-@-F!+o`-D(k7hhd|V@Gw|732l$i#bv}iu3&KRU;um9wkP0Gy!3(|WGi@c2d;+7F{ zvf4`uNx`a+0I)tuPaq^|{B$z`d37Fh>I(z z^lo7$0Hwzo zF%n814CXzIV?*k2&^_xl__tR%ZCl_C1_$e#^xF)~x;B$5B&5o7HuLZ4|B`z|2uX%UNGb zJAT@ioPRNA*YI7tK+7ygqhx%2i$ke|zOJ4!FoK3dDkbk$dYPPVSJU!NlS(6jD+w7k zo*k62b2O+Jm*MouG0t35DB*cD1CN~eBiv;bS_S@#gp7MccN6I%l%CokyE)vC-i+d| zx?5R3#l2o#xm!`58m)b^pV)<7z_oo6TUW`tESFJIQKP)HXYS&NBTK)hZdc0&atP|E0P*GD|U;L9%2A zGii!rU=&QTym7@w9uFEc2aA^Uq=oWMm;)EK6oxXN1eH;h9O}10YhE8GMd8nneSK-vxz? z>ro)O>1GW3r68iyIqh_VxKS9F-@HyHef6jzXFKD?@XKy^OykvxGUGId|KBaaiKc>9 z?TkfZP#CW9V;IYiADHen)pp3R61L=oJSz^obZZ5I->s~++N}=uMcp!W4lFr;hUuh{ zz|+POewbfL82|Zp;b*cuE%JkkHu2u$<3hYgZ}pRRU^_;8-gZXUxCv2S5z2EUj9?Gl zkzK6oLFD8fP{Z{wOpXAJgDF2y$Hno5)I*O;FH;*a^id+)`!t_tu9kNkK>H=_3s-on z0`jOWRXU|-k< zMv)~?K`k0hgYwpY3yk1t8g%+)P7TyLmJXc(1TD`@q4N!s3pJUq(2^YsY%I%{&T$KG zw)~2LlUmuthzC71)=1EmXp>D%4{C)b54%bOXsL1v7Z(m4q`)E8RP=lNskqWR5l~j! znvj_8XVn(FCYqo%_z~0F5!)6bo~0poChF2GdNk89jzZ|-1Y^)5YSZdnqjNePEk&T% zFJRu>NJtsGN;Fnf0$6RSJ$UG(+@g*E*gcvZYV8JX3umI4cifW)0TP*vt|!8jMCFzb z8F_2U>ED26ysClW*On&%%X>ixVS*G3tTEPt;n#7m?3-+OgYVFc=?L*$SS>7H0S6)2 z-eO~80<$(?VHM#ih{O0VTS;nH0w^3enZ0oDGMWM|?afDG6~x>k81qD0k)xo%7 z2QahdLV;gx2zRrty;F>BN4*%YqT)NuYN)6LeI1o)6c#fh0lQ)Tjug{_ajfaK7jfeMmZxVZjHq!1pYt|ZxjG3efv7gfye~*;ve}Z) z*y;orgR!8a!Dd#I#Nx&76tZsTo7Jqc$9j!+rBy4|t8`x&ZXcQ;h@ZB?E^K&9TJYfO zGcN*^Sqh$nBU=#?pD+%`vugx#;k5t~&?c49uMH_Yrl9IUp5U+Zw&Zy^c8Pg14VO)L z%b7%ba8I{$PJ`p+7AS}%gVMmbr$=k4jC7*$#R;zSn`8VLlE~BNfaE>Y#Oa)B9v;5@ zKeVV)w@uN>+=PhR~NrWnrG5`5o2PYCx$ zwF75x$g;0pA@|}g^I6_0AakT$IAmO1_O2!7Q^MuGl!s+%l*rjA@u9o?+ExK7r{T#x z+GlW_4C6A`h_7FQ0|pyV&F*D2owTjEHmI?E^(T9tGW7bh%f}YFL_;>;2HXdb647=W zO9B>-=K6b^jPf2^T*Pg5EZlL8kUl+eA4m2?i7}`AcQw-k8#1@%{%Tve}&l!|FpM=XQR=_>^7 zM3>TE)E(WS_3z0uc~qYCAH6^6H2L-SYEGq@KBEu)SjmowErkT2e5hxYh0RuZs!(#N z@5+z>JkXUGq%W_JF_Ie&DJOA^xfkf&e_9PPnR}{A%SOR3jQ|9@#TW+o?btH;cTZ;* z*t?o9RGlmV6LSMeRH3~NTfm>4y{5C|Ez zC}~nH1D}_1)H0)ED>1@SyL*qRqRFnAd0Eb9&jt>z_HvM26m?sCP(1Za)Rbbk*b=bY ztkF3({d~DdXO|>}&d+uv!uafR-Z%;1*8XgZzzYkL81)=pY)f$_Bw(Qq2izP-Gdj%| zj~9ay1ZhmyzTrP$?{igWFA6#|#eu30) z!cIY0v88sW!|y|wexeW$;}K~Se#iGEFKW*A-JH_%{EACkz!|Xf5Ft2=;a?AKKXJv* z@m1rLiy@{}-sFHHwI50^2-w#Y11av1)+*}iy>*#){_*O80OPyF!gn?Q;t}~MEIoQ` zlLp`6W`!h#^HTF@G*bk+qXzWlw3mLpq>g4HM=b7k3R#X`afcLRQs!+eJ>M*e74bFG zS&;)$q1M50iY?WP)n(0p8B2#|AUhZ|Gi6nz9^=zo=Y-cT&T*9)|E^uio}k%y&P>Ze zqYg`u$Wm-q?6!zlTrk(K!;GxDa6*fy;T`9e*lvba9P=J4_FNsmNp|xv5dQH101;%Q zDyDjyyK=9(K}4Nff!5N?Q{oTvugu>&q$5pXGw1`n2)Hukb0!QTlm7)kXRdA2LCdN{ z%oNjLJMm_ngnu<{6T>b4J0YXFwww{FL*fFs zuXFJoF$bB)aD1Q2Uu)vOoIG5#NvkRE5}H-M?PLn;Bos)f%f}}|EU04t8cw`V(2F9a zt3+{`s4QfdULEIZ26v|;>^N&ooZGFk&j+~FUYodv@f-=}1S%Uv z9PY(&Af8MFGh-9fQ^$OhQmv!KPzb{-Yu&W_#`xnfaB#UU9}plY@LBp~ql8ZzYDa>c zh`*DIyeI_DuDRN+^Pcn|!MhgvHMShs?))pghrbGk-~FPnzyV%e!KCvTE=hGd0( z#eF++O4RKOT)u0)m-nq?kCKs{O!)fC$x~Gxxc*&;>tdbL_aS zi%Zd!5l?)W{i>xjpBHa>keMscdHE5=*S8d3Jx!j@Jry`h#o(`Z%~qUi&RI2l#KT!m zZvVIJIgmcwG!7;+^ox$S`7bT&f8#E1a^J|tY|656y^zcTHxRl`#2UI^bx0 z;w>7!tM+cMZ`Is7H^m)y0vpz($j2*DlCJo^4%;07939uIZA;2uRoHA8vuhKscTVwZ z!i<*NRm;AmF|@e6nN3{Myq|WV+$j#pbeNcIrdu1fcTJWZd3)KM13EkGm;+?InL{Jl z(W44aie_&t1djTC;XvPW>&&|LUH#F?yGb^z+ZIw$X!a5{*=sexDH;qs6nB%$eM=*% zs0aDggpy9W+_#)FB&d700x0)IEBKykPI-$@u8@x6d{=9oiw6{4XT8ealH!@%NHlT7 z%MajgB2wnTvE+7nUHvi*W%kW$-A$-yefuX$jHlFZXPk(62+Sb3LGsewj5DZ{3{>Bt?F8nH*1xZ8pa5Rb+xIWI9MhI}~ox)im z7<9qos8$%0~#L3K6M_Bx>EYqW#D7IE(2ULAb?cd>z;;#AtUH-Xe$h?$1-CS%N!LZF^vEY8OO|fPnd;wp`JsdXCTuS zDaJSa`LzX-qLHftcB8o0BZh$m6;JLe$0)gkvMT6fZ$UI8t_m4peCzd55cNkq>0Ud< zJ7f%cC*})`SUg-$*6Kj{=NXx?yOXmi0oJnC4S8@G9^3X4s0j+#~HhfI9Z+y;y&ZUk5z_U9BXp z)7c}cA8+sRIPUN5Cehg3=0SERYt(zfDR3hkb&k5`G5e`Q>ZvbSN&u)ACQh#j}swxTj3!PA?mU95pmXI;# zn-D_R+W{@y6Of}YgJVS}(|4L)hdWtIc7i%?=9NdPi}{;`Eva4ly}WqjB}D5RE6B9F znvr{#6+_vksxlOFM@b z1Vql6X9R#B$%a=~65>AhpW6g!uKcTGzePa_;mU6G4F?B>Mflfq(LtKA;ZC0|ps{i2 zsePFuJDm$Jf>AhWKpoQEcH+w_v={%xJd1#hsHnBnp%+xhZzH2aweP9r06~hC^HX%I zeUd?h4K9{SQ&*%wYD|T-4<(-*nphA?V(Ff(0+VC4tVZ(HC;7?)+OK~rwFFU(M0-aK zaAVBM^=c%K<(`|%?-TYN;Ps8F2{G#2=u5Tl1+;Ws z)&qCB9z-o(kYOY$Lv<;`H*wx^QcJ3KITRQ=}v8J zHbuh%M2lXjPwf+O(+4do$_+hX(wi&m=|&M?_iX|)v!GS0VT4Ncq(N5HE%vV|ODjgN zuLE0cAgi2^ODpd-L&6E4ilvhSJ6P|+)^caXQ?rNf)9(ion$3Kf4R9=mgm}Dwp0-*H zxjY6iLgu3^0g3&V34Koe857XgmqC0X3o;VrEuigzrT2y6QYKa43LEWjVu`Ow;_p%X z94>i9G#M=As)Iz3#fRPDN81+M%b);8%2VK1D(je&#RT;4p=&BO+(J^KDM43*$gZa( z>fg44v;0kMl){#`7YiXz!$`sdg8P`(;&m3%Kjof5uxKFcny zrq$GKPe|RjjOcHQx3Nqt7iD~P-H>;ru?)BTZ!B;2T7#-y1lND1Qg)(0`)L{TF0nXI zfKx*VvL|mlJS=_Uu<{BU&Z{|BCmfh1tb_0;Cz|ab<858^=kG$$g=Na+uKd7#5SXyR z^@o0DZE=<4YZfR+Rt_?2oYs2_{SFCH<33wVsrWuIImu!k_aJ!nbm%$Z7PQ1>rEtHg7c(q~dPXvj$bzRAY0W7K6YlE8%3tVLxK4{f_QLQ{`UQaRt^dZ*N;+to=?% zJ{)h(CeVK)bhmM-@Cpz40p!%b(D_}X1R^jBcb~QaFpC#-X+lMHt9EaxE#wObuM+;z zYOoxPX18k?PpS{qUbdSFhti8iL;u~TtrUlz@@lQ)z$ICuCAZZlkH8UO@wY23{Hl+1 z`s{t!6fbqExNc52_2+xl_f=?2;B9ZXy+&mJVy`dUnbqL|V)BE# z^!%zvxIo59u}~9WLw!P8|L!Kps%c2^nWZc<57)$Yfd`I*LCPu=XH@u7L50Qi3 z|GhhPSX_-aD$bTbF}`)+1rONjJ&J!S9Ll)x?O=LCJ1CAV@2Oxj3Nwz;~FU+xe6uzIn1us;5}UA!~<{}8rGg!^BJ zGTF=g_>6V$>bFh!O&>8@Eki3Vbz__#e(Ar(K;Hj~7jqmi|5qfw>wPqlg6-@#!cO&j z{rgUMRxSWkI*INl{75he?*FroA4ESmkNPaT@Ybc<_BWq)pA)RgH(bu_O{&nzf!oC$ z%))_R?mLHKS#ot9!kKOa{g;CCOkDcar#G1Ri)va1uvP@E)e> zRN;8{SF|vvFV=VBPaH)MFASR-7#yg~DYmeVurp|)Rw2U9>&fGQZA}`00GimwF5cmT zX6G2#6R_i(;ZLtWJx1CXWOL?$kJg!=1)JB9BsPvAj*N!PEJj~IwKVR~8~`;ri{OoQ zat3lk-vgBr;iHAse68EsSqn|(F#!hDB@WyT<8wn|3;-jO#uNDx1kKsv3X)4gKq<&w zsV!lao*LN%C$Kr!PDN)xqmO}A<}E@Y$0Pz6e5S%U#fb8s6cNM_8k35d*hhfKS4N?y zkY&x82QdAITQq|hpzzTa7u9gndf5P#*@rvK35zNLsx?HT)8&CMb$K`L*c_ID_483g;tgp=Z3Y8bDP)rXjawZi zW`-JE^c~g7HoCTRO;DTF6(f~sFJdl~l4bx8E31@wiV9dfy12<(_Gc@Kai|oHUC{j* zKj=vE|1io&C)t1t+`|}MZEN^w>HwWv^++B~l0GWNNLSsewLj;-K~~o~y}u|W@?YdA z3DJ-dMDofTr%sJko|-y|sH6i3ChDatu&a&`W-GWl(72H6P8?Ekzw&n)%ylXu7U#xo zmzh?q3EDd<28Z`*P0+`@;#so`^4VqiT*!Io)r<+|!`2j@wd6Ohf7QC$)#-Ebn+Y5m zw+x33X!TC(Ob1BAd%Bl~sw_4I;3Q~@%3~g(>vQVe6ty^nuA#tTKyQ^Bs{%QsuAN9q zFH6Rf3xzt4R=WuJ9_dow0NE4kZ!d)aM8vTet1@av&uusip)Z6Fh6VvVSTxA2z>}6? zM?zcQ-2Xr$5%{m8v1USJOC3xHSgne$IM9XfwZB`{E03@LnfV%=kn`zvTwJLa5P7M~ zFSj@^iXxB>3N@avZ6@9ka-J^9BWoS<-j*--g#p2Jyv5JOv)_iMLGCr6vO}iLwOZG8 z2eGGfS_zR00Ec9)vYcv1NMq$bP2|Gv3uAMd;aNWWGB!CKBz=!?Gm_g$*PKIvD)J*0 zhyW1_ndcM>j`vU(G0 z?t*W;4PKloAX(r?z+CEXgLx+-mqWY-lbvAYc*VKCs-(IPO)`SRaDVRuR(u1AEc`T z#Z>*x$&Y{a0f;aYg_*pO4dIj1P;hmf-n0?rS*`f6q=|E6H5f7yV_P=fQ)4&AQGn;a z6NFA+>c#SCtM$;97vZ~zQ8LZqX;pO^^e?d}x|~7^+G(>MhPuhz)$>vZG^h@iOX_$ZxCjk|--JQ?u&`6DBocB@Gz%Hpj$^yn}?SjI3-mmGUcMrtE6 zM>pf;JvW!Qu-4gLm# zcr`xOL3VJRCs%I)UAXH+cJ(({P9`jiwdl3GJi`?Gt)JSp?BCh;tas)Ml^61&aYV{+ z{WwsdY=^7|+R!;ESQ@RE`{<4A>;^CfbvxZK0la z%}a4VD`nFoMIKbNVWGP>>{{uq(OSiCFePK6#=J0Vi=Ru$sXu9q(3QDsWhxehHnHS3 z-6l5U03$}M;zdfR?%F!+k2M8ggZ=wJkqo9FMHu8)i^+@f61UExlqIrzfyKq_35hXr zV8{|}5I5NqFCJBG>so@qI@J)+;q{I!S#T8p%qH*K6sAsN-^=sUP-2U_*UI%)IN_@? z+B@DEyrUXGRF3h6J!}FkSJkKH7K;4IoB5e$*m&b{mOx->Os*ht(6=Gut(| z_>9Nq%vB>f>qFJ*{U#`LTMG&U-K!<$Oc=yCqSB6q5$*X^se-V|vHO?{#`20~jj9B< z8;B4iipAWQR|{B%tjbI>Lb4Jvknn72BaFrtMhG&dPhds)^Gb>G=-2rHebK0={RLUR8L|*D zZw*QY*7xQ+*#l9#?$qs+fj#YXegbTo;Ur0cX>8bf_t+U!Wb0pKRet>gp`cGY{g}n` z-u^{2*^$#KNc0{)2W^>g&{m~Iwsy~0{Z_nqy z&k>Utj_ppx{!6^y(|&Eg&qHU~qxp;UqHonpoc`i3#PMa2CAbg>QFkv*WO!=83?bZl zK7c~OjQdAN=e2~F64kj^mo%ct7D)s|ZEm%{S6BG{S>=yF`(gSLxi3`!!~lcQ%stAG z{-yi4zL4B|^bNkKqWBy<1vr>N%?LgdqxMHm*9)Ffr0j}ozVeXqm$~Tob}7~pV6VHQ zuwsv_jEu}f$|PPKFp_$R9`g9RDuO|+UsN*1LK52CaBipuZ>RQE9?j7l{+Y27B#XbI zVDA(Xd}b7@ux3VOGJKiFWhw-fAwh>>wE*~#{;JHb0!Z&;eR&jNKSM&@EHVXRcC4c=*cYmK{PzK2c&JOm4Y4%K2B*hr3hM&Ij}X6~=Xprz%G3(=OWTgs&>)+`~FdQX#5H{Refj ziK>%6D)ow<5y}KA3o0>E`ke-a%A3DJ{it2;fJtaf1(|nBg%dnU%>mn9oe2blzWF)v zpQYaW$vmR9d|!9$zv!;s?fp9C1hD_sw`Q82(4jiRO;?RT|6jV1oBuBDS0xD$9PV}E zrY6<=ud4_|clovcdLgE8-+K@e>FBp&47a6KX42wuO%~V$xoitQy{X0hX&X#(&4t`= z_yhcI7i~cZ_6Q&#wK)VLLkL5x350PbJDf0JzM0BNWavkz!5M3SWPIFY3L4VK>jTSMkK(zBXHC8_yv0tslgDT#>S=}{&WGfsB>$xrTTHp)RjBxUFWI) zr$|bmC(lHZ1TdQF?p#SJ@ z*vu)lj8?BX6SZR68}g#sNzmPcL0_fQ&$Kq)Zc_w)McrJ1t(fdqJe~(m)n< zXVy$7xG7>%EsMnMz)>J(!8TFK(x-K{p8|SZTAWh?bC?M&1vr)@7?fMt60j1-62@dO z3y~us+q3D%qhm0R>0-q?${vmCVX^~GXebQT;x!pDlK#`$kT#`-2~w!NILB)$Q^o964Ub+2upGjC# zIRCJ_z#hDlKjSwsPtNxG()|82f6MNw)Zaazzpw$-;`!?Oi}l|6RrIhuvcG$EO4QgN z`pf>xzqY;Zzp&&`&TIWpeICJ%VSMNm@KD#p^9AB|Dg+Jt9?u9V7hzE{693d15_=5KxQ0 z=oR@=Sad-9VgyBm!gk1_n!|kI{tjCkn&#o&&EubQjf1nKyvsC)kZS3rt`$h>d`OGMIBW-`pF5${7|L zw@4B^a@?ckOXLu7gcEB>8qnsOTgl%}2n~-_%{(_=9JSx#$82>heZpP2E+TmQg;d;v zh*0l3B(4W^xMU!Ikb_)#0J=~@;^=TPlsUGMQUBf2V`QVA3;dwUC^VE4d3}*TG61 z7Gv_1dJ*TxY8<}F9V48Kx~?}UqTNTC$;&-uZhcmGG#xZ)r?}pi$eUc}u!9Y(a)$dF z4LwAX>3xtwbE$Zbnzar})B$8I{sk*4LeU+hh5>WT}gwvq{%8ykAs3C`~#aM3s(bde!%h{Y4q5gSsy~3K<($Bzo&Ho$&AgI3~|@KiKvOu{4y)< zAoDs0Ao?d|Mwpf^8(9Eg__I`Fm%^&OV|*rY)ZCBx7Y$ou`H&XA`13--Q+s#>P$4>H z`$@WMHIDA7szE{y41*b*Z@%?WF|DfZz%}maVpk)q4#`>{72TNxC}i8p~Yr1I*5cv!eOwan|jf?L|yCS6;Ga0 zJ3YarmNa?7%6p|o|KBI}|LtQ-Wsv~!0n^Rz8T`yupO{|f?Pw%NR~vo+11a}PC_L=* zSZGh+Xlu!?!Z{wGbCRV_qe}>qf`p@Z`&%REx_s-$u&tOnRVwyu@K(7CV|qq!3vW** zEjp52ijwmG8F=bcs*;r^k20K6j7aZxJjl_P-mXB^q&un1{HAPhY1r=OqL>qc$Fg1G z(FDi&b@qzZT6SiC1e)gQ9u9Y0ky2}z5@@WNP*89ZVWTJ7m!~%RU8^|fnc*Q<)zsu+ zxWo{u!+5vpv2&ZNOYR?&CGD)^m{Wi57SRxCKIZ%>tvr}jqeNHaHJNQf2-A!@__tg zv)tpe@QB^Kv*Hgo5`zgm=@B&2=BdGT+jKLqF=#b>f(OO@BwGN??+mPc0~pi9kLtvfyGVK#hI@T z=Zq>>4KXtC`EKq_xXcLK@dE@}jZi_{m0Nthk@<&XRNi`KC`go2L|+T3nA&1kp3&lbef&ph9$8&!}LRsH|hxIg1baD5(A!K zkYuaD!cg^+oSz)K*6AoXn(=UH*&i~ya%w-Jo~_F;2Ed-M8-u5AGn5TathCe-s{Rg# zshkk?h6FHS000000000&F-G&Z01PlNSI~gWFt#AYN7`pf63xMW8MDHOGoslDGo z&rx$g@ z2l&i0S(xKI=fDU6LBRl2%m5e|KFmKyI{}xZcf=m41DW&77^=bq{T`vw2Xwi4SfWRQ zfE1TI!O2hBN ziL6k+V<0L}5DfKS@Y1iO-A@A)uT$7je2P;roUbZq9iSZ=$`z4kXioyogdOY(^8XM) z!|TI`s#ko1y;U_`6gsdmVzn>Nw5tjh{sq#IimOsfNdNj+ubds|A%z-VuCdz^asI2h zb}`CW)n25&@R!fn0bwQg3|hLhvbnAkWz zV^?)?|91s&{Xuz8uQ=y_52r{2W?Ak(k*_-QdwxjwGw>fP4D1~@tVn@yCem8$jeg^Q zxu#XZggj_!va5VuN_^CG%(0-PC(Q;bIi#VX zd}@}UZ#{C(EIYa)8MC3E#~(s;mYiixnUQ;0L(?iqc8b>&(bT@SSfHE>Q^v~sx_X9P zE>?u|K>f4p;Tg^4?-x3qim3=Pj@sd$?gv?E=#DFfibck_$kReWQ<*4> zg&ZtER;Z%|Tq^V_x=--jFHfDRE;h#}j?HG8`p=YR(7g9heyZWSdZRq009i>H^()H_ ztZGfK^sab}{Ka2}5#iwka&3so+A?J)S#!9Y6c&pq9olRdMdauZ1IHa%XcdIIcD}Q#RjccyOvaL;) zw2w|m)@KdouB#ao_DlvUqSBQczC!9VYNMw>>jmS+OIF?!s1EgKuxhljURR=NAQhQv zs*AH~>Jh|@(_$=E^0c{eSFsO#+I4V*jY)%DOuSzduu^qsTi7RM1HWf1`ChCa8-FH{ z=u`I^pg8rprZA+Xs$*Iyvwmjs;;f*4PFLMbE?~X~CxXNw;SAWacyew6`)#uQT}4gt}9S_4}i}D%*Yt@A}@yw;Xe- zUvo1Ap4LZ#0r%-H{Aqr=a^A0QbJ?vHy6>O2yllQW<2UtFQ`0VnY4O{(^!4vzRI+M4 ziJ)}|!_%p4fIoM5r-}ZNAWQ&(6!_W^_re~qD6rfb?>KFh-)1= zd^L95p1&O()(o+#U#h#hLu8)bdYqxybiU_tN1^cV0p{nbX@eQ% zCP#+T)S=ML53p*y&njMEVJez!{+~NW*X|n zA@gtDIGRKMq(d~+lQ%f>59D<=CmNwx{~V51|G_7hnfq8*A142?5%1pY*k~o2&h7>P zk?`m6BG({&J2*?>%}u}ci|{%9N?TQ4Ivv>GwmeU)gm;|Po@vU!Yhq9SR@gH~;`n#a zn@)+geH$YW+GpDwDW9Y}d=Y!>`xlG5iiHy)~y z_^*3!KMu`07Rq<%c&9N(`!&J+!K$!+5muk+R1FlqjmH*kf1vt>ox}*>vBKIP6VxXj z{C#ayJUhYSaDjeH#c%h&<3?torIYJPY3kuPz^YlSP=^yzN~EV8}(B06sH{LSVXcT=pjI5v~28MV_+bddhk(9XM?W`A06O21dY zD6Iy+GNJ-ir?6H^E|s4+Gl?mj>(FmTtZjj>rRs5d7~dAFZaPQ&d@AUzuhN3b_IU&+ z`~K5+z&_urv2W$_rHJ}w2l^MU;1(;cWHk*Pl`stNUPD%iD7(N)n#$+7Bjv1&JQr-# zzK2k$HHyx~$Ak)|Xit9ok-}A~If4|oD$914A4FUE0 z4}$?-tdDv>VGP)LAcT7BtvfwQkqcW}@kIuIt;zMGdz@W-*7OTU{;RtsU47#rTl5_R2b>ic?vD#a1 zgf3f0`|Nb8ukRwCf8v%3)X2elU%dm3U5_uKHW{DC#;5cjR3xE|*7$p>?99uJY|91y z_vH%j(>fJR1O@x>s{Kn`hotuo%%n^dr9&1k+}6;zM;s~xl94m++VL^ zg^F)K02y;esG>!)<>yn1!Fy5rw&b?H{a>O#{%u^IX}_Us#nVah)oHA(#S7!ewe?1VN*GA7lB|70-FlDK7}V7ouJ@YKg{e~j{tQF@ zeM=yx86c_z%k-?j@rlLz`&C=4K*v>(!<*;*CDILS2dz=_Xe0C>lg0mGn@Fe&f5m)a z5=iTTV-JOEnxNZr-6>?%?ms{0Cj(X+ ze`iXzPy;5+G5DG%|9w-?$j9FWDOAqSDxhyIO=mh|kjfDPTDG4*{6RD5^pj(hpJlV) z?pZ^Ny8c-9z$gs?YJTwx|FHpV#lSy2zF;Lnr(Bi>tEt#{?(kmIu@~CCMxRzR%YGH0 zvQ?y4r%s8)m%-Z%`kz8KL{&IJF~NgBZTqfv4ex(>=wVdj81`QeB7 zT;1nwI}#p&gyWe7UJdlqB3+-s~ z)OM~TSNQbQu9v@{0Xu;gFWR3KIiYhy-W~!EhsMa&Hu_#NPL_?20iGL^VV?zAkHS~2 zS4jd(x5t4@AAv0|-UF9~Lu=$)0o>oE02;_83=)`AMv<1Ri}J7{6id-|e@{1Z<<}(# z>%pl7Z9E5~Z|dE7c30lnHrN6=;61o5^!Q#Mka-78JlWiw9kUS;`3Mt%A~>5@|5G5`H;ec)kVPMzJLL zTjyyF0Yaw`9|F@gp@cOKZ)}*yR7%J_&YhbifFBggrz8qGuyIO{*AdKlMoG-m_yW$X zt{k|JjQ`~pKoD%Ue0JnZ91{<29~^gYIX6+8SKI@p%?r#7zdGGb1uw$^pYy6$#k6nh z+6MUX(d|eR5zz)E*YuSfpB2=u{Wgnrw*lXtoUjtk!-4_7J_UkmjwS{SS8pW?O^lnv zSlz@*Ha9zQ=RF>6h^XnRMzp)~Sje$a=u;cOy(%rt5n+z(9-EpMrVj;<&cJCeldM;L z?dJN23@#NIbbM=wq4ftNtEw4gwBl-k;uN3N2y)B4s>Fxzy*F+BR5~iZewpDC18>DiK z0Zo_>pMQ!4y-%yp8Xt>$Z6Pwm$Cd3vXY*b8E}0VVR_wQSCf)bce4PG@lNdf=tK!7 zwEpIlt$R<9c3U`vNADCq^&@$ky38-6w?Fk+RWF_{z%8eZ9XmN z%EKHgzGb%@BG!>b(<>_-rjdZwr>cm{MM)Pg@{Kk!HhVPs7+5HVk4se{Yuj=> z1L+3)GsI}kJ3sX(Nk-c=uMgO~8bL>nEY;To+dO6?`5ibLshK20P&RNo#?t`WccYAV9&;|?u&vMr8-xtYaHAGK`ykQ|q)u9NML1zC4Jk-(j~Ql)))YOO_C(T26R zdLzP5dPa~jdndKj$lo#aRRRulC2gCBosgXlPH-JgQMw``4#3ecK`f&rG4Z-k1XM8<_+awMYlgm98u63~FFSfJO4f0{N0PR9aaRiuj? zSAY=Hu8(Z}m5Y}>u`%OwYm8-+W>=Xf6?i}FZJNiHlUbQi#qwN6qU}O=(409l&N&o%rMSIQ*F1ldJkLN!f=mpRuc<@LC3$i#D#K< zWyH~^rERlbZwfm9sY?{XHskYLpWdUIOU^PMyN7$a(U=%<$C0{iCZi;^qp~kn`HoDB zv{Y2+*(i^}(sCIZbtkJ6|>@&kD4SUn0`F45M<>+73al{@>Q`z_@kF>I1^Q=wCS%@Qd8P6+mHR9?iK{H7oFfx8Lr3NAaN$l>Ahay1(UFWu z?T*+UXS&N^#cHpBu+`EP?B~J~pqDYrGQ%@>gx7*o9cDPnTQ$2nh5>M`oc(nTD3vzT zPCOPIp!cr`TKTf2M>HR;vco!W`OnsM6f=n+kh7RHboy0&{{FZT0AIc%lhlB8TLgT? zLnTj5#D9T@7ovew(d>$qdlw*>EBT=)Mt&_&8pd#>Xq|)xz1H{|FuY}ElUSd6h*blD zX*%Z&mwxmi6QFGHzs>XF#4`p1=AK_ntlab3o;*2_3)ZBq)b4eJ@SWA%6uE)ef)vdR z8Nai01aDU85q2wM#wtiRAy5u>2HiUyojKs7jeM!=p%=BLDbL2Pd|}roBK)|X%LZHw zk*^n9KyqL>ZQv}s4BoonGWx3IU@fJpW1bFC^X8!y*1+|+)OIz?rVw0R+evcIWrW68 zw*?ZfVnRyV1{SK_qDNYY6;ezy3>B6uB8G4rCt~=;47s%pJsm@1eo>U-E36T_JLQc- zsd^qIA~vK^Q<y-yfl&rG2+9~9j$I}$5=>9PWu|8mAHJf ztn!0fs{FWu880$^b@PQPOFM2@51X`tkwG>zccaU~KII@*ulQiqOFeMLHSN!E&^foE zY$EgNWoZ{pCic*kjbdS4=U}(?Qf(panu&bvmA7Z3eQN@CWu4`>5w(!(=W`PwhC^?g3zuWr zNG?jv08h2Hzs(-O+Tdod-xvAJdBY0fE(=RNlX#unW#6G|-SU&WjDqp}x5NwPAOc>U zPBE>5&_fIJBVmip(cESYgdsCXI`lLY>K=>I@hd|qID3!Vf(Tb0W@4tkc*P^v_;fLy z3%zkSI_y^~5cZll8~VuH>o|A}>E@P`v^bbzMz}e0)|H6!o>JNu`MF^!M{yN4&Bp6T z9eXnFD7^o5X0>TC-Z={01MbO9UVD(8EkNPlgUSZWSj1!Mj6Uuq=9Qykm3g|k3+zUe zE*oMmL%%v+bYih>e3x%1ls<%74iO>pJ!utXSl?83CWvdSSYI>T8a0se9I$8BE56dpug~d z;67J%-)P&*>uv9Zq0WC-u7$;g4OZrVHlQQM;r_qYPj(^yb%{&k%v5}vQ52I|ZHstZ zF@H*_)A$CY)vm%}YWlB|Cl`CSCqKmhItR*ulSsGk^0fIbh`T>|U zfQLFmX5;!4srUSe)lzM>5T>CM#CbeO&>O(TY5?4`)kj*!Y6aZ6LBCmG-iQ$u&;i&8 z5NdEN2{aah2mNWtZp|H`AS_+;FEDXI;74q-L~BCcMgD;rxzz#Caq5NBxR#>?lz6*7 zg3^30d5Ah#zuowd?PLxB5#(}OK^Kw4L>=TLWer6gt#V29gi1NLaVeiX9&){}cDl$x zf&@;PfCaLFsIUCSwKVHY1|v34YO;iXw~27ZUMHMv_140ZpuZ#Lvn}|Q zT?}c`f(9uYpKdR0(84C2X#i7*8E#J=J%;9B!95mcjd{lOaIW+zwe*ERtDc1REcp*qeu0~R!U(MOzt=5o<@whsK17_#Pc`Me03W|eJ23LsB`CORpog%+x5 za-9PSur5EpviXu>wMCv^ks){s2+lr>-A!+aw}7HmY6J@OdJ(~<$`GK5xvk_cyoSXM z1}0I1Lv~^HNx-?_Xq0gl9F?zE=A>9rTc5$W+l`-FwkG82e4LuO6q3^Yf>6q^d*8C5 z9r_6ZLF-pRVt0UE0~SJbqu2|UcGyy-jsLXxDs;YAZXj@7<6Yxi4iw(ygkxk1^3_2%4Pg_mbBWC64&m2C zi;P9SRzz&V*AS;B8J(zbF6P)3jSRsVretR~J2wRjF65Y8h|(>&_eQy7)?0WJ-(e%>#9dP3tk~W|@~Q+RX@`>o%?64uCvYn;I}szv z35eD-+OlGjN-BWmUdN}l@A9vmMJpO_k*b&43m!q-XwnVLeoZuV+F$5$AE2{l0Rtqd z2;f%?W>RsBlnjzD_ib-r0t$qBr2~JFfluZnr!?*YX|l2SW&_&uag-xDp$byD1M0Fl z9%6tkMT#V|b}b|dC0ymAfg^JzEe#)wM#{QHn7w;U@W-O@FB~%DwHQQA_Ij?kz1Q(} z-~T@i;E%pG|C{_67$Y#KgM$P46Zh$+&l2xoFjoFi&Y*v^TPQ%_06-do)DU6axH5}XX-tMsT;pT8&$uSaJKSDqnsJ$vdhA1zS8$jH9(9{R+XgFQ!qtP=b70ss zSKGrnvNEkvWFhB~S8$A5NuL0v$Rsa?CW`VjSp_$SNU$Y=DC9Ubx8TRl&FmE&%=nCv zN5_F0HLX%LGS(%Nt6S4J>o{GYL)-U!<0XJN;$ zN7sCHj3K$ve1@XB$=xSADyh8p=il!GjIJYfT1ycEmEZ?dZZYwg4!d ziHj;iOL+snFeyG#4+FYIQ?cH>)~PN#G}!DjCX-!l|FP|YB*SJX31sRka-ZTsWh{+u zo2a(%f_|0P(RyWJ#Kc>#Kap?{yt=i3_yzgIUh6Up;+m+dmC`<4^O7b-#1{ULAH{F%t=uDd$CBz5?3BEZ^{$gT&HS10Z&NOqn=B>clyuR#e)Ds zT*o9{0?20&I~i}P;N}^6>~5Jd*dERngz2p@Jlhw6Tk%#8Vmq;595_^>V}kic()*5w ziM2S(qJ8MEu`LZhFI8z~Gova`(`mnCJnE8F zBd&ay}$+je?ONk*OBg9+}Om=P19u)& zYUbmF&U@%Sbt{|W-oiUwsuI|RsZz%6o43%<2SuBpHiL*JY(w$wyE|lLdII{;d&*g+ z3y2uDw;f&}ljOH)cJ4W`2(dLC_N>(fcNNx1Jp&l2eFTxgvHp9x-B>+Ja*kTy^NYqz zNAb{A2yHJNsfmjjX*s0MuAZAPUZ#%IR@QIjE=Lt1B<%oERs2zDVK|ZZE2(#slfE9F z6_MaG3|Q2KjdSGv3_gRJ)>Q-F4#D?HlN#Os9Y#sNEwH1}H@=->2PH8yyPd+&^1;sG;!CxGFkK;>sliwmDLio(7SAbXqqSg9Lap_ zmWF!XH&pyiUfcJKIj~C7YI#FMmXP1?4KB1#5pX_5d?LHAxzZXa;k+puoMZ1HX^_zt0k25a^z&#wRRZ z`Hv#~2KqCfXRn;EaTSj0kIUFMe;K;lDNL#`hd07;Ns-gDL@PMiF(lG#BkXqvp#^hsK8XT6kDJ4$GdMpVnB01 zQ^+kKq=SH1l5YWhOhpQm2^jf5Ss$lPZaI(JkOugr z?Xxt*WWrwg*hX&_q9o#Afju2%T@@ig$17%78mkNz3bJ4I0vLyAfI-47;RT(2+XZ8E zh8$P2KpSbND^~-zBw%X>&oIEiZ9B-cN~sQ62{Rn(Eav2b59Vl-P*83W_BrL)CW9sB zUV|+dRNhhu^FaYkse+mdNwOoGEa9_5Tv);27Ax>bdYIb6h4hk1UROu9F_PNbi<#G` zXSO(Fobou+m+?5acnl#F8}kf81bJ-*ue`M3+5R1aZqUoI*3Eed_H(z49veQ?{IZ$)oHhIen)xp33KmZbUc=9+x_ z1znrWjx%G0O4SW-?-Xh@(&^r9J+sMZw`}INm!_7C{9SBzqn_c(b!7*GoJ`MJ#(3Gf zxV!wB?GJ*WDx|@QzS3J(fEf&0lQTqZHAmIY0{J*mYOy-E z0NcGL{VeB!CuGjNO>E*+X3+7~9-NOA#!ViGC1(BsD0PLJb(m2(qADGo)=^lHV8Fte zy4+Ok5mzaU4nrQPJcQPnqLZW#Jpq?pT7E$NpHy;A<)a zO2-M`n6M(&%IjA_JMg2gCkFVOIls7x6_-N^FTRqn8(Z%UwAkEiZNmr-%XmCqhU5jQ zaC-ij01HaTMKWb*mA4F)kPrfjg{j}q6Fb^OY{vh0bJH9aO@kq@bVhbL=WGN93&`TQ zca7x|G^@czQ_q(hEa<2eOGw7K$*Ab|SOC*FZtC0T0^ZkoxC`}0A@Ic3F2weBJ}E_g z6bbNn)$oV^qBLSU7n2}YY;8jTV`P#@RhA(Bp0VEL0jxdMW0pXnB8((nVZce-ax(vq zP$=_Mg(pz2p|%Q45S|UN^Q8M zTb=@D2(Y4reN2v*8jJv&!pa*-a;!~Eig`e-2K^PU2iKKI0&zOe8mn9f{pX#=#MLMC z7~}DGeEp$1gdy??6m1ULv&K=F-2)9aq&RPyS=3dvo01{kREP=2IBrEODZJ!3ceHQY z(*%Ngoe2U>#YSfka+yE1c6!X)Zpk&Yr0tWFQ)~|FMTynhCK+ZTV7yQPd zhN}w(!M;tghQhPM!0=i*WLgpA6D?)v>k?a4Ee~A=B|D|u%8kJjLaxj8i{b0b>8ZBp zsOW5FVw7e_tcE@?pi0`#=bNV`Oy&`7E2G!lhy%Zd&~i^|S#4q363f+T)-v*vo# zy*s=mx*xUJNusT_M*6~)b?V>nP;#%o$q0ABC|a+;zGa~tY>)d18>{}$7G5CHM*77j z9-Vu)huBMQ6*H3tj&>|ia2Nbx^gox1TpeiX zySOJ+`(+y8Z%YVdyp7A~t~5lRXV<-$_i?h@`)S|6uNtf&buo!?^v${tL=M1#zF^Z( z`wP45HPLuVCKB-OJJs@(wDfglo}ttAvkjp~J&ETuE!r=hk+L^thO}F}KeU(1BXXz? z{EM%y>mA8()ahjOru<{ePaM};3fvIydC_#;4Cft2Y^B0r>XmJu4D3D+c7YYj#`Qwg zI|F{NY{sasl_vdahRi$rRW;c+I>90R*wm4_Le9LUhL`U zTw%``!X5~VuF#^7#u50Bvfd_Oy(3KZkjbG3l(n+3`*a?glQImtpCo0L9Pc|}m0GrU ze`R)(G^d}vTJt>aUy7yG7yZYvmYj6S;ZiZx5SDZm1>b;2oLN^f_%oH(@%yxG`=g8R zw51PvuXU*VNlV*_z*Q%AeMsQH>>OzkI`1vA-~Y(<6D+1JiO$d3V)-%j*jp0qe?ANT z-^_JU0-}EWvrkA>Yp=I|$$r`XSCFbG2|2H%(}ut~OBMT-TMsAZHG)tMi zo)!QN8#ewA6CZak>>|fd1#pNrGX9Zn=Bm=!9}@!6$Ss+H&(Vrao^Ixazjj9yaF0|0 zz4pWq?yN`qQN?~8@^+G`tZi!-z0{J~^nE?trw#3gv}UMdDE_{D2I5z5x0fc#y0!;B z@^r|N)M~9_ozd7}HuF_BCwt#8@9Jg)riAaW;a%Blj#eLvzP5%lS~&^l`|k=qe3mRa zT;g;!xQ0ffEQoL%NC4CZRoMYx#aG}X@ ztNdGur}g@t=G3>h>%MIL^UT2}{11hL;UmlVy}vFU2J6tBr6fzy^Sg|GDxx)n3HsP~ z+*h~CrP$AWTztZZJMOs<(T_7Q_5x}LKO-gl@K{-}(w|l1bBqWMQpMfSYahAbI(Pwo z-yIIv)*ESI++Ko{$)CCvffq+&w9yGz+-`cjUQL=AUq9h8-qD}+J$+syku_L9tfYb@ zdL=U9uWgo@bf%?18j9wkJi}#^&KJ2*^jLxqL;Hd$_rIsiw z<>l`->y>;KprfWC%~$KY6=vB$QJd}-rFuJ!+KT@-?m5BskjUJB+9ZfR@+C8Ux|jH$ z#4#_u_|es#D%6=CHU zQ}DMDk5uEek!QS=GL!cOp_`|OL)|gYAnQPr=M-=3ci$(LlTk|39+o)7k^W6ka&}oO zjb_bn`XuK9`!yZWQj7Xc>S{b1Khtcy>^6OfmfN^v=G-wK*adD{$7?T=fz~4KJLyq* z36-aewF~5*Dgu_5?Hve0d;TD!F7f=1g|+vk0sn}aRonY!;2Nd#TCiHLft9WEbWnSv zXkB7+{mwk=KvCN5CB6a=Eg`L1%YVqX6BqZ=?0v6mRDUaJ+_Kofg37R`^eK|UxW6t{ z7lq!!*{TUykY22m!y3$+GIW?xc;%hCGNL^ql^l_(yz}v=H%m@ z&U>X*_UvGBx>fp+#c7a7nqZYX<}>KZUTnrah%Q(zlS!bLD_+-|SLY-3$y1rw&-DC9 ze6WP4TaMQMXm`;Ew^d1_618$u`=m0aDgMQ>lvFpFfBWg?562iccr8&EyRqMJX2)q? zaJNJIWo4#7wF8uo9x&RUY+y}#mupDwnuUE2BoKTXfdj+ww4MOG$}8r1rs<&`WKqnf zL`;OndImuct?~AOAM3kcf%y>qhQz1Wehr*5MbfK2-boktqYxe2O2qXB4;S$RCo%Ux z7Lx)owqQ~pjz-Dj{@!NSYFz0FAi8RoOoATQZ(&xC#PmE$P(_Q0|E&F1Qo?`e0iB-z zhZj{6sJ~Mt-ZxL@E8qBhQuzLQki7QA|Le*JtLbI?T@t_cJhNW@E)cYuPtbD+?1W#2 zG$I)`o9UdmPR6|?Uc@9C`y;w#l=JnQ+L5Q!BuL>h!;&QE2T{xyfNw+2`-Jp#hN-tk zCaVVD%%h}2E#pi$)@)X=e(Hy7hw{?Odd;f zv%f6doXO3<>|}RN_Uv!o#s1?zitoi(Wxp%}_)NL6^eUp2$Fcv6($_y?N+=%p;*NjG z9MdC5IC`YOMD0pfcpnk8ftyC_uA7&1_e$)2!k-N@R{{IKk=O(9m@kSFA2NxO& zF*Hf6W?Zjsj+^e0cCUIkXRsrKW@n<|QMYUel?ITr+4#D9W~n_bz9ylKC-Vprg=Oue z4q6yi>T) z;>`J^9Pb>ePbz^+_NCMPQECF{jRo#A`)Q*l`K8Q)$%N4-{)!|Ey=Nh1WEEN zUy#JJXtlJn%jot>O*IG5j}`1@$GB2#EpLrFNh^(V^jTOJjo)&)Ix9AYGMTnh_ul3NWg)5SeUxhhH&+DtpznuFB1*y0?M0yk zE1jN*>}HLc2wUgFCG3*c93@?LfCzg^MaL{vaf)~}NX77?U1c`L>F-%f@R)a`7{Z=j zL={olL5rRqYq|NOxLjDCB=}~ZgJ0z2-W#+t-7)Xzdr4L{N;_Lp%H~$jVn6u*M zgMc`LKjjnXM5<*;zWwq4^(93np7-RH=P`Mz#X4z!wR+Sbe<=Ut{@(tZ|KoqZOO9U} zG$jNgqQI70LejyQL*T37*#J)@km-Dox}XQ z{sDWq!WPDLZ~9^Mi%XGJz)=KJQ1I_~klq|Y_o5Sjrr1504mG3LX~dCsHe2B<=}R0oCS<53v?pmkyw!;i zO8^h)7eGhAA0Sqt5UXS+!{EVNT(O>#5O|I~k%VoOF!pw@1Px#v%ym;DQ+ugE<`q|< zCZIIs4_^L1{c_NQk`c@38YkQ$drkyN#8C)f${?!s@*Sk04hsiB9-w+eRS$zOm2`?V zrBZOH9H9r)5iP{i*~FANyKz2*r@Y4qDv5RmaDqQjB}v}5>~g9vF+P!qS+(kFfYJ4< z76ag)t*WR&*PBv8R3LMfs9U#FQdE11QZ0{>?R`;EN{vW%OeDlYDWoYDsXPtTrV;TV zJ5GD3Z)qzsQ9xj-AXRK7a6X%QR8dsGRHLmbp$d5lW3OtN7C%&KEuz+0=}SjTyngH$ z%rKr?g;y21amPh&s<}>4DWbp~()7}oVsP1(gQ2l%^-)*z5vFdbAnf+-PKFR=JD*-7 z-d*1p1kZ`7P%2(bC2dj8#~l`ra8e%N0dunXZ#uP9o{NJ+`=EhgAWW>KDv7TF!WB_? z{gbt7*MybelS_GIPq!jx_S!=%t)-*0|7CTxP>?5;7KNs!1?3P`-T^&+Yib>$a9e=@ z1E~K{Q`d8AEf2*Mo*Jh=q_eeN-33!IPmns^sFJIz90g-+YM@#}WhqIxhvk>vDA+(S z*3lqqbE#;J$_T8W_VwjSRG99-tju3@1kC}@$+R#*$QIkN;j(99J*kQDH>T>8ph4N@ zxnAOWDms}l$rHl4Qq!&`LXgPo1q#b?y;rbqT?g{DZ(rC%EWY*;7=E52V z;Vq)P{kN3Cd;GzDU&^tmN?>2b(u_Yw?=lXHpKbd6MZVWU{!C7;>H~cxn@g)7hbIO% zHxk5hR9s%jy`|=NLdMSE!Cz7Y^V46mx$5pGTE#UQD5*I&kmbDig1_J8{`wb|G*E32 z9UO&9g}`8f`hY{^=op*_=McRZ{1BH19EIq?U=?sUOK^$m2bt>h)$dTA?a=yF_uStA zsW{Jh@i-5>q&9p5}uJ*)z^T)W7PrPFn!I(623cTKuE-En0}lq%WI}~d3q zqcLK{6&#lMiu7`cA#LH;W-d0QMM-o1hkk2(fE1Hv0o)Q|k}XeVqWs$PiW`NL9MS}k z<9vzgx|h4fJ$l%#Fj{``-u!DB+j~*pUEVV0K@l{S!aIj2Y*d=F&-IMJ`i_~jZUGQ5 zo&W$bcTgk%0B-;z3X($+#Xodn?S#{%C7Qj2DgTVSlH9%SYW%kDt~j{xMq;V*T}rjk zv3=W-Dr>2o9?4QvN)^#s)sv`FzUS@;R{;PbngB2Y0DZ8V!il6{yMjc5?GQI?JL;%* zw1*`LZIau}4t7 zn2OsU!`?~umB(^)BPB&7nh10(d=_hj|; zSZReV5W8QC653boQ3v;N5+WzFj>aCYUqbO{hD_;S#nc=Dh=}~hHy!6m)Mv?z;6>G? zoiQ4FyZwYg=vR2&+`Ew4!jRX z2Ru}ec}UJmQ%i`=ML#weAR_;tzwA^ykUHRK@WjsW4=F=x>-upQwAq>#>7`Fed@CL5 z#!D^wjsSxCGKWl_ne%dWmOB{QEgy>zuzGn$-!mOl6(pe2gO9jZyO^725+{?dYWD-u zVq*+?5K;%(42aQjFIp+ct{XaHq&9gegCH7cAGAS9p2#8;Xs2ls2)@{k+ENAgXb95f zOyKnxh4P4g%I#_e-hL}PPB(p;G(G`m7W>NI!Lf46)jO|csIT9SlP$l72aVH;g8V*L zDmU4Ad1)3nDnaOktd)GAfm9exH6Fc|{B!~(D0b<&noM6KR5u}G9|?p4YNVUvYQc^?cy)*~y)5yrju!j9aj`MOGp2|ubm%uiYobrK4(rPo zxN#1QnGAlX<{@|vS~`PG>*Y+d2iI|?73sntGQt-cz0v?Ep6Wu#`kaw8C1$|R6yRpS zHsBP!>KUJhMtM;na3oHYqmuhpiL%xCxe07IVi0yLt`5S8anZhu$CS&MoiD1)2?u4N zWV}wzt3MKLObjXI{p8A>9J>v;yl8p?n)ccU_#Lh}$@QM095tmFML2Uh+cPr#EVr;= zyn%%A(MK^qg+07@W8+${TQM0^HL_FjW=yfPgk`HvsoMBK zuSagG*ww*!;P8rB9@ONg7@|=^&l_Eb#&cV)m*H8TDjR*%aSR%^6EaY~&T}%7A@s}H zN{Hl=f_P~&pfiL`hJu_m=WraN0R}JxYc$;FVW47Mw4_5r;%1c07KcL06WFj00JY){ z%IErgYM8RRviI~J@OSu*G%iPrveudvON4)iG6lPt95P7znFWQw zIf9oV1TKM@g(wNYeNbDWxkqV>w`d4qObZuXJ)(u&lOT>fJ@)~<-V#wIy2oJA-;rK` zD$-*p5Os=T*q*K?FlWL%3F9x@#5b*EP@c!@Vg@l`OXI`?S~0>cXiDfS0if7J=Ozp` zHT9K;LUbQRMgkz&&sYe;A?doE1qpks287r09^ViTI|lCYY}V0nU2q8ybhc3%IG7;9 zg5jF`R^vW_IIL#IKqgeAz@aP0!bul3I+l)BfoB{Ns)&_g1)!EeU2pC`R1d?hs75+D z)r&JSL5q{o83z&)5R=`p1-AJKeAUKz)b+rlxa^)Ih&v(L1Xw)X9f7fTOa!Dq!m+?9 zJTST*JHpiPBq(x`aCFXYEj5Ry4mz179A)3nqZ<1WT+7wS8>c09q4HFI@@=m)qAP8h za|hY^5*D=yPe?02RHL>yQv$!r)9Av&_J+ zBwqo)tBo@pk=Myhjd@ueV$?BTUx#AGw;2& z3gWBpZ6dVVzD|eXK1XAsLVycY5-F_&T9n+TO+mtq_a~Wf1$qq+@J1gk1WgddV~1C~ zpt7JZL2njw&O|Aa8ZghDBC_ph$wmdvSK?}E2z(l~@K_vZ&Vz-@T1?&cnzq40d_yS9 zXs!IeTmcVe*d6Y1%M?q_TqVRgKxu?@+oDDaM86xo6k79C6ek1d%Nti4X!dSFp#?1O zgffRaj_TX70AnLmLU0LXA-rNAs>pJchQooLYG@1Bd5M(nm&DxcH2`gE*g-!Q4(Bvv zW^6@cfG$yNF)HP-aK)~SeVa2~!4?fjxN&2$WoZf7EX>LA!Yn6P(sN{y?%q!SCtMdVT7zoDeEsvZKf7!V89uwzOXZE`=*8-qR+at{4j1e#pS8UD0jVtJFT(@SGlv%OS9LrWXhOGiv=7^}p^9>d-r_jVF_O;vOG>FoF zYHDK0mRN>%iu$Q}(e)-_6HRzHTsgvqvTf-y|2GB1Y_Jf(HvNT34EwegG;4z*CloV3X`%`PMnE218qM78>MF1@rOG}^1Uo+%M31st%ze;+Q zpSyb4(s*4It6!Hbva{Ggi^iax?97&$I&0}Y!z!Ns_B`XI#D<>Y=x(@ufP=0nJl2kr z=8HM5UpOOZ>oQ}<3B}d6^!mbXbtpYP)a!bW!3zmF{^MrpI4M_cOc)aK`ww#DH2sKk zeT9z-OAAHi>9(8C(IT~~{6)&{(V>A++qu0VzZCVv{wl2(a)K_4fi~I^=hb_248P|| z-((Wm@}>3gG}8)TExoTiEWvol@6*C4zd`153di9PF&XK+;lf)lN3io=*rUpG479x; z+IJF<)RK#+0=-4oqrXmFo}tDlJz9nJ@Phl;DpO-xl99oCs*JjX&RBcs(Jyoi`cRg%iF4B!S z?9pIIU&m~`R-te?*EeL`1@zQ#c2v#1o~{PqkstmiQV}i(!siUU5o|QDD+*fKRr+Yh z6s79!h=gd^aF$N~DogWgm7a(OoBUlQCh;ls4Cc7LIWBOo>K%Q$`N35sRLZrFP~-P^ z*v23o!R5SlVSe%Zso2@q_SvZh(U9%A+%8aU$kfD8$rNzb`F*}ssXo4^*hu>%m{*Jb z5`mj6IXbNpQ{9h5AHEt06`~gM)otWo?WSYTgCt#x^+g^?&zRcAoLPPBel9U=r+KJQ zz_*#1YRSh{TSR=8?OFQyYW{DZ=3zG>8}`Lnil^on%A-+{q))2^r8@B{jgb-q8of&c z@ntQgC#1VnPv#q8pUgCB^2?MMYw-%aY|?;KQd3FHy<)kx7VT{M+c!k}I}R&%hN&%7RL|J86QLrT>}B+cGuJnf8te%v zqs}Wb!hoLAo7!>GQ(hu4pbGJpK3E1%t}90o+1t$ifKVd(cYuUwoQZH@^(0r@SYsaag)6)COYOPfP>B z0yo3(TCo;2v1;PN@HD}xWCgiw%zw=;=2aB{V=b>rabRRCHuAAOm@A>YRx~C(&?hzy z#(fa&H8utp3H>lu=~??*j=7oD0Zf>LV5bw7yD*rNS2|tvW>g2k?O0Xi68!D}pH{V3 zr2^2nxm{K!*|u~qRksgQRmw$fJThgS)N#TR=Dd5|kus{&QGBFp<+;JmU0FQs8%NW1 zu4m_a_%++E819?u^S+QIsOk4$Rr*O3?hVu%u0bx*eBJraCM4R0*kEr$_p3atfdwy` zGV_gj3lBUa9Xhokz0%TB=UCjkh~*aGR7=~y^H{Ilg^ke&aIT6;?ZfHIEp2R=$^+G_ zU~*;Kd7Cb6faPFF3{8;PIF>=H0A=RudWP^P!fe^$ELTIpr;XIzENENyF9oik5pb!; zU2Kd&2j4y*>|v7Rw7NY|jhz;~-;>OwNp!i>r?tVjTpV)>yB&Acfme4+@>kK6$~w(W zf;{TjmTHK`HS5I|fKff^<}8*OMjs~JG#;Hy4^N`UjmPn=5F9ah9Q3}@%t#>%xY#&F zkv69rEg$S%Jg9BhXaG(?vA^iwB>>zY{U9!wuJ8Q=UJ!=p6S-N(ew%^ow~D`0nTB`1 z(o>4~`nAi|t^5PD42Yc_|a#@1}th@%` zp)nOUVx7iLhra4sSQJ4w?ZC8znDWRY4s6M)(|LJ%Hcnq3p7r@hQtpKQ z_CV0kqjaUfxsXMIGhpF-RUp|UZue}TA{@W!EJtLv(TXd=8mF`1{y`z=Bd&+*q5HT- z_1Y1f29!#as-!T($SiXI1&ryJP7x@UI4?M7C2V7M zQ)A(fESF?-n4mX8by0SH$-6GSuG1aGWbvI^sPhWj(+E~0q1r((3ib%e8&yO_D~;s) z_2U3*o^5g;`z{5K_AgzZV7SCrnP!`2=GpUg>+Plfy8LGl8ZM)x<>8!f95swOF8&AV zVMfxk5FnY;vq!oo2Mo(O3Jx{0wpjw;O5I;^SGtwgXmeE-%J@T2qeZ!Ai^FWWB(bid z5nQld`Ul|&Q!4Fa&n;>*zcxM>D|AU0=;~*ye3<8salo;PlmHx+G4epbnU-K6!saye<4*`#vsDhavGQ!;x zFlP0UyAjDyehG7B)8t3kl%uNuF51IjVa_)uif*r#G{`6%1p|FY!K%X1CehZ}*q@a$Aa;whyXX z&&_F5M%s;g``G2l-M{L6;Wj6({}{59r>@kiz1iF%%XVjhGa(2TTi1Gp2StR|8~E$j zra%?=%C(@zWd>(YOEQIeW{`seJ{k2=9UYj3GHw}@z+lpo5d=+0W({>K~5w3rSzCJ+1i zcR9LQ#1W$b#luhXYQ7R!k{@RMRra-y#ST9siwrUN{LS9oc7Ve5oiB*=}rZxBK}`b-oov zM5!eu_1Ah*xRF`A!FNepF)QnFrqs%aXIU^ub0V$)WA zs&>owh59;`1noYCR1BC4bTie#$f&8=684|v7prATP74`VO-1p=bWSLwdZ*R_sg~in z&E%s0(sX5)w)$q-OKWpD9Doi{&8=c6fHa==HOy}@)rM4;fIP+?_T+hhz($8J-26GT0VC)y+gMylr z>>pE4=ht~reFEiIr)W6#JCWc&>Z~J0hF?z+`6-M#7N0ZP1|Na{B1!y%{LGrfKeM&= zAM(%dV*ftRmHe>$BE%xS0-OB5NoDh|tYlJHWF-n$Mcrc-pWi;|enh*0@NM6(F1~<% zO+QN{rv9xT`M3TP|IUA#Jr`2*FZufZ(dYj&l34=&1S2wS&vOeK)$9-pL-@4j=+yz-j;h006`QjsVeu1f)MLwl{(X!vY91XUtMq z5Q9Q|K$;ZTgkgo&4g$#FELxJ-Z)Su{l)(Y$p_`Ea%}l@%fdLfN+yMT|vZ1%@@AfBY zMLby*W(sP}Ya=P0nfAccJGyskb7ZTbZ0CZb+HAPttHM2YZv+)3Le5zmLq?)ZX3)A@ zcLy{ak-Hq1gH2!>NPm6>V&Spud}ADX;Q_{ncb0Bhz`cfA8o~V@x^Xba=!^h;n58 z`2YPE@E`E4oId%Y{ezB2{D3pRSv~wb%A6a5|Ka_d`F!-&3vax`zxQrh z@8lO>zvp99-*~^Ec(Kp>$LP}Slb=4u=O;O$^XA{rZ~ouu@Q{$MT7D<~)dTgP`a}J_ ze~OcIeUMh4?{a*S=dV_R{;S*fn&^Ko9%RfE8m(TSZ<>vc#D(o-wf9AXC zcka9S;r#PXedGBS>R0AJ>@P{)UwmKHf1Op<75k3;xPSV8+mCOfKR*8r_NBo<>_7WD z-wK{keuVuW{EPfX`d>Y~e+=Kd&#{ZK-@f5~&Kc*wzkuvxc>L`*VG;-N2kdk0XC-ir zd_Ry2;J6lH+O$)y0r{6tpSD|tlG}$BkHzsy<14qx7@&-s$Bzr@Dhd=t1EsRr92Svk*t?I@Gof_VUu<+ai7CoTIbk zr1mK!_i=u{egx5j@DU%IZXc~aX6DPc4#n|I61_$DxhtRgbBcd=(+eJO6?6+a^sTR% zx_r{#^1A4L1M_zaMk`5;+eCc}A6V*+6_$5P~bm8hLPo$IRwb8~i z2|9YPDZr7u=Wn-eRq5%XSNRAbw5!$Spkp85N?h!ZCwi2fS?+tPt5ob~3VnJfRnA;` z^earK75(y4v6e;a*-5mp07Oh);SddOUB++FpuY z_0Iu_u=OTXUs} z*>cfqKV0x=df<9Dr5IoM-!`=_?VpW21K%?4yjSUaB)-`Hx6L*DaF3OP=Zc)|Hh*2I zOXu=pWF`(=n;8GXm@nEkx!n{L-jWJ{6H?oWQ}?hz|ifb?{z5vnlgpd*i~TCMiIG{q2D zX*wvpEmuCR`r@yT#{z!im*X7YI@hxvh})JbTdwr zPUzm>nt0Z?_oW}zC^jVY_LBrq@_j>pe!{CYKcdS(J3Y+4u}|v3@-0fgn7*!W#(${3 zu;0$tkNT7?dpf_pzF)c)6Lk+f6hdLYUt-5iPpPZJgnuu=^u9#X)aRR?L+yR-KfSke z1*6)7nE#(nS1Znk3?yURqu?t(Oe684DbDxmTs~?Q;9M6DZTr?!Iyoe zzwqoVQ6Bp(?m(4ZBmXM;?4eCt-uQla5^0D3C$jbC?LMey{g0xn`>|JAg!=IJ7kxrV zE?lqtu=V}aei2{zYxq9ZrTb?h=6$jL?BF0C|ChHd-K5t~`JtS@Cw|keQ~XE&KF1Sm zLAj0kebMFh@25LWy+AgtalXE3>kqL2mi^za^kML5KWgB4%&DmV@F!BTpuRZ&p#N46 zt@gg#2f<6SB>f{+73Fh2ersC|9hB1`jsI^6rS&}9xeu+1SoV<;w^g~_?wiy_i8(m! zWcuRq+?V&_E)U6`vLB^pDmQ=E&9>-r{-tri9(aRVh0BKyAFHo<{#X|;1k1bq&=rrr zec$sBw4X%>@^CAuTlk+T)--4R8NH8xYDMYveW-82)l9mNaZB1ihKeLnu!{&>b$Grs+SkxyrN z{FmOsOMhp}a8AE;IUDcH`J)HV@0BsX`M2Fr%*z+|y~>*p9>@G*`pL|9&4+$Dh%fnP zZpV<~#M==YkK^srEZyI;zYX2WFdr;`dv_B;+4dMr$ z(4_WfWnNvr^s3J+-u&g=k4E{xYoRuzv8D!f3iN-^JmcqzdY7(ljXe9J4Z_vAmZPv@o6pFRhD|C`Kg|ID*=pgzaG z=RCKG68e2+E@m|zit$W+#XN0%F;}sFc6xF>B|1;V| zrT)9V?N8VL^|Shmew@f(rv2~O_Qh&1-#J_JhvrcA;MvUno6p?O`lt4HeX^f>-d*)i zrAv?f-?NmhUjO%>=$%h|<57TK?-|dj{^pm)r0i#T`J>{W3j3Y&+2?U5l>N?k+Mhqa zpZAY*kJMk(ALl=vUujFRlhCX)kY8xnU~zuny6;oqw)x%SKmHvns?k!IWmbuRmqH#b z)w8lj0#EGt1M4U2y&6lQ3CueL3&~+VTA@%TW)WONgV1!K}jWu zU;_J-E$PYBKrV5q9;0UF$L*TEDaa3>C7zkLf-sm$8C;x}z%=t!!K)y_Lm&zq0!_(u zf-*yEXB@dPmIQ>^B}0jx8~AJQuUI9$99~Y@(sBM>nqOOL-V!%~&!96R3Th=MH(5 z9LqSpJNIhy%%oRRWEdEC>^8(5C^seuu}nR^XOqx+%$RmbeANg`U;C+1Aznrp^fSK-IUX}I#zJJP!Fy^h35bIg_7QCRomOQS0$`Og04Ib|v>5Dans&*b^ zW^j5~r2HN(#H8nzF3ro=o$}8z)f!7aJ7ac6Yr%NqTLCF0&fx8C*-Q_SA6u+e?X6do zWeDD*Gv;Uvk6^e$dC?hFV3pphPLM!imU;qP?1`7-_Nu&HZSU9eetcHyjYXT%GWD8Z$jkgFlP_CPfRy5T*EsO(KM-ajzgTpA2JlV!Q4TWWx*-B17!BUm{)A zk%<&rw?m6k-Djb1neW98T_`NI)td=8*2kCX)Hf$i60~l}rHx7Y5za@>S1Y{KnXpV5 z$kRj@Qd*>5=;1v5315<{BBz7NVttH=)mNFfn&?D=K+Dp<8k}#5utr(N^)`_FFl?`i z)Vdv#qg*EHGu186bnb_p>|RZyZN0}1-c?m+XN7ZpL4qWCU%P3CMlnrQ7&pg`M zSJWwjxX0d?ueUN6kUG4cQ0PH*d0E25S@Y-i;?+L{$J&pXAFlc~tU5WYXex*lWI5w= z|GKOee63o2I_RpT#!gSNthX62SDT1()(%kRYFSPiqp;Tgf3rFuCx|i2PkujZ@^s|h zqMXX*D-G&ck_veCHKA8US}SA&b1FM-zYLQ$zEPM1fFmbP<5M6jHXZeGM^Kkj+CSFl zO=fGsZ<+~@-L01XC@RsNc~zo7rx0aEoo8f`baLbDNnD(X2sVB%E_=Z3*j;S(gmj8M zA=2gDoT$*}WyqV$NyS>BTklug%A6BmRN0Xi^nsmUr`RMt(9}^q0%cizW>)73q2R=K zX`+*08d-3>UKrrbbOIi+5?I-$FQ8jLUZBp4HCELT#YI5V?K`KMGY^K@bBgp7@jB)^ z4W;PHOki?Wu|Z`_ZTJ2D=SG@v}K<*|8w5lgh zUQ-QvwaaPmPWS03iTb@f4q{Zj-3cY_!+0d`athULZWBMN+re^x*39f7(2VR{K`0EW zmd~r40*X0ZPT&?m?zyf0t1qm^)1wwWjG@~D3J?Tk;)?uX4FZ%iHf(|u__NSxGe~*l z6Rfrcn#wHJzPtM5`@MwpYI5wN5EwdJ_DZ3bNDx$g4b9tpT{&hJb&kfkcCx)O+zb+wEMfCQ&lIZ?gNYyxfD^mFf=#J?hs*)Dcodxt2&Y?@pdHf2OsWLgoAq z$qcl2?WIspd1h+DgpVY9>!MKgiwXBxM^;r;1~r93+O8&0vgCgUqtr5x1Ng^~m$xF* z5jpC_(C8JJRa~-JRol8s4Bzrxp9hh&Qt!*-gIK-OZ0yVofYG9I-;!i&+|nUVl=}@5 zEfXtpb`BmYKx74MhZwPH8&waj*E!B$7(a;Hu^j^3zU2spw{`?*#Fz%?`JwwX+F>Bf zIztTfSZflWo}VP{_RIAlvQ=cQMW2x^tlc77Wu-e~10r+V*3{}Jj#*Oze>%I7p%_}d ze2DtA9otu=OxhT<5L!Gl`885NEpa1wvohP!reEY;S|ZjUh1L}t8x>qHV*q!vco1*l zcBV-e&82OIupC)ap*?QfmSAOm0N!Rb3|pjTA#60;f(a;tJ7IgBOg-TUek6yaCseGY ze5o8YNwFmbTTNP8gZwfhHx9k zJ$_f)~QD%_IT`|$v{Wyf$`J(G_&0jiBU1bTLJ zEtq^{oFI8r7zXuxh3*Fki3jBPHmaFh#(;7i*BG}k7?>zbmzP|-YbUM>KRy#+z!|OJ z`&ZlBXezbvb`_Vg#>pauj;1MEPG%zdG}d<`ASkBUgN}8@@f}+B+COgb);T` zsl`p}$3HYp$IwRTf@GcW^GTrxt0l0sRZmZb)p6X*B$|P$0Za%Fyzqp8RXpw{{SyB_pzZ=+`}d2uK9NX-XC9p@_Lu`!X~45RUfJ897t1D|Gmrn$C7EKsoR8ALe$7Jh@dYd@n{8|60TUQ(2dOD{T9}J)?XD?{n zY{{xndwFFx!s9Bb9QHY`*(+Vu)<8W4Eqgs=5??Lp%YE9OYcp%H71dV>7V2D50f%o1 zPV#cJCfEg$hiOu4o%N6Y|AXwgd5XK2)k|h)w|x5Vu_y3hyO0A>%JgJZ?Bzk)EgOUd zwjOKKBEa5S#v~9@J4k&sN12Xz=)y_8ZdK{WJ07uSrrJV9@+Cks>@H*9KhIn1ZgS^z zjwDg6FfStAT}kN35}ELbYhA|mJ76HLENrfo)G#FGmscAsQt734EXjj zCLL_ax1pjfukN&9IaY8o=RYe)oC&{A`SzQ96wvRC4zJWMfyjE64 z`N$crj9}FvrHya#!}?up9m;+IBskMuD+h>VQ{Ryc+=bUN*8uA3)lJ&XGi8ErMXl>@ z#??-CDi%WxIz1c(fYrAXxZO%J4Pun5gS=!A77n>WY50Vjur=SxPh~_%R1;)+xDtMMpOC#Sj}K zCBRjR=`?p9a;x33s(frdKQs*m;vy(pb6+4H z7@hV~CcEkqh^YKl-zr;Q61270PspALVSP$CB*Pl5{{Bd1{6n@5UQ=h3nqGb_yE+2B z%1%|HSXxN57Gsrwg=6H;o!h+xX$LgAKu|*+3%W2fq9jtu=M*62%NNn6r`_*!HRqqP7d`5=#{4?qef6M?tx@Y0W#P^Yv{V` z1LK0Nhy~$>6$2CurU(hG*d!v@ceRjbdmuxI5&?Ct_ZT^ZM;MXTt0-+Z@!SzbZ8*$S zv(BQK=PewcI2x3FOK5IvDcf_udv1{_!T~e>3APWqzO|j)fuD3Ox^|3ZcU{J+N_c<^ z8Bb*QUHCAwTBmi@)*QDJZlV+R`TLC9Lq($?O1!wCa)Q2_fW-sB_d`Q)Yg-j|pduB8 zT@)0g;Js3T16fueMrTd&vLm|TL(v7eIXc6aO&I%+;;$J8S;6@UH!f~y$HN9&aEw_7 z7dIpj^4O-&XPp3~A}OL>bsnfUK#5?FhU}gYx(q+`KOt3>ID~q}ufK>3g0UF$x9{9L z$@JT{MkVL^XRnuPFuAEVy=pU;U#X|18dzP)(!!htQ^cb(ZOoDD0w`i4c_Pc+&X&oeQ7T_#`$_%Z|fbn5g81+ zI`8Hfk9YYE@_1}<_oNuFUU4g7%Q+zTh&otoG5Th^6It}m%RpXur|7{p26z&`=U>e^ zN2!~}e7vG#PGLN6jQR+D!D=6JDmEFRXQ{)W8xK4RT)Gpjh;uQv9i%J2gESp0OV=v! zE6!k&z#O$E94Gs&<2%*%i_#y(Rb?mH7h{3C1>UDF04OQ7@oQrU_;>C59S;N7TO>6I z$^CntLC}**ZK;w#*e{|!+H7nTh@*hSAtf_ZDoU-;RvXaumU!h2C3IlfG8kZ$o4DzM z77``+T0;%c-O?8lf?KhY$E;yiT>}BbU>_O|Nk}N0*)nD~4ivCQbs7`V7o`UZ9~Zi> z4{DB5UQ%$I;ajgJDXphs!FcVtAyrjLBaED=P**HOGUZ@NI^L;OQY3AQUjG6f3=i88 z|00%Hg3N4lF4zAp{(`d7viw1X7)Mkm;eKIQ0Av5}e4gNiG608yZi8<904zRpj9C*Z=9n5LwZQOI4}>xSnelL zMjFAEhjIY9D&d%J+k}MtpC zuS}UUL2%I(PXupqlL$*V8KWz~5VY<&sFRq1Q}R<~lmL`Ii*_|R?s@t_gEXkTMk`)7 zu&DMfB zlhmOW0HCp&X9x0FAo8_enkApYmrnavc@BD)nf;`g~WTtjn^rm4p4l$vH z$EJng(9v$f?zOwE5V>ewj|1CC`)PJ|js}MjekwM|w8sYa==*gqzrLI>aYaJF^~xF( zw}fZ#yCzE;Y46o5TogF}c}4AAcvU!_2qXtCu}pEBwYECkFB8t~G!0)6)F|ey-bu(6 zQbVGsb&pTl!E2oeW>cUG`ka%+xe68_UZWRcNFy@skL@H5dv7#sR`ms?z|t?8s=Mry zV0P!5?t!waoSbn@=()+R^tRg;uUUlM_2dK?oEX(4 zGig_u;O3wrTo>cQyT+Ti5Yu8qG4(HgZzH;4T7)1CVxGa44lPBp0e5j*c8~Sf6V#A%T4KX&w{TTt@&77yniv?8S5 zc$bhgD*U;36VRj2B2QgW1I&_@N^d(|-2kttr{u6df=eXU9IzV_n*$Q+0y1zH@!q{y z6lQ%zV!tLLX|;+nTh(v0>|&MG*O+RqcMrBK4t%souo{AZblmw0|7Ft-s0V9@tS_R* zlQF)Wr`r;wP;??&ClZw^z{05*!7hdw@ZK|+O=+H5U8eih3uXof0z8^4xGh-@!la_K z-{Eiokgp8376l#Qu zhfM*phI^%=Sw9(zSht=;zJh_dyo_Z5T)~^#gsj63C>@)9C-Iie2WB##Ab7$=^0_2w&at4?KG!^>!C@!msyRa}9U~b8bgaxz1 zOKfOUTv==8!vvTkWTvj3dDCu(j~Q1QKx%ApPGE9T)Rh_(kTAAGbeU>9#+o24rhedK zm^Y|EOq@6-zH=$Q4v%J~W3Q}hpc0S~a-Gq7+d-3I5%8`7Y%I=)`z?QTubC`pm@p{U zxow$2X8>V9mOx9eW}Fy+8`P8(>~3yO3`*}YMa>{&1_wTDc|kZ2urQ9S?`3#&Jz=7a zl9nOJNDr6x2j`r9&*@1S#-NGLqaCG*a*hTZk`X?BuF$QdW!Hk7;bCj#mF)7$uMVQM z2CfemvT?F23-?`g75*-!JjF$ZzuJ7562cLEVLSnurE)$I&2{r*%ro@|FUYC000~c) zE0WHCBf3ExoTHOxvOxypfas5%ScBLvXio`lmkV}4n{r&|_W*2V2-D>2QTFMWg0~Dq zkOWL<+9;o9v<8$LWQIDPc=-SW zLtbW=2!zv6s?~q^?rR`Ch;ub@QVDk(jo(BgSt}Zi%vjj&qJZ2EXXoq$dMw7!#LwTn zQd-6(s#g=iUrnVuE!9Cb;f)1a$@-MEL< zpJgcBXc6VG4l2^v&O!yy9C>EnmEEp1wa7gx5UDL1V0G#xnCVc6GsP~ofC@)FhSaj` zk!yp7{Ri0jOCyZTFB}#Fzoso4pIjR?c`~iMk|gXoApNzZ^hL-6CF)WUbd!sq%AtO^ zu_j;`Mjq&1b^c_98}6d+#`#+`1b%f22;f`y%cxKYN-{HpP2=x6FA=l=TzaAO$)hPK z&a#5Rx>L!(M(KuYXO7==3i44{najiB3tI+2=`B3|5N1ktLsu*fGp>m?qLzat58oeP za{dcuO4*~8rS+}Hr#Or$3H41Ew+YD3V6WA7?X%b}&JN?;v@f6S2P%E4pQ{1?KylPs zaZPspBvkBQogl|@(-&|G6h>d7DoBP^^o(H(-FF^G9eaOUm!1T`yYk zK-vR=!86fIs1uBBOyi&MQsS1#Q37pWnYB2@%V2xiP&~{_o^#)*##E;xmc8Q&YE-B} z;`#Q4@ONvWLIbfpbAQsIRO}BhwOFE$osDR}#@2tyjuC`gFR9#MuuAiP!{rYij5vUK z;iMTDG;$KrHtiv1P=oQ*g`NSpq6Q?;7j^9$?U3=eODJN%?O{mO(3_yy?8SC~0NqGp zWg%`0=0nP$!@5?fAh2&$Mj&L%6^6knr3*V@z z>&Z*V#NLGKK+8exu{erjvNEB!Q;+cBZm__2vd$X1a4{v#pd83>#U4UOe!Z*9bJ+-O zZugy4C<9v-?4jd>;#c=ItkTNCnWL42tF6!q_sE_h*rRfNcls9rhoaZBC#H$Yov)ZpE6zeh9}Z>}H0FW?&*D zT;?#$SHx#d0AF?`kb#|>&N_Zh2EL#`s$C%|t)$>;ud zy2g#bSsmwIDygw91HY_aGSmBAw=)wwNc|LiYQeX0Hxh@Wz(s!QC4mqAMGY2!GQ{rTOeotRyi z4KIy-cD1=oE{rY-7*m>T7(fm4E+m$q>do?Fv`*}ru6s8Xqe@B&F#^x713_yH69E+$ zYL9Z6Oqv{Bcu4Vyw==~@rc5k3(u*ZV;~Tul_@#M&OhmWsiWqCwrz?ocBgImFlVxqT z*X)uiD_`SCt`e3%dzYlOR`fxLXFDqNwL!c=UL~pViA)At zTW+7+i}iC3gl}2C3^oM(RJLn%58C+NOq9>)q84WHtEfInJ?~hLAJkZxUxvO)-NLH4 z?WqhA>zeE!GIt!Q)KMYTHtG3o=z(X}hoCIdS=+kJ-frwv?PlR-x>}%b{_nG(QHS_6 zG|-IbKF&$A@=*mZC0l5G3CJAnT~X;sC*aJC^5LfWBtEO3=+{1u-R8LJPMtmS4TEb2 zKGFg%*^O3EJm7_0gA{YHP@%$$!|ba8uSbUCBsSMmcXpBs^jxYAhdk!K|m{ zXKrkv`9AiH4+|M(K?$NzJ>7Vc$vH9F^OV&$KOak0>A4Q`ys)*6jA(EN!}DfbIhlx+7@#fb9%4c77v?*Uu4*^iXlQ$jq34w$9@RodOUrY+ z^7k1q11m!QR+r0G)lx7H3+RbHPvrr{t(GlBt32NaTzpMKyXqg$p2ae_BdaOgF)*Zh zSmj+dkVSPSt(s>aHEi@*lD5u)diq(wn3CCHcUyekO~l8m=K+!r>Rd!gR9Dp6SN&~= zvzWgY_%1zmM}=PnPr@qmU7xxf$xh0zIy`DtYM^23Ig6Uu6!&d*pV(BW!~iO`llrL7 zN%a|;(m$dT$YeTyZ{`Z1|LtRyv1Xw1p~P=w&-K%?U$VGY={<>BCHv3&($pq;+k7>J z6pKAMy$tFvNe;c*Rd#Fkwf7v#)qb2Z<;kyt)t6L#Q&?3BotRT(jAL#rtbrgLCA0cl zG?-2W-!0mRS(EzJSyB0x=zVkR-EH&L=azeJcw`=wN|o^=0Xq+RrJH-I;6tzBS#~^W zu1R%y|JNE$Bb8&esF$$*n>OIx*Uqu_cuZ8!ylL{yo&);;x6?JFZjXsOccQ{b#~~UQ z)Z1AmyYx2168BFyjy?^4V&1I%jf@q;(pVi_{7tUkPXKn7V?(&^`6!}$*vF}+F(8#* zYc5k4j!>_*!mP~9hhj^`qnz$0=OB}pUNmIz=75*ll)L;1X**lp82z8!2kqB6e~WvK zVGqt^+q~GMFHq~8dM2k6*3-4_t5QZC->mffvZb0Hva_7ouxdWhNxQ;4OK;hh!G5o` zi1y>|u{~S#C|NTGqMBZ+kZqD zORW&pQtruZU?i=AH9bud{FFJ(n#rK{k?-psNa`tx^N-}(y*T{kyHQ zRf@Ww>_g6SyB<#aI!yUf+i=jXTP)w+A9(I;w-Vspmh6?v?XlAH-gPOvYUjFUA5(ED zt@fAStSHy31-DXnY^6r&U%0Aoi^)p(8*4Sqi(_|Q-_udcO)v#SK zP}h-;`Tfv>Im(`#{Tg=C(2Xs#K_|_=>}isooBtanrNe7;Ch>=c-$Z_u3w zH2<(pTYFYy&Jqam9}A)L0M;ydciXOtUNWrVJ1?@m7*;34DQWdy9c|cb`2Jx))~p@# zInAcbqe~hVk`2Rs^MN0?hHkg#Hw=4-GfY^XwTt)+NLY3~mB7_)iAPkU{74-VK3n~0 ziv!(Dgiy6)i;Q{~akRn&o9oBho+Z;pf0#hvG;#O!T)V?uFz) zzF{5xnjUdSpsy?Z{3jKVz0QA%Gb|wZybKpSucVW@cVQdIf4Tnw6#qS{Mj|hNSWz(l zdsR%GZ)E#s{c9Va8^L&k7@}F;BHkawwimZ|K1cF?fJ@tDWIk_ryx%k3O*Z)W=~Ta6 z^r|=IX9Am~J(@*=UpM=MPk>AI@ejWd$N)xsuaNpgCT{RGQ92=72BmLE zLcce5b6NhlXXS~+eFrOjN2L}U?_~UAw0~}NrY9edT!wOE6HOQVY-|fc#NaySx49N!aXH zPqt*`H$)J>>!9l_Ai10+lA+%YEce>$PmrBpqH9gv*qf~7vF`~sCjaijm4dA+o&=md zm+fwI@(7WI>a3P|5|Pw5`H@3fLJpL}>8KNqGNsQQ(rq?kx{~c+}(KZhqmr)WK?|`E8HsU5y?2|k&OtJ!7D0)MtdtwgAH<#2HTgw8k@~V z8CC(Uq>Q$jPQU1;24fuyT~1$Tv!awzZ(LmPuAzrjfNEhPGHD_AHsP)l!qCP=Hj8Y< z+bXF^A8=M!X&jW)Z=vM^YFJ+F#V~176Y@;(>sU1n%#se|84pQew3w}oH@MZ(R-7Xf z&9qu*w%Gc1Ny}Nx8=1WL(JFitIL)x#`Hf*D41w)ykiKa%4*I@#jUUtMb8bRPRSlk?Fk&XuGC@f$O`8&ATv|=2e;bjL)m}GdD z4scu=z9Kcx#Hlj&*K*k1LU=9y;;7x7lFZqbZ(9*8GYMQ`= z{ZuP)bK5_H9)M?@2Fnigz~~>GRYm)llFAQG{in`g^Va1%W4;*QR$zVhF?#G==8^V1 z>8)X;%`NEoSiq5ec(*@v&s$>W;EnA0N9`oiV8kH$O5hFE;j^tOb?`nKH%@0d0T!#j zhXEmY$cIJlVZ>|;t>I_pqs5Zk0C=upHy&#j_Su(g8|WxxDOfTw6wb*FZI8YG7+zmx z!PW98Tr{0$kwHW;qj(r_AmrKho2J|<@GfFjK7!2XmOC9Rp zm{AVxZdSd%M18w3S;a(lsW?9YG5|?K$3E??zWUzU z%P6q3Yz1&mx$M5pH?{+Yje%{|G5K#A(PjyDRgb$8GZ(u{%{yN&`1~~j60T?96oc9V zqC~lqXqA$%{ zmiIRDxl>v65Nc*A7{su|1cd2ZgP}gWqE_Cvh-i#JrUoWXJjd4PKf!z!Qg!QbNB+ zjL2vfCF`#;yADWst3tuMf)pdPPj0{&S(oztvt<&A5tMB_gS#ugxA<{44tq)+0A4_$ zzcr@W$q0CnW7&kwuvqT+mcSPz;i5(~;1{V{b4M^~WSD4y?4}sI1K`Lyi#fZuEdmQ0 z^alDv{%x3Jpz!(>T(C+Y&S{buE8@0yU8Uk=W@ZH|s@F?k?6w88ply&!d=1E$)=O%p zWZQ()LJ*jbycs{{LwAN{@?~zV;ZGr6TvVWu9TyQ6KjNLSm7HnA-VhouEwL>(g=Qy! z%*rzI14#mem?)4qV*MRLX=zl`9{fO%!^(M5Qx>oV6%dv#oI{HUa251Tm?YuewTB4G zcu@fUb;CgeLphAk*#)uzw|MF4PGKXCz%5P_}cexVII_w>_c|l*!=R6SLCS+Cv@wtzASJgB&^f z>Z1cqA|D#W4t}w6CF9i~^|-AUi;tMBW*gv)ncI_*>BVhZ+|m|zwdYhq(LgVAia#9$ z+toUql~8vy?nj=&Iiu`3%r@xSj#?QFhodoQdeoM{^Q@E5JN4s9K;0sf1L72a)f5%I zE?K66h6lY*EH58^seg)aH~AXZfEUBD#bA?9WREwaiCp%Z1m-G50>G*N4pp-wFcAAg zmK>5(Yi;k5d1{ao-X;BU+bkYn;Qq}H8j^(DvdP0hP{-BzWAG8Q6asD+Jj-QtZB4bp zugpP6OL(MScGFpHx`vV6o3d>F_Z^3_Nb{$69y^!%lQs#zeQlL%_P<-h(oVWz>U_aw zCN00zQOT)}>p9lLXtl(JbN!KO7&x23OyAu=!^iwKiCmfOnTz;uswAdo==@-aJ^S74 z&hFifw-X(3-H%zISWrlHBA@zLGDE#sDtv;q{lZ||kq zEbp$1%$Y~t_7v*KuEErO>bmRhkT#x=6jxTXqjZFso9knEC2 zu&kI%Az7@ll>4A2@`FRf-Re%OaERN%%zBB;i_V*4klW#L?}o0$Q#wq6ujNLk^o1cF z!-omSGLb>RFHM|HIBYz8c^vzQrMzi#53DlPwUVO6^#}~aGKAwvMQwtahB%M@w?au<;;oJg_Iofx*h$M$J=7~@YdTO;aJIlTs+N9NRo7|01-i`l) z;I+18DIUQotx78iI_sA~xU?Pk`}C#^?#HToUP~ZSa+MtB2*T|_KzgM*+u16a8UfnW z+}Y)UHQ#|7i77Qr74*wo8|90WEjdb+odHzL_-J}={5H`d7KryizOBO7rNpV&r_FrR z!l!Gm)ORe5QnZC0+$9r!`n~h!3E9V>@KfB=n)tIEQYRU15fL&6&i5&$IuGeRc-+~E z=1sFcExkbubA1AQr_i{7^Bd=kitZNRN#Mg5 z!#Yb(TH3l3OOHS@t_Fpyqi`A=dj05q%BA3G=*yG$IJ;~qhQ4+Lq@(#*_iW3YA4va%#YIVJwlgpM&9`4ibanDx_Ao*QupoVXxSwmhc=XEY}7DoxTR2-JR<&2zz1+ zgu=ZT^3$tsYMYBP_QU`QvSAXx+0%wegCR*}3!P5UMc2%O0ubDkcVaj-7r;cC+5#Sy zDwVb%2_zhFa60OzA&eEnzvgUee4+flc@SPbLX1fySPO@6+}Nw1pnBge={&ZjX+vWt zWy_&D+7Y|=C=3Loj@LMP>CEeAWuFkNZPdT^x?n>5cfCru7ma;B;cfhi4Le3gqu-V0C<&r;qRq^yO5l)%hf&1P#a;X%xgJx7 zTdV}05*xqFcu}e$^|CQ&=o|uRBsBCRB}cnl8~5w6_~ajzm+{`~I<+`aWm2p(y3~v% z`Di+ZO3bPoZ4WkadLm=Q0EUnzQg8$%p+m6VACQU+7Z-Qd9DXrYZvi;7Kpi^-*f4vH zK6LFEyjtt|45v;h5z#Oxou}vZ_K_7McP6m=Ke;RTUF^CVgN{}2>KnZp*|TvC6cj9(+L~ChH|C`X`XrpFTDxFR*6S0mySYeUTs^s5Fe{n2!9d4l$ukgXIF{8FW!5Xn8Tj0c zCU}csE3z#WnTVZY3#J`-F=L~G>G1PolBz|o3+qRV&i>JN78j8#M`SSC&S!SB^@yZa z7v2_7F95gJwuM$7Io9`gyH0#$vNIc&Y3iL@>?lR6G6;u2=16vv@Ou)#3MM1%*gnr5 zaXx}9J+|c+E#RIbog986jOFzvc+<@uiL29-xYNx7&8_EVQ|urF{1BS4W#MnW3#%R| zEFL)PwjPL_>wnBOrYqE>C~SjsF9+aHH}Ktk&juGo3h+L$pq zyd|BA`mrWlK4`^c(pmPFR8+mM{f`otLn*46+c(cVzXIBBJ+*vGBS|v|h{e*M^+EQh z+t6*jax1&FoHhze&*N1U`=E%d@N2k*7X{uIQHMKz-yCP`20d%8qGeE| z(GpA^x@l|D1Zte515W@*4CKRDB%(LAlVab#!T~Sqc9SyT{mZ03$+m`Wlr)Ux^V?B( zt>pwNUb6!}t)q8vB`QN4z;3Qa-vnt$OM*shSBa3=_}9bF0AfJA);IXJxI$svWd}Em zAA@yc7a2W#%Mk8v?TJ5za|~|Ha|@k<5W^y5<-w9Q7E4|Y!8PzUZ{3V41I&Uf@;aUE`ypv;>Q-*H4lN6i!xVP}WY8109u)NuL=Cbr1VVFdU> z&dgcoekKqu6mm3QoVz7a4}!kkJw#yl5S5V-er?fe zxd5De3|2&}ulQp4SWLO%BcB(f*$*wW&7Ztu|YSpQ_ z_OrpPQDM;Phjx@P7r5?{O8rnBTj+tFd#V)oScd}xsK&G%fbF7tXX?#Epan!VkN8MV zEAl?7noWhPY*cNWeof?dAj+mYkYu?L&aN{;BrJLI!UGco2sTYHdFSMr2AY64C1i5s6AMfLyw--Z=XDMhkG~ga= ze;#lZi_S4aJi&Y#*06g>>0I#pDG-Up$goxqYL$~u(g;4wId4hhuWaK z&)JScjenJoU|}>n;Dd*!?lUv&wgn}jIm*?13C4a;lLw4g#d4j1==^G>e}ZAcRBN)Z zUmGr17sIS`t%PZHry*QP3rDR?Q5{qVAX#V~0+zBJacQxhQHL@3>kmLu zaz);cK4H^bV*t_9u}4<*Xyc2_vshwl<-3_$Iba{X&x`@i<6~Q)r&?_Q&7(2MkE>4A zu7K?pK-VgvBdbvlsA|m?UFDc+ks}`~hc%X_niCN&GG)6m@;S`o2+g!CaxRv%1&e#+ znHc7#`qQNJt(Y*OX5|rf6=>%=q5ZdbV?k5AU`B*9GuuR%k85M7cH|B&HeeTk!EarX zo*2c~;bP<}>gdZdzYav5$viM}r?R9giH4oprnh3#u84$Hdkj9#0YrS-fgGE=>asP# zMDrf3zc|B4&)0B|I!4(=oVpErN#9lh5FH+$ZsDRB4GAqkM38psUuf-W?Np2m^foFN z6}0;<|&=y%U6HCV)>^1@} zKZP7HyIvyM(+T#q@VeuDnaCMz$q8T5WSpB`vdYNn$#Xv=?*reSKUC~60Q~!kyZ&9Z zrY=>Lv3@TlCs25M`c{L@7E)sF98L9mY9)M^r*R3PNb%C0Hp|fpjFzv zax#xvtlV2HeGzjdfgmmLTbVpWE*Rmc+NZb88($&;v)4j3m8fknM_MTqIhS8_MmgWljzsjTo=o2i60<#1J9!)ZAd@hoa#x{vb1UIx9 zZj6yZQ}J-%Y|$^2JcD3cv?A%1p&-jR3z{U^c(n8pYmK5@l$8qmJ zU=%`!b`TpxZd8_RKA_$H!#Z#UsPFiMP0%7I^Wt(8{j@;SNKM-aFJ(wf;uC>%Vou zd{Zhcu$o3#GfJg76ekb;H%gUf=YyjVi;T1IMi4hHnYvDDd?r?_hU=R+lF+$5k4)Ot z0m#`$iQE$Z02smhv-v6d{r#alc3TNPoG}DR+eZ-GLI+YLLid zE;X~Ux2&KwF+3k*wucY2cY|^Tfj9om=k0dw7gxVShm)N=$4(3JOIgdp>i_4GvF#{R!h9S6*_bh1X(M>T7*p!eOPaG2-hqe0bEqAd zT5Gpbe7zbw^ZkG*ZP-`L`7rXUwS_ilC=KlP92)AH0f}9B+n|*diNKoRGdkl5;+yZR zJ$cQ=dAj!9#ezQJJTr!HXJ!!3N#C2 zir76s>V1Uc{g*GB?n1-1^`XVP{sx;tGF>7*Ea+}HBh6Q6NaWBGZ6#?x&c9J+|W!U>K(&SrmhTi!bv&?P_SAA1_e{D z+UVxMjZN|5b-JsB5vh9C;BIvbSMm6G z*~vymjs8#C@libAaMylRRKkI~v zfGX`n4<9V~zH2V;5I8ke_j*61>SaD|GtFYtt;VZaEG_4%4PW8CC2|>A8Ugs7d6k)s zjWKk!`1?8rQ}Hfsf>4A%C0~<%5r=pV51^}#hU{#^iLWac=yM||R0jNE2^~g-x4RQ- zx}{w9ld~IJ8Slb4RJgT<7%}pkIm#nxXUl7--?ypk#6ISigbFhQP1eP)>UJ~>rGcN+ zxG|L$R7(6V^@VqWX&XB2G6uiHp{jP zJ)=005F{{}cI);uJO9VHw9vi8xd!+>UrotW^Phv2%}K!9xJNTlHqio7n!q%_X$L$% zhaV~u)M}utF~VyjKluZZNci38hrMn#-?9_Pq+`|JS(ARecX*Koc7ko^))HK|Gp69t zT&RoC3jfX2#D!x%@(N)})~D3w4a+;DMpGV2`W4|N^d!p(`TDo-NO_%L4qtezidB>| z=${(&IQ5>7H>eZ8YMl3j_etp9;cIz$oa_U6o_AcioK>xUPY+BoMeeDW8oT#o@bj^BmDd-e3zV2L8UThj%HjW{95Vz6uF#c8lYKdkMf&_GS}0Us6=g4LX#SyeKcY+Q4SO~8mhyc96Jj=Mngpvozr9TZG;WDUJPw6?Alt$?I99)um-QKMd7hq7`{^>>FfPmDo3#e2m$E0 zt=4@40KiyL$v6>E7q>F2nwR3jv19c!pF!X|M=1aYx-LlI_&WZar(!MukOk#b@>Sw_ zLOffE9UyUTa+@e|J40N^^KWLxy`JvvWw4J@A`tez{5U;bjIAlkIVG@0;iuIR%dU1S z)kMvU5b4)>`{G({c~Pi(>mgz(NeexT?PtWfy)JaPg?}NaLz<- z7X#`rB?-T2#`;jf`4|w(@fRkuwpPu!pzwE@ri->xkZkL2Q+zYLls2@!7LtZKc{@Dh zPH5H=ii+y1d!+=Dtz%8<7;Bt7U%rqMm*)(TvN@oQD$;(qt(NIZcs~%=lj^&d${kxZ z47F#Sc%0iv^Z5nBRNA%8!+8IeXywVbt&?@t#=UDA#2SrYjo-*)2s^{nop8c7K|rpU zQ3v~AyiiMrGI=Z6GPE;;#!R+UY$iV#uwpZdYof01(4g+yy|}nWDj{wk;*ZDLgYdR? zR}So4wwHU83jHW=*El2&4MVFttmU7`+s^zFQzTxCD4Cj5d=SwY7!7E)9kTPgN#oO6 z-!F_nQ?J6TE6_YMqU>dTmw5{-C5FIjB3Ug4%#4MmUEGOnSOCrdU7Q{c@hSo4I1q(s z`~JGJLL^2fHYIAd+&?#lvw}(-Mrb>_2LL!=#9c7f!YS?sd=oobt+YlouIqpR6qEyi zw`dEH7upwGiygm-x2C__Ro_L81tS$6DjmxHVq-H1uJ*u$ihe6(V^z z$1&9Ya|bG1c84G#elOfFGC3}3W7p!K2dcR`7PzyM3lq1mih@GBIt$1Px^=njI04>T zT)WVOw|FaL@#kH<#(;Da&sALobG8RR;@@#!qNleSz64 z`pi=?1+RKkBC5qF%}P2j-h{jkuh<>M`z;*~{JMb)F(Ir}^TRrvsONU%i?=HlFuNtQJ!p%X)LqUZsoL^U|%| zeiY$o5yjk+y!B1!8^4a~&Bf3;kQLx1^dpf#UqKk)F_co&{zu1l!h~P!PD0+HR7gn9`})f95SBZTO7{BhY52c`t$GaTm^fAtMYK+}n=)`&vksc7 z6&aTeRe{(Flx{UJfo(*F@_$9Iz2 z8UO$T01>i30PXeLwt!#&42uRq0Ro5w3={+^h6XCZDpvqoe|r?P9`HCP0d#%A@Go@4 z3qhqiQ>|hXcahjtVX6E5Wim@dKT@-Drx$f7H_fe)aw?hxtFkkiqAkGlI?>AOhQd=` zsepEpHA`Qmb6tF>9j)n>lKKTC!Et@l%QH5&lIOVfBjkk5$AcpfxAH{_fr<6w0~`PW zVhR)hC~cCRijFj+U1lISt6B*Rql^Bo1%HqwtOZp70{|cdRrfIbHO>fBg#}385RTy2 zaA*yi(ZzI`$-PV2Z}`)v8uiK@vF?91bN%VR*>(js;AbxXElmIIOm;jeN!)OC21lT0 z9=bimKfgjJ!~RSVo(%HaOO0U|Q`<9F^Dzdcv4DTD(tYw{+0HJ^$O8KomLUgCSQGz(td zQFP(ldw?}O^vDX1%B9Ioe6d@r2}zEA;$hAT_@b|B<2HVO%6La!jPU16ZlFY~f2C!~ z_tzIp>@JxdQxOleU`LnL_Ui~B;}T-5B z-t#J`)sW$P)~=CMTLQmiS{<4FEBXs$hS3m&RZoee5jME^6Q3okXEgObM9w^AF|?tG zAiiA()(Tum?)_vP!=0%9>9sGSGZWqGzjcGxoG3yV`xg?V63)j)1LYR$B`hHoXtZ@JT(eX*f+<<){i96R& zsD;E<3_Y{|My>WNjAA`?_s=#PUgTFyMC&ePuE4q5eHvm#uWDq}_U^K1jB#PL(CL4V zS6@-d8f>Ucm4VJEi??|c_Xlw?(MkBOXf!Yk&F%(EkUaEfHA^qnHpYJbd{Wb^qJE|9 zv34b5yNSgWiMv;Nt4JiEVb&FA=1yqY> zm2%HQl~^W;uR5Jki*xonE3wagGM$By%i8#5%$U3q*}%i4znQLBa(A-5kAW2l`_9$1 z@76wLz$05eGP+T#$InJnzf+l zk0=;V806!7H2lr9T(%!mX&2mA;9YD@Ekbe?e)asCowFaA+CfnKC;S4jPPiN9EG{k2 zWKd;QZVf*+Ui*kt6oXf|vSU?MTKf6Vo}XX$;>(|Z#Y8~&!F~XzMi}APn7p(+-7k-R zv2#rhJ-?PL-WbH11;)xDf>u1sqZJnHVsvG3z4dG%v*O#=kYSuABd2CCwpx0z55Q+G*I0Si>K|%)M{bAmyN8s-x%DpgK7i1<{)qq7 z;C@!bz$J{&Xc1~6X&-Yj6kr(-87o|WwbM}UUBxGgj{M+xpxqD4e6}nKdn?$91)B2y zHr;21e9>_#a@;DDJ-DhtVtZcPSWUG>X7pEjDn0AUdU&{OcLsgEeGLj&W^QJh5(hz^ zh24VpCHf)kjIa^XjItvP2%1Ev7Ofx)4JR|9AZkdift#`HI%P-HkF6>6!`8 zPyBI)H-VVehemF^rYZiCDL;QKBL7r_|ZzITe`y~^oN07{LjeOh9GwT^Xl@i{oT18McLaU zQPO~`_79wV^c;;+46t-7v69~GGwSZ>*%kgH_Igm7Z>8q2zWmFHs>0uEWl^zyvawV4 zfuRClt1I!V2vb#(@g9B+YE6N+)ut@;y!j(JmixSumbKvho#$loqqKux5FLhQK}=a$ z{^g(Bk9q3lI*jN_!OMJBei*HnRamsv4(z_=4_B69x{2*3{8tS- z99@T~Zrnp2T8bB_?W$RnzTVHgKh*K2+;Xn=9BvB~^&#Dh|KAT!z1Wgf!J2!THv5{$ zq%f038POaU{|5ap+iFd2VI&n69POoH{SB2KXydwm>i$$@xf~AmhZ&onSbA6l{7O<> z!*iA;8{&HxNR9YDfULn%%X-IX2CnJ-&%W|w zrp&M<$3O7%L2Q2@)2?}@CV$D$UH|+w%@>K>^7>hh1;Gj#apC@X&h#YVC{}A!wD0zh z!r7o&Dzx`we$PHRUpLQ3Y==y;4u-BVZ1haVM=G9P%TxQ=VSiarH+e{$^=j#Uv*2zU z((QzyHI<3rKah&&UK@WZMi1L6;XigxDYZwdEPNwO5K&^HKJuN~iZJx)-DoN%Mztj9hs5sf&9P|sH9)pHym08h5T)Rpq$m7ef-;t@bF1^6mRW}T||edrz$q4$@! z8eI26`|u+|UiYg^{#KX1x$NgxhCM3bg86d{bbe@Z&OR=idiMvY`xl)k)LFCge^!am zv305MZK(gGA>G3@4U^fO@BXhkUAtq;ESd30=!-0s{+hcti};crinFIuQ8C)X+`D)RkqFdMr zLD*9vkWA5Z9yng#_mh3Csbdw^b!P^w+VmfuhC?BY?|=L>qwvRCtzl)%Gaua-_bdLJ zRc+)?1hsM6XH#^w0`uLz``5Z)3zNDR@gJRe)D#bado0iPs1Jths*maP%(vagEJS3k z`=*D6e}Bs0=^pxn>#0{;*GH+*!9d=t8c3YAu(b`afKk?31UAGM4?8 zR@vKeMLNmnEbI%in>4ZAHmmbG#hi3q=lVIjt9ydwX`FfuET>X!z1aVNeuk~D?49mV zf1T6t;?4W*R6E67_TRPT+b(;n%jof@c9P+HSOgNb6$5FlADqn z(H;Ly%6Vs=nCcTU#%IfZu&J;65ZCsndQ8@v?@>pqYSuIFJh$FjCQ`dLgi#4-KWz7@ z&MnHr?Vmf%uw=?9a(OkD8z2$7Jr?(x`mF6%4^~$p{$6DpHZ?W;R*U-IFX8^iv>f{M z?|%F-?cBIGZjBq`#<+2A+#5IjjWg9Avx{(Wa&d6JaBM-AxMZrYCrz0p;W;z(=Rb*t z$ui)nkg7P%9{&-+&L_Kk3Q_9_=x=zH*OMa0dHP-VvdGS5y9eR*cfft7zkq+X^C>U( zd)6I~*l_;yn)<8OsbtvkD*TX7RDYd0uRoNiL)B8J0Ab`ISLL6 z8n7bA>W^^0h=*K8>3a`MgvK9O*z_EeMvwSRJq(RU4%YJy#-91Q8CK=dKTEWgXaL zOI#gJ$|m}-FT>PSS|^M*Y3ob+RX*g;)zLCQYURL^QbENmV*iK_U8(kM^>wKIhtYre1K6~bp3cLGC_e1p?S88?eW>3Fh zCWNhhmFHrsJ6N`Vc2cJ+E$P3&Gt-^fURlLCT6JCx2kH6uGFj@8{6AzbjnQHaW1QVYHjlG5xSdU3vuJzxHoQ%8{@{facd zmW4^eHT(%@0frYQ^k7J;31raENs@LGdNpHFk>sDYsmyYW+32`WdQy-Xv_Fla-5Ead z5)z7$n^&$(zD^l?op>3NPn|0foG(x?o7;40O0rw2@7~k6y-1|BN4yC%9c%Iluu}Fq zn-(dG@PxPyg~E{%~-B%H{aAf z#gd*ibP#l2pIM9z&ba3G0N0EqD2A|*x^eG!HFfCw2p`(8X|m=j;hk@?Ltg*k46E6$ zsY$ra;9YFr5g0~JbtQgz%+1->xEk)mc6eN}nD!dx!D;TJvwAY`AIq~8isUWHf~L( z0piCwTwBk^A>$mHxy0p^)nM0I5w|rJ6ke)CyQcz(y$aXhCh>JVhr8hp`__wD+{t|@ zlU@y*4%T@c(s&<{HBA(_hCdPDugD*kcn&Ckp2;+s(&8JxOgSs&>_nf+wkT^c97f+w zhng`$^_WdJ*T(YKL@8ogE)Lknm~4$H=2KduzjZ9v7uS>79HH}u)e_&@MahJDo1v{H zRP(-c8c%zG*P7%`+UHcfol@729=96i^xrd#{(cTMa1xR_e-WIv(XX%60VSS7E&sBJ=ry?HD=uAxrsHHO63Br{?IcP>|Wp&G)R!tl=YX<$!!jnEKl z)P&SOZHGp{Qh(DD74P9>`ZX&WKhwlme(dI5a^!r{sm;ehd#@+!n3|57zxA|cCQG|? z2EM)oqO9hq0ny+!j0eR-h@n%s6&}*YsQ%s`j387+&59gr@`Tetn~bjOHyUZPy4e%H ziDb~0hk}_aDvmjxs!E+{5h*~5U!igHQLY{Gw4I7CQM8Q*^D94DHod9W_Kv2MNa1Ht z74~;WZ);6BZKLBzJmDOe(^RucqVgXo)N#x&YAB($#w6n-tu<{1z%l$5bra1OPjwmEMV`<$&gI~uqdlXr{(f8WlXI&MJP)^#;BrtRy6 zHmhl*p?AVTUmU|}QalI%aw7&B(gLVdg%rJz-sX}HO|WW>a|)8CDn$gT0jL6I+(-!Adt ztR`hS>vo)?hkms2YuRWii|y_rzBMzaZP{w)jPY09#?A2E!FMid?m$25>BAQEA0D49k08&hr_D62$K5mJvz zGvHC?jAr|q(u`H=2#g%R)soi7!3j2$9|UJ|NGN~kz_2JF<-{MEYY0-@@KfZ_L)#2a zQ9%j4l}(e+q~A%5C18>E%q;<$sC1P)e~DgK!678XFc9uzua0NMhhB|=0uRBI2z^FryWI?6dw#@&OPhC8XS4!$<16xnP^Yo5AcXd_h?!X$9}6F*57 zFK1K}Jh3~;o37H>M5uJ!oiR#xaT*jns?42FiV3Xh4qQV>5nzX>;w>)t3k~s@PxlwO zFMf7DTr-C{#X&JV9!97+Oo>_09sy_O@@AZf*Ce4%_)bekL=!}|!bWTg+jJ0NqE5Sv z7fY~2s?3Q4n42G1^RYNZ^x%bq^S(H z731*njJV)sX4md^T3_wXp)#w@oqSsl4=iQOb#ES{BovK1ey1{qO*6FsV{>QPe_aL4 zFgU0e>$AXnUj+&yPq!}^6)n598b(lK?sUHr$6qbip!X7T@>F+1s!!}J1Mnl*gkU!Y zi-S=NiDc?52UHr4xta!3&ZI-n4>$$65G9$4{o@W|21wLgm5o-+zfygU*$_#`Ne-^k zRv33dv6Hsl;MN03oNNxUCwP>D-^!L_QWB7PJF85JPK+&ArF4(1B|^m@JEY#&_RD2t z1Zg9eX0{B(FP&;>!3wokEtMV2V{h(=@Y+=V5r<7?Z&PXq^rCU^b9or%Y?G=f{<(vh zaZ^C2W6Bc4TBFb^W@Az4!DVYkJJ+RbmGb4on?<$=aZb`2i-TDFe+V(HcB6HNPeWC!I$LHKX*B@vFLRJW8d# zxEl&I!HnU<+m_;@T%)a&>rm1jII1kPx1AHD>|9*T*}0gpl+2x>>lyU2kxQ#IRGGDiw!+u*JeuZM zl8_H?D>UPy^kU3hhCnp16UO9dZ?PvCKuO?8;M@jBaXSlawMkSr2gzl~-d;sCpsDJ1 zHb*#~DIXG4EQv;!!6t^hjabhV9jmtXPZHIwW1I3(78CaF0f?{05#5j>Jt@44~p#)== zVtI>rp1Mw0lnspnc^;2FjLF%~yi(P2CmffYm~+*4G$=f@9PjWYO44>6q?CxyQtG(c zJYSc@Z;y*JSR@a$<_N!s`nZur2~jzj%srzzDLfp@ss4zf&hA(wD9Q1>B#2K@ybn(s zV$l?EkCYuQ%<(#nJ-sGEHf8QD6oNZov(ITZ{!7-HCKEuc@|_TzQp951rG=U zTB;tyBF(9&8Y(*vewlj&W@`X4Q*=M6J6wJlCsCbFD8%4M_F|9ZOgclgmS}F?Ofd?M zco-6R;?z}5iSPsMv1f*g8dODYkQBGOfF3RSuqv$XcS?ytXkF7?3iWt9B8pYFBOj3@ zf|grDqj95~MSENcA)~6(iV2nu^xWgz8UNWyeXB|5wzK}P6Dj@SudBS`HiwEjOyLkw z0*hf(ZBOSL9_>Lp0$hk^C6Fl|>Xs2dY@V69`c|HX-3D{3O_If9%0lxqk4(x+45#Zu};(X{GR5_lIfIT$HnuX%mfD7WpcdvJ*KDSR{|5Q{!u3$7K21kS)m7} z2t<_S2yr@pB9&FP6HLMcC*Wqrqr2B?I;I?>$A1xF)E?W% z7*gjA%?-1k-Os5RHbm=TlL%56VNBe!`0+RB8e>g{+S2w~a|cX^O6`$4gCLiqc_c&1 zryGQsaq*uycv-Ot!5uvrY9hys%%T`6bdAyY4NTGjF9fI8NWP_u%A#&R;1aVcqm!7vg)Wg$1RobVJz z-k4pVnu8bZquyk`t*(Ub1h6=2^;IfDQlNFlqRwcv=4^fQd`3{mn?=@mYi)AN)0~m) zdbE|W>IAE2v_6yBRfL3pgs4NI<$3SJpb&F_JAYi9m!MZ#%p@$3xlq;{(| z5`1FeR%S#|$dY574w~#QUPVG?5pV`UG{_W#>p6pqPT@YAre|5g4hM%uGVuGPC4qKZ zts@dCY7ZAj!cPn^0%RlMCkDfr>*zGpZ9M8oVW0_b-$5yd(D6$uO}If15c_1hJPV9!VUoIz}`~UU(4%_K;sNaF?bGz9-%1-*TM%DoXf4q z_B|@?juelB!zIiIJ6^uXzQ=7LPz+EDZvs=o#GNE;0vBP zFzA3}rh`yf%5>W~)NjiXDtlt8tZ&Iq1aQ4Ss-QC&Z#D(~dnf2$Hs5bvUpRJcvDV z%jfVZde1@phD-^>4&ps<3S%{&3?_5n(C;LQgtrn=6$xNlsT~m5ySV5E+WcnXPD?0! zsqhH7TqDAoc)fQ;VFB>WuK5KaOna1gp^XD8Rj};QxTB@cpaRhI2FEU0RG03 zm9D}$T!~>GtL0^lXq&XQ)gAE@vrf439*YECW8*~xIb%^1gW~uTkCFmS#*T|V$jV}W zWM#aC@g19Lh*Uy0CuVNjJj_Y0Tk|Wc)(;s3HD#r6r-W7p?|ahF7kc$7&NZiysV-Wc z6l;!nwKcI-SbvQgSO2L^Z><{OE|p2bY$<6iI>9)*m9h7lTX+qRQes?##72RQbUv5Tl6rgxsS@3V|MHGE@Rer-+1X%2r&Onc;~FvvMeIYG^VuNlKG9Vz>%0Ixa_RS<;`iXntT2vSHPgxUygiYz1{Bti&<5D=mvghB{} z5C|bc=(G@=Kn&3p(HLSB0Ph3$vp)9z^V}QToA&%5-Kms_cqRPc#fvvSz^OFlTpj`i zcAcrrfMTv=O)BPJhM`~~7h_nuP!@@uQRDqfVguOF5`E$p4`&+y*s(6|5RFMQjc~URY#-7%+QH?4^LpP8fQCfqteT z(CFN56GH_H3PlJNqcj#SbJx9|5rGRy>F`z;R#DH(Jh3ox_fDh36qxb`$38CHrJ{4{ zu?j!LxQa|2d9|>QdKAN+C@7>1vD_4)s4<)D0;1Gm%`;4v5Kvd(&Ddi6y(}6OBT{^p zp+lkipi_U#WcJUZ&rk4vSF|sY0>CIF>6#X83NIW(+(Ql*odGJQN!ZM_q570T zJM~S5AXX$rJ=Sqq3f<>diLFe9fJEI^gt`<@LAHZc7@Z=B&8t#SC~>>b1En6Q97Vy%wuh0T(VdH=5Xr_yWIl+D z>e6~fEd?QANX01&HMnqnE+*VmP`(dG>IR^v1*F4Vi0btI9ux_lDmbLEqPfbpn{bBa zuJy-%PY@Tesv(MTNl5Ebz|ehRHv0biD>L{QbjQiUk;P)vzmIXfXxBLjhVT%JG5#LA z3GWvKQpIA_V>V$$YRRfI-DEcrlskm7l=5hGPhh-G#qZJ4;1yr$PP52j3{GLm!*U7pda~9@OI#eBY^<>To-+15XzeQpI8aoBsPwEfq;AZ08C}<1O8F*XJgv`iJr; zb_Y{#sbDGAYBS?}Z(D>T6x!d3lnrCvj2#eo3EvmsQNnRZ^HA_Yi!}4N@F-18zKM$9 z9Z@EJjsR$X(cE%>g7R-JSL%l=k z`;p|$$a+xTiwHs?9PZ8HpcT@51em^_RxLB2&KR?OZk5(H?#r;IRot!2uffxlrFk1`tm zr9R@s+B`meyxU!Q)Kkm5Y&bha5Gg><{a+>ac9PI@75)qq45$xFf|H9g7=+?gch>N>jVINH!;hL_ zp(wjlYo-#zRJ`0cCPi1?UQp`=Lez)6TM$ZByh-o>Sn@&l%{W_R5PTz4sYv|M6OJ)7 zGgjOLl#8eM>H!i8PJxl4lyc<6lBWzQi3-9`EXIP<#h_i#pQtw5&UIG;#OYQOwJz@; z;SD3o=TSU%bBiUB>2Adns6j2kfkH4q;YMSEM=*PFFi22MBgQ9~TmXIAsXyy(>&X6x zcSv?L4u#~Y&49Kcy-h&;v>BgAgMXLMP0zt7BQ(qu^kR`7788zqc@mU#Hx)&?f&nm3 z(M6kaC75pXrs$sudKH5Ci$MsrI>EZ4V7M2F0$Fs2!IfJ^OEA=(49%Cpc5(N!>r4uT z-Is^G$}F!^%yjME7c7a}YNn4O!S9w#aG~-+OEAOG7$saLr%^X$z>X+ZMZSM8#JyDW zW-xba>y{Awj{14Md0c%YQ#4M6T)Hs$T9}>-UkPyAm&*cPDzi#_2c9T=#hNN1$w72vhi1rB*GdY)5W9sUOzDW6|QI!io=h}eW@f3 z8F{3r-$7&h1i#M(*}AVMdGVnd;+Ba6pCek>twI zdaR5pz*EKBhKA@<1>?cjB8Uq=+lS+jBFXqq5`rpi`;&DaR>o%j)B=}aOEH+QG$s{Z z6U^{cK#G&@FNC90I|NC;E@UX_#sXlRLyA@rMKDI;7^ny)7h8tE^XM`ZHGMJ;M^sIJ zk7_kOV3$1wxj0zt#q7yJ(FgE&5b=g*C@e;$B??sjy~jMXRRBJPQr@yqmkUINIr3MI zg2Obq=b{4OBI)WyQ(~oHk2nzKL=h`gJ0++MJYqeJ_7Y7fKSf}Ue^Z2H0T}X05&;iR zD7O5*GBAwTwY!OwnI24<>VBCe45xKB%|KbCMW_obzi^6F7h!vmDL!|!31gw*k;s#R zRQyN;RQ)##>}^F=Aawz#3b?*EQpkm4w9-&ih3o7**rIJI+X#{2lNb@q;-A5I^%I^- z6iB9HDuW#gleL04Pd-h5nv5!=T`ak~;hp{%bKIF8mmqojn^8--Fm=A|9t{aSk@-^u zs~1o~y26zyqJk2~pDqxzts^11#jTJd47PdVO&BPT*9kHHhyVYY(zMW0#^uoNFjI=c zjD_*0VVjyI_NE5iD7FIEKAwpArhw>EM&!vW5rpD3SLYlm#$vt-P*+%Jl~eKWOA4@+ zTEBj_Oq$?&zAqCN@`zqA75HQ$IeqdI%$7vdYU)r^imjMBoD@7H=TS~TT_x_sDYiIZ)wZ~PA9 zRCIeJ>^scQGko;A!2hXFkxDcSj)G3566webBtnRKEb0I8`qBfI#bTtqR|Ma$X5`$l5gWcgfvWk|Jp*^%jsC%45u~fZGDbg2;IQ-fDM$On&(7hxk zk6aVXEyMe8WNk)`6{)W{iAT@O-ZZs#=ahf$QJD&}{?G4dsq?Z0&&2OmNf#mbIAR*1@0 z9fqT@m8U!wg3)33#sgy-l#Fi?N7GP`4@Dy1DruR*f#i!!`(iQSmuPfx6skGQcL5Zd zFW!~IA@H2gW>JLy@gJbpePb6JzUi-$Pae_mMg&qagQ=1C* zNeS*TzYs)tAx=8h3t388NQ6HWMDb`Pr&0(8FUo~%hkxu}Yf1cXIBGE(5+hxd7NjN5 zq>dGS;@^*CLwcbC{pmAEYGO}`c*1e)6g(w^JQ7>GAS&He|BM1L&OAveJch7&$bOWY z9+eBv5yIn1EdugX$CWvh30tB|kAZIo4JD?8{^L8xBW@LH$qB+vDCANUhn_Jwl9k7w zF>C^U6GAGY?{(@=`*RWp|Gz;iStqRz_bDfF9yPCnOm{`ur;an-6>tw4&U94_9V$7~ zebINX>`bWcq2tCoI<(qZo?MV%`VLOd%rNOn!Elk3o?%S)2i0DwneK_T{$-o#*tb3`)Sq^nxn=)ZqWB#eGR9({ zsXb*D1XB#((JFO<4n<&|my=P6cOFhjB^U%F7+6wPg`!cUO3{ujfR;p^k)rK|@Z)xV z2h%8c%-<(eQcR4G7ZGqWyA-CRf*FNx zd~Tg!U4fXgm3B2N+T-1=SC92Yq&RKSIv7fc@M3#6r%x&MnSCcs#Q&p()JFVMGcdbH z!vZN}XuPvIQkA;xpbDa-@Du_qRr~ZQVsQT35TVhTt5GHxQP^dv2X!%?|DLfByz-WL zooY$jRFBSuQfjVnUyLsC02A{s1alXAv$fs?O$@j9|i< zJx-}VlxmHGs0>3hypWN4=Mj3*m99J(PeEYvkcXBD<8*saMrmSddb)U03$d8hait2s z88V|w7?ch_gpCw`A|ywgJ(2}ai5<^2+e!z)DWj*tG2x5+u_7v5S`h2Sh`~9Mg8lDf zBZEULl`4^P+aruo=hlN`-jC!jy7K~ z3YiyjVeu5PJnnPh_AtCe!1)!VO8|LX?zbq!Na8i&?l8g{(m~XHL?@I|5=@|tWtH`7 z!5N-^hWaRr>)i}S#oJ>hCf!&hM(y|r)Gh?$^n|AC)d@Kig6ZfZpk;TXTS-KZcP-9H zzAYjYiitKCPp_o>A#J`g5lX_0zmX!tI$;H)DO6HK8S6DlrdvzF%s zeTuQ`;0XxG<7_$$*k&3A9F1WUo z=QC8pw*NKMPoIatF#^?!(<_tu)Sj}6%KvDvi^1u_^N6L`WOyWg=QAAP!R^zGCQF^m zfw+&QWKqGW3b2!ZJj9@^#tblcOq9aF6!|7kR>1hZlPfNkM!rcG(=`$tZFgy~n?fl# zY{cIJLHCT<*`g^vTW@08~*baPHD3q9!i!Llh&x|Tj32$Z$1yk-j z+~v`gs(R*>qAdKAgb9kowB0np%zo}_c9ZEZ3Fa5l89PpbKef_C=I%Nrn=&vt@kPr0 zbnoJgZ;4DWt(fe4BU+vCiclD4OkueDLf)y`F9qnfQ8Zsp;3)-F#K!1T#oI7tA*dF1 zQl$N%N4PnQKwZg?{vyL=P{7F}gZ5DbyBLC53o=|aFu@6fFhmGV%&8O1DsEGg<^&;o zx)07tSFT-)RMM)2U}yr2NQVq6MqHo?fvAklxnhG+8@b)TJjATby9^3c6iQ*8^2nYD zv}WEeD+Y{_{8cVI%#plKY#5Lxe^Ypy7*0>M5=^aQOf{r?jHXOAEWs1wFh1c%@J14W zuuS``b*S6sOc|*CPKeUK6s$^?`4gC;fKm~vbeVyr6<~5iMwlh^JiL=ODLnmti5&aH zX+q*ou7yiEx1Ff5dYKikD**VSRCwPgCPq}uyihlbf`q@>1|L~hMhdYQQ(G`8nr9&L zqLeX3pLDX6LM-9!jDeAuu!naQ0T^LK%qjLyViI<^qw*L`2OkL^6>PdsBakG5@dDXU zCbK+Zix>F2{!zT%&MHgr~Xj6URAU{No5`L1_^PNn_c&7IdjqQ}Qm7_EO@|bCYqfiuNk7WN( z`ICvn5A+Fi7@!kGgan%yhiQkeP#Vd8EJ+$Gz48d0VIzJ$ z^Lbw;_5c4F?_3}E{l5zpqq#2_A3oz8q1vQdm6a$S`N4b$&m<;uJY#7r1n>AB-g7KCAI zgH9HzlEns|SRe{j6MfX}UZo&R)r>0#lHrydeX&*lOTetam@xRz8R@V@CYV>K%uyf` zY=3m`TZm)1!oSpKl}cnH)6c5yoJUI6Hd}>K-M6Dg4>o&baO7_@-xLlAbfjw+PXYKM zek>nK!HK&RP$3v&{wX3yLkUXWk!pnF*Wvq%gAv}qycH5vD_@wjzC`*62p%P;*X$wp+wrCh4 zs3z!OsK1KAt4-0=VoN(Tf&b_qy94Mkxw&FVy_2(+V&9d4O(7{wSYYFY1IaK6se&m> zbF>A+%KUADg+;-Pg(9HNiD2m)CuGtcg;t#Uj9{Z8FjN6Yws6rHScdhD1cQp#;OsfU z?;a4D!|44?sXvsU9pihnA-uIiO_#xr z&Kgf$A{W-hh_M%~2{-v^P0Y8LH0j{*7?|jPDliO2Mdx7-Gu;)lo|K;H z!%+7fAZa~=ca@v|$s_3^Fk&G^W_C+3^jr^?jZj(Q!K}hEVUtZTqEMJAC?qMsCzxD7 zW-N*bHI4)W7f!LtD}oaWf-ws+jNK^3gfFUFCYW7Z%#cjLZ%Z zCVlQy6Y16kV3P5bnSv!4QN&06!oi{a!V@!r4?{6y5cgutf)NWsgzYZHMow#DDW>#s z<@~!->aoHwj8wc5vnvF%7iPJ6VS)}uQ-J4qkiAo)?4UCSqxSK@6UC#$4(TM)ar%PW z+!--?sF0^|7mPdeLK8>I$?7(O+6#gaMqz#;nP4{H>E5C?QQxreq(dN?-Ni^E*~1dd zH>SgLzX|!fzDCPntuXhq-%Qqp-GP!bOBHm7sLrZl-~HSl^9Yx1XSyz`j`Wo27D@Mk zL}4t=>suC{U^(Mfw0iV^f@X72II zG=p!Ece9{rWv*xHGTko9j?rpA@=)aRw zOj4d1yioJN!NP=^IeEgbEWr*VV77vcYM-bpKQ8`YCueMom7y8i_J~-dhHAPAx*LMA z3q@I@OoFA-od_k}T^!64SP^DY2xc$DgSKx3r4$6yi^f4RV^9>If@KGyFKPuS4@O`Z z>J5l%};7#^@C&`=T#_VphMnRHAMn69iQm01(aJ%0aB`2W%c zT_U<$ab}c6hykZTi$^?pC5cXi)xT3HpuyFNk)j3%J}VOW@W>u7C=B=!yizQXcoTCh zn4&I5XNX4jL(#~h4(~>eacHmQ0P$EQEMK3V*wmiA~r>o zE(uFn(^my>DCx4h>MksW42>35rwf7Q*xFTHlrmGel^Iw8E@zFjzTVngRWPn%VdE+n zb2+7;3(X_6#1NQMjIq=tZo3pN?n16`3HT$Gz!*dr?=?cy2Fz5Hy$JuM>y+))9vVK>l$r{B5uS%3NPaPE*>c*H z(-+U9GSDOOKY)L_pZ3@(NgxBAMFj{3Z#`TIleEg(WwIPIXj z@)RO5Kf@{gND#7ysP4_Me#+_-nM8dm@iY?%MX5N|3iD8TpJWZvAIWD;Lp17lM>b5G z4Mf>6rVNB#tsJ?uUg-Ay5k^s1Md@+dt2%O*F@~fJ7(b%c&MAwFhr{{qFnDz|Iy1+Ee{T{PM$u2g9HX9LxEd^-If?rsE=LUA zWDTCX3@AG#Xb+K4rpr*1kZ`Gb=#haML{B(Hs^rsOj4DZDICJ^Ge>5;9tz6DUqGDH1 zFGK9bio&^i#oTu;EL+XcELZ~{mk>~<3)zSnHo=-zMzQoa8s&$QWwc1LbOSn zHa`79)oT=0iAf-HF|Fj3@ief0I2U32yHGGRg~*LNRDcUwVzxtv<1R1#9=E{AwJy@n zPLRAMey%2=r#u4W%>ZH0)r*Ny7n=(%dzG8%!Nt2&DGX&Q5!tMLXczKDU7i=L`FbF9 zeWlfF{pGO0c9)U8E;k~dTmrfL$~2hWu)6Fm*5!mzE?pR9f}|1Wq-{v#1>cf|&?D)6ls>x9 zG2#Vn9?nI`#V#+5BbG!m52ZnZi8@Z-c_MWAwkUY638wLPbyEF^Sny7n(xhFa{X5ij zFuA*5EA(3gB=`te;`?2sv?ICfV4U>6Vi)%?Vc>O0r1uqf64kNi?^@NwGm$~dBe>p| z(t|Y?=;B$S(C>ZhJIt9b0;4gC@^pbbE>nx7YrO!!wu|cmtRTEjgtPLAH_~O1;0r{s za-@;x@=$5iiO7`t+8=!n2=tM=X<;oc_N>f)pHy{whK% zdox~8ix+blxEv~hTNt%`LY2-ys|(uSRPhlm!5UETpCYk}khtA{k(gR) z%PuF3!+s#y3ceDXT0XZ+;bN)ZBg^dc?YQq8K>1d$Eq1S#f_fl4RF}4eU5piCVn2l! z+?!y7`@3Jzw}?~j`Vr~sNOpW&kFr`sO#TTx@DtiZ>JeRz6ut2YM|8#9?y{z+yjv4i zjNmc*k2=gjsY|J%f!`xp;hKbXt6WaMDkOFJV!*WgB#!Y{V_1?tc6nW7%aw(nylx0x zswLcoQ<22)pFbFzl1s!4OVom?<@ZvAnV);E8PcFmE|(vR3%R4P7bZnvM9m?)(do1c zl%idR7qbEs0Pc6JMCh`SU8WV;5v$R35g?uZGe%n(t1fwq>te$I`J)MF?{{p_ydt{% zF828yVi@}|$W(`lM!ko4sbBqS@R8e40+C(9FbuB~{ZE;cdsIb`Esu*y zT$C-MS)PwYT%{=Z`4PH+J>LCJ@`j`))_V^TNyQ?R zXT3i-vX@Tv0qE`tX+nh_m!U#Ww^abY70kM%F|hI!AnW(HTkfuiUCI}Ld0QxU{Z=06 zrU>GR`>;7f$98A#6Tv`xZyHCvzUx|?DT5V{-bAQ8OI|)0O8p?2i(18%h%J1%Y*Gc^ zIzqhL1XhlPSN(5M7oP=ZjP9phLi=`EV$@4kA-(>BF-*ZeE^1Jq8-bzVk5T(MD%64f zx|lH1<;Nn;n&5q1N*8lMf1rw_a`pYf_g5sK2n`6jy;(Twhr}*J{fohJ`f){2mo17T zcZ|{ME5)VUjZnRX3F^oWwp>;@<`P|@7pR6`zb7CAPe(=-kA$UaA=_Vz-!5m2XT9ww zf)kkT`J)eEW2n61N1e5@>f(PWi!Y|t*9r=?uAmpF3@pGbaJemF^?rSXE?y6Al=D}; zO(7!qiDUBA0^<8SXx5L&E?NrKigyqq%!u3tZr{sHBD-Lf(DDIM*xM|Ms(D>x7*%pb zVde6GS=58*_h;^`EPv|N3b^+%LA^X48L&E%WceR8JaL;s7@Fqxd9y^lNs z`+1PyN0_OJOm&uCReV#FqBAk;Q6a5M=)zrq6?N};an;Kfc5zT7K9d9rV^Lc1X%V|f z_hZGw!C_Y#x2g!S=^Z$O*KOz@HAnX*{#r%ptEGR2Hm(`E9wk%}C3 zd{c?Cb>tVHeJg&Vyj;p3^_GTOzX$em1V`+`r#G18k;}h3^bsGAZKLFvjaMGU*7C`>9I z0!aBkA#MRl_-_#?w&K@aniO*JDixhjiTmUcg6}VdeCZSx;)q?!`(%X&ImdIjwm$#$ zCgP@yuY?dGFuoMAN09wvs5prBbAS0Wr|)I`p0)koAJavt|5CJdW+z2km8QYoy-KUDNQ6<|h$nCb!{R=iC2zgEM1H+NrT&J`XGx zG=3KCxk>+e!|3Nv!+FYi9IpO6@4P2*qw)Xf=9HD^1<8KSMi+5`hj7#ZsJ$v3Z2TpjKK;wYzTh%#X2cTe`Fv4>Rj zIV=qBkl6*vrPDo;54|)E*(M{%Xxhe~>q_aN?H+}sh{x3zqnM%Hy1j<#u${H|K(73* z*c$SLsnlFkftYQ%wvb!~^r|N!B3DD!YA~a~%cNNrsF6s?y0a0zY;MGgjh6B0<@AHM zhqacKif15MMb8p+c^apsS!R-IH?50v8z+O<*NN|O4_qS8=yzHY#OeCO?hj;s+AZAL zv%*OunS1|bpMO`FG>L-KcG6+CINGHyC*bpF?-Mi7&a1UiFXn#Sq*kkI-Yn-q&r~Cx zbgVY?3rXB3663wkEBdjxyvSr98H*gMS=IWy9f_rG*Ux#(?DojgeNk9_ zWx1};Tk^4Oa|+2b0`;sqBg^h>quRIYANR`h2V2oCl=kKSeG?XQ!I$MeaU5vtTTBQ0 z>D5v{Jer$r&k>B_DAS7JOIU3`tT#X294~WqiTi||)i=0uv(_~Jp`W1i-S|ItkzM;$ zOaP!1(~lQq5I4-R521?w*56ro4Xwr6p+me%mSt@j7 z;{_{Pq~>#;=w}%jJ_i&0MT!Cudyt4IZ@m>aP za?JC#NdVfKdyvgW@Y}3qBsUxzgo-nf!5l%4ny!aRT7m!83+xDEHguiqV=9i+y0?0n zeBvUhCk!%F6N!_V^mxM%4~3au zn>#QwiD5YDx6Fd2ugcNfqH9}bd1FK4Dl2LaI%OP~ul23#N);B8%DgzM<1*+g6INMy zEA))E6O=%{WU_k7rvk<|gMt^yUA>=<@))Ssk=F~hB zvZ-_fwhg2yEYGYh7y&r<#hKH{M9vI2$u%jQCe4A-78D$UOHTK=g?B)|6RW^!lx3MV%jxwkQ#7P1ZY1FmCFHJLbpKiqog=~x}2MN$tS0zrp>8*pF}U3Am?qYs;6RDG^Shpdp3YIS3Q zD&(Xg)yQ~V?ktqnqcnht1nPo4hUPV%AZWtVP+or7mpDWqJHW6ZHOUlv?Ht0hwjJD0 zU>EJN|F@*KI1Jh#dD(ObETcfXVbo0vkd);DJX;R=rcDCct5gjEpm(ZGUk0J=w}ocd z!`4bk6~a};wAn@aek8en(O0=m)N!01yBQM@;Avj12*Ppy*EZl8z*e*RHV-pbNngeV ziF63Rm3qVA>1TP9oYCkv&k)%ZxxA;!)g&!EZ$kSrnS$1WubOK&cKL=Z!o4@Ykm&6G zR0zE5VBY3~owCD-xNPOAh3z0OQ&oT?;h&a?@D{dVE} zIyQB|W&UT3aTYy?@A$4px!H}=;Xex7dl)qZm=Rar2FPhkL{^ru3J2c_V$DQVoUN=( zF39SYCi-d+aNJC%5gA7=*}+EGIp~OuM~gij0>mB%i2OL2ttxat9qlsoKf4N7zY~c65T68vx&t=J_?$aM2l^bbUukT zIM=UkUQuAq0Mkt^Am#>}-z`E(XsoO;Q+A^H`-y7kOS-sone{DNAdUv>UFDv(&G zokGl0RN?car7XTWG@HQFrX zxlyqA^PcM{jANQoGzYx%q{Z6wVBxiPW@ z%<%`${L_A(ikeHwSBl4jjwPDtx4weuPo zxz2h8Y;Uoh=^24dr;D9)nWCNMS%ta@b$7rS>9I2~fxeyLu|y1{?nIR&#xWgHc&7r1 zQm#u_%-fjms%$}Rw|@S;9r~rpm1TVUcv@-ZGF-4>RKu6&FqvKJFT=Hx6i=VV2Qs6} z^JE}_W3i_K$9gSK%x0v!$fENP@yeY1{2m?DX^86PP(cOJ`M7#EfVQgz6XCLjch7!4 z78N#H*Z!J4RhrLx+`^t;Pw!;S;=V%eJ@1fTv1%wM-uZ=lZj$O1gj#u+LF!%2GB$3r zNGCG=(cc^y`4k^9C$)(r%|Q)iA2ns9G)-F?h-yFcSHtf-$p5_3!K2hjgjO#ewAmqh zIlTsqNJ)Ftm5+c2SE&!L5+RZl|3HC75tX|eVQeDW`imloEmQb zpGgO#jEnZudUIm8wUyt_qd!WZR@KV&b(??Aj!w0>rhw%s{pWKTH~A&v)Wy+HYK}H# z(hL_D9KAP8DMXx5{;AJwernnqOzbTGWM?A1Vjb?MZ|0$EbfQQ)dDghZQ6Ww1I8xoB z3XW!Ok#xnx~kQ?J+@DlWIw{OT?$iRiB9iB;FFhl-|1(TIF1U`am}xo9%IV zpjMn7^VAe7N9O3bdv~IJ!CzY`hz&rx66DMa6?Akz$0Z+^b7v z1!b@}5p5v9o!X$2joU0P9jji~FKB^3a20S@N$6Bn5xf{^@F5`Ldfq zqZ0`HpK z!r4Rvw9m$sLii4dcQZ?RA&>z|#NtDHHi@oLyFfpHs-blpP$4WI3N~~apmY_a<*SCa zC8zkaIFtm*@bdNv4V)(RIfkV2EL1{h4P}=_VT8#69X(#BQX?&0& z25c8RL#0T_=rwNsy>4|6EHBEUg_WX5%~X;uw3$`YdZN}*;ri4iy)1+ivrR8p^JGYr zFp1<(ZUtj2%|s_i0c?a+QQBl3+)+S{ZXuTFOLM6ql?}DGOGJy5z%IKE)S^FI8=4{! zlea8Ny(y70My;0yw?$-`g0WR!i;9$UUx^on73_=78oj*bP%kR@)GKA1!Dp}2C}rrn zF6kSDzFmugKsh=NS9qJVD_Xr_hI=iK=x!veSUM#PjsNLIlNO(4%+?wmmt;6)EGK9< z$Z&f}qjOI*(AClsC-n6xFvzKpcB$f#S_?(>-!51q7cTspm#8DTNYkHG5*Cl&5#>1Z zRQU!YC?es-7f>H2I$LZW~s>-E5r z-JER#)taOwhj~C%=8IBnMcT9}-XdxC#%as+a%?CzW)$mKz_H8?Y392|KaLlOtOSYK$kepawc-y7y;K`zW`=dXts2>zt5JDI z)N)fF)ORUnOas*~c~N>CTsMu_4a{5jMwQB)bt5~`WtK)4{JE}S$)Tpp=23z&-n)^4 zQpT^N&ztibs#ZtUO1_E}K9)~7bS(pSd71~NM;D`bM%?Hk$ruKvv5)>bw3>~v(amJ- zZ^k>nXjO2%T+CYNsA96~kwXiOc6~@|8@4OhT!`pvi+Tbg2}M z$Cd>)UIR$0IamCxSgjr0k&^RDlvWc$xgKvwQu)BF+rp%Tg=Tn{ju;xwRgotr9R&7$ zkUH|yPQ7CS=0!PDmWGnME*)AgE|H0BhUkIPOg1=h4UM_Mqo-6R1557Y%QmTpJ|>_O z52Tfm%ru_4h-0C0sj5Shgn|U92IHBwGM(tls`rU&a*eKX_&XxWrY??&fZB}6f? zn2fk79x@YfBoY^z5)ra>q*Ow5F}9xo)nv$Pg2wS&Qy~wC7S||8WSyYrYcKi z3<|1vDh(r}byT1~l*>|j!J*+kawN5jWh+!8K-Ki1)w@%QqNb6-+&!Vv2qfXEbhy&x zQmI)h41$=Ym;R1oSg@&}Pb7M&CMm&N*@lnOnoDcSm`U>o73*9su5|0w<}DAC=Sx(_ zs5`b;3VNqmmQLkY#a^lI<9rW#6Cf^>E;X<)>}cDd=cC)w$UGp6i@Z%doUCc4&uu6Q zx#?w60@Q(vCaVAPsRN}!SIcx$c}D-!iCcD#+jP;97O|;I)VDm{27?Wfn9$Z_f}^aq zO@aNwrMA$&{(9a>Dj5gNIc5N zQkzZvN9ng!z;Gd9t7&6HhPUN%rpylQqiP33&sv*K8)$e<6E?L;>^VmE<8$nFnlq7d zprj6TqK z6P5`GSI~X>&oA0)v`X=~olkp`278unp5k$^Z^vYz;aly~cruK|I}25WFg^I2r4Y?4 z6>0aPvYPbM~zvg*4ZHua0yoIjg@EXtEY7a9# zs(T&Ut9?f;9ii@Xd||f5denJ7NE9AqweUb3t=7F^;=?W~mIi1Y_cq$cSdC)O3AD&J zk2-lYDOYwe)wg36!DKsBxHXN+b?9K0uu3N%oV^|rFAUR({Pd+6TWkae8ft`oR`Q>p zFPNt)W6-;+WPofB`stgK^zPgk4$MCdAU$T=Q-QQSZcml_24()KKJjJd$Qm{o%A;79 zx8|_CU|gv_lP>(C7!$=BdP%WK0Jc4~)GfxXwr}GQ7tK~`@Pi-C;e5^ZrOJ}Wx(PIC zYqVRcFhelB?!DD{X)NyWq5&7lOHx*muxhq3YIccJQZqsA!LDjj<8%h;Q-P<%#h+}?*83ta(ovBmy zR|u8nr;0jib}jt}j-3LjR7+Nq8<>cyf<-g+$&GOBNi`c6vIaU4tq{{i`s?W|ypraduAvypNu$7R95`|feugw%2crG14Taj*;4QM3s!+(%poLZp z+sbiOnvQ|Ca6hVJ4eU(hIY4eqUX`IQNU{1nMyIX%KuX5++zahY)mE({@D=HAD(@1h z>Q`BnZ855%v$(=!7WM9kHo!mtFbni|?A2Y}o_*?Jv(rjRw>`^buhr(~ z-?X5;cw=Uj`iS~x)&-wme^$9PBQ!IqRUW?Sb!IcLGwr)-0P6l+%5Yzkt5%z`ZYnIY z)7Irz${zN}CRNSr9bb;;3tiDfuEI;UsP^y_>UiY524;xW?(uD}()uq({_}d58=P9q zo%8F=>(zyF6;5d+e0nvb{U84yiO4xQY(cCPZQSZ&TRgoX&4eIU z3M9dhMwhI83v&JhEyL!avGz1H38~@W;iMAQS5BxREf!^YSuM7jHW*gwD;1oXukhPA zwbVi+1ZA$vNlEljU>kSieN)%3f*%0IJu%9Stde|m9C+QvlH!|hI(@4O1+Uaesg0fC zah#}BnWTf~a$!=79o7;Ctyb5Jq^Ki(=vvqOpe9k)13joUnmO9l?8%>l4y$5}X8lR> z=-k~nv*LUr-|2?OE5od)NuADRjBn-)v#vARr^Mj|W4FfjK=SjRcl{Es7g-BnUNdHO z9oy?ARYL@)COKPK;tb{NYEKw|pJpb>PsZ((US{BHle;OP{Lu#5$D|eYzdCis4e^Vb zqVmk0{I?0=Wsg&3NTq!ySa4dP)|7^hEo(LePcw~C05qDu+WuEwL-m3xz>~>TIPT2H!pu$%rk_byDDn!;0#iFa?4*U6!u{wAo{Uf zHIY24+KPg@S`%%Z<|tmL+HLxWB{#Qnk;9J{hMqlStzAv)3Z-w@Z7;jk^4OvBx^Zh@ zX?bA>9YFZ-+N!ZZ}SQs=p6wAF-J zN|%wUK#gavD9!MR=wLNye9dlk2ccm@u18C8=m)ms-K4Hhk6QeQl?fGHEOG7S{Z>{c zIeZR&lRee%w#vzdO<>mx>Us* zA*Vx|s-ed%WL9=C2eIHF6P;55(q<5;BzrkOUT0O`h%lf5D)~9A>K!Sg96*eqh+A z*;N@x0@}KGU3r$8csH2ai8Xe;Z>|d?jVii^ae!{upma>R*>$tG=~`(cb&cWN+M38g zb}gu`<$3-#qB9k-9Nk}vp!4T8y(=a;@|$D9_mZexJ)6ZEGc9-ZBP~x`KgvKk>uTAy zmIeB6#|pX*=aXMycmwJAYF9K;1mQ&!1$3cm+`9Fr|McFUjhI#}MJncU*=j!T*!s8- zdb+^0c5JP1s;4L`F%t@c<`u2jkb$=j&8^jvP>LWxtG`KIyLQP0W?P!A`WaL> z5cJb3dGq*&r*H~!GR{A>!R6UTg>0iv43nLSK{RR`0>`q@N-L<;sSBhGiD|MeDxWB)fffmNx$sua6Ag zp{ERjVmH;l5R(2U+BW6tP=j1=!<1j8*tKUUW^zfZ-D$z*Gone&5(+*}*1-!v+|3Cx z%lbV9Hv}^n&(F&rKNZH%>GC76`7o3yn3j2_h z!-QT1K*`*&YYt>BtK6@2E>@Ow%&KYvfZcJiiw%kNJWOn3(@m`p`(4e6D>-5j zE#LG`n|D~sW4W!gFF(k#ak8gkTSmnlsi?2avItVzLhEcGIIPAhW58S$NC zJA7fPQ_xvX66}I%DR*tPGG~cr3O!P7v$~OK_EWa7Ze%-)0K_$~Ey};L^eh+s-lSml z=IU=2$A{(^dX;rMVVy;#2xhHR&eBL0EoZeM!=Ko!2IhiVVgqD@7Npz?z2~u8i2^7nI zs^-&vRoO!jh%@GmVCK5)HIs<$q(tlhT|lD0^na%ei#VWq?^>3%rftuOr9x1YsqTmAzwo9nFDn;9J3s*E{Bunj-l5M1KlnLnT$`DQJrnGs74cTP zIzm2NOF?*`$K!ZspP@p2I-R1Xd4d=2pEt<`^Ql=P`Kgisub;BV!^M^v+ebV z4qCtYh||9NBcM*=(uKlzxnjK{1}6wA7N;fO$EW{4k5yYW?KN}QYS~)$@VT2yVEm<+ z$W;s_Dw6`%wMpfp(j&o zs}J(g=quMs;)vT(>U6x&L-m#k^TR5A{n@38(^u15lqHDRfwnlRj9=f4@C$bY`rZmU8rsUsfe<^Ox3M+v-1V7>j9gn9 zJE8pZu~mx(5prCW_1UhqK*=&&vo!b?;au%@u}T=`O^4NM_<}9ZooX=?!Dt8P1WTx4 zQz2<`C!5FG;ODVq1p>bSF4z8-U6NnI0XSvSwH-bn%)aH?p3?JuLly{1Uaw_Fd{Fnv zbS>6Haiv2Qgl6?t*NHL&F+Gab&iL)zn8t$IMZebzJ!D@P=xtsDbwf#^%;h`PTDD9B zs!opAGLb_{tx@>%_sTVcT%sr}6RCX)aYS4f{z{*@*7$8q@tAv-w8k|cDXitq27P{z za|?D5_jR`mIMbN6dL6o+N9W4f5Jv%%4#gZibsNha7}LOPmnuKpO)Pf~AO9EuPl{i;SudZOTTDye~V| zh2C0dy&LlYv9qbKx_LXY+DXB@jC8L9(ElacF-^Xg9FLF@fPBB z%&cwp%LhqVNz*HmD>VJ?kg7m>mCs+KnL*oo?_Yb%=u6m1A#-@5Uk9DR#$}6Nlrn1# zb*LkiIr01gn`DTkEIOEr#!8+zNH8D=R$EmI3=?um0|&7UgmWqjmbwIbq9HARi zF3`ONS4|n__z6s*p)gGv$t%6+UZp-Waf=8RTlxs)pY%?kV4O`$F_S;RFygoSx$~^V;k9o z*JPkju&`|la=eAOHfwjVZm3s%A?B>Nt?DQ=oy87;Z>Mbumha@~=glGY7(=p#c{&ae zmCKH8CZIN{EQXboIh}(JXrl@n8{$_O1AQ624SJ8SN_57H@ug$b4p7?Xw(A&Xq&Y&J z8Xha)#Eqy~0oGd1F$N1$0;ThZm_lQ0lSExE6%26`cgTr>nehFR`E-J=Cc?`jBiFe( z{XOlkTOcwun*eq4$yt^{GCTW43KW~#$qYS)(! zve6~LYLZy?=49CRPX{2)c3R`e$KT)^;4)^Jcmda(*-K>$g zJ5_1cuKDTAVEaw;)R>`jw>u6e88^4gi=Nxjr63qpnJwTy%O>u6fx^?MTYg7qik9M5 z_#x~mn9kWOJhaMNWgJpHti3N!8sW-mmolu8q^i1?34tQB{9=mS=xTz}9Vv@zHY` zY(x6HW3~hFjA)|$GpljRRGiT*IM482oEci{ji}o)F|pz07=jR86E+VU&f)+4DMLK#)6(JtS2n4|_~$5gJgbIGK)>T0GOyTZE0qp?XUi~ z*d*pE89=D}_4`)u=z*5>UaeVe06|E&RNB(g^37Tc%er3H%5?m+2Olry8M`*J*)(DX z$GGM*V}Og!RV}b@bh?!ntkyfN8BgwSD+wnK%Y@gYk$8&HE?S*J@)Dyp6Vsi%Ub51| z=SvMW=MC|T<~xY`Q*X^ZLx#7gn03&F8$nLNMo|T)8oY2$jS9?btq2zy zxu32ocWc|jrDuMle`5~PHlpF5BU(Pows3VMEmISEfeVFgaCGz`sd87ii{n1wz{~ee7)6Egd}5UlVGtot++}L-$%of zHeC$kIyA`~v^;>dhHKn$#v#dw$y~~YSeBky7G}nc;}?=onIg^gb7{v#|MBk5{kVsu z%*omgQ6xL%;*q3XRaE$t@{-#K%0E%H=9U!qsTnI4oYL^wsa39-A%W-;c5?raa(HSJ z(z33Z_u=82oRuE|Z;Mni|MaW1(BAiq-7|7HU>clj#iV4NiMt;sD#hBa3`fh3*n zTz5o=p;lXSy^p={5`z}~%eu}@X~6WQmE6Op?yockIqG9=i`kT+YxxAK<`ml$cAu-Z zj_@{e+eMTdXUhle%`>wKN*89neYOoCrQqPfWF-58+r}9;*z8+v)BG46HsfAbAKF4N zxtBPL0P(7D8*2uSvrw49@@aIeH_4c&5xQ87ZPqI(Bo?%#E9%$|PYNY)rB=EE5b}|m zdwtvK;x>KcF7`nKD_3+w9wj)l=}C9Ll=MP*6vC#M=p9%+Cmqa}H{^75847kP)74Gh zjN-Nq!9a7Ox`rNKXGJcqQBt$-Z?|Dtq_gf~v)~H&Ubm~EUcO)>*%N8ocAu)5qY7Nh zesuvHL%4=c=eID!Rz7AC=-ijq)g65UjaXbxv%3 z3JjoQHFjMxSE{Hd4tu=MwrI``&aS%Kbs&9QqP+r#7~ppslMaj~hj)83V8^R<1&i*u zcLp63&4Ib4UDjO(i&Zk&mWJJl@31tWd2!)a^&xv!_#LKg>r#4Oyn@fPkF<@f+k@9b z?`MU!4H0Yfc$WM)Ro-cUwi_xO`7; zQ5n(Sb&UnMHZtAL8!ucI+35xVf_z-Fa~pMad+e-h7FGX(Ww*Q>Ib_o{>~JpJO-Fw- zVI$@`U)GJIZ-ibL20JuK%A{Ze&S@cDpeAmD^Igakd&-NHsc>eNp1f9*xyNG`4Z+fT zd7=I+&CXVN^+?uw9IZj%nk{ekX2xzB5q;jE<(BN5AWmWV+gkEVW19x!xmbNdu#|k9 zTQx;^zgRC_uqxQix2WT=h3?XzuOfApy}iAjH^(1Aaprt4&jn1UzrKY3>Bw&_c{^NK z?`UMzi_+-)sHa0td+F8NeABIDX=7C0+s-JWu9yxR^@-cD;aT2g^!8$Bx^N$u2i0n* z?OxIaq#Y{uvVijD8Cx$En4KNR@Ba?J(V=t~cXPDJ;8+}No!;Ka_W1b1=#X$R0kO7=Ar@mo^?9OJq2Stkv_B!5_jA4tuY);|ozcyx6(|ybOZB`;LNc;Ep zgq1(V_|esoDPJE_dkes`SNCdDN$m*d!kN*s*K!~4Y{&;4iV z8O}Y{{Q6rIaY5I=h*Yr0w|K@9L@>NpTzt+v4i6_<9vik3O)Aasz9Ti)O{Z>w3 zH>#ztS|0G!jwg+GHc6zT0$_m5H2rtjv9vh~1iock{wd81XZ;=j+LEN3ZXg(BANTKi zL+o(Y8NH1J{_xmx&ZZJ5?s;WchC6*A!1s~|Pg<7(7JP8$9D;yX>lyGSiFk4I3a5Rv0hKgDT8e?dU}I)8 ztyT#5bO$^}G9Rm|GFzQs$qNrI2Hay{NWeuMrF#swJz$>lX^QnD$Y*vJxFE^D;WiDS zvZ{e9NT8MIrEnBuIJoe}BEPs`sh?<_4(Cu+@Go$7rXeZZmoVXpI;t%Ox2Mv;h>q~3 zI|`(Wo`EqD;Jk)g7eZqTGU-8n3OXG-mcA=;gmT$oK@ zMKhc^x5y#gsVVT>Rh7Hrpfzfi!Gq)k&R`aJ>!LVT!G*E1LW8lK z-VUo8jQKAfEIPX9n&H7WcbS8QjvBaim^(O?`N#{pVoW>)9+`{QfM(-FI7;Jy{Y4IC z`k#a}NlFh=HE}ZEgbkLz^4fYLA|_$vBm!R7)8U2ovpX3+){g#FREJ%g(t@liPv@-k zQ(b-Zo{rtQwUe)_A(ah%)sxMG(4$Rj)08Og`!pF+XLMcUw##tI z1VPuRa)$F8;=D7~a5UX&7^Ru}M6UWU>ciH0TkC`RdGion=kRXd{HCG?u{}@2%NdXlT8dRq;%@*#>4$~zgBYs*qP*x^5otI(^an(i8aqr^d^&{4kt(bIu$8nw^*b2)( z&s93yW60j~J1+L0l!ZhMe_q?t(QIlh^O0k&xRQ>|ZUf)eN4n#@a~9UdFgshAPAJLA zmF$tjG?^1ukilw5oZ^||QfjM3C@0mMIKlx}pq@fPm#oA$NqeMw+|j8vaXVu;jIwLo z^c+pn&KmrZPA8UZKwG=hLbIM|Vg+ZX=Pg6ATBtdH>kU8gOcRfiiEh&%K(O4J_`G?5 z|J4JQTpA|+LEOPfZWHr9)YJ1ud@&}P7@Wu4qN)^MKTQ*LHbR^}_2R7ur+;Dm{AyLj zR%24yrDMRiaZ~)}00AuY4vOPT+)b`yLBU48V)k53l{xvbnWmWP|7o(AEA^fH#&hLSZ7fCr_S@5SWreC@xFg5~=<8@6(qvcYaPN7wK)}|sbRcPrBaDS`CK?{t_ z{OdY2&gq)dVA6b}x)UFZ@+(@srWx0F=7KK&D%N3aa=6^@22fW_#%1Kw(nRQEKSL@t z(q?uq8$GTk2;KNrtQpUjSCK46!v~FXjHWk`Ih#|la*>T2)M2>j5!cx86P!NR1-q_J zjW>|OVAOaf-6((6@25rMJ4bBZqznW(>&uPb`2o*`LgUd7T1LM{gHp`6H{{&miiM;8 zup1X_0P0}x1c8vSj!Z|eyKLui(L>qqdI*@k&K(Og$xOmFlQ-R89eW#9K=!e6{4u$p zJ4C?aHIl3*2hE@x+R(A;ooH3d**kcx$XphQDtz2LcFdfgv~jTKn8DIhM{4dfaBF9o zw7IvlFjY61-4kRuT5MYf7C2@$=?jbju``Uy!u^HN4vp;#Iy_3pio352Q7`5Sr{2n_ z?9xdd5LbF+=Yj*YN1g-C`BvKnd_A~H>Dy_E{Z?SWgt(?Nv-8Z4XC`x=*1Za>0|tk(Mqu38voaL46V?EN)TRIAurVy()6L>% znpMaw4Tx5pE%polLg47aSsxvcBa=;AWM^O-sD;d044`w5t;mc{TB17_e3@uPmU9f? z$-C?1oaSjamlr~c)kjt@J7B^7flKxF$eWF5iZo_9YFr#;ya<)$3?qM#T+Uno!)5EL z$kt2n)8U=+9VtA=6{b0kj3av|Mu1KF7kMv$9q8t1K|Z}tWZn#dR#=~8;gWVgHUH4W zP`-DZo;(z-ttS&nc9~A$@wYal_gP_wzCvN|Y9+3e@iQ7n7O{HD`33Er2X}Kw)@>cx z!E=GGcM=?wM%*V$T*1CE0OxF-l3ip&@t%GYg`t1Mcm0qSz#A-lw{=_^mRjcD881~b z-%kSz6?7#eEkP-PcF9IaEfTF@xIMeg>WAw!8qS)Ms~vq9W4CNf*VmQW<%Za28p)t! zY0DdKXc~Kz%$y0JlP_HPPk}9=4#9%T5iQAtA5`*&ZK+45lKT0<$mG$ob%<3)>l%*S zoJ(f$YjyVlgF+X$$vPWg)7!dvX>&L*i3Yi)vdLI`xoB;947S>fPt@iwkgU!-IhH&e z#|)?=PS7V4ESRP0+NN_vO?%mct&4S&O`ohk2OCL@h-BMm^UsiiIz?ddbGn;P6N~4IFh`r!xG`)X4R)Lnh^6XQ;#3`0iFn*#tR?%B33&C(NcQ z^ich&Wr}sFRmu zY;z_+Ee$(YjUwXWPpRdF!VOtv#V<2t2B_&dEru!tT{euqfZ9dtG7{*I1!T!<_2bJ0 z%ceHD6tm5$FXNXXsLW>a+y?3Mc(iamIP+yrhJvEEtL51Z){5qD==~DDEcghv8u6g! zY4zo3W)L)M!&&OdjSZb3bQO2TjEpRStK*MmDJCzGmMILSnZitT?0~919Fk?sG}gks z8g_eTV!~_#)Q3Ihy&o;DA7JQRyF%*+eCYcV-ScHvF|jnDRZ+9^A43&kpb0^zrkHR3 z$)^t0l83k$ufXHWW<`Hbv0QkfjsqQL7kFMXTV4V64Xs7!;C8S>5Sdqf#=LR{&Hy}^_ihTKVuATd>2#A zPYxE{OX`5Ry7FeI2(dp1oa*^x3xNB1Jykw<-*d!--P+R z!@u#a4@yDf;Buad{w%kgEqfe3&qZDd$_|?5rGBJd952B3Z#&PxqOGi^-aYiJ|FemO zu?~+pTQ`&OuZ$s4wVLxmFXTBcDg2eM;{2Hmgbb+3*>t3KrZfp|tkZGL{xoVRve$Wa zDZF_)AI!5^?1}tXeilciE}orQ8lYP8BlFr>v}*+$tFAeDHhkd3>fDu5*mIs^yyeh_ z9iu6oK|nmu3`6AFV7YnW-J{u6$0k{xe~@4nR~`eCe%+phAB&PS8&J#GGwb+_K=utz z`igoag9z9O)}FGKc@AEOu(LDIV;L!!fQ^Fl#_OJ7nT4{GhR=P4UUZfk8=e~pd$b~e zD6Zqrd7Ckd(PaVbq}nsjv-<4!*`9r*dK-YxS~bPxrM2gRMOtJ23<>3O>KlB|yv}+N zU6@|#jqRY4+>_qJ&nYj>)iF8j>QpeypcGQI9s#IkZ{7J#ZR%-7)bPFKMbE2=S?L57 zgmEBNk7Xl*Mj91eo(SqX{4jJ)pAR+z^M>CL>d`?tDTMS_5EGWWUuUIf z>Cs_+tOkwer9|`d)5HQ~xuDNJj4fE(SA8}*!a$@Jhjrn#&j8Hm_ShDt%n5&+A_HDj zr{~Hg-jnQ3@aF9Nv%mvsw`Bsc9E0 z{{AEPU^zj{B;2D!#I#H!6qb4zzEyfbJ0dzrZM`#XbpZn*;DTbWxX@_)OjpFnu-VxO zbSyuR=SD~9x&9AU7J758nPAX^&O0FsmA+Zy7N;tp6Q10C1}N;k%HHZrO+jdq zU^TRKqC;7WF=(P_YCHk;Qx>_q(q*AGCmO^i2Mk^O{JIb`fB2fA)t0cD2vh(!?hc*M z19wQ;45rKYgi(9SL2KPTG|)pIy)c_P@OK`4(s&gLU7df>%Wj35c)1gvEEKeln?e_F z#86^aW6>xZ8nf|{BeV%(_G$MFJ9rJ1HtQKV+9$gX`5aD%1wgs~{}r@iZ{8R&?{n4} z9`1?m73c4txy&GKo$uvX5MMSylYvirsYs{dbzwrkv(3E;BtR3v)}C;v@|6IYDZa>_ z@&@Obm#%$H+(@+4k>VifHY+-s>7XU3HBEFn5;O>y9NDnZNB(bRhmFN^ty-y%B`Q4} zW^PVJ2bW@D)b4?U%^lH75gP35G>XQ6&J_sO?`p_zo(n~wAOmT-hv?ZRs4IE1z~z9S z=yL@JI9~aRh8@A&YQ4c>p2njFA8}`s^D#8DywdPa{-~MFx@ojpk|D#cU7AQKG+!YC zsM2DM-cDTTjW2G|dI=Vk%KmJ}{G+4a8uy)E#w(V`NB=X#fagBTL8Bl2#nuolY#rH- zhWrqc64v{-#iM(QrCzVWHs!b3=(~-aW6ergV_edcO_1!HYZ|Q~N(?4&0e8mYrJy-N z1F!9#NjH#zV5=(9bf6w8No#Zpm8A1CW3bkah8rijq^+4k*|)^fj|@3%>Gv>}yhf2! zNWpN@k^Vdx+p>M80zo_9q=p^e3PSTIQ=5+|qp*0YovHWYw;`33T5oZKmVH0slaDff zigkZCaGh4?3jkpeZyvNE7liQ<&M07%d@2o|_kL4Y8orwTm8C%oW|@XcTm9#rc+mLT zp}chJ2*%mk1iLk;OLaEF;-wPOfxYA`0b#iCpIdtEkV96Zjp@kdZMFX=OPn`OzVwvR z%o?8897|stc9<<18g$V?)t-jU1(B}brW(iru96w)v5k&ol;7YkrkZK3V~E9UC=EAM zH#U&vK;f&-G$Dx1R!ssAGv}rSAC=?Y+~b|lw1a*Y#fw?)E3um?9fQ-~V$;0-G?oiH zLy4?U(^$y@s;>e~N0?mo1=pLo)enu_{9tjZ%jv;m z`lfZu1@n}*rv{)#emt!`c&I(Q(#9V&)b0FXIt`puT-tiVcQPp^1CW}8`$m_6UZYce zOdg@fh2v%C)bCD%Uch;=Fc&qc-bAGZ$*Y!qZ<5}{y?h2W&Ls8s*bK1-Gxg2oKZI#0 z2S>PZ+Pq*!qwV3kNAZc!r3iqk2cuqeOivuL(P~YH8akm1Nda9@Q)b9U<0K86**sBL z8up~xaj}d|@N_gPq z7WQ)(rYQJuT;1Sx;n_SXfDU9I!>JEP%p6r~008?-$cP0_IgR{3O!A!}AUji=8u+nh zXD7e9ma1odzorq9;6+Ti({Gbl1ed@r+sj=W28B4=z$%eE)${av>^;fOTLoiLI4QJa?s=7BY+H_6Tf=3~I zTXMMjtX93Sl-4MYL%ydv)rO$rL*_0RlL0ze6Xo6usRDz%?r)>jP@ezN zBZ&6h7GGRr(1R?ks#pI$j?M~J=BHF#O}#P3MQwuPJqcHvAVYCRmDPL<&1SNZ0;UJQ z)drsG%|}(udI?*bA{hb)79PDeg}E1@ceQR(a6?W@G)->m>P^q9lVrF(DqfA!sPxHe zLORZ8)`Ac6yS*iecCw~L>R_iq;`PqCl_-2B?C4I+`Uw&-v$EdGTeGfqXht1~e~KBb zy_w49)p-JqzZ$QYNmr0rp_#Qh0SaA)^{neZJFg7JH?iB+i;O>}`}`VT7O`2OCK{M} zH)WmC-?OOy1EnwNtOK5=u7@^5QMK0pkr!S9o3%Dz{#Xh1e#tWRPsz1lCI-aWs@7Jd z+NK$(u&nCc8qjeiAD0*Ru;w%t*B|_`mWhsCse4-Dh=y^zo9`+0N*Jf&%gH z)^FzK>FUN>$O^UZ@3h2%R@|`u*naqA8m^D#z26(o+_mHm$r_6!6agv&KWq2Bsmoe=-sq$PL*0({*GUbyM&Dkn!RtuE59wOcQxsNDmj(w#Rjc9#V_!kXw-E|8%sWPT?9X<$@L^UGYRTp z@SZauKic-m>ak#h&%X`Vg^Dfwah7X|OTVrK9U7HaHQHra*TRmk>aitVREB=&KnIcu z%>CNvDY|L~0k5PwuL(dq?QG=7+*z+ZHU%q+`>)|9b#QsMF?~nCd^-C4%J%3nCvmUx z`vSDbgs(>y&5aB;T4;G|;wbNhAZ#spcx&k7_`8^A1v3LW*u)vbTB(@WXwPks0v7g5 zwZo==DyJklpH*e-#pW=PUiv_iZ*JHt&4|WUFYatw!DL0l*^Oy{KS#)GS&j73V=7=) zCLu7`j-bwjCb#M*21p-sfG{PNaM(q64fEm;gof7%_@9?)%=%!cnll8RB^Ls|dFFr- zNJHODi$LTNAn=N%82 zW!b**b7F$oQRQlC*;CLqtd?Eq$VoSEL27|d*$bp_leJ`Qxj(yOi;jt5tX6i=)57ZQ z#`D%J8{yfRy*86KhljG3j-Yh5uCn_cKHMEv5&L%ODOmVXdLy`&-kHj*BEa@e*Bj;cHJmGnl?kZ<<-1l+iOJ+rO(zNyHSfmJ}J*$ER0*5xs0?>2a>an8Z_ zzoD#T(9vgUt~-wjHRd20$bM>PgC%8C{_}RzJNj%j^3|ki1{Q2$ATTDvH70P)Kr#iefrp*C9%&oa#3Tk8{BHiFYE(*i4s(p5;FMKr zpdqMpTowg%OHm6$y$eJGTna1zYLs+*eA%@X2s`iK3d$RXj#CE{=7%ZqQi0E&;<*H( z_RJlZc6t+vpa~B>^UR~8zZ9B+y3@XZ1a=UckXY}OHf6KKHLoojF6>Q)g9p|Oozn(< zG946h=dtZ=#|JQR5(k(Io6@#t*ouY14&Hli(+Pe+^tQkD>4TUk^EI;9b|Y;=4}nOR z8}F%*NU>0SyW5?Z9Se{^}&02f0 z$>_M#9Xn`gRE>ngTG<)xp^#l{1M|CX7h9_lT|3x5+fGfbSR}5t<3RbUe74aZ%Ib~} zw9EV1eso0ZLc+b8?Ny|-#aB1B+`ZW>1W?)FjCS?|)nj@Hftqa=EcBcaEs9`0AP5r$og0wwS~pz?wR0uW;J)b z>q{1GqrUJ_c)7Bz$MNl9KS54!R@+^P@}x#jhPhIqw}PMo9wIlxfWEf{p9IF&@3%?4 zUFd5j@!~)O+iJI7Hi8g*+il+o)}V+o0~@d0ZcRpAkntyYo3L}XpVkC-=;ycwAn3Y= z7o9Y$#ns-2p9MSIR7WT>PjdfK`5PMoYG!R|)sQr_gKRd`p$Mc_)mR zO7|LFNXEpSKnRy_9dHZyfvs784JQJmap{*~uv$9qs0&_Q1ie>TSzGLJoBgB%z#I4F z&hrGz@UywWI(cs4$EC6}cdpQ$o8rKLxmw@cfX(9kjy{0((KB}tbl=d8J2M(S_>k1( z=3B$DGs3|GAdIJ4%gllV9NmHnh|hxCdIXl}idJqA?FVd$;9(_}=A<^YW)3{9E)9Cj zFQTNU2XJjiYu2Ipgw?6Ut7IRs*etYclIHG1&7UAOFMV#^ZOa{| z_hBJwOHJKsO+x3aH*%jO-7*?IPnzn7oi*K>nZV4Q|J|hgUs=lYa6sk3BCKw9UPyB$ zPOUw^()0D$$d#^l4<>&Y4HOsKs!6(S_|kfu-FMW5Zh?aCQEFZNwQAkpI)YE5YTaQ5 z-b?RF3eNg}?ak1FV|d%$T)f*@`EszwRp)NNhntI)_0_K3l)cST4wrn(7T<0Pj?67n zCcb(^~@XCc~@keJE}bKCj9J^Gp_JXwwU*9;T|GW?GkxfF0^oM zT+I98Z)?TaInDOO<@UE03xBP=Cw$vqXgrp`#Jmd|<0RKzz@k7lLNZ7&6VG$Pv5a2w zYAIG_ue|ozOd{Ap=8s}-tGv?Hp9Jy9wNdQ zHtUL9y`&h$F!NU3dxF#$zvvepeh2s2@CnBM-Mz2Kt&7qtFlkNa8?eJ$!fSkMo$R}% z2^3J$y!*CzY8njQ7%n}&!5iuhI2GZ$mbGsN;~2`!*ZW?4RG$s5kt@M>==0aFc?pW$ z)%#XyjvH}g1FPv$-vdxE^kkX(spwn568Wt$#?cnO51H0mfd@J^$VqBpe}Fwd!^Z?Mv?_JFUr3LAjao& znW9-qjI{GvD5c?&!L7&;>T|ZW z@OPhPtxAOm6)y16EmN@gWrAB%0G;ed%Zgd07givJ)V9_J*i6eR%>0%v6!bLQEyR#9 zZ?$l+bg0-f{&)gHPa0kb~dUqQIj)J3j_a zJvK}Xyf3N1t5EIWM32CrY40=KC@C9Kr?KXVw>yP^gI16rtqHNRUOHm##;U`d`PJYz#|ER9 zWDTzHC^tId{?^-qw=0O?={>3N=%jFM%l(4vi*s{mG8lYG)!k9#`{uWt&6QM*5eL7Sr(7Ue+}ojw~1df;49;V`IV$Q`>f zhTgp-weX|30!xjxh6@W?pjI+u7)9f=lB(RV_R%ow63jKMGANn4Yf%WEa!@-^ujS1o zgB_Z#IvLK({A``HI!sRBHpn&OKKR+;dBw~= z2D=G*h6;XP5t1S6b;F0SG=XoaX*DeM&ZW;oxJ~4$ z>MZEo^XTDbreJlbt0Cuy_(GCUQ1CD9kQ`qK7Z?<9I)3p|dogHM#=dwukG)Uk zxT8u3%9{igXRw%2EhzucHY zkN-K&^*LUiT>$kFekn9EXAbqJGv)Q5RB9Mzyh5LZ1bi1?Z555!B!CPvTK*LoG}FBg zd*e#uVFqwU-3tmAlieDP=!HL@YU6^IL@NYN5PKS6*V&8fFgd=J@zXpgZEZnZu~%#> z#}qUd%8gU=O;#ll0q=N*k64f(bAgWIM~u_()BIpopL*{568Jnmknt}<=1_rZ1Rq=M z9V__Y`%RcQS?Ko;>NW&e**#v~z`MZ$hl>xl$M?&?*i@Rlx+8S0uNi*Rt&9kPRY-YTqPDk!~!;oZhv3 zuwRFmHB;hlvWuMB2cavryM5+mWImT$7T2qqA$vd$V%5fw`ze&rS?b?h_koUB_4nre?d9e~zhHm?!~n`{K$f4jtgwCRR>dK3*oZ2na;KoB#Fn zw`mtntmrqVovT2prtn0~WoJ!oB8g#~;mxe*e^&pTsLIcL*{Kmx?7=iS#^(f*U*3t_ z8z>4iG~#6Acek(#f+RE~PkWkTm@_C`E)O9UWL(ad zhcm6qH6QFYjaFJ01}m5Uy=wYT>Xiq;%c=a~&VOmd7jUuf|)Blp|1$?kd3REXONt8RboM`!!PsE@wn6KSKgK#W-ItJYlAF5^>5eCf z3w{_{Y-#|%F8eU+XlBiBki#FyH|Bo_)TD&o97i{Wn!fOcv}@_jr=GF91{njXKJnQkCntl4>$e|l<66kDc@oD_6xgT_U3*k-l8 zYUM6}xz1w|%5=LK887T*I}R`)u2CtR2lD$e06*H{A%|&%J#?0@5D(7h`O@(_hoZSc zRMF>y4p^wyIv08bKXy3X@MvKAe7y-!cpM5Z4e*{DeBAwJwZHlrKEy#Cl%1XPDoo$v z<}|~v__oiRd2my(ob$PZ@tupt1dR8e=kpnCI(q1RK3)EC(BK+ecg+1_lR&YVjOV*W z+PvzT7YA>Ep3g^7)jhd=F5|C_>D2|k15ASFeWcD%SQYxYqg8KAz*%cg=r4vBHe=dD zFKKvETx-J3!6x)cq=l%H#^|FBRMn7EllLpCLepg&Zi$s$%maA=&vq%Ze!dqBKVQPA zdR8FZq63S}4|cO#R#`NAX`hN$^*elCWIC=}u*ZRaVa$sJo-*gz9Q2FaS+#*{ILKP* zxwpLqn;)tdtv`LQ3ck)?th&z!D2%~(%QX>wNz5JElQSO@#TS`#gq54Y^OJPr6f6Sw_%;1|1kgqvOTp9ARF(_4pVYr5%$pICP8tEas`r%*F`kQ@LGJEk+{t!ew_ zf{mx!=@Pvd6%R2k*&3aDIt4`x9!>}Juhuo{;GM4^^&6y6#a%+`Lj7?(mfMZ1Qb`?j z)UeBA?(MToeX*&;eG@v*%$HMW9pUlI#k%L2l)f*DaO|2Jk0OvvfB4p98r$XD%4HxUXK| zKysLuAyd-Z`p~nCc8rawcAfPm&DrUo#5!2z%SwS8i=nW(_JrQf9{VLytY23kL#%NA z1&to1*R9A9ld)eN43c&!PMQI-ocZ8Eu)2!B?#yF#1+okWgn3_W_!Ah+?q65t32h^?gBRU$*A78rR>J0Vxb*t)!@l)u z?i72@nB1sDoqE90)kU&MM$Wzq{l}TnEZJw&7souxZ8v3zy0QaoXAEj5C`**CjygM2~ETgBA?R zx?yK(kP!Cjs6A@*1fW2a5y=f2LCRS zb4yPp*ZThby}{IZBI177*!$Bf3~#?U^SlXGG znL4DTT;9n&eKopV&y-wTto^aJYRuBa!noG;vFuC>mm`BkOWebcuj{b|!({QE^|ok8 zu3pdeYsH#rb7gCn`@8ZoGcPcEHhm{gjae4E>a9<-Dl|5~`*Occb>NcB)O5Y=kk_;1 znE{R$$F;{j`1#*fpVwMUu6Io@2CICDgn<7mUH#hkoE);Tv348lz2J6jy@~aR;`={}XKmX%c z5w4h@Ozyhrepx^DY53gMhR=rMWB#4iyEX)95*U#2Ji&Vvhk?e`q?GUDX?=kuNF>=xfY^}XJGEBp_!@$bL( z{XReKeLSliUP!~ouMfrs{$a`4_I~To#BjjJbI0E#-d8^7v5W67&G;LhZJS$e;PQ9c zYa9Lc_-qWD_#^8gV>k1${^njEEzM)L-|=^A>;Rs||6I*!YqhvDe(gKXe(Zh!Ul0!3 zZ|`q>#r0g{gJmybn0vS!AARwxByQY|4gM?-EbgNRSLoQuze&M|dEmwSOz{m2XkJoa zY&Bzq@B9D1|9`&t`+Z0+kIg;u9iMwV4fbzmn-}f4xW_)emzU-deD}UO^Mh}C?|jea zLE^pFw0y-99eFrUEVMJ2+~mLB$GIV4?)&iBU&r50zGPYW{{F%t93Fdr_vdj-@Vwvu zy*(hm_TSO&?Hbvd85vj)e(4#Nu5|6x{{6$=%bohcHvBGne8=){>(|vR?(FM-O*rMv zmiTN+=42PMPu_pby*_xu*T>%!*DS$$&MD6`GJZ2vD>CU{`N@uLd5ihW`V$*1 z1Lh~sFTO&a`9J=+!hb3~5VmO^|NU}${J#RX?|<*V>#>i2pVtnDi|?`SeH-ogd#mv7 zgWzHu`{mnz(K`Ry#}=2^8egt&6J_9&d-m~LJoWgWb5f6LdfF?`&KTo=?f2H)&h07- zEZ@vq!1kWc)!}RL?+)w<{<(MGxo@(Ywcr0g2gfq5z0Ehfbluwg|MhHnU5S0#n{VC6 z+19?l`%CX*BR3yN~bzwVRe*ZHFZC;II8|4;bg z@7LkS{-2kB1|`qnxBv7Qd%b5r(Ew6Ft-oF{<&_-e(lxxi);Z?2HKsSqy5(crPc!fE zhEra+xAy(tKkc|+SISrdYCL(m&2nn&m-lBu8~TQ&4@PpFF!%dlTpZ``H_xI6-b*tt z*!V9#Uqgh(!8n5aF3;zD&l>jldnJ-zKK@t4NynF^ari%9u#?^o-^ZDI@_Fx}&%klz z+#K*9orhfR-UE#+*PhR@FLN$f{}Fxue6Qd(Gyk}FAKHHA^Y=6N&OMUby6XE~^9LCH z`G4Pm=*gcy-(?yXpUN*g+I-+QU+o?@}{JnS7zLgGtzop{k{7mnBrQvh#6Kl^+SLB$#E($&N zyzl#0#b2h0@<#WPHOLVB_dU$J(QS_}m=^EnzvYJEudM$s8zE~nXwwDdG}vjf4WWwKYyl%waUf)=7aTQV4Ut_8eJC~eVg%* z$GT(2g+i_&c4b05=rmtTL!bA1Qse{WjqDXEWs|HYjoN&d%@EtwLnX1KGsT(oZ_ zv@DPRsqTI;IYhPVtx4ym3;1?F{{QPw-}Aq=3;6T*1^eyiy$^P{#LU3V&eBQ6YGV9h z{*?a7&E#L@IR94<46Z$2qh~x#-(7RXx8bv-tY1r*mF*vF4c&J3TD?-(N=rOBr75D)_Z z002^CKqCME3}jF2^-K=|P<{t06q(i-<*%APMYlHGvhJYmBpLmCH2we(GY3RQ0A~OO zH10Rwe0RU|E@Z-Ie3J1=BqFRbl84Cz20n#P=eskOeb4UQkp3zwvPq6efw}e9)-C>G zD059kMLed>mrq95h|XcTnlH^@D0Xf?c6xxn|FV|MnA-_9*{InFb}Hj*Sgd^waV z1N~?Ya)6sd95m*jWzte<&T=k@VO`B7#?KZ2jd2@W0q`4V*!lqAI15(bkjE?l$m1!j zq|=3#kWK+25gQ5^tpvg}_rl2#D^r>8AV9gz(fs{Q+j3E5c1$O-=f{K2LLFT_mrgOY$ z(hbz-%KKa2-O&9kYi~e(R(FANjPEG*+2K>_+2c{_v&*B@v!9BNlW0gyO~!+?Hd)xu zv?h>|qL_pY{=_xG44uS;Y}6(uT^t6&a-b4W!5qMaksIiFA&;TX(Fon=;w5 zot&Wmz>>*;xP&r5E}^d&o!;A8(U^ZmmrB%Kz&hW!u0xIsB^SLV>IejB$q}ZJ;W@2` z(Q>_BO_TL{@Op$xw~}fIf%0HN)agd8PTS@#@4_cjAdmzs)>g5P0!QpBigLe9@E{G zLvs|+*?Y9urbnjXi#?w9c=i#^&FPP6r%u$ptb zOBZC`Gm4T;8A#dI4J6bA^wH#eqpSAl(bkC5K*xAw?0}yP9uVaW4-&~hFcA*;dawg0 zamo>+NCudVI+)18jh+<=Zg`M<;=7PMwY!=dW zJwQUo9h%2Q3^j6OeE_lD(bBc=6gscD(3{^7zz=*&a6zfm(Gi*3qYxy*k3x#q04d+k z6^MLkO`1IMY1AS4DC_jw*MqlFv+Ww|Ab-kw{xD~vT)6SLH<$z#z`w<8*n4M`20A{nOP5^*e7Sae{ z#!Cu&JtfILg+`-f)-`Q4dONXa3U{q%p6gpwgShWjrniTCrf^PsQN*`tY7lne&-Cto z&lKx-w;H_-+B1cF*fVgpC~bbn8SDM-J!7oH38f?Jmmxr_7m!H17m&uztq8L6)qL(c z&Vb!^Ektcqry9^L&KbyiF^r>K=u`u`)j0-rvU94*U3Z)Ty6`!JV&x7rH@_tI|L@GV zU}rZ$6+GP$jjzguk9Sp)g*5COqMl2$=2(K zhh`J0h60g0C^)&}85Aky-0F^PZa3G4`WuX# zGG=6Oa561olBkj4GK~yQwecWFBdPot7@VAZ_!m@ih;X(o3pB+x1siI^L5{ZRfX3MV zV54n>uu-x^+)kJ2xh;(5N5Ez@@OtB$3}}#s*T|yq1bK~=w+WP?PHdE+Vk6dlCFNu$ zFghg3G$u7e7c*x_(JZy(#>tJS*c*tAHJZ!>bfOq<_W;z;14DcPy8RQF?7*Neq0QjRxk-1Pm zJOd64m=eK&J(mT8N4SGvXx;3G?74anc7#0$j24Y(V9yT0*byg;rVZy#$gnZz9MCi7 zS`l!fb)^;xuNFpOG{ZUYn!p4A304@eU`+#?LoEUaDRT0o@1P|mP@W@T06k9NyoIVg zY_A2Vl@|z9LeCShg`Qk`cx9QWMiV206L~X9S|g+EWkIgIbAznloZAn?=Qsl~tIiN{Z8v6cVoOiiyoo z6ccJ~C0RyMmgk`aupHMR!7hB}bG5yV+?6}$S3azB`RwOz*?H*lndkD^=jxz5a|?h(}^o zGyuC}mJ&Dv~*Y&J4PyFs!xpp4wY3H$? zcItY2J9o+`30SOWoqFDq&YeBQxnn2TdaQb#o!+_5V?EZntf!rN-eS(3J*~N82GuTJ zsmun2Y>Ze~_GpFGl7>~U_xvS=Hw^uJbNFe(f~Xhax>iETDk1Opqfq7koH zj7>Z%!7wL=8im9#mhh}FWAGRT2%f`ez!SpQz_S<(cVeUQP7Emh$#|v9f4YSS3VS8*M@jK8(Qm#(89Xn%JPJ%&ZWVf>$$s~ zBY<|U{q4?mzMbp2yPYF?cCO{^<#kp?_1tCU2v^GMugbixrl_8qth}M7c^yqz*L4(? zbJ>;G+LW&&DJ#0VqVoTn%TEY^-}$(!nEZ;~%Il!Y*bx~#N?68VT=Wd~aUO#m%{yUU zA#AP8m3cC+rnS6Q*UAN%bH83IYh`1>7i7UTQFB4Aw@7cBi=@uRNJ8by7u-NynaksJxCFG~;<&wJh4{QKmpCpQ9G90Q4PK5*Gzi3l zMpV|ghI8Tw#&Y6_GjgTXnFFF+%vOWyDiROH)BpDO50GgLcgEbByw9fJ1);9`O`f-1HN_BWd9rdPp~0lJ2G) zAcgJ3c{S;HY|0LR+09ewv2bn--DAv8h;mJ}zg@hUg1PQmWA}mEIe`|8+m6xksnF%5#_9jnL|9^) zT%{fWt~NAc83qF%J__%5`}app9vxSI~6vWr34=0*0=xkYMgZ9jKUZTSP!aZRv)3obE>cZkmQ|P=aYJ00Ywfz2m6e6!y zw*L?Z{>7M;n^%(p#j8v84?KP>;nb7P;Fspq4+q|PoWo{4R1|u1VCMdyv?3Y2S9F7u z6LZ2p%7r9B=lda(PEZODnl}`@wfhHu5~Vd$|66Y#AUm64`W?t5499zCi>qh)`!)x; zr)YvwXgTastqe%&-G8}@R1ktw6}C$c2NnJ^{;4$=E8RYU0jvdbQxXcVAOJt5JGA8% zjxn7YBgUpLQk1M%wZqzO_J6}s)1^jwcwO}h&~u`sX-ee*G)ccbKx@z z5icDd&y%*6fp{Pmt4)H#QOFEFL|ZqwfwB}b%~lDfjjMScRg(s(AC(#rUX?W9hACn& zbXelI{80txg^0#7I0+{mijMo#sCg^~hADa`*J^UbvB@WNRC^BiE>>t`eU_Mpi*23e z&FX^@KP}7GVR+orJ7CMNIlG)BjY15?czaTcDfQ${Vn0H`0`~EqPMc;O!zfuwlu#g-7FFES2YIcw_BjuyQ8mP&iEk!ylxN-Ro|KI63 zhEQFiFj{)e*AYiY5|c3`uMVLeI1oc3|Dd}NnF=A@hYgN^Eyghi3hNH5M3AX!yi0KE zku{DXsJVz2dnHFLhAiDeOJhN!660$OGtCXJkd)hY8oh3z~n(iohk@EXFOiW9v zM0q-9vfAraiD{r3#E_dBlm5Cw=cY;}M4eL|_8#lt@|Tp%syU|A?E0RGjmPW`i(-3F zkvRFj!89tW%ZY0Hxh!>vZlvt%=x|f&hUV?Ci@?&Wz0sh~e8qm%yL3eZb#D=Kl~8|TMY_)QYvsr#8c9SPG0*{_8O|wvOQjg+EjLeB zdXOx!P$`xQ)OS}-E+<*7?1tV#`*7e1K0I- zDPt8S`=!pRWJwaVDossz&^7fh7jMcJ07C@04BVA!Z4df0VF&7fNMKZ|1W~-IsYKf> zUHd|bn5e5&N5VXgAWdi=lWqqyXT@EB$|F7@}POYga-RRoSK!N|rrJu$viDp@@z{WTHT< z{wN^zrs*VIMtL}{CIw?Y8QL&q@uT*=!iJ{ZIkssD_f*840ViGF}l1;{`rxcU$y?4D2oRrHxI%T~{Qv?7&5D)_Z002W(Fe3l}UQ`xt zVJrcTU*f@o;CGEu62GMCg_N@6q}aB#C2{*VGW`G`LjzPK0Eh<$Ou2FmA6dy|_(492 zlOh@5AWV?fF3-(a0F(I5+epVP{NDfWfx@kPb23brtDU_qV5?jB#aWqht-}tle5tl; zYCLe(ZR-{O{0w9xI zu5H`8_kWFa;<5rr_mTho>3^66@ny6zCee!M&_433Fi<4@f&6Dylu4y=e;R;+lYEOm zYgcJ`;B(053cGph6nauQYm4()*nBL8xDB;s4>bdF#j|6(~IM zCS5Z-yMs-7u=bAbSB`Q7{PQ1Pp*_bK(NJPTNcdp{_exU+P6N2m_S<4?IQTBfv^8Rj zkIjnqWWhsq8OHVol!!|>nsb817*vTjZES(89>bpXWX7Yzlm=9aw39F81h>{P?j3qH z#ts_7{nOd0gh~scL8!~}(`Ok;?K6$2-x(KK__IgY`%EM4cxHcYtV%P30OCeBG ztiw&jc~Klz^CT0TCE4y=ZqTgz#il96n@|c#Wm0Zxfd#pr_e%qOk+!f9b4N{NKCttk39L)aBM%IUe@HTNA^WH$LZtdI53I z`86DJkx_0tz=D`wz_{4_8@S1IdE`dz08Z&Ptt!~XT4rJ-zF-r%Oaz$h8TKAO6oZ4`z|Q-MPBaf1409*Xb*iOx`XP;DwZaX{ zS?LbHkKiKY%ymq+PPVxm#&86nW3d{)Nj;i^N;`Uw0Ju`&z7T5` zBb9}Gjj6pOs5WO1t?F!@nl*9rQY=v9Ni9JgaOnj9Dwgz~Dv;C~D2^q7Dg-1=?2`1P z?ud#qyo%c56U`4y=k%Rgy+ko_C4!n(l^vPN&jce?a#uH2fj0ds?qfKbGMW&LY^uXC zs^08&&TGw3vJ1g%Bk8b@+y>h1@i%W{mC;3}z!hqR6-(nHt0@z*P)N{oC7r&%>@LL8A4`ImMA0ScQ^;=mipO z{+ocvMU`BMf)6d7CZ(A_POHs>z@+>f(a^U=x+}egsVzQ}1cBe6dr+}Ra5}|u#E4_( z$aj*Ntt;I7`Rrm3qSP&15?L(!NY;5Ch)1~9_BcmJY;bYVN?)8ne(M`*(Io*|{KxS- zg$0xcH<{ocoM3H|pZ-YshOp>mV{8_m6(j;YooLTA6FHX#<8+J2x>!Pg@2sh?4Y2XNJ$L0fg{ zsaAE*aF%Gj9UH9VvFh#mtC~H3Rk-W#YOejovGl)LFGEuOxecp*&(7%g;TSOLTBLzIsupXT zW@^O}SZyqp#OiR-5CM!yiUW>rKXxJA>iDD;JXWK^%d2@(0oy0?RV9neMz*Qz*wEgW zW8Y)s|A4i@g;yihW%L=|L-{Tw?}Nu!L(uZ&zEroN?X;07Ak}{Bj3d}U?brP*rqw1^3v!{&=kKDa7KcSnkXH}UyI4qru>)mRuo@>pKxQG*H^RizT#x`D>p<5LMH zy{3||dOoXO=`+Tbndzt=xQoZ2sm-eO6J5kCZrEI}wD9^x^7vTVj^a~89X*5V_m*wy z;$>|U<16%#Ml)8&ItWg4dbk7#YCoe?JLPE$Iy+L~1W?W$En3~@i&o}rtw4~ar$TPsE2%u3$Iy>HEFfeB7gI6(>;v;>BS=+xSlCku-MpocvpA- zF#Ryx?43=r5u+8?Wl3=SFYKvT+5#Fd-m=y($qghPDc$ta=GQYETBQ9+k%=~6%?+!d zeUCGMx~-`vBh~dqiY$7f7nCj03QM*$Nk`=AQ7*xP2Nx`=F$Et9Q7Q5%Fk)A6;IYi( zsiteyFBXeL%vdusW5nqbdMWcRW`~tUV8d$>h|vqlx1-)~mM<+1(V;n;MsffnZLH91 z$Lz-Je>Ht{t;R?n9Q?bv3+I%jkHl@hYMpDSjZ_@&WUo(?8^Z%E6w(+U{uE{s*Rb6tS0 zfX6>C`t}$t9cLYW+M2(1rk5IDnDruqsEGF)A_UL7o6eTh&s4pc?S3sZ!WAGA<9{Sq z0DzkhLQmvXAqfh>iZ=oH)$I>}6lu`^VdNuqy9-}-2F}6i|C|W@QD|X4JA`OC8 z5n&3jfsU4shHZ)x@=;yz7LG?4Tw;2TgAna_2g7EE-qUraoVWOaL6VM9tuSh#ab9WbXA1{zdfu zIKbRt=E@(R*)Vnx*etQ2{6LKYao3BT0jLZ;`P{rTDa6brFJ}3mI=>H5GPdgFn6&um+zu#!$n*j@{p)U~_-8iA)4f0J0QQ0<^vt}~dM3g! z{ET0qcR{-gm*J}%|9b>Xd>0F6{y%zPn=$Fje_Rm6Xp!Xua>li7?mqJWih$>Hokedd z;v3mP^;*@DI0VO=ChhrP*4hTCIvv&zVN6#1PS@4>98AzYy=>vI-41O#a11R;U;O7w z$F;n25H6#p!U)#h$4k zlJ(DU#svvIIAhWR`Ti)%*Zro1N2c>(A%JX5Drp=#bubIbtamSr!(LQdodoBJx6ca5 zsh06w>NQ2^K?!}*U{m@4_VER6!%24kQIE(B0Qi8DDG=#rVCSeE=o8Ev3WHb&mT`5= z^_ezXI$4^GpwBaxL#3nsJ|Ofj)y3u!^S?;HcMSkQ5xlS+{=ph)_&$s;xlda6q{pBy zAk+yVn70G{s}H}%x)ueOP8$h2T((E?t}w2D4$34UlzHff=zc)0V&n24RCUUs-;#CW zX0(N@7!c?^@a8Uij0>YtLMx}L=3YzbJ~qVeqYGoI(xezBa<-vu&sm8&u=+FYDK1sV zNstG_JwZ+joE5tZ5W`=Pq;E-Wvsx5-{z+Yv@NRDr_#ggEFcW|iU9tB!)-PpYz8es{ zbh;DS*Ts&bJh$(PL#~mYlS>CLQtZyEHhHLiZ@M)|Zu2xtD7hg?QVEp4`of5y1-ysF z4bxDFWpg)B%c(c46JMygRFzb*mJ_p;S0#yYoRBG=vu^pp6ng?}{q+4?a`I%^=5(Dn zRNW9dz{n2OyW;<&FMj^ll}57uZL*||4OEcq5yq{6{Zx>13hMm%+2%rq}y_@HKM}nfd4sOYOE@W#azTu!KADWwyS|UcEu@>RF zvm`6``AQNQ-HI-w2LDQ)Aaa|;fC-X_upjSW5_*JeXdP<=^@i>S-(`2-*;2zb)Ie|4 z9Ps3t?C3};z=FGU;vzI884Fh=#C-B7EX)#QnZ(;(f2!B1+Z35erFv&=Su4GOMkxmU z?rXR36N|KFCloi!qg`Ps%uxoLB5{ zoNHN8$W!0#cnGjPImXUvuzdLJimDy1g&p<$r{g<;HUNLne2^&>ZpE@c6{!&C3a<>U zhpScc{aXsa)0KW(MaKY(r#~xL++u%5@d>{$Fi}Li%pM2$olW9PdSQ=4K##NL>e>7o z*~WBs)+SCp$~pL%+&1#W-SDz)c$qIp2@9|jnK~_hT29Yof0QDbpB|)SM_6C*r$e~i zRefPL*#>+P1#G31@JB$4_Q?Z?F(!QyG1MzSnX*q7eD*Xq68-`D_cVe4W(+SBq9NRX ziGD49!s_`;qd8DCdHUFHf9Ej#RxUsP!5E^Al4j3~Qu<)#TFxRsj6QrWolL?M#1p;a zSbJG&6cqIfL&!n4FLOwPB^M&9sOjIRYl%2Nf|dGeck$ zH3J+Xhv19ugrSMViS~o=P3R3J(G!^+TGA`%J_-xfecj|};`pgQjRztjS#%w_V~ zvSVnQ?2C9pm6`De?L@NiFbkIiN1EwQ+*-YB%o96t{vW$Mm!IXK!v2GyT%2!yJc}e-22@AI4-o!&$hWyiMb7QKlkUW-R9TU3PSSFYv1dktUk4OasF96&t|?q-v$9CZ?E|K6{O?g*5ZvW3_vLqT0?6 zRBcRPkUS0vUL^!hyc&F(><{sDd_d)3ptr;E;+229hs&^=hy@=44KWn@ z8M{C5~C01sjCaMoKJP0rjszysEUA(zl@m(-LnKU`3KHP(_*~ zswzW*xdVt@doJ3PMKtXjI=h0Dc4DH`c5247e0veqgGl9qG(hFjYydy^4P6UF#Mr)2 zyX9ol1_uLkI+HkEhm*&p0ih%>>H$$*PDF2!^XDzJGL$IlV$MLDWbHJRnC6*%eAQRd z4zx|yP9yrD<1`;=f=)e>i#mw!z*08wrOMn;D3x!V*f9ZwkOK_!a^Op6@5i?E(Ff?} zM6IXOw{vF%Pyy+1RpQe%e6ig6S`va3Su2vX*($?Z=b_i{f}>Vp1&L1~e4F^ah~OI# zifye2W4ZLI7prukeAEDN5D)?Y002T{Kr;XU4P}V(0T^MJW4d0}{@(+~0lY$oBRINvrzj%F}(N3AScBc-$;m>+tbzkFsq}(H*C2%uU9-y;N)$ zRrtf3e3j`62+#=_P)Ps)5D|^c09cO^`aqHq1$aOR+fD9i+N!(S7`g@wn;)f3Yl|~0 z-@owhZYt@VdQ@4>A?GeF3ZvAFZ#vQF-QRlY$%{_ZjG&wbf0-@}mUk&nl(*I7 z=5RN2%q$i37u$RP$=y_S;_kq;Y(CxnrH@j=&Eu9^3>I@mQ6sL2ePm5We>creBt6!* z)Pv;Ahv0)ViMnekTr0l6+WN~WY(3@CN}K9*Q&)~DoT>8Bz9fC`{D0}c=`2yE z=b0LX?^Dd=c{rYt)rdG_La*dZ;g6lTI^fCBZ(aWoX{~a z%G_Rk^3JlXL-_vd2)`A2nVgy!EzV3O{KH4iN(N*lCiR6Vl1qg9({Sd zo(1H_oTcOrg9+f|bD%JHHmqgzZCTUiu9Sktb-c)&>+4(N_0;G3%WmHHneMYJp1V{x z4UMg4Sp>?wXQLIG&Q@rO%Vi$Y*@5e6NOz_slklWzvCa5lZ7G#|665}mg!YV?jr7$H z9=pJcDxn$erc@g8_~8DPazFqCjqzGLTM)Kth7%ze9gT^tk1fsl?AkhI&&_h3Y-gGW z&hAx8=L50PPHuWAtsTgz7aN0a^b3FIBP|{1tS+*&n|>zT(KzRGW(N9Jn75?sq$HS= zW(>bE#w7MPnNKPW=`wR5Ot`)3x4#=xw{v>ec>gJH@_hdf`x^pl{D?h2(tbrthbD4V z#}jqEq6iL#`%F+r_IMn!1cV3XtocCmaQiRsqVSu46%8~h-cgo+n|09#Ho$FK zvnivvn{0y@h2p54PuPcRBN6?fJi9^J|Jwqi`x>*vU?(b#jX#quDmaj{9s6#Zfgv$wF#TL(RkuAu^B?Z6Q#t!JNK`dLW)g@F z6l+^wZ2C&zD~vctWA!_NSx;HvlfOJea@)p%=n-y9k@TOEH*9dmR8chmyIP^pO>JCWXUvg}G?EFSX?AOT2K`btGAiEy5hy%@39|lbSO2(Ew52A5+Np zo4rmA$&3C&+uhrnsww$8~DX!qz3M zOn=YnW3?F^fgx5)J|Eb-=2&veam?h@&bw#Hv^r;E-2~%eQ)Kc75jysTA#hf`m6Ten zX`Wn}-=NLQ3nNRN5J;CWjNUN`5x@42q3Sm%INtuo%p<&Sje(K)zcCpJ-)r%0F*L^Jlkkt~ zk4o1HDZ`r5ih-Z48uY5FUbIxi9-=%x+ zJj}zjUbK|&U^)D~VE0L2nB5i6M%GKFq}Q#_rQ`i}HGZQSo_|&D_*-u5xLGb16lO+y z?aj5nZ7A4v_r@l!8bh@D=$Ia-g2Zb1^;t^timashRhH47p&%drH7QK-=Pb*yMVY z^Bge3*faO6DLL;Ly4Xt&vVPHEMsK?XG4|gvW$5}NwRX}8{ zlHlxHn6cd+j$5=q{-VXT~W zF1#&hoWW*3*P{A1sW7G;8SmZa`u7bAC;E`nQe1%9;)2tS*U6x7-%iRt{^HjBhG!S@ za*XZT!f-M&!^MXHW+A-(TVdkZhi*ORNXv!yUOg?qUQ&_nfoGz*a^i?X2=!*Y_yoZ} z5(ITonXCL-TQxJ!>Y;GwW;4Ha{NGP|L@id9^XDut@nK(^k0?ffvf z;ju#$p|-HS;&uZGJMENo=q(W=d__^F&-0gO0^Ytg zRkS&i@Yk=F-wH}G%h~ywtOIu5q?tGE&hM!@>_hNO+CHU28D~;(80&&$p{AVFKJL}A zyf%9?RiW7wrS4N~^jCiQnuy1rD%AX$M!n&wlEfJcLcB>cA;#+77YDxo5^r%!s|~8H zeA`$Ke<{OhzRD%T< z{e>kGT)@kBu<0vU8-iTKyXb&(U^2hX@*c3FP1BWsd|;(l1IIp)appJS$M-8sjYvpnaRgO>6fW74&d z=UKh@0%*kVp@ZcS4yHt8Au#REXfVS%+yZCq*Q2xl$U%Q0jD#}h$z`8&nRatAuDzT} zZS&TeEWAFy8dWV+@Lw2fuSnwzTkD>gO_VndU$ zHe@F&Mh|5EqA~MMWLw;s{+8m;nDOCW#6!ax-V9p6Qi#YHUX5Yg9JB<(Cq!Sk3l+BKr}^>kACe=jS$8QrPl+g#xPO@SIme{8Ms_1Z)h&>{WHUui2Rv+B8NzbwYk=J3ID)vwfs-_@UPX0(l?TR*BYUf$DtH zzg6s)KV()=d)#Mx!nn7p5o=gS3`D2{ydS2G?xp^9+BytK@K@|>GA?nWeDJU5p41tY z;yW4)CQ}J36MdeJAG!nnXtf>TxZnegP^Ohe%sy86&0K`@?aue6pULUeRn7kc1|am@ zJNWKHXT9$AuTFPrI&=YQo&~Wn6^*{_I0X#}qP4 zCV_-Tg0bOPfGmxVE*{Z0o>d9rFe$H+3Un$G6vD846R+|L4~Pf32gM7TCiqXZVMwee zTpkf5eHNaAv&UDzeaXU5ugufIp#EU<_WRR`GRbKpZiEepz^u!hZ0)_rWMoKB3d7N7 zlD%`P=jinU{gt>GrrNf8fg$l#kk5>>Q_hsu9_1D<21CdYX3FuSaKOpnR%sKeDoF~C zEumbf<6=lcCBZb(1nn76QVSlMxq>_XIEF@4+JsC31mYprQ!DsFYMhfva$0b)8c?(v!`W%_4A0Rx`O`C!!6#!tao*%!d}#?|9vZz|O42XI znzhj$eu6GhebCkdOR*YSF%`J1*Xbu973Wg)X4FiDPDl2TNu%_OvjA}ccLBH{v!HB2 zs4^hoqOJ8f?ok))8``*=ogHo0xaw$CTdq|*cJKgXU96mgfEU`NE1yB z&q)Tl&k!IGe3BLC@g)KZB`JhPg0X~FCUQ?0+)6%kV3Iy*7^+~T88jIf85|iP2I-{O zTy6w%hX~*kMv7$h8p?cRzVan8!BMDwBs|J)tea?FFfN5E66>maKd@c=KxIV@C(SPM z(P=!eXHU{WCZjfWD@kr)!AR>biy~7icZ^!~No!Cq0cZn;10q2#L6IAb zfsw(H0g`=Y*#ril$1-M^Gb|Yf410ySWLrDVn=(u`sLvBuP_)uKn@YY7QI-fgLI&jF z4tdg>oT{#xze!gGN~PsxWZ6J3yJu!XN?0MVke+EQmvO|301LG6orNzydj)^4Wb?pY zlD#ZWIfhB$x~VEW$`|sUn8^Pgi(#%f-*K>m&}XFB5_3`|K_i2v{Nx}mBhUp;ymC-^ zIz~!VTba--Z4y4_fQ7brj+ex31!zNy@7quzB;Ld=NhPqVvw2xB*drY$n?!g#17C7J zl~i1Z<-Krg%nT)$YB9cSNrp1#DohBKUX07O&GM85_pvQNDlPTSs#1_gs~>MHtLfk4 z$PBPe(v#zWv;MVZN*vsm`YCxHCAFX}30YgR@D(1DRRuBCJxOX*22bQFb2vj675vI8EYZ6SYICvWpgf#pACzHmT?t}!JTil91+ zXZ&3Wy?luBy*x%FSt?F0Q%Yf_GJ5Pv>3ur*tCMg9PnKYq8J=gB5`xKh9cRNiQvjY< z5hqJ)N22Io#Nc6E*mEMBy8l(Ol#D3C0lgyVFz0zDbO_IieL!GXYNY($x8Nwtr>+>= zPVh}d$tSr!(-KGO`s%BJ_ENMS#R9!(vg!eMZ%&EXOY7)@42lz-te`NP1Off^;-#1zC1IY)#d8r z&VNfJS zBnL)136t|8sx;|^0woKgNzx?Y`IEwXm`qs%pdliP^skeMNt|{>2FX3*NYbQzq#FQX z46q>S0s&1VjF;4=u~4RX(RL<=wnKB%1-8-F#$h94zT9NI%;wC~lDf}j=F&@q+hjx~ zCD@Ts8Mh-aXiZyQi358e(0E|;T!(vP0c6KSgcyb)JrGKOQWFheRS8sCf{hvi-%5Li zqV;Iu0v}~27#CqqufJ;(ONt*cF$pp8FbRqnW*RUCl*TJUQr2GVF2H9H!KI9$iK-or zRH-1W1a9!ut)0_zB@B?oV{>9_V%y1$CllS+wr$?nn%EQDwylY6+s1xd`!8(uTfcTy zKlC}Le>Nzh;FSz(CZztoKQm3hU(ZkZqX*b!i1hCUX98V&WUBA2)#w|`z?ZJ z1q^%)d>sC(IG?DiZX5zY!yeKgf7PZqRxZ^Ow5mh|%K(Pn9<9i8)@IhKs({vuq~(t{n=v$v6O3xepSS*t2Qfk|szazt}g1`UW7ct1D%gJ*-Cu zj_gj%L?Gw52SNcupBs&o-vi3MV9E=$UFkygF2%DpR38q&9R>jq2z4%JTytR# zGhM!DHcqI-G}_XCopK(LI6^!MJldkM(aB}_wgbp?4idc;d}D4bS$z;8*d!9Ta{vr! zqz$ici{T+P)NAcEf$>4azZQeD0)PrsPEG*n4>Z*_x@v?gkq)mUcl$%ASvfO|-(`1h7jrtF0cO9;CVw+p%W_A5QAh{Q+l7Q8$Hg@ zaHY%8wgdZ30M6h4`@X6G2ZA*+JoVoOX^x-V(qA~B_-x*69!ox+;&B)aA#!Y#Sp|7o z{Thc%9-N9LhsuN#RVYZTRF|kPiL~GpU%wuMURO;D2y;^ke*ta8qzoi53u+j45RZ32 z;F|w)hy~>Er@HTs;CCo6MEoufeXseu5=e*5+P>`NmI$6SaltAXvP8n z$yP_YaJ9;{4i1Z}GhpX@)OVWUxJpcO4NQT!8)UdNIFRZ|q^Xw#9evZkUx*pQVD+p>K~WJFf)Xn-+>nV7s-sUzp`{qY zd5bX0T3D|-4NlMuvBhwN#eQDmGrAX|xlj!qtY$!JX%q&ey0eL}B<-9CDn{JL9XcQ` z+Tw)kOXGb!3knFAdjHEx3`LH?6le)u>T!)QbcWX4_iM^t4VEvpB7mnoRL&&R0TOM# zuyihPiso5`Ztpy;(o)s>VF`Lyx0q3>&5lLxtQ#MncNNAEgC>{{liAO~2;Uqn3508v z@Lpdy>-#PsZ-7%Wd$X8#s~;M8U&04h&%_|q&}9Edbxd~&Gq;`L{84)Oj>Wn&GRM&x&tqf*^xFeu^Yk!!HmcxU(k3TG#2 zap><#Ol(fFI|#eA5SRG~Xw62eep(33GR~Pur&`z3;Zlu){YoP#XybH8jVjIkkOBxN z@V105<}6|@=%XtiMC-#PXf@?>L3jt@#j@zl;0pVktLT|l?p!7TcqKcXh>XG78I$;L$2vHtg%+z$$!1Jt#U2UYG7~fpVPWTW3B6X+M$MN9nXPu z0m7*)-Xz@xg3njJd1e}Q{jBLJ7)M@NG<_dr!4dhxrpw&E?}igvQ6`1wxu|i0k2MbZ z_HH3l4gjoI6J%53_L@3qbjDcF@}sPU3?pi6TfUZQyxiep$m;%sFhbfvBSLi?P!Kz@ zRfYZ+EFQn_`7#|jnLCae4Pf}&fr>mb1hco|aw6)9^??zZ3}hVgm?xykG`wkpufmEvQ25))8#1iv6W+fIL~isy!Q-=dG3AmP6(|1MHpODnnx z60skZ+ry%~snM>8m-caPatDr+=BW&!TWv9Ue_riXCk$^eA~1^IaI16eSuL@WK~R(3 zvXpznUd)MRZimg0hPc}7Av!FEM^%e62>aGvRAmh(r1ht$%J1 zRsXShm{o`GiqK(S;CC4Hit!@6^r07ZImcAkC`s)>u%%!4F;Lxc<%N8p>C3&348Yv?Bm0>%YJo5ZT0||~c(46Tu z$DDW;ae?UF0Q7bOznR;1lNJ=B^=U)LX(E9LbVq}h7)I17(L%}bz#rz7JVPcs>KY8V zq=r&dp6&nB0hJ~G_kRn#D%>NU0c19R78d>BA5D7sRYi$El{@K6Eb5!x>9~=CLp-`)Lx?{}PD!W1BPY%N zvc9vB)#}E6Bap&2W){SgUGB3glCAtmU#5^SkcnDsrv$|Q3?<0$c>*uK81E#9_=8>J z-&NXZxjN@|s0!qrXXP^#S*0^(l|f37rJFPoZ+5QV6;OKqGgieYO{b)*X7TczUG9{! zm(H>>vmz#Go7#ScVr7|azxhy)M+elEBWnDce!|F-=?08&p@RgD-}`j}bxEs+$!fu$$spN6+&}3Y?^@ z@Il)t2fa--cX;jtKSaEHvdzZP|BI6168Xk>qm-xhhnuM7qq(jmSWKr&ljZC~<#e}Q ziUu9(k>02^R*zF*k#SxRxSB7J%l?>s<4LH}9%)FMNT>*ODaBtRw2gfE84NSX@BUEv zzNiVW$L{~B;^}%gFvW}s@0>m$#aD$_A*hb_Rqh~ri1WJzpHFJ!(&R^Vy$#s$#b_Jp zTce8pjX~}|u_|3HL>0D;$bTH~Ix5WbSy3i@9Q>Z7M4i!6HLG*=7+i7rdJPeK+ZFDr z1SQ?%@l%nd5W8=2KUk}AnGgRlu=$Rgs+Mu2Da~OjI9&O>O~f78kgM~^aNY8=iAY;Q zBC(1Cd=Slov4jvq6+iM08Cpc{qw{Oz$GzDLDvi{l?d*kPLL&n`4=tJ! z=8PHItYB&yxCw6$myfb5SCMN&O*B)&*_xA~dGbpL7%7HS7?eAnKsMW9=-n~l83j$j`pT{2UjGPQ0=xtu27FJ6k1gqTUTa6nY|b`JFSX1msH75 zfQn>Uawzn*)Ln~U)H!^bm|8`2l&BkY$q7m_y(~T}KD7p>J3pFJsRhapP1Z(BAtXY; zQ`ZV>%2=LRTfc?SB~#mMRmz=Xytjv`v&6^_77b13*>0iTzNGMPkB_E)tsjC#{Id>m|Ng^wWC_8>%u3FB` zp?kcsid5#N9r*Sc_=$08!GjgzJ^!07JSz%nf<{!y{Lx~)ihw9&B^b5ED{`Je$@&#W zhU(~tlr(n0LP4_A9J@TH583b9KRquy!(h8H!NWZP1T0Zi;$mtGI7j}IG~vEcih+bB0U zEATH8o5cHlX|#}j%a(+2=fy8|m9MEb(L?mxW13FffClGLiOx^YP)tcSJ%PsQ*lUeq z+9Pt^o>e49uBb|-4jNySsZj8FpRPke8mfvU1afAB6Tou{&vlRxs5y1U$+dV!(P zzE9ajB1~f3)FUHZ{J{9akD#XNCROV&Hr5-FZ@~_O1HoLx?Z5Fi-#_h1YKKdi#$s^F zv$i@Ex)ysKXW7@-dK>nV-nE~v4c?rbrdI`E?Qi$%M~CveF68qDKJxwSwh&2k{u7p9 zg|;Y}hlI$^>MtKnS%jaDx~Fy!PIC{2Zn}-Tw>pW4s$W(f%Xm)HgFxRr^FcTdncNLK z&L>kj*rR86$p|<=!xZBIudwId3nl+UBSg<>_7#ctndEO-csY02Mrdk;*=ZXzHEX)) zowfq)14%)N1;Q`wdw5X(zdOQeq6bx0XJ@>-Cq;!TySqUJ%?5Pes8X@x<4dq!^!iOrv%mC2TAIp*RJ}B zZO(=+XHyO8HSeJ*>9qiR+q}!whNAwiv-a(BxVMz^R5W9phPvhPb{#Ep&C)sR1DH60)vsSLIxZyQu0*`oOZThBRUsoU&7=z6L3$LmQ@p|GFIjPH> z;NWD~9q`aUfX9HDN6~fmU$cTWT$*ctxs2yr|3RHuGi!Q{AG#IMz>u9CFA*+(q;a{? zV7V9l(?sZ4-sVWOVmjf9$I(BhFJpptt`1!v~%Hm9rDx-+_#v z-Nx^P*3Q>m?87*%4{66;VAXhZ2C3Ye<(^r-;_igXjd-<_llGNT3jPPZ3LOIcw$fSc zFTr9wo^Fx>*p`B`f=YZ*g3imkPNb`7zwX{+3#D>i&lI=FquPFQli{MR%E_(k@HIzS zU`FGp_ICDi-hp%<%zT}^!S8KER861j%kiAZ0$-CE$oI@w!JbR1Qe1kpMQ!hy@T0H} z?nzex1@F){(|gS9HoKWf+*C)x#p?~{Y$(HsFgF=&VTxXY9M>?UnF6+)|}e&ax_DRdTefKax=Rr z$}ptbKpB6ZbjWA%B^(YSr|N#>H`qew1K?ZNkG|uIUb3>)Nk=5SjT!tuAGLEIa#HCY_EDJ>i(;=O>p$Cx~WqVcroctnJOUn_mtn6W!`cV?m*| zi|4;4Z=X0gPY?^S_*e|z>hYkgOd!_=nBCA&|gik%Ps`4KkA?qHKw^{ zZNrZcQ3z?~alx%rX@qcQu-9IawEg4s`fWPu3%KiEm9*b6d_9cg|NVY04qY-qAXkrt z+$ZIzX?+2V_>GbNjZW-rV|c?0qVxxa9E&%*e?RUjhD1)*Tr4{~@e=VXNS>;bSohRi zYH$3F=l_a-cN8viQseoC@HRfiuIxfN!pGxZ(E|Ejn}t-mlj}So_<1;&uY|N0x#K!+7>6@6SIa^XjBwy zNwJyJ;s*$s8fRg6EjX7`Q8DrVksRAtVEZX?tEbDKWw-iuZ8^DUpzkM@1^i_@#)`Gd z6m#H}JaO4Jlv2jYE`xV>*6@xkH4Q_I+n;4`)#HSVsAt%lnHSP(?7bD1e4=|W^+6e( z64&2gBaqwIf!DZ8So|^iX?g;7Nn%v7o*(Hd(T{7GMQ8y+WZWk-PCrDEcoi_^fD@cq zm?8*W-Js87sRxGOAm~cp&DfiNOQvV|tx3@%1)4be6LGZ{d#X zVYk3qS!2N9FktC;3DN23cNJ+!ZrJ=~Id99wj6A-a8UZY{&;*q}OGZUlV*ct11arQZN#lZ}Q(W9gW^ z?nJtlT5uxR<~J|W3gDpqI{-h&-eMwV^1K+hrsG*4c;R+E-~TyobR@F$qN2J$PVrdQ zk(awL**P)(PP$pR-lo=$*;G+g4CRpN91bedaPzY7hgq+S`pUS#D}(OYp?{}C++EYH z4q-vE)+a`}n)nujrxFU=5(eBe#tmK0>ydsM`wQ%rvu}uCNC+1yJ^eIe<_qL=7jJZ)`H;I7{?5 z;8~_yZ-uS0aiAdVxD6NS-nuG|%G|Z@XyZqmv2a$gT{gb{)Ve8r3^*{BA;o3IkEGjh zg5eutjG*U!q%|-%GvzhQL^=8~tCpRm=b*IQ%56)Set5GKp-0<>Nc7gl) z@X#%5Rz}gtstoC|q!0aO{)KK3>)b4)2T0KUUV2W4FsdOLT_nR^Q!v0L@5N!5uC(j- zg5iTZ*lpi-n~f0#L1Z9J?}a(71I&J=%~SAQ`=Rwxp>l?>@QVLW^s%w7NH~d~`k^Rm z<2x~Bj;bvPX)N<>57a|W+y8>+c^0~AC*?Hc0GhpmK1N44;+sh_p+ac@=QM#M zO&;ka60i}d$C}zGJC~K_McGjb853A1&rJWtl8_&ENU_?V3g*{_dXPe8wEH8Dke-GCBVB3*LxZk{ZN#1DqyM=s-JRGPS-nhw%kY# zQ>Y2IZHo=%qeN!(v)}sr( z{DE>TIcwAB*FFD_2P#v%1q@`BnlK)VD5TR+gUaY{yg1b!rIOSig2N<-EdB=~vtOaY?U~XU2$qj2VkW!PCJmJd zDj+ZllRm{E$WZO-c%ZzqBJ}Rt?9L!mC;k{~%eM9pd+F!tY)t4j^eb7X+rs*MUk}`5@wK1#jq>fAZGN zV+XnC${Zbl_PgT^h7vjDcl;Wi1Z@df1b;_1J7__?eTB{DR0!@eKV&lg6hu_y8Emt1 zbEkw7oM5GbwClDzL3wTLupZ;pCv?!gPU8OSxxh^gkL52ZFEG*m1f~!$s5cjp+n;D2 zjS3+ik`F8_lfr?cy$-T0ci7f}6*YkN<_MH4W%m^%*cT+NC%dv8+B!(Fd5OvOexwP_ z^B3{E>VL(?yEIltLwp;hjT-18L=i9*Y`Rds1qg4PC6wnSY2#FYw$E5sN&h1Y>W|uo z`TfPqymj;`HWrCtde+|h=qd_Uboc5L3MsBufON=8mHvU*7j&;|?=L)VNv=IT1dC1` zS5xZk(qPC`=wId!zKf~~f3`w`aRXhp%CG0MO53QhPU$FBtg%?orI5a8zEGIImc1`v z{8Cs4@fRnC=42~hu;KR}KQUxX{>v9m*LH_}GqF6X^?W-d^ldPUbb{S ztV;g9d}&3@wX+U_Pu|U4O0oc(9A3E|l80HupwbqbURhJZW`Vwj;QFr#J;~#tI`hDL&JLu4s(# z&fZkhP1UZeOGzRI=01ECEt&Zd!NQ=`HkAfzK(4DYFFzkdZ`^aZM1P#@O*BP83cp~3 z=;RrM#pHs2;bh;n@v^2>$RT6zO8E8`M4v&5mlVglA*MJqcT=%bo;6j4m8CmUhQ4S`Uq`n37!jo$pxRY2s@2sS?7vMS##zsN`_@MpYv%r3 z@!Q$zY^w+g*R(_&^@DWj={`g33%i_aK_CkAT57zd|4yR$D)oGOHFm&N1mzGq3L6LytK~bMJl2^B(soE5QM>FC+s)F4l@tcJ4b2C4Ic1FxY)Q zfCi5d@!>P~=5WRAz}zt_A>oF3!_bO25?|RhTLZc= zusaYr8s!Pkm(1$KX#5;o4rU|9PnU$l%fa?&{BTm=JWLGjW6?Bul5_*)Kk0DlZoPA- z4H;(nACC67RYKS*@3v1CyE(c%_tC2t57qE&A|6bAgOSWcdfRh2K3>fZgVK-gH3oq& zk|t-94m^#2AcILyqkLWRZe}Ip!xrfyttl9T6fQP0Q1cM=03z^eRvjH&03Ly8^P2@? zBr%3%Hwy!V^!44T7rwvaU6zS~Dz?9`Lv!!dw4yI19E{ znlAZPhiyDUMLZUfNs%_KHm1RH6+G4;FiFyg1CjW_^PI7rl7f1_B#0}K>c0d)KJNz# ziV@mnu)90Ms|K+EG)6AmEFoV{6*xX*@b*|3eETC|ASJ>BN|eY@pOoWBO%%Th5JY@{ zAOO#e2OTWTSUR5oQRv$I+`~^oo!|)W+s9EQONate*@Y6SNT5KBMFfD8NCf;QM7I5fZrn)0T>ujcS#3cNH$sJO*`uV>73pKP9xgLq4(mqoLomlCtSpLfFye0)1}F$j zw%@U9LY>5Mt$AQReV{-oH#9K3t#R@P6N{0wlYrMi2{89Wk+#IKKDfOv=4Og6YINeP zbYgM~PMCXewi#HIMUi0zNrlwe1hjChEn!*+($Uy`s-XgRw4qa+yIx60P*-vgBjyOO zDzeHY__N~4Gy1$Un`Qxi03w*Jl_{^2#RMQ54F(wdwNcM@0~6232GJrVOh43q>ym|l zki#8}!S>O;v#cCH{7@3$)>j(%QC;5yKd=TyLpzYnfz1InGj7KZ29!H&X%Uqh>5UBq zz(blqd`6KX`1i44d2C?xCwg%31%NsHA&tg7F+odgumq`(d5A*Wez+$x{@Gdf8Y#9{r6G*%+_4z>XKRTVCFNit#I^lk3u^6@N}^jxRg((n<<=O%3uF*i}B z$#PN3vqv{wCT5+9y8TcQj zX37y5d3ra`?M9R{UpMUOR5f;gOnSHB(w>aO%d69@PN?RYF2lPawtP9Q3gATb5hjuS zgwha0{B(w)iZ&PS8H7H_>yE4r)A=qH>A-suWxb2v7~Bxg$%%F95jUSRCgnUmtr)Lg z8M(Gy*!pF3E#_FzHI2xb4pJ4qLJdK|<4vUN&M@leWrfWo<@QM-zZw3-#PoOD5tEWh zKyldl;ewB#>yyGq!YDH3=(n84tx_qN`%0UW;Z@l~Ys>S$m=a0o3 zsifAfq!g4R7cfRZd2e_`Yc36zLrJ#EvYcHLY23I)`N{X9~3usBwSza_+gzlqnJ8d1p%e7P`2 zJHS*r%T^w`=rQVhx#s1jl%LKTS=%|UYxUD-;!7qk;Vrk`b54I=_erhir@gvra4(wsDd1bf{Ws=! zx>ax7wSK+5BIKMy(ifl%^s`Iyk=QG94Kn!>ftV}1UKh7;dv0h+j_Tybv4X_xMDm-f zTvsdfoo(FZAmXg$$E3MpfFu~#9p-Mmxe|3LSlx(=0qw&>a6MjQ-54nm0)JEN#R)Z2 zXgcllFD)dS>+Cg`C=B`Pfni>+)?bcstFQr-leSb}-l(Fi08V+pL+$AU_)TeULeUye zI8$EB@8A;+*9EbRYbTmi0hynA0=1$TF%7@cpl{||$|~#BA;^w$1#A8d`2Q97fzkRo zbGu`jjQ9Xhz?i=$w-BFV?wedA!FrOpLXQ~|i6{I7mREYGTU3^e=HS15RJv(~E%Y17 zuEU0-og-jb5JSKy9!(V+VM9G$Hfu8p44vtVpzz-^vGamvzP!Y*@>(~5k)h*)^USjf*sdBy>j6v$oj*Zb_j5W)>>M^IMZf0WSSjpC-Z^& wUy}J>+toIMYS VAULTED + RELEASED -> APPROVED + CHANGE PENDING APPROVAL -> CHANGE PENDING APPROVAL +- Run the PDM Transitions using `\config\batch_workflows_paths.py` + - EX: **python batch_workflows_paths.py -v {Vault Name} -c {Filename.csv} -t {Transition Name}** + +# 2. Variable Copying +DWS wants to use the existing filecards. The problem is that the Existing filecards use the variable **Drawing Number**. DWS used the variable **Number** +We can handle this by simply making a copy of the existing data in the `VariableValue` table in SQL. It isn't linked in a complicated web so adding rows doesnt hurt it + +EX: + VariableID DocumentID ProjectID RevisionNo ConfigurationID ValueText ValueInt ValueFloat ValueDate ValueCache IsLongText + 45 24499 2 1 82 SWR NULL NULL 1900-01-01 00:00:00.000 SWR 0 + +**We would just insert this row (only change is VariableID)** + + VariableID DocumentID ProjectID RevisionNo ConfigurationID ValueText ValueInt ValueFloat ValueDate ValueCache IsLongText + 75 24499 2 1 82 SWR NULL NULL 1900-01-01 00:00:00.000 SWR 0 + +- use the python file `/helpers/db_helper.py` +## Note the VariableID's in here are for the Test DB. +## UDPATE VARIABLE VALUES WITH THE PRODUCTION VALUES +- First run it with the parameter `python db_helper.py --db target_db --task check_vv50` +- Once that is complete there should be a csv file `has_vv50_{date}.txt` that shows anything that already has a variable value for **Drawing Number** +- If that looks good run `python db_helper.py --db target_db --task copy_57_to_50 --dry-run` if you want to run dry-run + + + diff --git a/documentation/api_extracted/64bit.htm b/documentation/api_extracted/64bit.htm new file mode 100644 index 0000000..325c7ef --- /dev/null +++ b/documentation/api_extracted/64bit.htm @@ -0,0 +1,62 @@ + + + +Writing 64-bit Add-ins + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Writing 64-bit Add-ins

+
+

This topic shows how to create + add-ins for the 64-bit version of SOLIDWORKS PDM Professional.
+

+

64-bit .NET + Add-ins

+

You must +use Microsoft Visual Studio 2005, or later, to create managed (.NET) DLL add-ins. +The build target must be set to Any CPU for the DLL to load + in both 32-bit and 64-bit hosts. Managed DLL add-ins are added to the + vault using the Administration tool.
+

+

Native + DLL Add-ins

+

A native +32-bit DLL cannot be loaded into a 64-bit EXE, and a 64-bit native DLL cannot be +loaded into a 32-bit EXE. Because SOLIDWORKS PDM Professional gets loaded into both 32- +and 64-bit processes, you must build two versions of your add-in, 32-bit and + 64-bit.

+

Native DLL + add-ins that are added to the vault on a 64-bit machine also work on a 32-bit + machine:

+
    +
  1. Right-click the + Add-ins + node in the Administration tool.
  2. +
  3. Select + New +Add-in.
  4. +
  5. Navigate to and open +the 64-bit add-in DLL.
  6. +
  7. In the Properties dialog, select Files in the left pane.
  8. +
  9. Click + Add Files.
  10. +
  11. Navigate to and open the 32-bit add-in DLL.
  12. +
  13. Click OK.
  14. +
+

SOLIDWORKS PDM Professional creates a single add-in package that contains both 32-bit and 64-bit versions of the add-in. The 32-bit version is loaded +in 32-bit processes, and the 64-bit version is loaded in 64-bit processes.

+
+ + diff --git a/documentation/api_extracted/AccessBOM.gif b/documentation/api_extracted/AccessBOM.gif new file mode 100644 index 0000000000000000000000000000000000000000..0569fa3049f75d60fd405f61449d15da16c8b75e GIT binary patch literal 8388 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 aM|;}UzIL{^-R*COd)(!&c7X3ZAOJgaF%rW7 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AccessCustRefs.gif b/documentation/api_extracted/AccessCustRefs.gif new file mode 100644 index 0000000000000000000000000000000000000000..41f09627e7bf59e14a06310c10c661f4efe738cc GIT binary patch literal 8145 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Access_Bill_of_Materials_Example_CSharp.htm b/documentation/api_extracted/Access_Bill_of_Materials_Example_CSharp.htm new file mode 100644 index 0000000..6018eda --- /dev/null +++ b/documentation/api_extracted/Access_Bill_of_Materials_Example_CSharp.htm @@ -0,0 +1,538 @@ + + + +Access Bill of Materials Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Bill of Materials Example (C#)

+

This example shows how to access the Bill of +Materials (BOM) of a file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type EdmBOM_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder
+//    of your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 5. Ensure that the vault contains the BOM layout.
+
+//    To inspect the +existing layouts:
+//    a. Open the SOLIDWORKS PDM Professional +Administration tool.
+//    b. Log into vault_name.
+//    c. Expand vault_name +> Bills of Materials.
+
//    d. Verify that layout, BOM, exists.
+// 6. Ensure that an assembly and its parts exist in the root folder of the +
+//    vault in default configuration, @.
+// 7. Ensure that one or more named Bills of Materials exist for the assembly.
+//    a. Open File Explorer on a vault_name view.
+//    b. Click the assembly.
+//    c. Click the Bill of Materials +tab.
+//    d. Click BOM.
+//    e. If a named Bill of Materials does not exist in the BOM +list:
+//       1. Click Save > Save As in +the tab toolbar.
+//       2. In the Save As dialog, click +Save

+// 8. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:
+// 1. Opens the Bill of Materials dialog box.
+//    a. Select a vault_name view.
+//    b. Click Select file.
+//    c. In the Select File dialog:
+//       1. Click the assembly specified in +Preconditions step 6.
+//       2. Click Open.
+//    d. Click Get BOM Info.
+//       Displays message boxes containing:
+//       * Information about all named BOMs of the +assembly.
+//       * Version information for the named BOMs.
+//       * Information about all BOM layouts in +the vault.
+//       * Row and column information about a BOM +view in the BOM layout
+//         for the selected assembly in +its @ configuration.
+//    e. Click OK in each message box.
+//
    f. Click Save BOM +to CSV.
+//       Saves the BOM to c:\temp\SavedBOM.csv.

+// 2. Close the Bill of Materials dialog box.
+//
3. Verify that c:\temp\SavedBOM.csv +is created.
+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+using System.Xml.Serialization;
+using System.Windows.Forms;
+using System.ComponentModel;
+using EPDM.Interop.epdm;
+

+namespace EdmBOM_CSharp
+{
+    public partial class Form1 : Form
+    {
+        private IEdmVault5 vault1 = null;
+        IEdmFile7 aFile;
+        IEdmBom bom;
+        IEdmBomMgr2 bomMgr;
+        IEdmBomView3 bomView;

+        public Form1()
+        {
+            InitializeComponent();
+        }
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                File1List.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+
+                //Show the Select File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    IEdmFolder5 ppoRetParentFolder;
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    }
+                }

+

                +GetBOM.Enabled = true;
               +SaveBOM.Enabled = false;
+

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void GetBOM_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault11 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault11)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+              +if (aFile != null) +
+              {
+                // Get named BOMs and their versions for the selected file
+                EdmBomInfo[] derivedBOMs = null;
+                aFile.GetDerivedBOMs(out derivedBOMs);

+                int arrSize = 0;
+                EdmBomVersion[] ppoVersions = null;
+                int i = 0;
+                int j = 0;
+                int id = 0;
+                string str = "";
+                string verstr = "";
+                int verArrSize = 0;
+                arrSize = derivedBOMs.Length;
                int userID += 0;
                +bool canSeeLayout = false;

                +userID = vault2.GetLoggedInWindowsUserID(vault2.Name);

+                while (i < arrSize)
+                {
+                    id = derivedBOMs[i].mlBomID;
+                    bom = (IEdmBom)vault2.GetObject(EdmObjectType.EdmObject_BOM, id);
+                    str = "Named BOM: " + derivedBOMs[i].mbsBomName + "\r\n" + "Type +of BOM as defined in EdmBomType: " + derivedBOMs[i].meType ++ "\\n" ++ "Check-out user: " + bom.CheckOutUserID + "\r\n" + "Current state: " + bom.CurrentState.Name + "\r\n" + "Current version: " + bom.CurrentVersion + "\r\n" + "ID: " + bom.FileID + "\r\n" + "Is checked out: " + bom.IsCheckedOut;
+                    MessageBox.Show(str);
+                    bom.GetVersions(out ppoVersions);
+                    verArrSize = ppoVersions.Length;
+                    while (j < verArrSize)
+                    {
+                        verstr = "BOM version: " + "\r\n" + "Type as defined in EdmBomVersionType: " + ppoVersions[j].meType + "\r\n" + "Version number: " + ppoVersions[j].mlVersion + "\r\n" + "Date: " + ppoVersions[j].moDate + "\r\n" + "Label: " + ppoVersions[j].mbsTag + "\r\n" + "Comment: " + ppoVersions[j].mbsComment;
+                        MessageBox.Show(verstr);
+                        j = j + 1;
+                    }
+                    i = i + 1;
+                }

+                // Get a BOM view with the specified layout
+                bomMgr = (IEdmBomMgr2)vault2.CreateUtility(EdmUtility.EdmUtil_BomMgr);
+                EdmBomLayout2[] ppoRetLayouts = null;
+                EdmBomLayout2 ppoRetLayout = default(EdmBomLayout2);
+                bomMgr.GetBomLayouts2(out ppoRetLayouts);
+                i = 0;
+                arrSize = ppoRetLayouts.Length;
+                str = "";
+                while (i < arrSize)
+                {
+                    ppoRetLayout = ppoRetLayouts[i];
+
                    +canSeeLayout = bomMgr.CanSeeBomLayout(userID, ppoRetLayout.mlLayoutID);
+                    str = "BOM Layout " + i + ": " + ppoRetLayout.mbsLayoutName + "\r\n" + "ID: " + ppoRetLayout.mlLayoutID;
                    +str = str + "  Logged-in user can see this +layout? " + canSeeLayout;
+                    if (ppoRetLayout.mbsLayoutName == "BOM")
+                    {
+                        bomView = (IEdmBomView3)aFile.GetComputedBOM(ppoRetLayout.mbsLayoutName, 0, "@", (int)EdmBomFlag.EdmBf_AsBuilt + (int)EdmBomFlag.EdmBf_ShowSelected);
+                    }
+                    MessageBox.Show(str);
+                    i = i + 1;
+                }

+                // Display BOM view +row and column information
+                object[] ppoRows = null;
+                IEdmBomCell ppoRow = default(IEdmBomCell);
+                bomView.GetRows(out ppoRows);
+                i = 0;
+                arrSize = ppoRows.Length;
+                str = "";
+                while (i < arrSize)
+                {
+                    ppoRow = (IEdmBomCell)ppoRows[i];
+                    str = "BOM Row " + i + ": " + "\r\n" + "Item ID: " + ppoRow.GetItemID() + "\r\n" + "Path name: " + ppoRow.GetPathName() + "\r\n" + "Tree level: " + ppoRow.GetTreeLevel() + "\r\n" + " Is locked? " + ppoRow.IsLocked();
+                    MessageBox.Show(str);
+                    i = i + 1;
+                }

+                EdmBomColumn[] ppoColumns = null;
+                bomView.GetColumns(out ppoColumns);
+                i = 0;
+                arrSize = ppoColumns.Length;
+                str = "";
+                while (i < arrSize)
+                {
+                    str = "BOM Column " + i + ": " + "\r\n" + "Header: " + ppoColumns[i].mbsCaption + "\r\n" + "Column type as defined in EdmBomColumnType: " + ppoColumns[i].meType + "\r\n" + "ID: " + ppoColumns[i].mlColumnID + "\r\n" + "Flags: " + ppoColumns[i].mlFlags + "\r\n" + "Variable ID: " + ppoColumns[i].mlVariableID + "\r\n" + "Variable type as defined in EdmVariableType: " + ppoColumns[i].mlVariableType + "\r\n" + "Column width: " + ppoColumns[i].mlWidth;
+                    MessageBox.Show(str);
+                    i = i + 1;
+                }

+

                +SaveBOM.Enabled = true;
+
+              }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }

+

+        public void SaveBOM_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault9)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if ((aFile != null) & (bomView != null))
+                {
+                    bomView.SaveToCSV("c:\\temp\\SavedBOM.csv"false);

+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }

+


+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace EdmBOM_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.GetBOM = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SaveBOM = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // SelectFiles
+            // 
+            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select file...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click += new System.EventHandler(this.SelectFiles_Click);
+            // 
+            // File1List
+            // 
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            // 
+            // GetBOM
+            // 
+            this.GetBOM.Location = new System.Drawing.Point(40, 183);
+            this.GetBOM.Name = "GetBOM";
+            this.GetBOM.Size = new System.Drawing.Size(157, 23);
+            this.GetBOM.TabIndex = 6;
+            this.GetBOM.Text = "Get BOM";
+            this.GetBOM.UseVisualStyleBackColor = true;
+            this.GetBOM.Enabled = false;
+            this.GetBOM.Click += new System.EventHandler(this.GetBOM_Click);
+            // 
+            // OpenFileDialog1
+            // 
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Title = "Select File";
+            // 
+            // SaveBOM
+            // 
+            this.SaveBOM.Location = new System.Drawing.Point(40, 252);
+            this.SaveBOM.Name = "SaveBOM";
+            this.SaveBOM.Size = new System.Drawing.Size(157, 23);
+            this.SaveBOM.TabIndex = 7;
+            this.SaveBOM.Text = "Save BOM to CSV";
+            this.SaveBOM.UseVisualStyleBackColor = true;
+            this.SaveBOM.Enabled = false;
+            this.SaveBOM.Click += new System.EventHandler(this.SaveBOM_Click);
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 363);
+            this.Controls.Add(this.SaveBOM);
+            this.Controls.Add(this.GetBOM);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Bill of Materials";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button GetBOM;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+        #endregion

+        private System.Windows.Forms.Button SaveBOM;
+    }
+}

+
 
+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Access_Bill_of_Materials_Example_VBNET.htm b/documentation/api_extracted/Access_Bill_of_Materials_Example_VBNET.htm new file mode 100644 index 0000000..173676c --- /dev/null +++ b/documentation/api_extracted/Access_Bill_of_Materials_Example_VBNET.htm @@ -0,0 +1,471 @@ + + + +Access Bill of Materials Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Bill of Materials Example (VB.NET)

+

This example shows how to access the Bill of +Materials (BOM) of a file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type EdmBOM in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder 
+'    of your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+
' 4. Ensure that the vault contains the BOM layout.
+'
    To inspect the +existing layouts:
+'    a. Open the SOLIDWORKS PDM Professional +Administration tool.
+'    b. Log into vault_name.
+'    c. Expand vault_name +> Bills of Materials.
+
'    d. Verify that layout, BOM, exists.
+' 5. Ensure that an assembly and its parts exist in the root folder of
+'    the vault in default configuration, @.
+' 6. Ensure that one or more named Bills of Materials exist for the assembly.
+'    a. Open File Explorer on a vault_name view.
+'    b. Click the assembly.
+'    c. Click the Bill of Materials +tab.
+'    d. Click BOM.
+'    e. If a named Bill of Materials does not exist in the BOM +list:
+'       1. Click Save > Save As in +the tab toolbar.
+'       2. In the Save As dialog, click +Save

+' 7. Click Debug > Start Debugging or press F5.
+'
+' Postconditions:
+' 1. Opens the Bill of Materials dialog box.
+'    a. Select a vault_name view.
+'    b. Click Select file.
+'    c. In the Select File dialog:
+'       1. Click the assembly specified in +Preconditions step 5.
+'       2. Click Open.
+'    d. Click Get BOM Info.
+'       Displays message boxes containing:
+'       * Information about all named BOMs of the +assembly.
+'       * Version information for the named BOMs.
+'       * Information about all BOM layouts in the +vault.
+'       * Row and column information about a BOM +view in the BOM layout
+'         for the selected assembly in +its @ configuration.
+'    e. Click OK in each message box.
+'    f. Click Save BOM to CSV.
+'       Saves the BOM to c:\temp\SavedBOM.csv.
+' 2. Close the Bill of Materials dialog box.
+' 3. Verify that c:\temp\SavedBOM.csv is created.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim aFile As IEdmFile7
+    Dim bom As IEdmBom
+    Dim bomMgr As IEdmBomMgr2
+    Dim bomView As IEdmBomView3
+
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try
+            File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+

+            'Show the Select File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName)
+                Next
+            End If

+

             GetBOM.Enabled = True
+            SaveBOM.Enabled = False

+

+

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub GetBOM_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetBOM.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault11)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            +If Not IsNothing(aFile) +Then
+

+               ' Get named BOMs and their +versions for the selected file
+               Dim derivedBOMs() As EdmBomInfo = Nothing
+               aFile.GetDerivedBOMs(derivedBOMs)

+               Dim arrSize As Integer
+               Dim ppoVersions() As EdmBomVersion = Nothing
+               Dim i As Integer = 0
+               Dim j As Integer = 0
+               Dim id As Integer
+               Dim str As String = ""
+               Dim verstr As String = ""
+               Dim verArrSize As Integer
               +Dim
canSeeLayout As Boolean
               +Dim
userID As Integer

              
+userID = vault2.GetLoggedInWindowsUserID(vault2.Name)

+               arrSize = derivedBOMs.Length

+               While i < arrSize
+                id = derivedBOMs(i).mlBomID
+                bom = vault2.GetObject(EdmObjectType.EdmObject_BOM, id)
+                str = "Named BOM: " & derivedBOMs(i).mbsBomName & vbLf & +"Type of BOM as defined in EdmBomType: " & vbLf +& derivedBOMs(i).meType & vbLf & "Check-out user: " & bom.CheckOutUserID & vbLf & "Current state: " & bom.CurrentState.Name & vbLf & "Current version: " & bom.CurrentVersion & vbLf & "ID: " & bom.FileID & vbLf & "Is checked out: " & bom.IsCheckedOut
+                MessageBox.Show(str)
+                bom.GetVersions(ppoVersions)
+                verArrSize = ppoVersions.Length
+                While j < verArrSize
+                    verstr = "BOM version: " & vbLf & "Type as defined in EdmBomVersionType: " & ppoVersions(j).meType & vbLf & "Version number: " & ppoVersions(j).mlVersion & vbLf & "Date: " & ppoVersions(j).moDate & vbLf & "Label: " & ppoVersions(j).mbsTag & vbLf & "Comment: " & ppoVersions(j).mbsComment
+                    MessageBox.Show(verstr)
+                    j = j + 1
+                End While
+                i = i + 1
+               End While

+               ' Get a BOM view +with the specified layout
+               bomMgr = vault2.CreateUtility(EdmUtility.EdmUtil_BomMgr)
+               Dim ppoRetLayouts() As EdmBomLayout2 = Nothing
+               Dim ppoRetLayout As EdmBomLayout2
+               bomMgr.GetBomLayouts2(ppoRetLayouts)

+

+               
+               i = 0
+               arrSize = ppoRetLayouts.Length
+               str = ""
+               While i < arrSize
+                ppoRetLayout = ppoRetLayouts(i)

+

+                 +canSeeLayout = bomMgr.CanSeeBomLayout(userID, ppoRetLayout.mlLayoutID)
+                str = "BOM Layout " & i & ": " & vbLf & ppoRetLayout.mbsLayoutName & vbLf & "ID: " & ppoRetLayout.mlLayoutID
               
+str = str & " Logged-in user can see this layout? " +& canSeeLayout
+                If ppoRetLayout.mbsLayoutName = "BOM" Then
+                    bomView = aFile.GetComputedBOM(ppoRetLayout.mbsLayoutName, 0, "@"EdmBomFlag.EdmBf_AsBuilt + EdmBomFlag.EdmBf_ShowSelected)
+                End If
+                MessageBox.Show(str)
+                i = i + 1
+               End While

+               ' Display BOM view +row and column information
+               Dim ppoRows() As Object = Nothing
+               Dim ppoRow As IEdmBomCell
+               bomView.GetRows(ppoRows)
+               i = 0
+               arrSize = ppoRows.Length
+               str = ""
+               While i < arrSize
+                ppoRow = ppoRows(i)
+                str = "BOM Row " & i & ": " & vbLf & "Item ID: " & ppoRow.GetItemID & vbLf & "Path name: " & ppoRow.GetPathName & vbLf & "Tree level: " & ppoRow.GetTreeLevel & vbLf & " Is locked? " & ppoRow.IsLocked
+                MessageBox.Show(str)
+                i = i + 1
+               End While

+               Dim ppoColumns() As EdmBomColumn = Nothing
+               bomView.GetColumns(ppoColumns)
+               i = 0
+               arrSize = ppoColumns.Length
+               str = ""
+               While i < arrSize
+                str = "BOM Column " & i & ": " & vbLf & "Header: " & ppoColumns(i).mbsCaption & vbLf & "Column type as defined in EdmBomColumnType: " & ppoColumns(i).meType & vbLf & "ID: " & ppoColumns(i).mlColumnID & vbLf & "Flags: " & ppoColumns(i).mlFlags & vbLf & "Variable ID: " & ppoColumns(i).mlVariableID & vbLf & "Variable type as defined in EdmVariableType: " & ppoColumns(i).mlVariableType & vbLf & "Column width: " & ppoColumns(i).mlWidth
+                MessageBox.Show(str)
+                i = i + 1
+               End While
+               

+

                +SaveBOM.Enabled = True

+

+
+         End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+

+    Public Sub SaveBOM_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SaveBOM.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault9)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            

+

+            +If Not IsNothing(aFile) And Not IsNothing(bomView) Then
+                bomView.SaveToCSV("c:\temp\SavedBOM.csv"False)
+            End If

+

+

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+     End Sub

+

+


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.GetBOM = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SaveBOM = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select file..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'GetBOM
+        '
+        Me.GetBOM.Enabled = False
+        Me.GetBOM.Location = New System.Drawing.Point(40, 183)
+        Me.GetBOM.Name = "GetBOM"
+        Me.GetBOM.Size = New System.Drawing.Size(157, 23)
+        Me.GetBOM.TabIndex = 6
+        Me.GetBOM.Text = "Get BOM Info"
+        Me.GetBOM.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'SaveBOM
+        '
+        Me.SaveBOM.Enabled = False
+        Me.SaveBOM.Location = New System.Drawing.Point(40, 234)
+        Me.SaveBOM.Name = "SaveBOM"
+        Me.SaveBOM.Size = New System.Drawing.Size(157, 23)
+        Me.SaveBOM.TabIndex = 7
+        Me.SaveBOM.Text = "Save BOM to CSV"
+        Me.SaveBOM.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 305)
+        Me.Controls.Add(Me.SaveBOM)
+        Me.Controls.Add(Me.GetBOM)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Bill of Materials"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents GetBOM As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
+    Friend WithEvents SaveBOM As Button
+End Class

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_CSharp.htm b/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_CSharp.htm new file mode 100644 index 0000000..5fb8006 --- /dev/null +++ b/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_CSharp.htm @@ -0,0 +1,518 @@ + + + +Access Check-in Flags in Check in Dialog Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Check-in Flags in Check in Dialog Example (C#)

+

This example shows how to access the check-in flags in the +SOLIDWORKS PDM Professional Check in dialog.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//--------------------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type RefItemContainerCSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project. 
+//     d. Click OK.
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the form, replace the code in Form1.Designer.cs with 
+//        this code.
+//     h. To create the class for the callback:
+//        1. Right-click RefItemContainerCSharp in the Solution Explorer.
+//        2. Click Add > Class.
+//        3. Type Callback.cs in Name and click Add.
+//        4. Replace the code in Callback.cs with this code.
+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. Displays the Access Check-in Flags in Check in Dialog dialog box.
+//  2. Select a vault view.
+//  3. Click Select checked-out files to check in.
+//     a. Displays the Select files dialog box.
+//     b. Click one or more checked-out files to check in.
+//     c. Click Open.
+//  4. Click Create batch check-in
+//     a. At the end of an attempted check-in, displays three message 
+//        boxes containing ProgressEnd called. Three operations occur for an 
+//        attempted check-in.
+//     b. Click OK to close each message box.
+//     c. Displays either:
+//        * Message box containing Batch check-in created. Click OK to 
+//          close the message box.
+//          - or -
+//        * Message box containing You did not select a file to check in. Please try 
+//          again. Click OK to close the message box, and repeat steps 3 and 4.
+//  5. Click Update check-in flags.
+//  6. Click OK to close the message box.
+//  7. Click Check in files.
+//  8. Displays the Check in dialog box.
+//  9. Click Check in to check in the files or Cancel to cancel the check in.
+// 10. Displays a message box containing ProgressEnd called. Click OK to close
+//     the message box.
+// 11. Examine the files in the vault to verify their checked-in or checked-out status.
+// 12. Close the Access Check-in Flags in Check in Dialog dialog box.
+//--------------------------------------------------------------------------------------
+ 
+ 
+//Form1.cs
+using System;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+ 
+namespace RefItemContainerCSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+ 
+        IEdmVault5 vault1 = null;
+        IEdmVault8 vault = null;
+        EdmSelItem[] selFiles = null;
+        IEdmBatchUnlock bUnlock = null;
+ 
+        void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+ 
+            try
+            {
+                vault1 = new EdmVault5();
+                vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = { };
+ 
+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }  
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+        private void BrowseButton_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                //Only create a new vault object
+                //if one hasn't been created yet
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+ 
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                } 
+ 
+                //Display the Select file dialog for user to
+                //select the files 
+                EdmStrLst5 pathList = default(EdmStrLst5);
+                pathList = vault.BrowseForFile(this.Handle.ToInt32(), 
+		(int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel + 
+		(int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "SOLIDWORKS files " + 
+		"(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + "All Files (*.*)|*.*||"""
+		"", vault.RootFolderPath"Select files");
+ 
+                //Exit if the user clicks Cancel
+                if (pathList == null)
+                    return;
+ 
+                //Traverse the selected files
+                IEdmPos5 pos = default(IEdmPos5);
+                pos = pathList.GetHeadPosition();
+ 
+                //Convert the selected files to an
+                //array of EdmSelItem structs
+                int nbrFiles = 0;
+                nbrFiles = pathList.Count;
+                Array.Resize(ref selFiles, nbrFiles);
+ 
+                int i = 0;
+                while (!pos.IsNull)
+                {
+                    //Get each file path from the selected files list
+                    string filePath = null;
+                    IEdmFile5 file = default(IEdmFile5);
+                    IEdmFolder5 retFolder = default(IEdmFolder5);
+                    filePath = pathList.GetNext(pos);
+                    file = vault.GetFileFromPath(filePath, out retFolder);
+                    selFiles[i].mlDocID = file.ID;
+                    selFiles[i].mlProjID = retFolder.ID;
+                    i = i + 1;
+                }
+            
+            }catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+ 
+        }
+ 
+        private void CreateBatchCheckinButton_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                //Only create a new vault object
+                //if one hasn't been created yet
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+ 
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                IEdmVault7 vault2 = (IEdmVault7)vault1;
+                bUnlock = (IEdmBatchUnlock)vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock);
+                bUnlock.AddSelection((EdmVault5)vault1, ref selFiles);
+                bool tree = false;
+	       Callback myCallback = new Callback();
+                tree = bUnlock.CreateTree(this.Handle.ToInt32(), (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock, myCallback);
+                if (tree == false)
+                { 
+                    MessageBox.Show("You did not select a file to check in. Please try again.");
+                    return;
+                }
+ 
+                MessageBox.Show("Batch check in created.");
+ 
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+        private void UpdateBatchCheckInButton_Click(object sender, EventArgs e)
+        {
+             try
+            {
+                //Only create a new vault object
+                //if one hasn't been created yet
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+ 
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+                    IEdmRefItemContainer container = null;
+                    container = (IEdmRefItemContainer)bUnlock;
+                    object[] items = null;
+                    IEdmRefItem theItem = null;
+                    container.GetItems(EdmRefItemType.Edmrit_All, out items);
+                    int j = 0;
+                    while (j < items.Length)
+                    {
+                        IEdmRefItem aItem = null;
+                        theItem = (IEdmRefItem)items[j];
+                        aItem = theItem;
+                        object value = null;
+                        aItem.SetProperty(EdmRefItemProperty.Edmrip_CheckKeepLocked, value);
+                        j = j + 1;
+                    }
+ 
+                    MessageBox.Show("Check-in flags updated.");
+             }
+                
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+ 
+        }
+ 
+        private void CheckInButton_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                //Only create a new vault object
+                //if one hasn't been created yet
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+ 
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                if (bUnlock.ShowDlg(this.Handle.ToInt32()))
+                {
+                    Callback myCallback = new Callback();
+                    bUnlock.UnlockFiles(this.Handle.ToInt32(), myCallback);
+                }
+            }
+ 
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        } 
+ 
+     }
+}
+ +
+
//Form1.Designer.cs
+
+
+
namespace RefItemContainerCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.CreateBatchCheckinButton = new System.Windows.Forms.Button();
+            this.UpdateBatchCheckInButton = new System.Windows.Forms.Button();
+            this.CheckInButton = new System.Windows.Forms.Button();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(24, 29);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(27, 45);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(187, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // CreateBatchCheckinButton
+            // 
+            this.CreateBatchCheckinButton.Location = new System.Drawing.Point(27, 122);
+            this.CreateBatchCheckinButton.Name = "CreateBatchCheckinButton";
+            this.CreateBatchCheckinButton.Size = new System.Drawing.Size(125, 23);
+            this.CreateBatchCheckinButton.TabIndex = 4;
+            this.CreateBatchCheckinButton.Text = "Create batch check-in";
+            this.CreateBatchCheckinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.CreateBatchCheckinButton.UseVisualStyleBackColor = true;
+            this.CreateBatchCheckinButton.Click += new System.EventHandler(this.CreateBatchCheckinButton_Click);
+            // 
+            // UpdateBatchCheckInButton
+            // 
+            this.UpdateBatchCheckInButton.Location = new System.Drawing.Point(27, 164);
+            this.UpdateBatchCheckInButton.Name = "UpdateBatchCheckInButton";
+            this.UpdateBatchCheckInButton.Size = new System.Drawing.Size(125, 23);
+            this.UpdateBatchCheckInButton.TabIndex = 5;
+            this.UpdateBatchCheckInButton.Text = "Update check-in flags";
+            this.UpdateBatchCheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.UpdateBatchCheckInButton.UseVisualStyleBackColor = true;
+            this.UpdateBatchCheckInButton.Click += new System.EventHandler(this.UpdateBatchCheckInButton_Click);
+            // 
+            // CheckInButton
+            // 
+            this.CheckInButton.Location = new System.Drawing.Point(27, 209);
+            this.CheckInButton.Name = "CheckInButton";
+            this.CheckInButton.Size = new System.Drawing.Size(125, 23);
+            this.CheckInButton.TabIndex = 6;
+            this.CheckInButton.Text = "Check in files";
+            this.CheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.CheckInButton.UseVisualStyleBackColor = true;
+            this.CheckInButton.Click += new System.EventHandler(this.CheckInButton_Click);
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.Location = new System.Drawing.Point(27, 82);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(125, 23);
+            this.BrowseButton.TabIndex = 7;
+            this.BrowseButton.Text = "Select checked-out files to check in";
+            this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(384, 254);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.CheckInButton);
+            this.Controls.Add(this.UpdateBatchCheckInButton);
+            this.Controls.Add(this.CreateBatchCheckinButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Access Check-in Flags in Check in Dialog";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Button CreateBatchCheckinButton;
+        private System.Windows.Forms.Button UpdateBatchCheckInButton;
+        private System.Windows.Forms.Button CheckInButton;
+        private System.Windows.Forms.Button BrowseButton;
+    }
+}
+
+ +
+
//Callback.cs
+
+
+
using EPDM.Interop.epdm;
+using System.Windows.Forms;
+ 
+namespace RefItemContainerCSharp
+{
+    class Callback : IEdmUnlockOpCallback
+    {
+        #region IEdmUnlockOpCallback Members
+
+
+
+        public EdmUnlockOpReply MsgBox(EdmUnlockOpMsg mssge, int docId, int projID, string path, ref EdmUnlockErrInfo err)
+        {
+            return EdmUnlockOpReply.Euor_OK;
+        }
+ 
+ 
+        public void ProgressBegin(EdmProgressType type, EdmUnlockEvent events, int steps)
+        {
+            return;
+        }
+ 
+ 
+        public void ProgressEnd(EdmProgressType type)
+        {
+            //Demonstrates callback
+            MessageBox.Show("ProgressEnd called.");
+            return;
+        }
+ 
+ 
+        public bool ProgressStep(EdmProgressType type, string msgText, int progressPos)
+        {
+            return true;
+        }
+ 
+ 
+        public bool ProgressStepEvent(EdmProgressType type, EdmUnlockEventMsg opText, int progressPos)
+        {
+            return true;
+        }       
+ 
+        #endregion
+ 
+    }
+}
+
+ +
+
 
+
+ + + + diff --git a/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_VBNET.htm b/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_VBNET.htm new file mode 100644 index 0000000..0bd0f59 --- /dev/null +++ b/documentation/api_extracted/Access_Check-in_Flags_in_Check_in_Dialog_Example_VBNET.htm @@ -0,0 +1,438 @@ + + + +Access Check-in Flags in Check in Dialog Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Check-in Flags in Check in Dialog Example (VB.NET)

+

This example shows how to access the check-in flags in the SOLIDWORKS +PDM Check in dialog.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'--------------------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type RefItemContainerVBNET in Name.
+'     c. Click Browse and navigate to the folder where to create the project. 
+'     d. Click OK.
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the form, replace the code in Form1.Designer.vb with 
+'        this code.
+'     h. To create the class for the callback:
+'        1. Right-click RefItemContainerVBNET in the Solution Explorer.
+'        2. Click Add > Class.
+'        3. Type Callback.vb in Name and click Add.
+'        4. Replace the code in Callback.vb with this code.
+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays the Access Check-in Flags in Check in Dialog dialog box.
+'  2. Select a vault view.
+'  3. Click Select checked-out files to check in.
+'     a. Displays the Select files dialog box.
+'     b. Click one or more checked-out files to check in.
+'     c. Click Open.
+'  4. Click Create batch check-in. 
+'     a. At the end of an attempted check-in, displays three message 
+'        boxes containing ProgressEnd called. Three operations occur for an 
+'        attempted check-in.
+'     b. Click OK to close each message box.
+'     c. Displays either:
+'        * Message box containing Batch check-in created. Click OK to 
+'          close the message box.
+'          - or -
+'        * Message box containing You did not select a file to check in. Please try 
+'          again. Click OK to close the message box, and repeat steps 3 and 4.
+'  5. Click Update check-in flags.
+'  6. Click OK to close the message box.
+'  7. Click Check in files.
+'  8. Displays the Check in dialog box.
+'  9. Click Check in to check in the files or Cancel to cancel the check in.
+' 10. Displays a message box containing ProgressEnd called. Click OK to close
+'     the message box.
+' 11. Examine the files in the vault to verify their checked-in or checked-out status.
+' 12. Close the Access Check-in Flags in Check in Dialog dialog box.
+'--------------------------------------------------------------------------------------
+
+
+'Form1.vb
+Imports System.Windows.Forms
+Imports EPDM.Interop.epdm
+
+
+Public Class Form1
+
+    Private vault1 As IEdmVault5 = Nothing
+    Private vault As IEdmVault8 = Nothing
+    Private selFiles As EdmSelItem() = Nothing
+    Private bUnlock As IEdmBatchUnlock = Nothing
+    Private pathList As EdmStrLst5 = Nothing
+    Private pos As IEdmPos5 = Nothing
+    Private UnlockCallback As MyCallback
+
+    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+
+        Try
+            vault1 = New EdmVault5()
+            vault = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = {}
+
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+
+    Private Sub BrowseButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles BrowseButton.Click
+        Try
+            'Only create a new vault object
+            'if one hasn't been created yet
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+
+            'Display the Select file dialog for user to
+            'select the files 
+            Dim pathList As EdmStrLst5 = Nothing
+            pathList = vault.BrowseForFile(Me.Handle.ToInt32(), _
+                        CInt(EdmBrowseFlag.EdmBws_ForOpen) + CInt(EdmBrowseFlag.EdmBws_PermitMultipleSel) + _
+                        CInt(EdmBrowseFlag.EdmBws_PermitVaultFiles), "SOLIDWORKS files " + _
+                        "(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + _
+                        "All Files (*.*)|*.*||""""", vault.RootFolderPath, _
+             "Select files")
+
+            'Exit if the user clicks Cancel
+            If pathList Is Nothing Then
+                Return
+            End If
+
+            'Traverse the selected files
+            Dim pos As IEdmPos5 = Nothing
+            pos = pathList.GetHeadPosition()
+
+            'Convert the selected files to an
+            'array of EdmSelItem structs
+            Dim nbrFiles As Integer = 0
+            nbrFiles = pathList.Count
+            Array.Resize(selFiles, nbrFiles)
+
+            Dim i As Integer = 0
+            While Not pos.IsNull
+                'Get each file path from the selected files list
+                Dim filePath As String = Nothing
+                Dim file As IEdmFile5 = Nothing
+                Dim retFolder As IEdmFolder5 = Nothing
+                filePath = pathList.GetNext(pos)
+                file = vault.GetFileFromPath(filePath, retFolder)
+                selFiles(i).mlDocID = file.ID
+                selFiles(i).mlProjID = retFolder.ID
+                i = i + 1
+
+            End While
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+
+    End Sub
+
+    Private Sub CreateBatchCheckinButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles CreateBatchCheckinButton.Click
+        Try
+            'Only create a new vault object
+            'if one hasn't been created yet
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+
+            Dim vault2 As IEdmVault7 = DirectCast(vault1, IEdmVault7)
+            bUnlock = DirectCast(vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock), IEdmBatchUnlock)
+            bUnlock.AddSelection(DirectCast(vault1, EdmVault5), selFiles)
+            Dim tree As Boolean = False
+            Dim UnlockCallback = New MyCallback
+            tree = bUnlock.CreateTree(Me.Handle.ToInt32(), CInt(EdmUnlockBuildTreeFlags.Eubtf_MayUnlock), _
+                    UnlockCallback)
+            If tree = False Then
+                MessageBox.Show("You did not select a file to check in. Please try again.")
+                Return
+            End If
+
+            MessageBox.Show("Batch check in created.")
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+
+    Private Sub UpdateBatchCheckInButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles UpdateBatchCheckInButton.Click
+        Try
+            'Only create a new vault object
+            'if one hasn't been created yet
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+
+            Dim container As IEdmRefItemContainer = Nothing
+            container = DirectCast(bUnlock, IEdmRefItemContainer)
+            Dim items As Object() = Nothing
+            Dim theItem As IEdmRefItem = Nothing
+            container.GetItems(EdmRefItemType.Edmrit_All, items)
+            Dim j As Integer = 0
+            While j < items.Length
+                Dim aItem As IEdmRefItem = Nothing
+                theItem = DirectCast(items(j), IEdmRefItem)
+                aItem = theItem
+                Dim value As Object = Nothing
+                aItem.SetProperty(EdmRefItemProperty.Edmrip_CheckKeepLocked, value)
+                j = j + 1
+            End While
+
+            MessageBox.Show("Check-in flags updated.")
+
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+
+    End Sub
+
+    Private Sub CheckInButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles CheckInButton.Click
+        Try
+            'Only create a new vault object
+            'if one hasn't been created yet
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+
            Dim UnlockCallback = New MyCallback
+            If bUnlock.ShowDlg(Me.Handle.ToInt32()) Then
+                bUnlock.UnlockFiles(Me.Handle.ToInt32(), UnlockCallback)
+            End If
+
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+
+
+End Class
+ +
+
'Form1.Desgner.vb
+
+
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.CreateBatchCheckinButton = New System.Windows.Forms.Button()
+        Me.UpdateBatchCheckInButton = New System.Windows.Forms.Button()
+        Me.CheckInButton = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(22, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select view vault:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(25, 54)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(199, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(25, 81)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(199, 23)
+        Me.BrowseButton.TabIndex = 2
+        Me.BrowseButton.Text = "Select checked-out files to check in"
+        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'CreateBatchCheckinButton
+        '
+        Me.CreateBatchCheckinButton.Location = New System.Drawing.Point(25, 110)
+        Me.CreateBatchCheckinButton.Name = "CreateBatchCheckinButton"
+        Me.CreateBatchCheckinButton.Size = New System.Drawing.Size(199, 23)
+        Me.CreateBatchCheckinButton.TabIndex = 3
+        Me.CreateBatchCheckinButton.Text = "Create batch check-in"
+        Me.CreateBatchCheckinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.CreateBatchCheckinButton.UseVisualStyleBackColor = True
+        '
+        'UpdateBatchCheckInButton
+        '
+        Me.UpdateBatchCheckInButton.Location = New System.Drawing.Point(25, 139)
+        Me.UpdateBatchCheckInButton.Name = "UpdateBatchCheckInButton"
+        Me.UpdateBatchCheckInButton.Size = New System.Drawing.Size(199, 23)
+        Me.UpdateBatchCheckInButton.TabIndex = 4
+        Me.UpdateBatchCheckInButton.Text = "Update check-in flags"
+        Me.UpdateBatchCheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.UpdateBatchCheckInButton.UseVisualStyleBackColor = True
+        '
+        'CheckInButton
+        '
+        Me.CheckInButton.Location = New System.Drawing.Point(25, 168)
+        Me.CheckInButton.Name = "CheckInButton"
+        Me.CheckInButton.Size = New System.Drawing.Size(199, 23)
+        Me.CheckInButton.TabIndex = 5
+        Me.CheckInButton.Text = "Check in files"
+        Me.CheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.CheckInButton.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(355, 222)
+        Me.Controls.Add(Me.CheckInButton)
+        Me.Controls.Add(Me.UpdateBatchCheckInButton)
+        Me.Controls.Add(Me.CreateBatchCheckinButton)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Access Check-in Flags in Check in Dialog"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents CreateBatchCheckinButton As System.Windows.Forms.Button
+    Friend WithEvents UpdateBatchCheckInButton As System.Windows.Forms.Button
+    Friend WithEvents CheckInButton As System.Windows.Forms.Button
+ 
+End Class
+
+ +
+
'Callback.vb
+
+
+
Imports EPDM.Interop.epdm
+ 
+Public Class MyCallback
+    Implements IEdmUnlockOpCallback
+ 
+ 
+    Public Function MsgBox(ByVal eMsg As EPDM.Interop.epdm.EdmUnlockOpMsgByVal lDocID As IntegerByVal lProjID As IntegerByVal bsPath As StringByRef poError As EPDM.Interop.epdm.EdmUnlockErrInfoAs EPDM.Interop.epdm.EdmUnlockOpReply Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.MsgBox
+        Return EdmUnlockOpReply.Euor_OK
+    End Function
+ 
+    Public Sub ProgressBegin(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal eEvent As EPDM.Interop.epdm.EdmUnlockEventByVal lSteps As IntegerImplements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressBegin
+ 
+    End Sub
+ 
+    Public Sub ProgressEnd(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeImplements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressEnd
+        'Demonstrates callback 
+        MessageBox.Show("ProgressEnd called.")
+        Return
+    End Sub
+ 
+    Public Function ProgressStep(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal bsText As StringByVal lProgressPos As IntegerAs Boolean Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressStep
+        Return True
+    End Function
+ 
+    Public Function ProgressStepEvent(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal eText As EPDM.Interop.epdm.EdmUnlockEventMsgByVal lProgressPos As IntegerAs Boolean Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressStepEvent
+        Return True
+    End Function
+End Class
+
+ + + + + diff --git a/documentation/api_extracted/Access_Custom_File_References_Example_CSharp.htm b/documentation/api_extracted/Access_Custom_File_References_Example_CSharp.htm new file mode 100644 index 0000000..e58605c --- /dev/null +++ b/documentation/api_extracted/Access_Custom_File_References_Example_CSharp.htm @@ -0,0 +1,400 @@ + + + +Access Custom File References Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Custom File References Example (C#)

+

This example shows how to access custom file references.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type AccessCustRef_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with 
+//       this code.

+// 2. Add references to:
+//    b. EPDM.Interop.epdm.dll (click Browse and browse to the top +folder
+//       of your SOLIDWORKS PDM Professional installation, click
+//       EPDM.Interop.epdm.dll > Add).
+
//    c. +EPDM.interop.EPDMResultCode.dll (click +Browse >
+//       EPDM.interop.EPDMResultCode.dll > Add > OK)
.

+
// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays +the Add custom file reference dialog box.
+
+//    +a. Select a vault view.
+
+//    +b. Click Browse for two files
+
+//       +1. Locate and click two files in the root +folder of the vault.
+
+
+//       +2. Click Open.
+//       3. Checks out the first file.
+//    c. Click Add custom file reference.

+//    d. Click OK to close each +message box.
+
+// 2. Close the Add custom file reference dialog.         
+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace AccessCustRefs_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmEnumeratorCustomReference7 addCustRefs;
+        IEdmFile5 file1 = null;
+        IEdmFile5 file2 = null;

+        IEdmFolder5 parentFolder = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                CustRefListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Open dialog
+                CustRefOpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Open dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = CustRefOpenFileDialog.ShowDialog();
+                //If the user didn't click Open, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                foreach (string FileName in CustRefOpenFileDialog.FileNames)
+                {
+                    CustRefListBox.Items.Add(FileName);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void AddCustomFileReference_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                +//Get the two selected files
+                file1 = vault2.GetFileFromPath(CustRefListBox.Items[0].ToString(), out parentFolder);
+                file2 = vault2.GetFileFromPath(CustRefListBox.Items[1].ToString(), out parentFolder);

+                +//Check out the first file
+                if (!file1.IsLocked)
+                {
+                    file1.LockFile(parentFolder.IDthis.Handle.ToInt32(), Convert.ToInt32(EdmLockFlag.EdmLock_Simple));
+                }
+
+                +//Add the second file as a custom reference to the first +file
+                addCustRefs = (IEdmEnumeratorCustomReference7)file1;
+                addCustRefs.AddReference3(file2.ID, parentFolder.ID, 1, true);
+                MessageBox.Show(file2.Name + " added as reference to " + file1.Name);
+                +bool shownInBOM;
+                +shownInBOM = addCustRefs.GetShowInBOM(file2.ID, parentFolder.ID);
+                MessageBox.Show(file2.Name ++ " shown in BOM? " + shownInBOM);

+                +//Check in the first file
+                file1.UnlockFile(this.Handle.ToInt32(), "Custom reference added");

+                +//Display all of the custom references of the first file
+                ShowFileRefs();

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        private void ShowFileRefs()
+        {
+            try
+            {
+                IEdmEnumeratorCustomReference6 enumRef = default(IEdmEnumeratorCustomReference6);
+                enumRef = (IEdmEnumeratorCustomReference6)file1;
+                IEdmPos5 pos = default(IEdmPos5);
+                pos = enumRef.GetFirstRefPosition();
+                int fileID = 0;
+                int folderID = 0;
+                string message = null;
+                int quant = 1;
+                string pbsRetPath = "";
+                message = "Custom references of " + file1.Name + ":" + "\r\n";
+                while (!pos.IsNull)
+                {
+                    enumRef.GetNextRef2(pos, out fileID, out folderID, out pbsRetPath, out quant);
+                    message = message + pbsRetPath + " (fileID=" + fileID.ToString() + ", folderID=" + folderID.ToString() + ", quantity=" + quant.ToString() + ")" + "\r\n";
+                }
+                MessageBox.Show(message);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\r\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace AccessCustRefs_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.CustRefListBox = new System.Windows.Forms.ListBox();
+            this.AddCustomFileReference = new System.Windows.Forms.Button();
+            this.CustRefOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //BrowseButton
+            //
+            this.BrowseButton.Location = new System.Drawing.Point(16, 78);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(146, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse for two files...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
+            //
+            //CustRefListBox
+            //
+            this.CustRefListBox.FormattingEnabled = true;
+            this.CustRefListBox.HorizontalScrollbar = true;
+            this.CustRefListBox.Location = new System.Drawing.Point(16, 107);
+            this.CustRefListBox.Name = "CustRefListBox";
+            this.CustRefListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.CustRefListBox.Size = new System.Drawing.Size(259, 56);
+            this.CustRefListBox.TabIndex = 4;
+            //
+            //AddCustomFileReference
+            //
+            this.AddCustomFileReference.Location = new System.Drawing.Point(68, 175);
+            this.AddCustomFileReference.Name = "AddCustomFileReference";
+            this.AddCustomFileReference.Size = new System.Drawing.Size(150, 23);
+            this.AddCustomFileReference.TabIndex = 5;
+            this.AddCustomFileReference.Text = "Add custom file reference";
+            this.AddCustomFileReference.UseVisualStyleBackColor = true;
+            this.AddCustomFileReference.Click +=new System.EventHandler(AddCustomFileReference_Click);
+            //
+            //CustRefOpenFileDialog
+            //
+            this.CustRefOpenFileDialog.Multiselect = true;
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(287, 222);
+            this.Controls.Add(this.AddCustomFileReference);
+            this.Controls.Add(this.CustRefListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add custom file reference";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox CustRefListBox;
+        internal System.Windows.Forms.Button AddCustomFileReference;
+        internal System.Windows.Forms.OpenFileDialog CustRefOpenFileDialog;
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Access_Custom_File_References_Example_VBNET.htm b/documentation/api_extracted/Access_Custom_File_References_Example_VBNET.htm new file mode 100644 index 0000000..e361e71 --- /dev/null +++ b/documentation/api_extracted/Access_Custom_File_References_Example_VBNET.htm @@ -0,0 +1,340 @@ + + + +Access Custom File References Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access Custom File References Example (VB.NET)

+

This example shows how to access custom file references.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AccessCustRef in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add references to:
+'    a. EPDM.Interop.epdm.dll (right-click the project

+'       name in the Solution Explorer, click Add +> Reference
+'       Assemblies > Framework > Browse +and browse to the top folder of your  
+'       SOLIDWORKS PDM Professional installation, click 
+'       EPDM.Interop.epdm.dllAdd).
+'    b.
EPDM.interop.EPDMResultCode.dll +(click Browse >
+'       EPDM.interop.EPDMResultCode.dll > Add > OK).

+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add custom file reference dialog box.
+'    a. Select a vault view.
+'    b. Click Browse for two +files
+ +'       1. Locate and click two files in the root +folder of the vault.
+'       2. Click Open.

+'       3. Checks +out the +first file.
+'    c. Click Add custom file reference.
+ +'    d. Click OK to close each message box.
+ +' 2. Close the Add custom file reference dialog.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim addCustRefs As IEdmEnumeratorCustomReference7
+    Dim file1 As IEdmFile5 = Nothing
+    Dim file2 As IEdmFile5 = Nothing
+    Dim parentFolder As IEdmFolder5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            CustRefListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Open dialog
+            CustRefOpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = CustRefOpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            For Each FileName As String In CustRefOpenFileDialog.FileNames
+                CustRefListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub AddCustomFileReference_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddCustomFileReference.Click
+        Try
+            
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            +'Get the two selected files
+            file1 = vault2.GetFileFromPath(CustRefListBox.Items(0), parentFolder)
+            file2 = vault2.GetFileFromPath(CustRefListBox.Items(1), parentFolder)

+

            +'Check out the first file
+            If Not file1.IsLocked Then
+                file1.LockFile(parentFolder.IDMe.Handle.ToInt32(), CInt(EdmLockFlag.EdmLock_Simple))
+            End If

+            'Add the second file as a custom reference to +the first file
+            addCustRefs = file1
+            addCustRefs.AddReference3(file2.ID, parentFolder.ID, 1, True)
+            MessageBox.Show(file2.Name & " added as reference to " & file1.Name)
+            +Dim shownInBOM As Boolean
+            shownInBOM = +addCustRefs.GetShowInBOM(file2.ID, parentFolder.ID)
+            MessageBox.Show(file2.Name +& " shown in BOM? " & shownInBOM

+            +'Check in the first file
+            file1.UnlockFile(Me.Handle.ToInt32(), "Custom reference added")

+            'Display all of the custom references of the +first file
+            ShowFileRefs()

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub ShowFileRefs()
+        Try
+            Dim enumRef As IEdmEnumeratorCustomReference6
+            enumRef = file1
+            Dim pos As IEdmPos5
+            pos = enumRef.GetFirstRefPosition
+            Dim fileID As Integer
+            Dim folderID As Integer
+            Dim message As String
+            Dim quant As Integer = 1
+            Dim pbsRetPath As String = ""
+            message = "Custom references of " + file1.Name + ":" + vbLf
+            While Not pos.IsNull
+                enumRef.GetNextRef2(pos, fileID, folderID, pbsRetPath, quant)
+                message = message + pbsRetPath + " (fileID=" + Str(fileID) + ", folderID=" + Str(folderID) + ", quantity=" + Str(quant) + ")" + vbLf
+            End While
+            MsgBox(message)
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    
+    Private components As System.ComponentModel.IContainer = Nothing

+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.CustRefListBox = New System.Windows.Forms.ListBox()
+        Me.AddCustomFileReference = New System.Windows.Forms.Button()
+        Me.CustRefOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 78)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(146, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse for two files..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'CustRefListBox
+        '
+        Me.CustRefListBox.FormattingEnabled = True
+        Me.CustRefListBox.HorizontalScrollbar = True
+        Me.CustRefListBox.Location = New System.Drawing.Point(16, 107)
+        Me.CustRefListBox.Name = "CustRefListBox"
+        Me.CustRefListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.CustRefListBox.Size = New System.Drawing.Size(259, 56)
+        Me.CustRefListBox.TabIndex = 4
+        '
+        'AddCustomFileReference
+        '
+        Me.AddCustomFileReference.Location = New System.Drawing.Point(68, 175)
+        Me.AddCustomFileReference.Name = "AddCustomFileReference"
+        Me.AddCustomFileReference.Size = New System.Drawing.Size(150, 23)
+        Me.AddCustomFileReference.TabIndex = 5
+        Me.AddCustomFileReference.Text = "Add custom file reference"
+        Me.AddCustomFileReference.UseVisualStyleBackColor = True
+        '
+        'CustRefOpenFileDialog
+        '
+        Me.CustRefOpenFileDialog.Multiselect = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(287, 222)
+        Me.Controls.Add(Me.AddCustomFileReference)
+        Me.Controls.Add(Me.CustRefListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add custom file reference"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents CustRefListBox As System.Windows.Forms.ListBox
+    Friend WithEvents AddCustomFileReference As System.Windows.Forms.Button
+    Friend WithEvents CustRefOpenFileDialog As System.Windows.Forms.OpenFileDialog
+End Class

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Access_File_Card_Variables_Example_CSharp.htm b/documentation/api_extracted/Access_File_Card_Variables_Example_CSharp.htm new file mode 100644 index 0000000..5952ad0 --- /dev/null +++ b/documentation/api_extracted/Access_File_Card_Variables_Example_CSharp.htm @@ -0,0 +1,375 @@ + + + +Access File Card Variables Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access File Card Variables Example (C#)

+

This example shows how to access file card variables.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CardVars_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+
+
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. +Displays the Access file variables dialog box.
+//    +a. Select a vault view.
+//    +b. Click Browse
+//       +1. Locate and click a file in the vault.
+//       2. Click Open.
+//    c. Click Get variables.
+//       1. Checks out the selected file to the +root folder of the vault.
+//       2. Displays a message box with all of the +card variables that can be
+//          updated for the selected file +in configuration, @.
+//    d. Click OK.
+//    e. Undoes the check-out of the selected +file.

+// 2. Close the Access +file variables dialog box.         

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace CardVars_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Open dialog
+                OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Open dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog.ShowDialog();
+                //If the user didn't click Open, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                foreach (string FileName in OpenFileDialog.FileNames)
+                {
+                    ListBox.Items.Add(FileName);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void GetVars_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmFile5 aFile = default(IEdmFile5);
+                IEdmFolder5 ppoRetParentFolder = null;
+                aFile = vault2.GetFileFromPath(ListBox.Items[0].ToString(), out ppoRetParentFolder);

+                //Get card variables only from a file checked into the vault
+                if (!aFile.IsLocked)
+                {
+                    aFile.LockFile(ppoRetParentFolder.IDthis.Handle.ToInt32(), (int)EdmLockFlag.EdmLock_Simple);

+                    IEdmEnumeratorVariable5 varEnum = default(IEdmEnumeratorVariable5);
+                    varEnum = aFile.GetEnumeratorVariable();

+                    object[] valueList = null;
+                    varEnum.GetUpdateVars(aFile.LockedInFolderIDout valueList);

+                    int idx = 0;
+                    idx = Information.LBound(valueList);
+                    int upper = 0;
+                    upper = Information.UBound(valueList);

+                    string msg = null;
+                    msg = "Card variables for " + aFile.Name + " in configuration, @:" + "\n" + "\n";

+                    IEdmVariableMgr5 varMgr = default(IEdmVariableMgr5);
+                    varMgr = (IEdmVariableMgr5)aFile.Vault;

+                    IEdmVariable5 var = default(IEdmVariable5);
+                    IEdmVariableValue6 value = default(IEdmVariableValue6);
+                    while (idx <= upper)
+                    {
+                        value = (IEdmVariableValue6)valueList[idx];
+                        idx = idx + 1;
+                        var = varMgr.GetVariable(value.VariableID);
+                        msg = msg + value.VariableName + " = > " + value.GetValue("@").ToString() + "\n";
+                        msg = msg + "EdmVariableFlags: " + var.Flags + ", EdmVariableType: " + var.VariableType + "\n" + "\n";
+                        
+                    }

+                    MessageBox.Show(msg);

+                    aFile.UndoLockFile(this.Handle.ToInt32());
+                }
+                else
+                {
+                    //User selected a checked-out file
+                    MessageBox.Show("Please select a checked-in file.");
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CardVars_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.GetVars = new System.Windows.Forms.Button();
+            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.Location = new System.Drawing.Point(16, 85);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(98, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // ListBox
+            // 
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.Size = new System.Drawing.Size(259, 43);
+            this.ListBox.TabIndex = 4;
+            // 
+            // GetVars
+            // 
+            this.GetVars.Location = new System.Drawing.Point(84, 178);
+            this.GetVars.Name = "GetVars";
+            this.GetVars.Size = new System.Drawing.Size(98, 23);
+            this.GetVars.TabIndex = 5;
+            this.GetVars.Text = "Get variables";
+            this.GetVars.UseVisualStyleBackColor = true;
+            this.GetVars.Click +=new System.EventHandler(GetVars_Click);
+            // 
+            // OpenFileDialog
+            // 
+            this.OpenFileDialog.Title = "Open";
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 215);
+            this.Controls.Add(this.GetVars);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Access file variables";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button GetVars;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Access_File_Card_Variables_Example_VBNET.htm b/documentation/api_extracted/Access_File_Card_Variables_Example_VBNET.htm new file mode 100644 index 0000000..e260e0d --- /dev/null +++ b/documentation/api_extracted/Access_File_Card_Variables_Example_VBNET.htm @@ -0,0 +1,342 @@ + + + +Access File Card Variables Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Access File Card Variables Example (VB.NET)

+

This example shows how to access file card variables.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CardVars in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Access file +variables dialog box.
+'    a. Select a vault view.
+'    b. Click Browse
+ +'       1. Locate and click a file +in the vault.
+'       2. Click Open.
+'    c. Click Get variables.
+'       1. Checks out the selected file in the root +folder of the vault.
+'       2. Displays a message box with all of the +card variables that can be
+'          updated for the selected file +in configuration, @.
+'    d. Click OK.
+'    e. Undoes the check-out of the selected file.

+ +' 2. Close the Access file variables dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            ListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Open dialog
+            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            For Each FileName As String In OpenFileDialog.FileNames
+                ListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub GetVars_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetVars.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+

+            +
+            +Dim parentFolder As +IEdmFolder5 = Nothing
+            Dim aFile As IEdmFile5 += Nothing
+            aFile = vault2.GetFileFromPath(ListBox.Items(0).ToString(), +parentFolder)

+            'Get card variables only from a file checked into the vault
+            If Not aFile.IsLocked Then
+                aFile.LockFile(parentFolder.IDMe.Handle.ToInt32(), EdmLockFlag.EdmLock_Simple)

+                Dim varEnum As IEdmEnumeratorVariable5
+                varEnum = aFile.GetEnumeratorVariable

+                Dim valueList() As Object = Nothing
+                varEnum.GetUpdateVars(aFile.LockedInFolderID, valueList)

+                Dim idx As Integer
+                idx = LBound(valueList)
+                Dim upper As Integer
+                upper = UBound(valueList)

+                Dim msg As String
+                msg = "Card variables for " & aFile.Name & " in configuration, @:" & vbLf & vbLf

+                Dim varMgr As IEdmVariableMgr5
+                varMgr = aFile.Vault

+                Dim var As IEdmVariable5
+                Dim value As IEdmVariableValue6
+                While idx <= upper
+                    value = valueList(idx)
+                    idx = idx + 1
+                    var = varMgr.GetVariable(value.VariableID)
+                    msg = msg & value.VariableName & " = > " & value.GetValue("@").ToString() & vbLf
+                    msg = msg & "EdmVariableFlags: " & var.Flags & ", EdmVariableType: " & var.VariableType & vbLf & vbLf
+                    'msg = msg & "EdmVariableFlags: " & value.VariableFlags & ", EdmVariableType: " & value.VariableType & vbLf & vbLf
+                End While

+                MessageBox.Show(msg)

+                aFile.UndoLockFile(Me.Handle.ToInt32())
+            Else
+                'User selected a checked-out file
+                MessageBox.Show("Please select a checked-in file.")
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.GetVars = New System.Windows.Forms.Button()
+        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 85)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(98, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.Size = New System.Drawing.Size(259, 43)
+        Me.ListBox.TabIndex = 4
+        '
+        'GetVars
+        '
+        Me.GetVars.Location = New System.Drawing.Point(84, 178)
+        Me.GetVars.Name = "GetVars"
+        Me.GetVars.Size = New System.Drawing.Size(98, 23)
+        Me.GetVars.TabIndex = 5
+        Me.GetVars.Text = "Get variables"
+        Me.GetVars.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog
+        '
+        Me.OpenFileDialog.Title = "Open"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 215)
+        Me.Controls.Add(Me.GetVars)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Access file variables"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents GetVars As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
+End Class

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/AddCardVars.gif b/documentation/api_extracted/AddCardVars.gif new file mode 100644 index 0000000000000000000000000000000000000000..202880ec8d142bba7f03bce877c8c92dbd482c0a GIT binary patch literal 7383 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 a;T_)NMc(9v-Qs25)>Yo!mD$7%2mm|PkjH%h literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddDictionary.gif b/documentation/api_extracted/AddDictionary.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fc218a4c9a942b3e9783db69592b550cf784b0f GIT binary patch literal 10849 zcmV-nDxTFxNk%w1VG#ig0(SraA^8LW00000EC2ui01*KU0*C(q{{R30001)p08#(| zTL3Lv04sa|Er0+rG5|Ay08X6%RhIx*oB&ay0A8p7U#bug5EvL38$(JQR9hwh044x3 zCIDI{EC44hTPG}kCT@KuZ@?&VfGE%8GXMZH05dTFQZoQrGc$oRGczhc$-GGn)T1y#GZ2GD8$1MlCZ#NIF4qzC??iMUCJ;&hknj zF;3F*MF0R&05MM|Hd9t*Qk>pf003M7Gh6^%T{8e)HHBS0O__TF?ApE&yUJGh%a$XnB!fjNfCc;%|YPYuWR278h`EaC3o`eVYGp zquO|_-g_|sfHO0DF;{s`0De#ae~h1jqk(^`|9iZ=d%W9!y#IT}-+kTsh8h%xH2{M& zU4lxa(ph2Qj#kB^SF|B&JIm2WbTZ3mTid6BBb zl*QnlAP<~a0Gv`WoL4cOqPUs0(Ve|~p1IVc$>W;X*qhm#oZGyd+uNV({Godcsi%FQ zt^cRMoTI(itHqqHBn_%x0IOg&u7wb*hc>N^TC1(ItHj^1$>XW*sjBbqtm*Wt@Xo%S zS+A>qvckZy$f3B<>A2U|x7qExCJMMiEWAxPyL&Oaj}yC^o4mYxyT;VJ+S&V;g!S4LQ|NqD;2+uh)%w_<|X;;vBY0ZW;(xDm5 zs$b2`hS1Q^$=2k~-tfWR|IF_0&hV?!@b}i4R@Jw7*w~uX)zsM7*w^Lr+-70ll!x1# zSlXSD+q`?++??CnyxiQ}-skb#=k($8|KgjC=bV)0q?hKnu;I@C;okr1>gwa^@8|FL z>XeV~l$7bIoa?Aw@2X$#t(^0;uk6LY^U}-i%!Tjos_yR0@9*#a>8|(p_x}L@`@t3a z#wq*DJN(d3{MKau-v9mLl>Y3w|L*_({{9I5009UDFruKrg9sBUT*$DY!-o(fN}Ncs zqQ#3CGd7G6Vc@_KGenL1N3x{JlPFWFT*;|K{I zO0=laqezn~UCOkn)2C3QN}Wozs#T`THuanl^s3jdV8e==Sdv=mizbc;VYj{zrOwZ%A>f_ z#=pP+{{RB$N))>37vO;i_BWtzJh0-i!h?G30e1^;w+Q2*hqbJ-A$}y5 zXyS>&MWGEYEVk(4i!j2d4S|uU7~_pNwm741F}Q=yk3a?~r zKm1rSB8pU2X=QRM#-inxTz2WDmpj&|&6i}Bxn-C=exv4^Y_{p9n??d>M~1&m8A*pv z^7D>9jo7)HC_)4ffB}A785|@qDB(y2N(i@TqlQ|kA}o|vYU!nzVjAY8nTpZFr=Wr= zMy9Z!>CT(q@Bu0xsjiA@oc_PfnWTpC)uN|9`QWpMpOH91fepGjG6iyoLRw$3hb9{7 zvRRtxY?qsk`DG6)^*|nWqfUK>#0;fA#!MB{kjyZqaV#&Ss)U0p2j#z-kzLLN&0|99G8UWCmfFY;? zlIU=>CPEXY>B-*nQ{5~OQ4N6CSHPaLb`ftxY2)e<#P)ptO3<6y6uO^rf z`taQQS}d`d9NWF6{eQgx$dOXeGgcGhRJ%}R?ZsClh9IzGY3Vh2X=18N)EsgA< z`R2Dwoq-=b>u~nhn4G=t)nAitdb?kruEW222%yB({jQ$6)vq(nXwp(+;}#x6_%5Nqpl#OHu#wM6A?XQ$iW)gFj8 z8{7_S1`I#|B^UxUNJ0dlJ09|scNC1FBzs4RUd2dglpbUw8-05r3XP(|j#VQSILu)V z%lE<__Mi>^It(KF+!wik-9imWyuvNGz(g)=p>v&USHFxGK`Lk>6!}{h7SSLIC{Uqi zR@@@Mw%A20YH@*J1fv+M$UrKrF$@-jffd!LvoeBlU3%C+9z`fZ>XopEfRthPR#?42 z0&<2$sp0p6n8P=?P=-Ey10!)b#K#p8VD{s}Bk-UFBR~;g27Fs6rZ5UQYGM?^TNfq{ z;D=CDfC{CwA}Uu`KvufajHk?9>|iO!+OaE^r<5Zq|FuP6#&VUdd?hfihyfYkl8+CI z!ZCo;187+Dn%C?BaE>88X;KrL;MC@CxEZ)=(BhovJZCkn*#k#rGo9(IB*2`Im`&L8 zp7;K|g+29o3nOq62{hm*KJOWdumymXv9xDF1=WCl1)u=V+(Z}x(11-Wl%n@^C`74% z&kS-vm~z|%D#a#IiY9cS0^n#uW2sSRCe)r`sOUgvO4FL!^q$fbn5UZeDKQ9)oA%6U zz;?=0p9T!5n~1?Te!+~OMdxW{!x6}lQ+FL)zS1u2;Kyy#7@devKnNOYCF>y58`&)eRv4uS{f$*+FJ!-GL| zm#g9puz&|l-~t=Ct2glOffvl+20Qq{2?p?kCrsfATX?ex4gh7Q)z;)vk`Uo?$KPTFaT%Cw_+q z1jU39ze5DcK=QAHZR=9wy2S7RLLKDsju3PL#KSgmv|s#dVgQ@O(=N85kB#kXk2u@k z_O^?wEpBaFn%g6e#~NDjVO?vm4#Rf00G17p9|&p*YY0FBi2aTaEW6)zphW+e5bbJ{ zKx_N%Fu7q@WQ|TMPTh`h@9CXc*Yuf zoot5_yTg=VcQ78%ZjxV{+}3`%JYp`7ng814BL})V0zmL`Z=B2>FR?ljK#W}j(BVz* zp8#C$VQ~Na)vPZskoR>TA4<~uuJFE^C3_%$~xJ0knZf3WCc;<>QkXV?4P!~Xre zId5;G*PHfL_jiXsFQ|Pp9|1O3#t)FMaODTz-osaSuhsrRbIzN-_FX1Lmooj2+=Ku8 zTNXc;$Zvl1yI;!c-xB+|r2F^VKgsde()_nn|NHwN$oUrw`==%S_kRYsV*xmTu~2{~ zrU^%&0uUI15;%brSb-LJff$&98n}TR*nuASfgl)yA}E1Jpb20$ez-?}EJg~skP|NW zf-o3^GB|@YND{el2q(CHDad~-Sc5+JgFqOBLKqV`2xAGjg9O-v|KI{l*o02_gisiT zQaFWF=mNelgjkq`T38ZA_+m$>VeO}4q(Bl?ScYbJhERBgTeya7NP}JIVqaK(D!5`} zxP&h70{`#`P3QzAVGB&i4g1i9jNlJQ-~!xW68?S&h1^hxPKbwk_=hE-hice{lvs&2 z@rHGVf?zm@Vn~KAkOs&Q4ov6-gvf-u;D_9>h<{j$sz`;c*o2@cihrmDe~1K=XofC0vuKK1aErQ_joQeI zbm)s=C}f@}4$`QH(P)TGAc|@52+qieQy7inxQvEKi-u^6+E|aM0(S%`;N67u+j&*+c+D2oZ1hgN8h6ghO;>d)@2#?8# z1Wv#WsECm42#rbklj9hVK=}yRIFnKdgZ+aN8YyJH_#!)5Vs!|Rdl(L+$cU#nk4~AA zuE>sFIf?-(kK7QGQ~8!LXp<*#l_*9EFG7A=sf4?LjPb~aB$0^E=!_;Iiws#3`>>bE zNCpwR8JhnvnjYzzwt1T=0h^yDo3vS%xcQsFshcBamo9>rF0z%M2As-io5Fcz zym_1}*n-PBop5=BVD_9Xf}A7%77eD*o!ac z;Ta9rS)7y!odpZ%$w_!*#0=AZq^p9Bh^0-B&#MxeQ1p#F)V3L2q& z#-QYP3>Ipk5GtVxN(vWhp%vPp8LFWI%Apb@E9#*(CZjfbqxYAiGrFT7>Z30Tq%_*2MCyJZf-qZF-7wcxtGB3aDIaV_xcF>b7TVPFYjD78J2!CeaBu<8eK99`jY@})s$r2TsUKGdA;))M7j&D~ zc`v7Zr&n^n3Is0qbDQUL9zc0_M{@r5da^pJD_E;mN~SrsbW!(oBsX?b*Q}m;b2i7P z@s@gA2d>HRsasce+$XJYNUgUDV{kWk)h4grdZ>Q)t>;RvR$l7Z@2d<^}Y}k5j^_Fl2OREQ~ zVcU?hDO;wzNB(=l2XDakvc$)0$7iSR27Ngvs!VWvA9Sv}wr>RoY|N*1-o|s@XQw6m zX)2qtMpHs-WpE4HIXwkUhG zXse`Z`wwQzV$dK8nNYWOd$)L-w|cv`eA~Bv`?r7_xPm*lgj=|Vd$@Ni3eW&%ZyUEO zHV))Kosuh+$PRewvRixoGX)-YlLt6t|&GVom;xv__C}<{J|=c@p7Um*ac9<$J#H+Y(i&zF^kA zcZR(2o4+d|mnN~kO=iE*i@*9iz%JpxJPE)yn!E(O!2Mglyh~){`@0N0!3}JL2+U#% zOu+)w>aVV&qW6HhjZ4oWnZ2 z!#v!>KK#Q#9K=FA#6(=gMtsCO48sTp!S36(jOTbxoN7=U#m1(>RJ?Ihe8rxY#ahg1 zT-?Q{X2oD!YhOIZkXFWKylP^c#;u0NY-;uu|^N$ zfCW3|$)N0MqD;z}yvg^gVp#AGwe}CHoMW$CYO=h@YiwdzaLS=P%QCjhrA80F42QW~ zV!$kG!d%L{jLO5jyD`kft(;=V{9{9lrfQbVIyTKYmUToYVvL$(*lfWMY`oFj$;-@R z7aMH#X3Zt`%|I5;zkJRy7Hz_sr>f`9I|k3hJkHSDquRVD!tMf z{m?E((JUR)8x3sNlX3D!2biisb8yl=t3e|z(?ESaE`7ZbJ;M`C4~CS~O1;$9AOf%e zNY?NHW`GS|UTru~*pw~Sk$u2@UCw_U+F|Y0Q0>CV(PL)QQVUme%1?b@jQ z*rRREw{1v*z16m@)~)c{aJ|^Vz1vEi+ap}s0W8_z)ZEVf+~A}N3I6a3(BKR|5CtOe z3fRyENdOJ4od`jI2+%+c3Bc9b&E4J|0^$wb?A_khgxtDJ5AHqR*3{J0z1>NG-|1Zl zA}|Z+-P-(p-re2W>rLPD4c}K*%p|tU2HxP%pbGty1WjEE)s1~-@ZkNE0J1QBh+y3s zbm0!(;0V6p@*U#O&Da6Z-4*`f6Yk*xU{^oEV=W;&hbiU?W{$aaZ=X$>9{(Ro&Zhq%EE)RY_=!9PA zbS@8K{?dYO=#1Xzb&lw`tla)=xsG1xmOkh5kPV66Vpu@wm;ULEp6Qz|zLMTzlpJf9 zJjp;2YN@`;&}`-@76*tt>$G0$evHYJZ0owd>x7K!;!NiK{KjOg;KIJe#9r)PeC)^` z#-+aOs^-SdK5NPz?T-fS)J|vCe(kq5?b;5<+}`c4_U+&fXxTpQZ71&LF73^p?vz&U z>^^4h{_ban?()9v>t64R7Vr3OW%|DFfJ*QFe(v`k@PXFv1kYp!fAC6{@CuJ)4BzlZ z_V5r7fB--7h*t3y&+izY@&7*X93N*A|MB^`@gk4@@FZXI3xDz`@9-+W@(~a4^t=Wn zYhvow%?dYoit6%N9Bq`)eJG}O!9b}&Z_hdp^FllGG|vW|K+h+arbX}ZDfVl_fP4_w z^Dwt|Y9|l7s;DJhbba@5ncDC>f2LZGb%IB6rWX%NzkD*cwfEY3W{;=!zVrUJbUh6~ z0mlUEI(n3Pb^qpcsQ2~R`fdup^T0N#ulHdByKHK2r+^o#|N8dxinN7q^!)k(J571c zHnIV`wLLcip=Wv_`>_lQu{iJVhEHt4KmeS8eFV#MQp<1zJG7wsd@<|#V&C#17W*zg z=1W}WXDeb_+xxB#{KPM4x_|sU7V^qZ)WH5O(aoQJ$shfZ{`^K=VseoE+Q0qW-~HbI z{oo(|;y?c6U;gHQ{^+0n>c9TqU;M$oVsg;J3@iuk5B($-|ME}3^#AL>|Nbh5{{Zn% z;6Q=}4IV_8P~k#`4IMs&7*XOxiUj4z!{zm84Q2(4GiTGDX{DNl8&_^jv}w8Wd33_o;9K@KZq5JVFz5^+NDRP*pe7avM7BnroC@kJW}(=fgfX|(W0 z9}$XCrx{u7@kb*E3X+ulcr5WqCzD)~$R?dM63QV9B#+7)ty~ey8nv{MO9FYz5=R2d(^;D?JKp+Q|n8$&sE)PmC;v8)pW-|L!I@% zSf|Vt)>?HzR%jl`P<}2=>ijc?L!} zF@+g!Sg~xCymC=%BZh9`D62IV<9Ri%m|KrWdw67bLEe^GlOrp6<&3{oHrS3`E*Rxy zRi)Wsn`I7F4xfMi20Cb=hbFpcqmM>9X{DEDx@o7MhI;6o!=1EhtFOj7Ypu8DnlWlE z?mBF-$0oaMvp@U#Y_->ByKT2COZ#oP=cc=EtU{P!*P0&OVb=EM2zduSdF68y-gR(wR|@&%r>EYg=5xO_`rfPO zzWeKmr#NNUx9`6E<-gBS^pvDGzkT4**HC?w*muAF+2M~+{*LIkzyH1Qx6A8}M?U`* zuxB@9@A#M#6--y+Z`au$l=` zh!GXaBOYr=zzT2j!T^wvg(2vKMp}5l;iXT3VBy_3gg8VZ7SV`DM4}3Xs6-?-(TPtq zA`_b^#Un~liIi{v6o;6O76hXOL-b-1si;LVmT`y~MB4_z)?AS)!2n4DVwKsT#wxMlg=B6L5F$*1CR?#dR{9c| zm_%nf)!E3{JhFr8gl9aJ>B>cHvzx7`Wi3T8i!LM~8>*nDHUG%~dzO=vzzhN`L!bz5 zmUEo5Xs9On>CbBbVGNrrs6_jTO=d=OB>v2(2wD+>MO-7H*}w)H79mMhtg@w)6sJhZ zDba|MGoCj^Cp&fHPVM2;rC^xeRisq4 z>Ol=kRHGWSnX;sYF^OshKqP@0)WqgB%L&nBIyC{~9H&yRDnh9K)UG-e4o@ja{tvs_ zHK^ERfHg?kOr#z)t_IzvQ3bnFOag)cg&1rnMH*SJO7@eK4eDPJ+l3V@mXc=`#4NG# z1;(P(3r4NzJ(KEC%J#LdcukHP@f1nd;`Fa3Rm4UGTZqDH)Sm!lsZ_C{+sMY!4BIRN zad|sYRxWg-6*cN`{VCYo{l7M09Vxv_RXa#q0wLg z7ns5iZg2pS0AKW;VB($z;}%naAg5I@j6Gch)kT^He;ZY3~_-26UhWJ!nD~ z+R%qabfOi#Xht{M(T|2Sr1eZGD?@Luk;ZhUHN9z0ciPjKp0xfr!n;qG+SI2;b*eiZ zY9X(W9;$|QtYtmxQnOml1Eh7Xb-im|2in$^o}hf`Q4C@i+t|lOcCwYdY-Tsx+0TY{ zw52_5YFE43zvlCmg>7waciY?F26wo{&24Ol&v*-z$GFwKZg&2++uh-oM-SuI>iK0O z-S5VCzV*FtcxOZ2`J;D7GB=J37W{0U10D7_2$eWY&fyP-c*G?>af&-U;R;`)!8L9_ zQE%Mi%Io;YMP9p*kKE*^EBVP)Znu=L+~sd;`O9UlwwTY{=3}e*&2_%DobTM{mJ9gL zh0gP!58dcMzxC0T9=4t@-Rba6`qQQEJYX+;>Q|3o)iaKDuD3JlT?hM4zaDn7S2^33 zE<4$qp7x)wo$Wh!``d3Gce&4;?sb3p-SNJ1z3=_xefRsw0U!8}51#NFH~irZp7IvH zFot-C#}8~Mk9XiuhbOck<1tT(2L#@W8TtI>WoSUnC;r2aqpy48y-pL?Z$VGAlheR-(A z687)9Lb|AAfCnJxJ?xV|=Yu}}OTMDZh!%Q>514~BAff$>yvHNEU>E`2lfM3gKM_y{ zIr6|~pg_vAyzVJIj0gq-;Di7}zT8W@2t>YM5TOq=y^#AMb8ybIDhbqE06 z`#~Udz#_D{#6!Z@J3@JY22sd_D3rn}q{1q+{=zH7!YtInDij51SVHjGn60ykaUciZ zAP0NRIF3|oXcR7?w8+zef$8(-86U^F{(>oY>cMBoud$soou z<3+Go#>i;Kw~0o`n8rObMs1tLWc;0KOpI%!w6hDgZFIv-Eh!~jROS;xZw z$CP`=zi7v`nMc2f$0oeTzNkmF*+;(q$VXX3i9fuJGc?C?1jCTg5OQG1hIGh>gvf}L z$cd!LiloSc zAG@3syi_^5luEU18^7!bbr1kLXg$okJ{f8}82Y}BprOgzKhfJ7z(gIsoUO972}J=e3%KElAC2&6&6yh1`u z$_yUXY(UrKn;V0*J1Rcv zbR)||Il*Kb+PW!K_^lO?E{L&$*Q2r> z^wn{6wZc5i#AHm+JfE)ZAe1o7-xSTZH6N>$$qM33&s5F2)e6@`iQ7!TtI=ANm|L=S z+Y~a}yv@F>f!m|?Alal%;0#T!!P~~Qn!e=-#jQ=yd|W)aT*7@!=IPq2T^%t>PD7f` z3~f&Sw@RetEG1VOq*8jU5R$#{tg1tbypdRfHCU$8eTUR7KkCd~Q&Iuj{URD1!Xwh! zDhl00Vov82qS>vX(S2R;#6CEnUEAH=*zH}}LtRs<-oxzO0QlYE72Yo*-p-BN1I4BF zY)|#tDERCoSsEzgYEOV-s&wpai^)*v}Vqc-6 zC?L?T_w~pSM`d>*3;3%Hr6Rlz&e&H8pQ2b5f%PK7( zPO1)GDizKKF}@@x{#sfcvM%LP6H`(qby8J8FcyW;84IielP*N|Ei0|A3A5h>^HCdH z5%@LQ$D|g-T9gNlsB$<}CxeWRa33 zP2ObkMO^!e(-pJQIt_q4#Zx|2un`EMEY+kbJ?2tK<`2uT4f}x(+f!MHW)D-bWX9%0 z)usI6WL}n2Lk4DHwo^TwFk#X#5L+fFMbvScQW2o$4!f{qj?#CwW(Uh=X8zV@Fw145 z1z}g~v}TafL<8tj_*AX^)PsHoJr2Xn{O5o^v@ctLgEnY{-c*HF$nnY5j4lSP)##2c zHj5UYe%XMlC4XMmFlax*s3P#md0x8x$3QU#-jG>Z;k4( zW>cyrYe5|AvsP7*RqKW|>$a{$u!d_8{hFSz>$}G5yw>Zz=Ig%p>%Ru z?bKH7)n;wOKJC_q?bw#>**1yF?tt6I?cCPw-RAAy_U+#W?%)>g;U@0lHtyp_?&MbP r89@Lw(jf3?(Ej??dI<8_U`Wn@9++QfB*nH>{Qt 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddFiles.gif b/documentation/api_extracted/AddFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..f114673fba6fc3c6d6fc4b48fc1f9b39a1333ad0 GIT binary patch literal 8212 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 GAOJgiH%vkR literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddFolder.gif b/documentation/api_extracted/AddFolder.gif new file mode 100644 index 0000000000000000000000000000000000000000..a57c0752318867a07a1cbbe15bae9a17e6b5ca95 GIT binary patch literal 8292 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddInAdminMenu.gif b/documentation/api_extracted/AddInAdminMenu.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4ef29b0031741db63ecfbaae321c4fce1a49945 GIT binary patch literal 8410 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddInAdminMenu.htm b/documentation/api_extracted/AddInAdminMenu.htm new file mode 100644 index 0000000..8425206 --- /dev/null +++ b/documentation/api_extracted/AddInAdminMenu.htm @@ -0,0 +1,46 @@ + + + +Administration Menu for Add-ins + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Administration Menu for Add-ins

+
+ An add-in + often contains commands intended both for end users and the administrator of + the system. You can add these commands as menu items using the + IEdmCmdMgr5::AddCmd + method. The downside to this is that the + administrator commands are displayed in the File Explorer and, unless you + check the logged-in user, all users are able to run the administrator + commands.

+ In + SOLIDWORKS PDM Professional 6.4, a new flag is added to IEdmCmdMgr5::AddCmd, + EdmMenuFlags::EdmMenu_Administration, + which controls whether a + menu command is hidden in the File Explorer. When the flag is + set, the command is displayed only in SOLIDWORKS PDM Professional’s Administration + tool when you right-click the add-in.

+ + + + diff --git a/documentation/api_extracted/AddInApp.htm b/documentation/api_extracted/AddInApp.htm new file mode 100644 index 0000000..ca89ffd --- /dev/null +++ b/documentation/api_extracted/AddInApp.htm @@ -0,0 +1,92 @@ + + + +Add-in Applications + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add-in Applications

+ + + +
+ +

Add-ins +in SOLIDWORKS PDM Professional are:

+
    +
  • DLLs that implement the COM interface, + IEdmAddIn5. +
  • +
  • Added to a file vault through the Add-in Properties dialog.
  • +
  • Notified about SOLIDWORKS PDM Professional user actions: +
      +
    • + IEdmAddIn5::GetAddInInfo + is called when the add-in is added to a file vault.
    • +
    • SOLIDWORKS PDM Professional calls + IEdmAddIn5::OnCmd + when a user performs an action that the add-in wants to be + notified about, e.g., when a menu item is selected, a file is created, or a +file is checked in or out.
    • +
    +
  • +
  • Programmed with hooks (EdmCmdType) + into SOLIDWORKS PDM Professional. All hooks are handled through the IEdmAddIn5 interface. +
  • +
+ +

The following samples show how to create a basic add-in written in:

+ +

After you create the basic add-in using the examples, see how to +add hooks:

+

+ + + +

+ +
+ + + + diff --git a/documentation/api_extracted/AddItems.gif b/documentation/api_extracted/AddItems.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b9111daddf3f02149ebae1017c061af312fc3d0 GIT binary patch literal 8928 zcmV<6A|KsHNk%w1VLJh40e1iZA^8LW00000EC2ui06PI@0f+wp{{R30001-q08jt` zUH|}y05UQFG=u<4P5@1;092I#V5y1GyniK05vfHQZxWv zH8ox~HefL^do?wNHeg^hT%hc$+(HHOVIoBufy3Og1NL2$lI z002w?Q%wMjO(q^mNl8smvP_1IN~qyi05MS|9aAhNQad+SL_bqiWm8;bSpZpHH2_#K zds$>|Tx)t*hpt$O%UzQESDf2gng3s_@mjq9TF(Do003VAHDCZ>VJ945HUL^LCto#& zWoBkzhlgO2(O|32YIK2f78h`EaC4o#eVYGwtKNSB0DK%0dL$KnEFpU_0DCbpeNO;> zg#mwsRC|Mtf2*^5ySsb5+kn9Pf8PIq0aS)H0D(3tgf(7=HeiQRQifVthhPAQU^a(` zhk}QYgr|gt&F_mF6Nff6iAg?-PDPDs29a@ejgF6zTT+x}UyyAFkCBs;nxmMdu$~|f zoJs(oPyn1*0G(Mfm~#oCdkma=F`A#Go4b3R-M*XJ+N6_}qN`P)tpBFI)uzVftj+DE z*6*R%`=Rarup|twMLMugM5 zz1+RK+Si$clu;^*w&?fU4XoaL^m zTk%sA;lkciu@3gD$&4%gF(dydV@9(PV@6GS;@9p*c{{H^|0RQ{I5c|R!`^G8z z%RBtgPyE(o{o8r}=>PrUjs4}H{^_p%?70a3009UD040LKg9sBUT*$DY!-o(fN}Ncs zqQ#3CGiuz(F(H(J1ML_rB(J2&lPFWFT*C7sDDeOt zDsP6oLIytywDX`)ym8N>N}Wozs@1DlvufSSb*rzhV8e*}o=4-dO?fCB?oN4T)z!-x~B6C9Y`jHmGmJy05<5Y)ApGi%<=`B~b} zphJW1Jhg4!y{PT}OwD>+-@l9*E1sP=cH_rU#~}rvBtksWz=I3NEV{Vy(85i(W*yJY z>E(1^TeD`HF}c~-3zMtP*qY z6;B(_jYC6AH1zjhfZD{U4LUT|SmTN%(SV>yG}u@pf!b6PB!ClUC|(5eXjtNsOs1w) zh)^2GSzF^cW95}tVkyp+Tsp(0IOB8y&zD=`xDpLnIy253-Voy^F~$&+&75@7dCoaI z=E!3mch*^_HgUe`O$-^zV^ES+!J_D*j52CrlaNL_7gkYLDw<|gHlyjLoOZftnre#a zDUSN#m!qd^w)y6pezuzDp8l=+xvHCk7J8^vuuKKZF}(Kb3M`TaE9_O47W)}ynR=@1 zvYUnpUgLj$KYL_2M#UzvS|M=4nKcWCzmpFeU@Tgqipa6+n?@$qjT;>GOKwQWOoL<5K6yOV!#2TxyS!=b` z3@0Fm%!w1FmgYOlWh=#$SN{?Y}`2?HEFSHWJxmGHuGHQY5^5f2O<*yFUqz>*n* zb;?(#%)e(v|@BA$52i=$k4IOwOZzW9Vw zZaM0vt3vwcG^AfY`l8PtKkAdH4mF}wfkiE9Aqh#q!WFW+hdt_%2iwI3U|}$a#KwV) z00aO5y=&M7Pe3-fn4aE zTvXc9m}ZO;{0~>PPzO5t01HtlupacF2OS*fL5sa(3Jz2EmjeXUiz|^X~<6+f)Pyo4D*-16eAhU$hxQnP!i~n z1{`292tni_4|K>T9ozOWZhDiF1|!}i%VsfvH6UWppn?T0*Z^>(fEHumLIVcb!rmQE zgX{hbLm@xmO+}7l7Y_qs5JO4Ox{=a|*vlSO;*kSpr1GH<-6kRB`PKzNDE|rwn zIO}+^f^i`M=?rATyubo?Dx#Y}wddRD2{DQN)Su(Hgb%Co$%1+{dIv@5#un-XW{~2d zXickH)jCmeto5yMZN?S6af`az^{&&%t6ulY*S_xcu6M-+yv~>?IKZI_Pk_Y~7Q0wr z(UGcK(`VNb*0qL(frNpist%vg3X93*g)YD>!R-04guSh*JWM1CxX5)z8Mei(=5mW&;Zm1$*9Bc_I2RYX zs75BzK-d5_Y6^}BgA{n+Si1Z)ESY!^)1+Lp3dQV~ZD+Q1AZbsfm^L6jjE6gH zjYPx%OwF9BRC4u{9p)Mh!0Mvfsltx9Ay=#010^LWK?8YuNJr11Sa5s{+elQ<2KJn zpm)=;j(KcbAG?Moc+Rt)_sr)$`}xm+4z!^8EaqpB*>yS1soLDkXuVJ>$8u&coqJrV z^;r7Sq&akF8r^8(KswTro^;=gh3Qh8dMlbH4W~D>p0a@Y)uJ9XsZUMoTBrIvHLi75 zT>a`^$6D4t*0r#Qb8Ab(W!RTKORtx0&|d>PO303OXNoQDYJ285%+7X$MXfPwds{2i z{`RRsr0sG$o6;c?x4Kij&_TQV-S7_ds^?8_=EVEn_|A8{sgmk=@IeOv54gYwPVj;o z{NM;rxWX6C@P<45;Si6w#3xSiidUQuwt|3>bO64Nd;H@d54p(xM^5sRoBZS`Pr1rh z&hnPK{N*6mLB=-@^P1cI<~Yx}&Ueo9o_|l~tkZaDIPUYJ8~x}=PrA}~4)mBtKK^{QL_>R8Wt)5rXDnrHp%U=O?4v%YmhcYWw%PrKUJ&i0p=-B3^u&(zya_qyA? z?QcJO)aQQpzWe>}O3!=TpCNU?8~*T!$GPCWp7_Q){_!GTJlY{o`N}^&@4lJ5``RnMyM*Vv?RU?6lgmE$y$`aqT>{qA?3``!;f<-srh@+Y4B zEMJENEC_^-uOkD`@cH}WZ+`2eU*+x~!W-bRjtYDNeDf!A0l0GSrws5nasya@uJ?Iz zv3%)wfFGBD5eR`QSAZ0#fXVki4G4WH_YPzr0^g&40U!WxFn=OQg7DxDLtsHoKn4MD z0Q9#G6R>|W_y(1*PCyWV1$Y5R@PhPrE;Y!16W|8$cY<$_4g~NC?ob3usDDfNe;9~( z3}_b|*nuucg6|LqG?)Pf2n|}ue;EJ`WYB*3M}$8J50wCd!>|A$$b|=Jfd+Vn=aPo- zu!isFg!gSjD1mqQg(CQZaR`P6 zSc&czhFVyFh&X~a2n3ek1{;tLAoz!k7l^Jgi1=3oo#1~!$c3&LEeR-rS!jm&w}q7m zhkh6>wOE9(2!+v-4j_;O(U1g~(0-)mcmQJ9e*M=8VK|2TR{@}4jb-SE z!w>)<_=NCKh|$1=;b@3%D2M0LjUaf3*4TeaI0PVA2}ziY%E)fa2y-_W0Q0DVo;ZK} zh=TmchblOaKsbZZ(v21bg9vE=ZWs+iK#%}vkp8%WDCmLhmkw;0g5*e#e#d%($dMo^ zb{?6EAz6}SmvI0@k|w#5R3~%h0e6V<{*f#>lSt>1P6q)osgg9glRamXV+H{@nHxH( za-$FhJ8+apnUqSoluX%_PWhBj8I@8wl~h@kR(X|983m)TdoFny@&J@ca*r$53(i0k zW_gxqnU-qV6V6}?T$vY!29^WkfGF1sYk8M=nU{JA6mDsIT?rLmi6k4?a&{>XBXF3A znV5>Xn2gz&j`^4)APjpsnUpCLeOY^dISw*4m@HSAkolRQ8JdeJnUz_Zril`ld3~p` znPRDOo_Uz^un34L1SWwBhZzt1fS8f64?i#hHBp<4IS#$4n6ZhNzge85d78>unW+hT znaP?mIhG}Hm|~C$&2X4Pz?+Bu=?k_A7sH90y(yfKDV~X0o!5DrQgE2UnVieno_X1v z)3=(3!kN-(m?IDgQs4`{840qfnBxEm{pp<}K%S0CpofW{`iY*~DFy85o(`Ip@VS8U zDVVL9a<4fK_bHnOs-8h`ono*E;<=%VxuF=!p9(slKhU5Lx}rl7p{nh2DurcMB11Jilrr?o$(-~zQCYNx~47Rqyd1MZz&hhIg}PUofvwci(sPu z`2#{Q4&51^VH%uadZ+#w>YGB!pGwN6in>lI5v8aHqZAsQRw@rSI-AXqox{nUC~Byi zDx!O8si1nM=$WXB%BFAHsBsz>b4r&dSD3!gpXf=OC1IPJikRXFr01!a$GH!$nwaqr z2FGceq*|)PY7&l0dXP$`GTN%sDVomutc*FV#Y(KlI(o@krFCkb(E6CZfD%IbtkOEI zidwCrcdg56a)l|b>bkDv`h8Q1tuwl=@;a^U%6ZQT0g+0l@j9>k%BJppne(YfiNh6(Q<>*xQlbh zhc?H$nTU>^%W|I!7NP4*zQC#}cZ=8f3F{C6Zzut)>xWNhfwrrWzzB1*=!djRyRW#s zCHK6T{y3Al`xQrmDB2sjAXkXd2!?C0f9aqBz9@$SD7|1vy%h+%ZHSKQTXU=%zZ{vp zy?ZOV>%Aa%gBkgL$pC_(c)s7mj|4!CacG3mLcpECg9W^PNw^L?7yu#Qf~6RaN%(}@ zs0QpeksF)=8Z5i;;DJ6Uf)KfbJvhPM2*Eu#k0dO-5$uDq7{RN%ek7>E5=_B$Xh9Y1 zeL64>VIfnXtG^Lwkd~MM#dyHb>x*3|i4bUlGiZ@@c)BxKg9Dg_N63eq__|%FjYQxE z67ae)2!BxQjIzjuQ#{3Hynkyr#!_5@k9dw&Y>8*=#^WfwvB<+d3>H8P7ULkq9jAi+ zOW=xkcm|qqx&r*ZaM+0`xV|R%hUeJGKUfK%D2k-0gKl`emK?^8yk6cf7$&fl!Q*>kG^QY0LvSkixssKM4NKpR5cK zfYSVj(i2IL@8^&gOp$Kf(a(U8JKTK;-L2ca(B1rp^jo)ioX|ggF+m-LLw&V9tju&@baUDjrO)@Ys9YQ5HM-PUgX)^Huy zay{2{oz}3x3|v{%r?9*70M-)=4+$IC%LxzRkaBha1&E#4ioMv3-Pn%(*p6)nFss*m z?bj?P4uYN8r&-u1#|C#F+9d}Cvn_V=P}?Yn(0hH_K%LsY-P~#k+$1O5WBym%r7bs8t=kjp z+}drH&^>a}P29$Pa>#w%%e~v%ecnCM-6HqhvK`*Oht=f$)aH%e^lcOB9dhjb(us)C zN=Mzc4c|x2(Aizz1pX5D4RZO7&hO_8OXuIm4d7ah-Irb96wVR{{&5NJitb24Gav%QQNHpR}&D$ql z;VIs6P!JF5(+!9y0ASD!695L_fCWAf4y>R6;E)AizzqT51KofDv0wv;&25~{^LO&@Bw75$Y6lxXs+g^O+7x&+;MK=bN)Sbo<3lX=T+_oeg5ZV&J7)a1F?Vugb?NE z0|*3Q2zT!2t{x7M{@+D3>GNIb6n^RFlIiHP>1193d_D_L9_3S>=R=_As{Z9oUgci^ z<-LyQub$>>PI7GyJ+waHwqD@49xX+F4cvYWNWM;5-sj%F(X((3!F~Q$O}>#|CzQvS23; zc0k&){`T?^_j12>YyjDUKlp^-*m^JP5AX9~PxXIaebYW$ivK)f-}v<#;?fiOsWADJ zpNx;63Yf3?oBxNM|M`p``pIYc&qMmAUy`GbA%4I5l`lR0?i;TU`<(Cgknj47Z~K)W z^|ZhHynp+?9}lzz`oVwDQ2+MC4_3y1{5<}h{1ERO&DQ+RpM52RaRk0ImHG#OLpPM$q|{`@)9BghChJEqFn(hd}+O`Sf48dd64s#UEvwF6Y^R<00* zb|h*v71EO{+2|1`PwiT^ZQZ_w8&~dJy7I*7VbfLbUcFyy7CkkVY)dHcx!vq-)8Mv z>|mC&C8iVb#^AaP&Il4W&eb+<=AFNqid?d6>B|x;DG@Qe`0?%Vh%4*9b9r;}jK4aH z2SFsx>9VUsd}qc}lH>!CbFc3`yw36E{dX105%km>Njk#bduW{v-ibrFbtDKNfCHR) zFv1D#v)~2^DTFY%butVf1Tq51ZkPzOo2bA4Rt$=xQv^&;B$7Ic4J9bz2`5J#cjQq= zR(uGDl@Gwd0!VHSkfq3Qj+`aOZZLQSgIU1I0*r8;d}RVKy3z8EYN{xU)dqihmODX-j^l05UZ_GtEe6W$8SS-n5jk zOkoXj(HvRvKuK1R6!w57{gjeOAjLGKP-n9QgGwuT)$vhUuU*Mjn`S(v#*A*fCR}mH zCHIrnzRD zZ+3a)l6OuhW7sbK{T3dahbFpcqhp3gR-TtGDC5z9#t4dVgg&}ztFMM99Hp6N+Ud!l zzK9Jw#KBe^JM!W>?SZ^jStT~Ef;(=x=Y|SxwbN$X+q?JXyS0PS3+<+-`zE~bp8t+) zaKjfjTwBq;W<2t~Ck7Lban(D=y?5GlhaGI+hj;Ge#8)RidDZe3o}xCMhdz4gr>DMp>#xT?d+oR9 zzI*S#2S0rA$CrqCmfEN*ef8I8zkT=Lhd+M#=ck{oHp(}?@}JMIzkmP#2VejNI6(E? zFCsoeUP}JZM?eNP(18zxU;qv1mHfRXFtKx91U0xp4t7w36MP70)&nP%EYO1|L}3b5 zm_87ij3x0!5;HxUyK(TPul zqFjpTH;({LB#n?EN}3o&E_QK=wF zjR+AV56OrTGuF|Me2R3s<~fl@)nqEOm*-S;B*rq>M-| zcm6rdDE8847hGZ~iMh-)8Z&<*G-Mf>In6FQ^My7^A}}E$Olo#hh1MJjHurcDZhF(4 z9Rw#>#2HOKp3|K*OeZ1X2+5U{^PTr(AUNGPMs|`DpZ`RsAO+M2O3hQ753wge6}m`) zI)b1C%4RZyxloEW(3%6KR74|LQH}!eq7J1Ldp6oplG5*^54GSeGgwlV%I~DzjW|{5CV4v4xug?iwmhgq5=zvT8Z|n|94S+!suri(M5Ohc zYF4T0Q*|P7oUYVrR;%jOeu6cuQXOj{>G{L6GBvFRmFPCx>Q=7Sgr94b<6L=q{?j*p z6_+m$Ywcf zPS0XCt_U41OZ7RR&z@GPsVymATN_o_E>yOU1nojZTU%yU)q;%GDQ_v7*1}F!xC$k% zUsrlux3P_;e&Yi!*vX?fJkf*6Q6jFX=Q|nS6q<(7Q2|28HPuU zRqR^L+IW~_&9RJm99kdm6399p@sM>}WL?5o$h2iLCsUkcC`WmcQ=TzFYHZ~vO8Ci! z<#Hz_ykRA?H_Y#?Z#+ayWiX%l%4uG6mItzBHv@6ZJFaq_WeI08=ULBm#B!M({AWo9 z+Ruc(F@Udm#V;Ed(R)^OI7NbFIm3g_k5(g&DJ|#@V;Yc0ZnS(o{bEgr8o#4%W`^Uj z=|iKs%c^dKsR!)pGa9{mxxokfW= zr%TN2YVx_*yr#Ag-`ZzmXFG_t#%0JKL^m=61LVjzen;T-^&VI0df>?S#`C;&x24=p1h0 zi)Y&4VbM6SJ09^6iZa@*9=SyuF7lM0aNGSJc*`UB@{OBS<{1C@8`I74n}0Ciz#d=F zg+6qm7v1PbNBZ~Ly>sO?oi96dx6`F=o@c6==~KtLPj(n6 z{_BgUaN`}Hb+$_y;a#76=J6PIv}@k;m*hO$1OIuiL;i+9BF;PMGjDoEi(d7wr{xPz zKjGBF9`ReJz2t4*yR*A~_n)tPS1(`t-_M=!!lym)i?4RVx83juUVhq}p9+xkH~Nq7 z`&g>qk!SEh2j2&O_{Bed@|WNI=SP3~)xUoBx8MEmhkyL#KY#kupAXrme&CYmi)W0( z|NjTT02IIhB)|eRzyn0U1XREUWWWY=zz2lD2$aAHq`+qojQop$J$MnC;J^;-K#c>z z7XiT$B*79iK@;@A6!gFgWWg46!54(V7?i;oq`?}r!5hTE9Mr)byugm|g+hn`C5V7= zNFo)ai4#P^BvisB#5*HYK^}y{D3rn}q{1qk+(9SA!VVmV2v`9Ch=4+P1|}4pSR=zS zG{ZAQ!!%UGH55D1$-)%0!Z?(}Ii$lVe8W5Bz-ItL0000bcz{CSh%sctK_tXNG($!} z#6(m>jl)BlsKZBu#7LaNM)W{au*6Hm#7w-zUKoc$cmNvU!#)g+J&1==G{sXy#Z*+q zRb<6hOvQn4#aNWZS)|2Uw8dM*#az_IUF1bv+=Gw+#Zcr!8VC*bFvep<#$;5+Wn{)? ubVg(hjcAm{X{5$#w8m@1#%$EaZREyo^u})l$8h|{XCz1U=)zD82mm`UG?EPf literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AddRemoveUsersGroups.gif b/documentation/api_extracted/AddRemoveUsersGroups.gif new file mode 100644 index 0000000000000000000000000000000000000000..42fd3b49337df9d41853207c3ce6bd873e961843 GIT binary patch literal 10410 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Add_Custom_File_Reference_Example_CSharp.htm b/documentation/api_extracted/Add_Custom_File_Reference_Example_CSharp.htm new file mode 100644 index 0000000..3a9637e --- /dev/null +++ b/documentation/api_extracted/Add_Custom_File_Reference_Example_CSharp.htm @@ -0,0 +1,347 @@ + + + +Add Custom File Reference Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Custom File Reference Example (C#)

+

This example shows how to add a custom file reference to a +file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CustRefCSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+ +//    f. Create a form similar to the form shown above and change:
+//       1. Top label to VaultsLabel.
+//       2. Combo box to VaultsComboBox.
+//       3. Browse button to BrowseButton.
+//       4. List box to CustRefListBox.

+//       5. Add custom file reference button to AddCustomFileReference.
+//    g. Replace the code in Form1.cs with this code.
+//    h. Replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. The Add custom references dialog displays.
+
// 2. Select a vault.
+// 3. Click Browse for file to which to add custom reference
+//    locate and click a file in the vault, and click Open.
+//    The file is checked out.
+// 4. In a view of the selected vault, right-click a file and click Copy.

+// 5. In the +Add custom references dialog, click Add custom file reference.
+//    The file that was copied to the clipboard is added as a custom 
+//    reference to the checked-out file.
+// 6. In the Create File References dialog, click OK.
+//    The file is checked in.
+// 7. In the Edit User-Defined File References dialog, click OK.
+// 8. Close the Add custom references dialog.         

+ +//----------------------------------------------------------------------------

+//Form1.cs
+using System.IO;
+using System.Xml.Serialization;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.ComponentModel;
+using EPDM.Interop.epdm;

+namespace CustRefCSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        IEdmVault5 vault1 = null;

+        public void FileReferencesCSharp_Load(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                CustRefListBox.Items.Clear();

+                //Only create a new vault object
+                //if one hasn't been created yet
+                if (vault1 == null)
+                    vault1 = new EdmVault5();
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the File Open dialog
+                CustRefOpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the File Open dialog
+                System.Windows.Forms.DialogResult DialogResult = default(System.Windows.Forms.DialogResult);
+                DialogResult = CustRefOpenFileDialog.ShowDialog();
+                //If the user didn't click Open, exit the sub
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                    return;

+                foreach (string FileName in CustRefOpenFileDialog.FileNames)
+                {
+                    CustRefListBox.Items.Add(FileName);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void AddCustomFileReference_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //Only create a new vault object
+                //if one hasn't been created yet
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                    vault1 = new EdmVault5();
+                    vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmAddCustomRefs addCustRefs = (IEdmAddCustomRefs)vault2.CreateUtility(EdmUtility.EdmUtil_AddCustomRefs);
+                Int32[] ppoFileIdArray = new Int32[CustRefListBox.Items.Count];
+                IEdmFile5 file = null;
+                IEdmFolder5 parentFolder = null;
+                int i = 0;
+                foreach (string FileName in CustRefListBox.Items)
+                {
+                    file = vault2.GetFileFromPath(FileName, out parentFolder);
+                    if (!file.IsLocked) {
+                        file.LockFile(parentFolder.IDthis.Handle.ToInt32(), (int)EdmLockFlag.EdmLock_Simple);
+                    }
+                    ppoFileIdArray[i] = file.ID;
+                    i++;
+                }
+                Boolean retCode = false;

+                //Add the file that is copied to the clipboard as a custom reference to the selected file
+                foreach (int ID in ppoFileIdArray)
+                {
+                    addCustRefs.AddReferencesClipboard(ID);
+                    addCustRefs.CreateTree((int)EdmCreateReferenceFlags.Ecrf_Nothing);
+                    addCustRefs.ShowDlg(this.Handle.ToInt32());
+                    retCode = addCustRefs.CreateReferences();
+                }

+                // Check in the file
+                file.UnlockFile(this.Handle.ToInt32(), "Custom reference added");

+                //Display current custom file references
+                retCode = addCustRefs.ShowEditReferencesDlg(ref ppoFileIdArray, this.Handle.ToInt32());

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CustRefCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.CustRefListBox = new System.Windows.Forms.ListBox();
+            this.AddCustomFileReference = new System.Windows.Forms.Button();
+            this.CustRefOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(244, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Copy a file to the clipboard, then select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 59);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.Location = new System.Drawing.Point(16, 98);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(271, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse for file to which to add a custom reference...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // CustRefListBox
+            // 
+            this.CustRefListBox.FormattingEnabled = true;
+            this.CustRefListBox.Location = new System.Drawing.Point(16, 150);
+            this.CustRefListBox.Name = "CustRefListBox";
+            this.CustRefListBox.Size = new System.Drawing.Size(259, 95);
+            this.CustRefListBox.TabIndex = 4;
+            // 
+            // AddCustomFileReference
+            // 
+            this.AddCustomFileReference.Location = new System.Drawing.Point(16, 273);
+            this.AddCustomFileReference.Name = "AddCustomFileReference";
+            this.AddCustomFileReference.Size = new System.Drawing.Size(259, 23);
+            this.AddCustomFileReference.TabIndex = 5;
+            this.AddCustomFileReference.Text = "Add custom file reference";
+            this.AddCustomFileReference.UseVisualStyleBackColor = true;
+            this.AddCustomFileReference.Click += new System.EventHandler(this.AddCustomFileReference_Click);
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 308);
+            this.Controls.Add(this.AddCustomFileReference);
+            this.Controls.Add(this.CustRefListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add custom file references";
+            this.Load += new System.EventHandler(this.FileReferencesCSharp_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Button BrowseButton;
+        private System.Windows.Forms.ListBox CustRefListBox;
+        private System.Windows.Forms.Button AddCustomFileReference;
+        private System.Windows.Forms.OpenFileDialog CustRefOpenFileDialog;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Custom_File_Reference_Example_VBNET.htm b/documentation/api_extracted/Add_Custom_File_Reference_Example_VBNET.htm new file mode 100644 index 0000000..98ec4dc --- /dev/null +++ b/documentation/api_extracted/Add_Custom_File_Reference_Example_VBNET.htm @@ -0,0 +1,311 @@ + + + +Add Custom File Reference Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Custom File Reference Example (VB.NET)

+

This example shows how to add a custom file reference to a +file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CustRef in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+ +'    f. Create a form similar to the form shown above and change:
+'       1. Top label to VaultsLabel.
+'       2. Combo box to VaultsComboBox.
+'       3. List box to CustRefListBox.
+'       4. Browse button to BrowseButton.
+'       5. Add custom file reference button to AddCustomFileReference.
+'    g. Replace the code in Form1.vb with this code.
+'    h. Replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. The Add custom references dialog displays.
+' 2. Select a vault.
+' 3. Click Browse for file to which to add custom reference
+ +'    locate and click a file in the vault, and click Open.
+'    The file is checked out.
+' 4. In a view of the selected vault, right-click a file and click Copy.

+' 5. In the Add custom references dialog, click Add custom file reference.
+ +'    The file that was copied to the clipboard is added as a custom 
+'    reference to the checked-out file.
+' 6. In the Create File References dialog, click OK.
+'    The file is checked in.
+ +' 7. In the Edit User-Defined File References dialog, click OK.
+ +' 8. Close the Add custom references dialog.         
+ +'----------------------------------------------------------------------------

+'Form1.vb
+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            CustRefListBox.Items.Clear()

+            'Only create a new vault object
+            'if one hasn't been created yet
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the File Open dialog
+            CustRefOpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the File Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = CustRefOpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit the sub
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            For Each FileName As String In CustRefOpenFileDialog.FileNames
+                CustRefListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub AddCustomFileReference_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddCustomFileReference.Click
+        Try
+            'Only create a new vault object
+            'if one hasn't been created yet
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim addCustRefs As IEdmAddCustomRefs = DirectCast(vault2.CreateUtility(EdmUtility.EdmUtil_AddCustomRefs), IEdmAddCustomRefs)
+            Dim ppoFileIdArray As Int32() = New Int32(CustRefListBox.Items.Count - 1) {}
+            Dim file As IEdmFile5 = Nothing
+            Dim parentFolder As IEdmFolder5 = Nothing
+            Dim i As Integer = 0
+            For Each FileName As String In CustRefListBox.Items
+                file = vault2.GetFileFromPath(FileName, parentFolder)
+                If Not file.IsLocked Then
+                    file.LockFile(parentFolder.IDMe.Handle.ToInt32(), CInt(EdmLockFlag.EdmLock_Simple))
+                End If
+                ppoFileIdArray(i) = file.ID
+                i += 1
+            Next
+            Dim retCode As [Boolean] = False

+            'Add the file that is copied to the clipboard as a custom reference to the selected file
+            For Each ID As Integer In ppoFileIdArray
+                addCustRefs.AddReferencesClipboard(ID)
+                addCustRefs.CreateTree(CInt(EdmCreateReferenceFlags.Ecrf_Nothing))
+                addCustRefs.ShowDlg(Me.Handle.ToInt32())
+                retCode = addCustRefs.CreateReferences()
+            Next

+            ' Check in the file
+            file.UnlockFile(Me.Handle.ToInt32(), "Custom reference added")

+            'Display current custom file references

+            retCode = addCustRefs.ShowEditReferencesDlg(ppoFileIdArray, Me.Handle.ToInt32())
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+

+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.CustRefListBox = New System.Windows.Forms.ListBox()
+        Me.AddCustomFileReference = New System.Windows.Forms.Button()
+        Me.CustRefOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(244, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Copy a file to the clipboard, then select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 59)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 98)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(271, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse for file to which to add a custom reference..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'CustRefListBox
+        '
+        Me.CustRefListBox.FormattingEnabled = True
+        Me.CustRefListBox.Location = New System.Drawing.Point(16, 150)
+        Me.CustRefListBox.Name = "CustRefListBox"
+        Me.CustRefListBox.Size = New System.Drawing.Size(259, 95)
+        Me.CustRefListBox.TabIndex = 4
+        '
+        'AddCustomFileReference
+        '
+        Me.AddCustomFileReference.Location = New System.Drawing.Point(16, 273)
+        Me.AddCustomFileReference.Name = "AddCustomFileReference"
+        Me.AddCustomFileReference.Size = New System.Drawing.Size(259, 23)
+        Me.AddCustomFileReference.TabIndex = 5
+        Me.AddCustomFileReference.Text = "Add custom file reference"
+        Me.AddCustomFileReference.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 308)
+        Me.Controls.Add(Me.AddCustomFileReference)
+        Me.Controls.Add(Me.CustRefListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add custom file references"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents CustRefListBox As System.Windows.Forms.ListBox
+    Friend WithEvents AddCustomFileReference As System.Windows.Forms.Button
+    Friend WithEvents CustRefOpenFileDialog As System.Windows.Forms.OpenFileDialog
+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Add_File_Example_CSharp.htm b/documentation/api_extracted/Add_File_Example_CSharp.htm new file mode 100644 index 0000000..f695b6a --- /dev/null +++ b/documentation/api_extracted/Add_File_Example_CSharp.htm @@ -0,0 +1,398 @@ + + + +Add File Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add File Example (C#)

+

This example shows how to add a file outside the vault to the vault root.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+
//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows Forms Application.
+//    b. Type AddFiles in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and 
+//    click EPDM.Interop.EPDMResultCode.dll, click Open, click Add, and click Close).
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 5. Run the Administration tool, log in as admin, expand the vault, 
+//    right-click File Types, click Duplicate file name settings, and 
+//    click Do not allow duplicate files names in this file vault.
+// 6  Ensure that at least one file exists in a subfolder in the vault and 
+//    the same-named file exists outside the vault. 
+// 7. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Add file to vault root dialog box.
+//    a. Select a vault view.
+//    b. Click Browse to a file outside the vault
+//       1. Locate a file outside the vault that exists in  
+//          a subfolder in the vault.
+//       2. Click Open.
+//    c. Click Add file to vault root to add the selected file to the 
+//       root folder of the vault.
+//    d. Displays a message box warning you that the selected file is not 
+//       unique in the vault, but that the file will be added to the vault root.
+//    e. Click OK.
+// 2. Close the Add file to vault root dialog box.      
+// 3. Examine the vault root.
+//----------------------------------------------------------------------------
+
//Form1.cs
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+using EPDM.Interop.EPDMResultCode;
+
+ 
+ 
+namespace AddFiles_CSharp
+{
+	public partial class Form1 : FormIEdmCallback6
+	{
+		public Form1()
+		{
+			InitializeComponent();
+		}
+		private IEdmVault5 vault1 = null;
+ 
+		public void Form1_Load(System.Object sender, System.EventArgs e)
+		{
+			try
+			{
+				IEdmVault5 vault1 = new EdmVault5();
+				IEdmVault8 vault = (IEdmVault8)vault1;
+				EdmViewInfo[] Views = null;
+ 
+				vault.GetVaultViews(out Views, false);
+				VaultsComboBox.Items.Clear();
+				foreach (EdmViewInfo View in Views)
+				{
+					VaultsComboBox.Items.Add(View.mbsVaultName);
+				}
+				if (VaultsComboBox.Items.Count > 0)
+				{
+					VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+				}
+			}
+			catch (System.Runtime.InteropServices.COMException ex)
+			{
+				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+			}
+			catch (Exception ex)
+			{
+				MessageBox.Show(ex.Message);
+			}
+		}
+ 
+		public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+		{
+			try
+			{
+				ListBox.Items.Clear();
+ 
+				if (vault1 == null)
+				{
+					vault1 = new EdmVault5();
+				}
+				if (!vault1.IsLoggedIn)
+				{
+					//Log into selected vault as the current user
+					vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+				}
+ 
+				//Set the initial directory in the Open dialog
+				OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+				//Show the Open dialog
+				System.Windows.Forms.DialogResult DialogResult;
+				DialogResult = OpenFileDialog.ShowDialog();
+				//If the user didn't click Open, exit
+				if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+				{
+					return;
+				}
+ 
+				foreach (string FileName in OpenFileDialog.FileNames)
+				{
+					ListBox.Items.Add(FileName);
+				}
+			}
+			catch (System.Runtime.InteropServices.COMException ex)
+			{
+				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+			}
+			catch (Exception ex)
+			{
+				MessageBox.Show(ex.Message);
+			}
+		}
+ 
+ 
+		public void AddFiles_Click(System.Object sender, System.EventArgs e)
+	{
+ 
+		try {
+			IEdmVault7 vault2 = null;
+			if (vault1 == null) {
+				vault1 = new EdmVault5();
+			}
+			vault2 = (IEdmVault7)vault1;
+			if (!vault1.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			if (!(ListBox.Items.Count == 1)) {
+				MessageBox.Show("Please browse to a file outside the vault.");
+				return;
+			}
+ 
+ 
+			// Add selected file to the root folder of the vault
+			IEdmFolder8 Folder = default(IEdmFolder8);
+			Folder = (IEdmFolder8)vault2.RootFolder;
+ 
+			EdmAddFileInfo[] Files = new EdmAddFileInfo[1];
+ 
+			string[] FileNames = new string[1];
+			int Index = 0;
+			string fileStr = "";
+			foreach ( Object FileName_loopVariable in ListBox.Items) {
+				fileStr = FileName_loopVariable.ToString();
+				FileNames[Index] = fileStr.Substring(fileStr.LastIndexOf("\\"));
+				Index = Index + 1;
+			}
+ 
+			string Path = "";
+			int addFileStatus;
+			Index = 0;
+			foreach (Object FileName_loopVariable in ListBox.Items) {
+				Path = FileName_loopVariable.ToString();
+				Files[Index].mbsPath = Path;
+				Files[Index].mlEdmAddFlags = (int)EdmAddFlag.EdmAdd_Simple;
+				Files[Index].mlFileID = 0;
+				Files[Index].mlSrcDocumentID = 0;
+				Files[Index].mlSrcProjectID = 0;
+				Files[Index].mbsNewName = "";
+				Folder.AddFile2(this.Handle.ToInt32(), Files[Index].mbsPathout addFileStatus, "", Files[Index].mlEdmAddFlags);
+				switch (addFileStatus)
+				{
+					case (int)EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY:
+						MessageBox.Show("WARNING: File is not unique in the vault, but the file will be added to the vault root.");
+						break;
+					case 0:
+						MessageBox.Show("SUCCESS: File will be added to the vault root.");
+						break;                        
+				}
+				Index = Index + 1;
+			}
+ 
+ 
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+		}
+	}
+ 
+		private EdmMBoxResult IEdmCallback6_MsgBox(int lParentWnd, int lMsgID, string bsMsg, EdmMBoxType eType = 0L)
+		{
+			MessageBox.Show(bsMsg);
+			return EdmMBoxResult.EdmMbr_OK;
+		}
+		EdmMBoxResult IEdmCallback6.MsgBox(int lParentWnd, int lMsgID, string bsMsg, EdmMBoxType eType )
+		{
+			return IEdmCallback6_MsgBox(lParentWnd, lMsgID, bsMsg, eType);
+		}
+ 
+		private void IEdmCallback6_Resolve(int lParentWnd, ref EdmCmdData[] ppoItems)
+		{
+		}
+		void IEdmCallback6.Resolve(int lParentWnd, ref EdmCmdData[] ppoItems)
+		{
+			IEdmCallback6_Resolve(lParentWnd, ref ppoItems);
+		}
+ 
+		private bool IEdmCallback6_SetProgress(int lBarIndex, int lPos, string bsMsg)
+		{
+			return true;
+		}
+		bool IEdmCallback6.SetProgress(int lBarIndex, int lPos, string bsMsg)
+		{
+			return IEdmCallback6_SetProgress(lBarIndex, lPos, bsMsg);
+		}
+ 
+		private void IEdmCallback6_SetProgressRange(int lBarIndex, int lMax)
+		{
+		}
+		void IEdmCallback6.SetProgressRange(int lBarIndex, int lMax)
+		{
+			IEdmCallback6_SetProgressRange(lBarIndex, lMax);
+		}
+ 
+		private void IEdmCallback6_SetStatusMessage(int lBarIndex, string bsMessage)
+		{
+		}
+		void IEdmCallback6.SetStatusMessage(int lBarIndex, string bsMessage)
+		{
+			IEdmCallback6_SetStatusMessage(lBarIndex, bsMessage);
+		}
+	}
+}
+
//Form1.Designer.cs
+
+
namespace AddFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.AddFiles = new System.Windows.Forms.Button();
+            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.BrowseButton.Location = new System.Drawing.Point(16, 69);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(259, 39);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse to a file outside the vault:";
+            this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // ListBox
+            // 
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.ListBox.Size = new System.Drawing.Size(259, 43);
+            this.ListBox.TabIndex = 4;
+            // 
+            // AddFiles
+            // 
+            this.AddFiles.Location = new System.Drawing.Point(16, 163);
+            this.AddFiles.Name = "AddFiles";
+            this.AddFiles.Size = new System.Drawing.Size(121, 23);
+            this.AddFiles.TabIndex = 5;
+            this.AddFiles.Text = "Add file to vault root";
+            this.AddFiles.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.AddFiles.UseVisualStyleBackColor = true;
+            this.AddFiles.Click += new System.EventHandler(this.AddFiles_Click);
+            // 
+            // OpenFileDialog
+            // 
+            this.OpenFileDialog.Multiselect = true;
+            this.OpenFileDialog.Title = "Open";
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 215);
+            this.Controls.Add(this.AddFiles);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add file to vault root";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button AddFiles;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
+    }
+}
+ + + + diff --git a/documentation/api_extracted/Add_File_Example_VBNET.htm b/documentation/api_extracted/Add_File_Example_VBNET.htm new file mode 100644 index 0000000..0b3d582 --- /dev/null +++ b/documentation/api_extracted/Add_File_Example_VBNET.htm @@ -0,0 +1,348 @@ + + + +Add File Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add File Example (VB.NET)

+

This example shows how to add a file outside the vault +to the vault root.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddFiles in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, and click Add).
+' 3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and 
+'    click EPDM.Interop.EPDMResultCode.dll, click Open, click Add, and click Close).
+' 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 5. Run the Administration tool, log in as admin, expand the vault, 
+'    right-click File Types, click Duplicate file name settings, and 
+'    click Do not allow duplicate files names in this file vault. 
+' 6  Ensure that at least one file exists in a subfolder in the vault and 
+'    the same-named file exists outside the vault.
+' 7. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add file to vault root dialog box.
+'    a. Select a vault view.
+'    b. Click Browse to a file outside the vault
+'       1. Locate a file outside the vault that exists in  
+'          a subfolder in the vault.
+'       2. Click Open.
+'    c. Click Add file to vault root to add the selected file to the 
+'       root folder of the vault.
+'    d. Displays a message box warning you that the selected file is not 
+'       unique in the vault, but that the file will be added to the vault root.
+'    e. Click OK.
+' 2. Close the Add file to vault root dialog box.      
+' 3. Examine the vault root.
+'----------------------------------------------------------------------------
+
'Form1.vb
+ 
+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm
+Imports EPDM.Interop.EPDMResultCode
+ 
+ 
+Public Class Form1
+    Implements IEdmCallback6
+ 
+    Private vault1 As IEdmVault5 = Nothing
+ 
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+ 
+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing
+ 
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            ListBox.Items.Clear()
+ 
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+ 
+            'Set the initial directory in the Open dialog
+            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If
+ 
+            For Each FileName As String In OpenFileDialog.FileNames
+                ListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+ 
+    Public Sub AddFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddFiles.Click
+        Try
+ 
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+ 
+            If Not ListBox.Items.Count = 1 Then
+                MessageBox.Show("Please browse to a file outside the vault.")
+                Exit Sub
+            End If
+ 
+            'Add file to the root folder of the vault
+            Dim Folder1 As IEdmFolder5 = Nothing
+            Dim Folder As IEdmFolder8 = DirectCast(Folder1, IEdmFolder5)
+ 
+            Folder = vault2.RootFolder
+ 
+            Dim Files() As EdmAddFileInfo
+            ReDim Files(ListBox.Items.Count - 1)
+ 
+            Dim FileNames(0) As String
+            Dim Index As Integer = 0
+            Dim fileStr = ""
+            For Each FileName In ListBox.Items
+                fileStr = FileName.ToString()
+                FileNames(Index) = fileStr.Substring(fileStr.LastIndexOf("\"))
+                Index = Index + 1
+            Next
+ 
+            Dim Path As String
+            Dim addFileStatus As Integer
+            Index = 0
+            For Each FileName In ListBox.Items
+                Path = FileName
+                Files(Index).mbsPath = Path
+                Files(Index).mlEdmAddFlags = EdmAddFlag.EdmAdd_Simple
+                Files(Index).mlFileID = 0
+                Files(Index).mlSrcDocumentID = 0
+                Files(Index).mlSrcProjectID = 0
+                Files(Index).mbsNewName = ""
+                Folder.AddFile2(Me.Handle.ToInt32(), Files(Index).mbsPath, addFileStatus, "", Files(Index).mlEdmAddFlags)
+                Select Case addFileStatus
+                    Case EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY
+                        MessageBox.Show("WARNING: File is not unique in the vault, but the file will be added to the vault root.")
+                    Case Else
+                        MessageBox.Show("SUCCESS: File will be added to the vault root.")
+                End Select
+                Index = Index + 1
+            Next
+ 
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Function IEdmCallback6_MsgBox(ByVal lParentWnd As IntegerByVal lMsgID As IntegerByVal bsMsg As StringOptional ByVal eType As EdmMBoxType = 0&) As EdmMBoxResult Implements IEdmCallback6.MsgBox
+ 
+        MsgBox(bsMsg)
+        IEdmCallback6_MsgBox = EdmMBoxResult.EdmMbr_OK
+ 
+    End Function
+ 
+    Private Sub IEdmCallback6_Resolve(ByVal lParentWnd As IntegerByRef ppoItems() As EdmCmdDataImplements IEdmCallback6.Resolve
+ 
+    End Sub
+ 
+    Private Function IEdmCallback6_SetProgress(ByVal lBarIndex As IntegerByVal lPos As IntegerByVal bsMsg As StringAs Boolean Implements IEdmCallback6.SetProgress
+ 
+        IEdmCallback6_SetProgress = True
+ 
+    End Function
+ 
+    Private Sub IEdmCallback6_SetProgressRange(ByVal lBarIndex As IntegerByVal lMax As IntegerImplements IEdmCallback6.SetProgressRange
+ 
+    End Sub
+ 
+    Private Sub IEdmCallback6_SetStatusMessage(ByVal lBarIndex As IntegerByVal bsMessage As StringImplements IEdmCallback6.SetStatusMessage
+ 
+    End Sub
+ 
+End Class
+
'Form1.Designer.vb
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing
+ 
+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub
+ 
+#Region "Windows Form Designer generated code"
+ 
+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.AddFiles = New System.Windows.Forms.Button()
+        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        Me.VaultsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 69)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(259, 39)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse to a file outside the vault:"
+        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.ListBox.Size = New System.Drawing.Size(259, 43)
+        Me.ListBox.TabIndex = 4
+        '
+        'AddFiles
+        '
+        Me.AddFiles.Location = New System.Drawing.Point(16, 180)
+        Me.AddFiles.Name = "AddFiles"
+        Me.AddFiles.RightToLeft = System.Windows.Forms.RightToLeft.No
+        Me.AddFiles.Size = New System.Drawing.Size(121, 23)
+        Me.AddFiles.TabIndex = 5
+        Me.AddFiles.Text = "Add file to vault root"
+        Me.AddFiles.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.AddFiles.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog
+        '
+        Me.OpenFileDialog.Multiselect = True
+        Me.OpenFileDialog.Title = "Open"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 215)
+        Me.Controls.Add(Me.AddFiles)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add file to vault root"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+ 
+#End Region
+ 
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents AddFiles As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
+End Class
+ + + + diff --git a/documentation/api_extracted/Add_Files_to_Vault_Example_CSharp.htm b/documentation/api_extracted/Add_Files_to_Vault_Example_CSharp.htm new file mode 100644 index 0000000..287abc6 --- /dev/null +++ b/documentation/api_extracted/Add_Files_to_Vault_Example_CSharp.htm @@ -0,0 +1,465 @@ + + + +Add Files to Vault Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Files to Vault Example (C#)

+

This example shows how to add files to a vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type AddFiles_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+ +// 2. Add references to:
+//    a. EPDM.Interop.epdm.dll (click Browse and +browse to the top folder
+//       of your SOLIDWORKS PDM Professional +installation, select
+//       EPDM.Interop.epdm.dll).
+
//    b. +EPDM.interop.EPDMResultCode.dll (click +Browse, select
+//       EPDM.interop.EPDMResultCode.dll, +and click OK)
.

+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+
// 4. Ensure that +the vault workflow contains the Waiting for Approval state.
+// 5. Ensure that the vault workflow contains the Submit for Approval +transition
+//    to the Waiting for Approval state.
+// 6. Ensure that the logged-in PDM user has permission to move files.
+// 7. Modify password in +IEdmFile13::ChangeState3 to
+//    match the password of your logged-in PDM user.

+// 8. Click Debug > Start Debugging or press F5.

+//
+// Postconditions: 
+// 1. Displays the Add +files to vault dialog box.
+
+//    a. Select a vault view.
+
+//    b. Click Browse
+
+//       +1. Locate and click three files outside the vault.
+
+
+//       2. Click Open.
+
+
+//    c. Click +Add files.
+
+
+//       1. +Adds the selected files to the root +folder of the vault.
+
+
+//       +2. Checks in the files.
+
+
+//       +3. Creates path \temp\files in the root folder.
+
+
+//       +4. Moves one of the files to subfolder \temp\files.
+
+
+//       +5. Copies one of the files to subfolder \temp.
+
+
+//       +6. Changes the state of one of the files in the root folder to
+
+
+//          +Waiting for Approval.
+// 2. Click OK to close each message box.
+// 3. Examine the vault.

+
+// 4. Close the Add +files to vault dialog box.         
+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+


+namespace AddFiles_CSharp
+{
+    public partial class Form1 : FormIEdmCallback6
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Open dialog
+                OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Open dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog.ShowDialog();
+                //If the user didn't click Open, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                foreach (string FileName in OpenFileDialog.FileNames)
+                {
+                    ListBox.Items.Add(FileName);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+

+        public void AddFiles_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault16 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault16)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if (!(ListBox.Items.Count == 3))
+                {
+                    MessageBox.Show("Please click three files that are not in the vault.");
+                    return;
+                }

+                //MessageBox.Show("Vault type as defined in EdmVaultType: " + vault2.GetVaultType().ToString());

+                IEdmFile13 aFile = default(IEdmFile13);

+                // Add selected files to the root folder of the vault
+                IEdmFolder9 Folder = default(IEdmFolder9);
+                Folder = (IEdmFolder9)vault2.RootFolder;

+                EdmAddFileInfo[] Files = new EdmAddFileInfo[3];

+                string[] FileNames = new string[3];
+                int Index = 0;
+                string fileStr = "";
+                foreach (Object FileName_loopVariable in ListBox.Items)
+                {
+                    fileStr = FileName_loopVariable.ToString();
+                    FileNames[Index] = fileStr.Substring(fileStr.LastIndexOf("\\"));
+                    Index = Index + 1;
+                }

+                string Path = "";
+                Index = 0;
+                foreach (Object FileName_loopVariable in ListBox.Items)
+                {
+                    Path = FileName_loopVariable.ToString();
+                    Files[Index].mbsPath = Path;
+                    Files[Index].mlEdmAddFlags = (int)EdmAddFlag.EdmAdd_Simple;
+                    Files[Index].mlFileID = 0;
+                    Files[Index].mlSrcDocumentID = 0;
+                    Files[Index].mlSrcProjectID = 0;
+                    Files[Index].mbsNewName = "";
+                    Index = Index + 1;
+                }

+                Folder.AddFiles(this.Handle.ToInt32(), ref Files, this);

+                // Check in the files
+                IEdmFile13[] arrFiles = new IEdmFile13[3];
+                Index = 0;
+                fileStr = "";
+                IEdmFolder5 ppoRetParentFolder;
+                foreach (Object FileName_loopVariable in FileNames)
+                {
+                    fileStr = FileName_loopVariable.ToString();
+                    aFile = (IEdmFile13)vault2.GetFileFromPath(Folder.LocalPath + "\\" + fileStr, out ppoRetParentFolder);
+                    //MessageBox.Show("User can rename " + aFile.Name + " in this folder? " + Folder.HasRenameRights(this.Handle.ToInt32(), aFile.ID, fileStr, "new", +true).ToString());
+                    //MessageBox.Show(aFile.Name + " is in a private state? " + aFile.PrivateStateFile.ToString());

+

+                    int ID;
                   string fName;
                   string vaultName;
                   IEdmVault5 vaultObject;
+                    ID = aFile.ID;
+                    fName = aFile.Name;
+                    vaultObject = aFile.Vault;
+                    vaultName = vaultObject.Name;
                   MessageBox.Show("Database ID: " + ID.ToString() + "; Vault name: " + vaultName + "; Folder name: " + fName);

+

+
+                    aFile.UnlockFile(this.Handle.ToInt32(), "");
+                    arrFiles[Index] = aFile;
+                    Index = Index + 1;
+                }

+                // Create \temp\files subfolder under the root folder
+                Folder.CreateFolderPath("\\temp\\files"this.Handle.ToInt32());

+                // Move one of the files to the \temp\files subfolder
+                IEdmFolder5 dest = default(IEdmFolder5);
+                dest = vault2.GetFolderFromPath(Folder.LocalPath + "\\temp\\files");
+                aFile = arrFiles[0];
+                aFile.Move(this.Handle.ToInt32(), Folder.ID, dest.ID, 0);

+                // Copy one of the files to the \temp subfolder
+                aFile = arrFiles[1];
+                aFile.GetFileCopy(this.Handle.ToInt32(), "", Folder.LocalPath + "\\temp\\");

+                // Change the state of one of the files to Waiting for Approval
+                aFile = arrFiles[2];
+                aFile.ChangeState3("Waiting for Approval""Submit +for Approval", Folder.ID"The file is waiting for approval."this.Handle.ToInt32(), (int)EdmStateFlags.EdmState_Simple, +"password");

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+

 
        private EdmMBoxResult IEdmCallback6_MsgBox(int lParentWnd, int lMsgID, string bsMsg, EdmMBoxType eType = 0L)
        {
            MessageBox.Show(bsMsg);
            return EdmMBoxResult.EdmMbr_OK;
        }
        EdmMBoxResult IEdmCallback6.MsgBox(int lParentWnd, int lMsgID, string bsMsg, EdmMBoxType eType )
        {
            return IEdmCallback6_MsgBox(lParentWnd, lMsgID, bsMsg, eType);
        }
 
        private void IEdmCallback6_Resolve(int lParentWnd, ref EdmCmdData[] ppoItems)
        {
        }
        void IEdmCallback6.Resolve(int lParentWnd, ref EdmCmdData[] ppoItems)
        {
            IEdmCallback6_Resolve(lParentWnd, ref ppoItems);
        }
 
        private bool IEdmCallback6_SetProgress(int lBarIndex, int lPos, string bsMsg)
        {
            return true;
        }
        bool IEdmCallback6.SetProgress(int lBarIndex, int lPos, string bsMsg)
        {
            return IEdmCallback6_SetProgress(lBarIndex, lPos, bsMsg);
        }
 
        private void IEdmCallback6_SetProgressRange(int lBarIndex, int lMax)
        {
        }
        void IEdmCallback6.SetProgressRange(int lBarIndex, int lMax)
        {
            IEdmCallback6_SetProgressRange(lBarIndex, lMax);
        }
 
        private void IEdmCallback6_SetStatusMessage(int lBarIndex, string bsMessage)
        {
        }
        void IEdmCallback6.SetStatusMessage(int lBarIndex, string bsMessage)
        {
            IEdmCallback6_SetStatusMessage(lBarIndex, bsMessage);
        }
    }
}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace AddFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.AddFiles = new System.Windows.Forms.Button();
+            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //BrowseButton
+            //
+            this.BrowseButton.Location = new System.Drawing.Point(16, 85);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(98, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
+            //
+            //ListBox
+            //
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.ListBox.Size = new System.Drawing.Size(259, 43);
+            this.ListBox.TabIndex = 4;
+            //
+            //AddFiles
+            //
+            this.AddFiles.Location = new System.Drawing.Point(84, 178);
+            this.AddFiles.Name = "AddFiles";
+            this.AddFiles.Size = new System.Drawing.Size(98, 23);
+            this.AddFiles.TabIndex = 5;
+            this.AddFiles.Text = "Add files";
+            this.AddFiles.UseVisualStyleBackColor = true;
+            this.AddFiles.Click +=new System.EventHandler(AddFiles_Click);
+            //
+            //OpenFileDialog
+            //
+            this.OpenFileDialog.Multiselect = true;
+            this.OpenFileDialog.Title = "Open";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 215);
+            this.Controls.Add(this.AddFiles);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add files to vault";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button AddFiles;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
+    }
+}

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Files_to_Vault_Example_VBNET.htm b/documentation/api_extracted/Add_Files_to_Vault_Example_VBNET.htm new file mode 100644 index 0000000..8463f22 --- /dev/null +++ b/documentation/api_extracted/Add_Files_to_Vault_Example_VBNET.htm @@ -0,0 +1,433 @@ + + + +Add Files to Vault Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Files to Vault Example (VB.NET)

+

This example shows how to add files to a vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddFiles in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, replace the code in Form1.Designer.vb with this code.
+' 2. Add references to:
+'    a. EPDM.Interop.epdm.dll (right-click the project

+'       name in the Solution Explorer, click Add +> Reference
+'       Assemblies > Framework > +Browse and browse to the top folder of your  
+'       SOLIDWORKS PDM Professional installation, select 
+'       EPDM.Interop.epdm.dll, +and click OK).
+'    b.
+EPDM.interop.EPDMResultCode.dll (click +Browse, navigate to and select
+'       EPDM.interop.EPDMResultCode.dll, +and click OK).

+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that the vault workflow contains the Waiting for Approval +state.
+' 5. Ensure that the vault workflow contains the Submit for Approval +transition
+'    to the Waiting for Approval state.
+' 6. Ensure that the logged-in PDM user has permission to move files.
+
+' 7. Modify password in +IEdmFile13::ChangeState3 to
+'    match the password of your logged-in PDM user.

+' 8. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add files to vault dialog box.
+'    a. Select a vault view.
+'    b. Click Browse
+ +'       1. Locate and click three files outside +the vault.
+'       2. Click Open.
+'    c. Click Add files.
+'       1. Adds the selected files to the root +folder of the vault.
+'       2. Checks in the files.
+'       3. Creates path \temp\files in +the root folder.
+'       4. Moves one of the files to subfolder +\temp\files.
+'       5. Copies one of the files to subfolder +\temp.
+'       6. Changes the state of one of the files +in the root folder to
+'          Waiting for Approval.
+' 2. Click OK to close each message box.
+' 3. Examine the vault.

+ +' 4. Close the Add files to vault dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1
+    Implements IEdmCallback6

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            ListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Open dialog
+            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            For Each FileName As String In OpenFileDialog.FileNames
+                ListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+

+    Public Sub AddFiles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddFiles.Click
+        Try

+            Dim vault2 As IEdmVault16 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault16)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If Not ListBox.Items.Count = 3 Then
+                MessageBox.Show("Please click three files that are not in the vault.")
+                Exit Sub
+            End If

+            'MessageBox.Show("Vault type as defined in EdmVaultType: " + vault2.GetVaultType().ToString())

+            Dim aFile As IEdmFile13

+            ' Add selected files to the root folder of the vault
+            Dim Folder As IEdmFolder9
+            Folder = vault2.RootFolder

+            Dim Files() As EdmAddFileInfo
+            ReDim Files(ListBox.Items.Count - 1)

+            Dim FileNames(2) As String
+            Dim Index As Integer = 0
+            Dim fileStr = ""
+            For Each FileName In ListBox.Items
+                fileStr = FileName.ToString()
+                FileNames(Index) = fileStr.Substring(fileStr.LastIndexOf("\"))
+                Index = Index + 1
+            Next

+            Dim Path As String
+            Index = 0
+            For Each FileName In ListBox.Items
+                Path = FileName
+                Files(Index).mbsPath = Path
+                Files(Index).mlEdmAddFlags = EdmAddFlag.EdmAdd_Simple
+                Files(Index).mlFileID = 0
+                Files(Index).mlSrcDocumentID = 0
+                Files(Index).mlSrcProjectID = 0
+                Files(Index).mbsNewName = ""

+                Index = Index + 1
+            Next

+            Folder.AddFiles(Me.Handle.ToInt32(), Files, Me)


+            ' Check in the files
+            Dim arrFiles(3) As IEdmFile13
+            Index = 0
+            For Each FileName In FileNames
+                aFile = vault2.GetFileFromPath(Folder.LocalPath + "\" + FileName)
+                'MessageBox.Show("User can rename " + aFile.Name + " in this folder? " + Folder.HasRenameRights(Me.Handle.ToInt32(), aFile.ID, FileName, "new", +True).ToString())
+                'MessageBox.Show(aFile.Name + " is in a private state? " + aFile.PrivateStateFile.ToString())

+
		Dim ID As Integer
+		Dim fName As String
+		Dim vaultName As String
+		Dim vaultObject As IEdmVault5
+		ID = aFile.ID
+		fName = aFile.Name
+		vaultObject = aFile.Vault
+		vaultName = vaultObject.Name
+		MessageBox.Show("Database ID: " + ID.ToString() + "; Vault name: " + vaultName + "; File name: " + fName)
+

+
+                aFile.UnlockFile(Me.Handle.ToInt32(), "")
+                arrFiles(Index) = aFile
+

+

+                +Dim thumb As Object
+                thumb = aFile.GetThumbnail

+

+

+                Index = Index + 1
+            Next

+            ' Create \temp\files path in the root folder
+            Folder.CreateFolderPath("\temp\files"Me.Handle.ToInt32())

+            ' Move one of the files to the \temp\files subfolder
+            Dim dest As IEdmFolder5
+            dest = vault2.GetFolderFromPath(Folder.LocalPath + "\temp\files")
+            aFile = arrFiles(0)
+            aFile.Move(Me.Handle.ToInt32(), Folder.ID, dest.ID, 0)

+            ' Copy one of the files to the temp subfolder
+            aFile = arrFiles(1)
+            aFile.GetFileCopy(Me.Handle.ToInt32(), "", Folder.LocalPath + "\temp\")

+            ' Change the state of one of the files to Waiting for Approval
+            aFile = arrFiles(2)
+            aFile.ChangeState3("Waiting for Approval""Submit +for Approval", Folder.ID"The file is waiting for approval."Me.Handle.ToInt32(), EdmStateFlags.EdmState_Simple, "password")
+           
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+

+

+    Private Function IEdmCallback6_MsgBox(ByVal lParentWnd As IntegerByVal lMsgID As IntegerByVal bsMsg As StringOptional ByVal eType As EdmMBoxType = 0&) As EdmMBoxResult Implements IEdmCallback6.MsgBox

+        MsgBox(bsMsg)
+        IEdmCallback6_MsgBox = EdmMBoxResult.EdmMbr_OK

+    End Function

+    Private Sub IEdmCallback6_Resolve(ByVal lParentWnd As IntegerByRef ppoItems() As EdmCmdDataImplements IEdmCallback6.Resolve

+    End Sub

+    Private Function IEdmCallback6_SetProgress(ByVal lBarIndex As IntegerByVal lPos As IntegerByVal bsMsg As StringAs Boolean Implements IEdmCallback6.SetProgress

+        IEdmCallback6_SetProgress = True

+    End Function

+    Private Sub IEdmCallback6_SetProgressRange(ByVal lBarIndex As IntegerByVal lMax As IntegerImplements IEdmCallback6.SetProgressRange

+    End Sub

+    Private Sub IEdmCallback6_SetStatusMessage(ByVal lBarIndex As IntegerByVal bsMessage As StringImplements IEdmCallback6.SetStatusMessage

+    End Sub

+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.AddFiles = New System.Windows.Forms.Button()
+        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 85)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(98, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.ListBox.Size = New System.Drawing.Size(259, 43)
+        Me.ListBox.TabIndex = 4
+        '
+        'AddFiles
+        '
+        Me.AddFiles.Location = New System.Drawing.Point(84, 178)
+        Me.AddFiles.Name = "AddFiles"
+        Me.AddFiles.Size = New System.Drawing.Size(98, 23)
+        Me.AddFiles.TabIndex = 5
+        Me.AddFiles.Text = "Add files"
+        Me.AddFiles.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog
+        '
+        Me.OpenFileDialog.Multiselect = True
+        Me.OpenFileDialog.Title = "Open"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 215)
+        Me.Controls.Add(Me.AddFiles)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add files to vault"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents AddFiles As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
+End Class

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Folder_Example_CSharp.htm b/documentation/api_extracted/Add_Folder_Example_CSharp.htm new file mode 100644 index 0000000..82da545 --- /dev/null +++ b/documentation/api_extracted/Add_Folder_Example_CSharp.htm @@ -0,0 +1,395 @@ + + + +Add Folder Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Folder Example (C#)

+

This example shows how to create a folder and set its data +card and permissions.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type AddFolder_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+
// +4. Ensure that the vault has user, Engineer1, and group,
+//    Administrators.

+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Add +folder dialog box.
+
+//    a. Select a vault view.
+
+//    b. Click Browse +for parent folder
+
+//       1. Locate and click a +folder +in the vault.
+
+
+//       2. Click OK.
+
+
+//    c. Click +Add folder.
+
+
+//       +1.  Creates an IEdmFolderData5 object with:
+
+
+//           +* Folder user permissions for user, Engineer1.
+
+
+//           +* Folder group permissions for group, Administrators.
+
+
+//           +* File data card for .doc files.
+
+
+//       +2. Displays a message that folder, Temp, is added as a subfolder to
+
+
+//          +the folder clicked in Postconditions 1b1.
+
+
+//       +3. Click OK.
+
+// 2. Close the Add +folder dialog box. 
+
+
+// +3. Open File Explorer on a vault view and observe the new sub-folder,
+
+
+//    +Temp.
+
// +4. Open the Administration tool.
+//    a. Log in to the vault selected in step 1a.
+//    b. Expand Groups and double-click Administrators.  
+//    c. Click Folder Permissions.
+//    d. Inspect the folder permissions for Temp and click +OK.
+//    e. Expand Users and double-click Engineer1.
+//    f. Repeat steps 4c and 4d.
+// 5. Exit the Administration tool.
            

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace AddFolder_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Show the Browse +For Folder dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = FolderBrowserDialog1.ShowDialog();
+                //If the user didn't click OK, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                ListBox.Items.Add(FolderBrowserDialog1.SelectedPath);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void AddFolder_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmFolder5 parentFolder = default(IEdmFolder5);
+                parentFolder = vault2.GetFolderFromPath(ListBox.Items[0].ToString());

+                dynamic folderName = "Temp";
+                IEdmUserMgr5 usrMgr = default(IEdmUserMgr5);
+                usrMgr = (IEdmUserMgr5)parentFolder.Vault;

+                EdmFolderData data = default(EdmFolderData);
+                data = new EdmFolderData();

+                data.SetUserRights(usrMgr.GetUser("Engineer1").ID, (int)EdmRightFlags.EdmRight_Read | (int)EdmRightFlags.EdmRight_Lock);
+                data.SetGroupRights(usrMgr.GetUserGroup("Administrators").ID, (int)EdmRightFlags.EdmRight_All);

+                IEdmCard5 card = default(IEdmCard5);
+                card = parentFolder.Vault.RootFolder.GetCard("doc");
+                data.SetCardSource(card.ID"doc");

+                IEdmFolder5 folder = default(IEdmFolder5);
+                folder = parentFolder.AddFolder(this.Handle.ToInt32(), folderName, data);
+                MessageBox.Show("Created " + folderName + " successfully with ID, " + Conversion.Str(folder.ID) + ", in " + parentFolder.Name);


+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace AddFolder_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.AddFolder = new System.Windows.Forms.Button();
+            this.FolderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //BrowseButton
+            //
+            this.BrowseButton.Location = new System.Drawing.Point(16, 85);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(186, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse for parent folder...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
+            //
+            //ListBox
+            //
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.Size = new System.Drawing.Size(259, 43);
+            this.ListBox.TabIndex = 4;
+            //
+            //AddFolder
+            //
+            this.AddFolder.Location = new System.Drawing.Point(84, 178);
+            this.AddFolder.Name = "AddFolder";
+            this.AddFolder.Size = new System.Drawing.Size(98, 23);
+            this.AddFolder.TabIndex = 5;
+            this.AddFolder.Text = "Add folder";
+            this.AddFolder.UseVisualStyleBackColor = true;
+            this.AddFolder.Click +=new System.EventHandler(AddFolder_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 215);
+            this.Controls.Add(this.AddFolder);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add folder";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button AddFolder;
+        internal System.Windows.Forms.FolderBrowserDialog FolderBrowserDialog1;
+    }
+}

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Folder_Example_VBNET.htm b/documentation/api_extracted/Add_Folder_Example_VBNET.htm new file mode 100644 index 0000000..434f48c --- /dev/null +++ b/documentation/api_extracted/Add_Folder_Example_VBNET.htm @@ -0,0 +1,325 @@ + + + +Add Folder Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Folder Example (VB.NET)

+

This example shows how to create a folder and set its data +card and permissions.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddFolder in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that the vault has user, Engineer1, and group,
+'    Administrators.

+' 5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add folder dialog box.
+'    a. Select a vault view.
+'    b. Click Browse for +parent folder
+ +'       1. Locate and click a +folder +in the vault.
+'       2. Click OK.
+'    c. Click Add folder.
+'       1.  Creates an IEdmFolderData5 object +with:
+'           * Folder user +permissions for user, Engineer1.
+'           * Folder group +permissions for group, Administrators.
+'           * File data +card for .doc files.
+
+ +'       2. Displays a message that folder, Temp, +is added as a subfolder to
+'          the folder clicked in +Postconditions 1b1.

+'       3. Click OK.

+ +' 2. Close the Add folder dialog box. 
+' 3. Open File Explorer on a vault view and observe the new sub-folder,
+'    Temp.
+' 4. Open the Administration tool.
+'    a. Log in to the vault selected in step 1a.
+'    b. Expand Groups and double-click Administrators.  
+'    c. Click Folder Permissions.
+'    d. Inspect the folder permissions for Temp and click +OK.
+'    e. Expand Users and double-click Engineer1.
+'    f. Repeat steps 4c and 4d.
+' 5. Exit the Administration tool.   

+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            ListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Show the Browse +For Folder dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = FolderBrowserDialog1.ShowDialog()
+            'If the user didn't click OK, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            ListBox.Items.Add(FolderBrowserDialog1.SelectedPath)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub AddFolder_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddFolder.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim parentFolder As IEdmFolder5
+            parentFolder = vault2.GetFolderFromPath(ListBox.Items(0).ToString())

+            Dim folderName = "Temp"
+            Dim usrMgr As IEdmUserMgr5
+            usrMgr = parentFolder.vault

+            Dim data As EdmFolderData
+            data = New EdmFolderData

+            data.SetUserRights(usrMgr.GetUser("Engineer1").IDEdmRightFlags.EdmRight_Read Or EdmRightFlags.EdmRight_Lock)
+            data.SetGroupRights(usrMgr.GetUserGroup("Administrators").IDEdmRightFlags.EdmRight_All)

+            Dim card As IEdmCard5
+            card = parentFolder.Vault.RootFolder.GetCard("doc")
+            data.SetCardSource(card.ID, "doc;xls")

+            Dim folder As IEdmFolder5
+            folder = parentFolder.AddFolder(Me.Handle.ToInt32(), folderName, data)
+            MsgBox("Created " + folderName + " successfully with ID, " + Str(folder.ID) + ", in " + parentFolder.Name)


+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.AddFolder = New System.Windows.Forms.Button()
+        Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 85)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(186, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse for parent folder..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.Size = New System.Drawing.Size(259, 43)
+        Me.ListBox.TabIndex = 4
+        '
+        'AddFolder
+        '
+        Me.AddFolder.Location = New System.Drawing.Point(84, 178)
+        Me.AddFolder.Name = "AddFolder"
+        Me.AddFolder.Size = New System.Drawing.Size(98, 23)
+        Me.AddFolder.TabIndex = 5
+        Me.AddFolder.Text = "Add folder"
+        Me.AddFolder.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 215)
+        Me.Controls.Add(Me.AddFolder)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add folder"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents AddFolder As System.Windows.Forms.Button
+    Friend WithEvents FolderBrowserDialog1 As System.Windows.Forms.FolderBrowserDialog
+End Class

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Items_Example_CSharp.htm b/documentation/api_extracted/Add_Items_Example_CSharp.htm new file mode 100644 index 0000000..9b4ac6f --- /dev/null +++ b/documentation/api_extracted/Add_Items_Example_CSharp.htm @@ -0,0 +1,601 @@ + + + +Add Items Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Items Example (C#)

+

This example shows how to add items to a vault. The data +for the items is imported from an XML file, which is read by the .NET XmlReader.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Create an XML file for this example.
+//     a. Open a text editor like Notepad and copy and paste this code 
+//        into the editor.
+//     b. Save the file as Items.xml and remember where you save the file.
+//  2. Open the SOLIDWORKS PDM Professional Administration tool.
+//  3. Log into the vault where to add a new serial number.
+//     a. Right-click Serial Numbers and click New Serial Number.
+//        1. Type AddItems in Name.
+//        2. For Format string, click the right-arrow button and select Counter value > 00001.
+//        3. Click OK.
+//     b. Right-click Items and select Open.
+//        1. Click AddItems in Item Serial Number.
+//        2. Click OK.
+//  4. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > C# > Windows Forms Application.
+//     b. Type AddItems in Name.
+//     c. Click the Browse button and browse to the folder where to create the project.
+//     d. Click OK. 
+//     e. Click Show All Files in the Solution Explorer toolbar.
+//     f. Create a form similar to the form shown above and change:
+//        1. Top label to VaultsLabel.
+//        2. Combo box to VaultsComboBox.
+//        3. Second label to XmlLabel.
+//        4. Text box to XmlTextBox.
+//        5. Browse button to BrowseButton.
+//        6. Add items button to AddItemsButton.
+//        7. List box to ItemsListBox.
+//     g. Replace the code in Form1.cs with this code.
+//     h. Replace the code in Form1.Designer.cs with this code.
+//     i. Right-click the AddItemsCSharp project name in the Solution Explorer.
+//        1. Click Add > Class > Class.
+//        2. Type EdmVaultSingleton.cs in Name.
+//        3. Click Add.
+//        4. Replace the code in EdmVaultSingleton.cs with this code.
+//     j. Right-click the AddItems project name in the Solution Explorer.
+//        1. Click Add > Class > Class.
+//        2. Type NewItem.cs in Name.
+//        3. Click Add.
+//        4. Replace the code in NewItem.cs with this code.
+//  5. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Referenceclick 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of your 
+//     SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+//  6. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  7. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. Displays a dialog.
+//  2. Select a vault.
+//  3. Click the Browse button, locate and select Items.xml, and click Open.
+//  4. Click the Add items button.
+//     The new items are printed in the dialog's list.
+//  5. Close the dialog.
+//  6. Open the SOLIDWORKS PDM Professional Item Explorer tool. 
+//     (In Windows 7, click Start > All Programs > SOLIDWORKS PDM Professional > 
+//     Item Explorer.)
+//  7. Expand the vault where the new items were added. 
+//     The new items are listed below the name of the expanded vault. 
+//----------------------------------------------------------------------------
+
<?xml version="1.0" encoding="utf-8"?>
+<ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <anyType xsi:type="Item">
+    <Description>First Item</Description>
+    <ProjectName>Project 1</ProjectName>
+    <ProjectNumber>1</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 1</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Second Item</Description>
+    <ProjectName>Project 2</ProjectName>
+    <ProjectNumber>2</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 2</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Third Item</Description>
+    <ProjectName>Project 3</ProjectName>
+    <ProjectNumber>3</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 3</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Fourth Item</Description>
+    <ProjectName>Project 4</ProjectName>
+    <ProjectNumber>4</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 4</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Fifth Item</Description>
+    <ProjectName>Project 5</ProjectName>
+    <ProjectNumber>5</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 5</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Sixth Item</Description>
+    <ProjectName>Project 6</ProjectName>
+    <ProjectNumber>6</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 6</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Seventh Item</Description>
+    <ProjectName>Project 7</ProjectName>
+    <ProjectNumber>7</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 7</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Eighth Item</Description>
+    <ProjectName>Project 8</ProjectName>
+    <ProjectNumber>8</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 8</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Ninth Item</Description>
+    <ProjectName>Project 9</ProjectName>
+    <ProjectNumber>9</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 9</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Tenth Item</Description>
+    <ProjectName>Project 10</ProjectName>
+    <ProjectNumber>10</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 10</ItemName>
+  </anyType>
+</ArrayOfAnyType>
+ +
//Form1.cs 
+using System;
+using System.IO;
+using EPDM.Interop.epdm;
+using System.Collections;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+ 
+namespace AddItemsCSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+ 
+        void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                DialogResult dlgResult = XmlOpenFileDialog.ShowDialog();
+                if (dlgResult == DialogResult.Cancel)
+                {
+                    return;
+                }
+                XmlTextBox.Text = XmlOpenFileDialog.FileName;
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+        public void AddItemsButton_Click(System.Object sender, System.EventArgs e)
+        {
+ 
+            try
+            {
+                ItemsListBox.Items.Clear();
+                ArrayList NewItems = new ArrayList();
+ 
+                using (System.Xml.XmlReader XmlReader = System.Xml.XmlReader.Create(XmlTextBox.Text))
+                {
+ 
+                    XmlReader.Read();
+                    XmlReader.ReadToNextSibling("ArrayOfAnyType");
+                    XmlReader.ReadToDescendant("anyType");
+                    do
+                    {
+                        NewItem CurItem = new NewItem();
+                        XmlReader.ReadToDescendant("Description");
+                        CurItem.Description = XmlReader.ReadString();
+                        XmlReader.ReadToNextSibling("ProjectName");
+                        CurItem.ProjectName = XmlReader.ReadString();
+                        XmlReader.ReadToNextSibling("ProjectNumber");
+                        CurItem.ProjectNumber = XmlReader.ReadString();
+                        XmlReader.ReadToNextSibling("PartType");
+                        CurItem.PartType = XmlReader.ReadString();
+                        XmlReader.ReadToNextSibling("ItemName");
+                        CurItem.ItemName = XmlReader.ReadString();
+                        NewItems.Add(CurItem);
+                    } while (XmlReader.ReadToFollowing("anyType"));
+                }
+ 
+                //Obtain the only instance of the IEdmVault5 object
+                IEdmVault5 vault = EdmVaultSingleton.Instance;
+ 
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                //Create the batch interface
+                IEdmBatchItemGeneration2 BatchItemGen = default(IEdmBatchItemGeneration2);
+ 
+                IEdmVault7 vault1 = (IEdmVault7)vault;
+                BatchItemGen = (IEdmBatchItemGeneration2)vault1.CreateUtility(EdmUtility.EdmUtil_BatchItemGeneration);
+                EdmVarVal[] VarVals = new EdmVarVal[4];
+                VarVals[0].mlEdmVarValFlags = 0;
+                VarVals[0].moVarIDorName = "Description";
+                VarVals[1].mlEdmVarValFlags = 0;
+                VarVals[1].moVarIDorName = "Project Name";
+                VarVals[2].mlEdmVarValFlags = 0;
+                VarVals[2].moVarIDorName = "Project number";
+                VarVals[3].mlEdmVarValFlags = 0;
+                VarVals[3].moVarIDorName = "Part Type";
+                for (int i = 0; i <= NewItems.Count - 1; i++)
+                {
+                    VarVals[0].moValue = (NewItems[i] as NewItem).Description;
+                    VarVals[1].moValue = (NewItems[i] as NewItem).ProjectName;
+                    VarVals[2].moValue = (NewItems[i] as NewItem).ProjectNumber;
+                    VarVals[3].moValue = (NewItems[i] as NewItem).PartType;
+                    BatchItemGen.AddSelection2((EdmVault5)vault, VarVals, ((NewItems[i] as NewItem).ItemName),0, 0, 0,"", (int)EdmRefFlags.EdmRef_Dynamic);
+ 
+                }
+ 
+                //Build the item tree
+                bool CreateSuccess = false;
+                CreateSuccess = BatchItemGen.CreateTree(((int)(this.Handle.ToInt32())), (int)EdmItemGenerationFlags.Eigcf_Nothing);
+                if ((CreateSuccess == false))
+                    return;
+ 
+ 
+                //Generate the items
+                EdmGenItemInfo[] ReturnedItems = null;
+                bool bOpenExplorer = false;
+                BatchItemGen.GenerateItems(this.Handle.ToInt32(), out ReturnedItems, out bOpenExplorer, null);
+ 
+                //Display the new item information in the list box
+                string msg = "";
+                if (ReturnedItems.Length == 0)
+                {
+                    msg = "No items were added.";
+                    ItemsListBox.Items.Add("No items were added.");
+                }
+                else
+                {
+                    foreach (EdmGenItemInfo ItemInfo in ReturnedItems)
+                    {
+ 
+                        ItemsListBox.Items.Add("Item name: " + ItemInfo.mbsItemName);
+                        ItemsListBox.Items.Add("Alternate name: " + ItemInfo.mbsItemAlternativeName);
+ 
+                        IEdmVault11 vault2 = (IEdmVault11)vault;
+                        ItemsListBox.Items.Add("Status: " + vault2.GetErrorMessage(ItemInfo.mhResult));
+                        ItemsListBox.Items.Add("");
+                    }
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+        public void AddItems_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //Obtain the only instance of the IEdmVault object
+                IEdmVault8 vault = (IEdmVault8)EdmVaultSingleton.Instance;
+                EdmViewInfo[] Views = null;
+ 
+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}
+ +
//Form1.Designer.cs
+namespace AddItemsCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.XmlLabel = new System.Windows.Forms.Label();
+            this.XmlTextBox = new System.Windows.Forms.TextBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.AddItemsButton = new System.Windows.Forms.Button();
+            this.ItemsListBox = new System.Windows.Forms.ListBox();
+            this.XmlOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            // 
+            //XmlOpenFileDialog
+            //
+            this.XmlOpenFileDialog.Filter = "XML files|*.XML";
+            //
+ 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(22, 22);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(25, 38);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(174, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // XmlLabel
+            // 
+            this.XmlLabel.AutoSize = true;
+            this.XmlLabel.Location = new System.Drawing.Point(25, 91);
+            this.XmlLabel.Name = "XmlLabel";
+            this.XmlLabel.Size = new System.Drawing.Size(172, 13);
+            this.XmlLabel.TabIndex = 2;
+            this.XmlLabel.Text = "XML file from which to import items:";
+            // 
+            // XmlTextBox
+            // 
+            this.XmlTextBox.Location = new System.Drawing.Point(28, 107);
+            this.XmlTextBox.Name = "XmlTextBox";
+            this.XmlTextBox.Size = new System.Drawing.Size(171, 20);
+            this.XmlTextBox.TabIndex = 3;
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.Location = new System.Drawing.Point(216, 107);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
+            this.BrowseButton.TabIndex = 4;
+            this.BrowseButton.Text = "Browse...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // AddItemsButton
+            // 
+            this.AddItemsButton.Location = new System.Drawing.Point(28, 149);
+            this.AddItemsButton.Name = "AddItemsButton";
+            this.AddItemsButton.Size = new System.Drawing.Size(75, 23);
+            this.AddItemsButton.TabIndex = 5;
+            this.AddItemsButton.Text = "Add items";
+            this.AddItemsButton.UseVisualStyleBackColor = true;
+            this.AddItemsButton.Click += new System.EventHandler(this.AddItemsButton_Click);
+            // 
+            // ItemListBox
+            // 
+            this.ItemsListBox.FormattingEnabled = true;
+            this.ItemsListBox.Location = new System.Drawing.Point(28, 196);
+            this.ItemsListBox.Name = "ItemsListBox";
+            this.ItemsListBox.Size = new System.Drawing.Size(263, 95);
+            this.ItemsListBox.TabIndex = 6;
+ 
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(334, 311);
+            this.Controls.Add(this.ItemsListBox);
+            this.Controls.Add(this.AddItemsButton);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.XmlTextBox);
+            this.Controls.Add(this.XmlLabel);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add new items";
+            this.Load  += new System.EventHandler(this.AddItems_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Label XmlLabel;
+        private System.Windows.Forms.TextBox XmlTextBox;
+        private System.Windows.Forms.Button BrowseButton;
+        private System.Windows.Forms.Button AddItemsButton;
+        private System.Windows.Forms.ListBox ItemsListBox;
+        private System.Windows.Forms.OpenFileDialog XmlOpenFileDialog;
+    }
+}
+ +
//EdmVaultSingleton.cs
+using System;
+using System.Collections;
+using System.Diagnostics;
+using System.Threading;
+using EPDM.Interop.epdm;
+ 
+namespace AddItemsCSharp
+{
+    public class EdmVaultSingleton
+    {
+        private static EdmVault5 mInstance = null;
+        private static object mLockObj = new object();
+ 
+        private EdmVaultSingleton()
+        {
+ 
+        }
+ 
+        public static EdmVault5 Instance
+        {
+            get
+            {
+                try
+                {
+                    if (mInstance == null)
+                    {
+                        Monitor.Enter(mLockObj);
+                        if (mInstance == null)
+                        {
+                            mInstance = new EdmVault5();
+                        }
+                        Monitor.Exit(mLockObj);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Monitor.Exit(mLockObj);
+                }
+ 
+                return mInstance;
+ 
+            }
+        }
+ 
+    }
+}
+ +
//NewItem.cs
+using System;
+using System.Collections;
+using System.Diagnostics;
+ 
+namespace AddItemsCSharp
+{
+    public class NewItem
+    {
+        //Value of "Description" variable
+        private string mDescription;
+        //Value of "Project Name" variable
+        private string mProjectName;
+        //Value of "Project number" variable
+        private string mProjectNumber;
+        //Value of "Part Type" variable
+        private string mPartType;
+        //Item name
+        private string mItemName;
+ 
+        public NewItem()
+        {
+ 
+        }
+ 
+        public string Description
+        {
+            get { return mDescription; }
+            set { mDescription = value; }
+        }
+ 
+        public string ProjectName
+        {
+            get { return mProjectName; }
+            set { mProjectName = value; }
+        }
+ 
+        public string ProjectNumber
+        {
+            get { return mProjectNumber; }
+            set { mProjectNumber = value; }
+        }
+ 
+        public string PartType
+        {
+            get { return mPartType; }
+            set { mPartType = value; }
+        }
+ 
+        public string ItemName
+        {
+            get { return mItemName; }
+            set { mItemName = value; }
+        }
+ 
+    }
+}
+ + + + + diff --git a/documentation/api_extracted/Add_Items_Example_VBNET.htm b/documentation/api_extracted/Add_Items_Example_VBNET.htm new file mode 100644 index 0000000..bc7cd15 --- /dev/null +++ b/documentation/api_extracted/Add_Items_Example_VBNET.htm @@ -0,0 +1,562 @@ + + + +Add Items Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Items Example (VB.NET)

+

This example shows how to add items to a vault. The data +for the items is imported from an XML file, which is read by the .NET XmlReader.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+
'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Create an XML file for this example.
+'     a. Open a text editor like Notepad and copy and paste this code 
+'        into the editor.
+'     b. Save the file as Items.xml and remember where you save the file.
+'  2. Open the SOLIDWORKS PDM Professional Administration tool.
+'  3. Log into the vault where to add a new serial number.
+'     a. Right-click Serial Numbers and click New Serial Number.
+'        1. Type AddItems in Name.
+'        2. For Format string, click the right-arrow button and select Counter value > 00001.
+'        3. Click OK.
+'     b. Right-click Items and select Open.
+'        1. Click AddItems in Item Serial Number.
+'        2. Click OK.
+'  4. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type AddItems in Name.
+'     c. Click the Browse button and browse to the folder where to create the project.
+'     d. Click OK. 
+'     e. Click Show All Files in the Solution Explorer toolbar.
+'     f. Create a form similar to the form shown above and change:
+'        1. Top label to VaultsLabel.
+'        2. Combo box to VaultsComboBox.
+'        3. Second label to XmlLabel.
+'        4. Text box to XmlTextBox.
+'        5. Browse button to BrowseButton.
+'        6. Add items button to AddItemsButton.
+'        7. List box to ItemsListBox.
+'     g. Replace the code in Form1.vb with this code.
+'     h. Replace the code in Form1.Designer.vb with this code.
+'     i. Right-click the AddItems project name in the Solution Explorer.
+'        1. Click Add > Class > Class.
+'        2. Type EdmVaultSingleton.vb in Name.
+'        3. Click Add.
+'        4. Replace the code in EdmVaultSingleton.vb with this code.
+'     j. Right-click the AddItems project name in the Solution Explorer.
+'        1. Click Add > Class > Class.
+'        2. Type NewItem.vb in Name.
+'        3. Click Add.
+'        4. Replace the code in NewItem.vb with this code.
+'  5. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of your 
+'     SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  6. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  7. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays a dialog.
+'  2. Select a vault.
+'  3. Click the Browse button, locate and click Items.xml, and click Open.
+'  4. Click the Add items button.
+'     The new items are printed in the dialog's list.
+'  5. Close the dialog.
+'  6. Open the SOLIDWORKS PDM Professional Item Explorer tool. 
+'     (In Windows 7, click Start > All Programs > SOLIDWORKS PDM Professional > 
+'     Item Explorer.)
+'  7. Expand the vault where the new items were added.   
+'     The new items are listed below the name of the expanded vault. 
+'----------------------------------------------------------------------------
+
<?xml version="1.0" encoding="utf-8"?>
+<ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <anyType xsi:type="Item">
+    <Description>First Item</Description>
+    <ProjectName>Project 1</ProjectName>
+    <ProjectNumber>1</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 1</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Second Item</Description>
+    <ProjectName>Project 2</ProjectName>
+    <ProjectNumber>2</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 2</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Third Item</Description>
+    <ProjectName>Project 3</ProjectName>
+    <ProjectNumber>3</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 3</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Fourth Item</Description>
+    <ProjectName>Project 4</ProjectName>
+    <ProjectNumber>4</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 4</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Fifth Item</Description>
+    <ProjectName>Project 5</ProjectName>
+    <ProjectNumber>5</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 5</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Sixth Item</Description>
+    <ProjectName>Project 6</ProjectName>
+    <ProjectNumber>6</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 6</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Seventh Item</Description>
+    <ProjectName>Project 7</ProjectName>
+    <ProjectNumber>7</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 7</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Eighth Item</Description>
+    <ProjectName>Project 8</ProjectName>
+    <ProjectNumber>8</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 8</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Ninth Item</Description>
+    <ProjectName>Project 9</ProjectName>
+    <ProjectNumber>9</ProjectNumber>
+    <PartType>Purchased</PartType>
+    <ItemName>Item 9</ItemName>
+  </anyType>
+  <anyType xsi:type="Item">
+    <Description>Tenth Item</Description>
+    <ProjectName>Project 10</ProjectName>
+    <ProjectNumber>10</ProjectNumber>
+    <PartType>Built</PartType>
+    <ItemName>Item 10</ItemName>
+  </anyType>
+</ArrayOfAnyType>
+ + +
'Form1.vb 
+
Imports System.IO
+Imports EPDM.Interop.epdm
+Imports System.Xml
+Imports System.Windows.Forms
+ 
+Public Class AddItems
+ 
+  Private Sub BrowseButton_Click( _
+    ByVal sender As System.Object, _
+    ByVal e As System.EventArgs) _
+    Handles BrowseButton.Click
+ 
+    Try
+      Dim dlgResult As DialogResult = XmlOpenFileDialog.ShowDialog()
+      If dlgResult = Windows.Forms.DialogResult.Cancel Then
+        Exit Sub
+      End If
+      XmlTextBox.Text = XmlOpenFileDialog.FileName
+    Catch ex As Runtime.InteropServices.COMException
+      MessageBox.Show("HRESULT = 0x" + _
+        ex.ErrorCode.ToString("X") + vbCrLf + _
+        ex.Message)
+    Catch ex As Exception
+      MessageBox.Show(ex.Message)
+    End Try
+  End Sub
+ 
+  Private Sub AddItemsButton_Click( _
+    ByVal sender As System.Object, _
+    ByVal e As System.EventArgs) _
+    Handles AddItemsButton.Click
+ 
+    Try
+      ItemsListBox.Items.Clear()
+      Dim NewItems As ArrayList = New ArrayList
+ 
+      Using XmlReader As Xml.XmlReader = _
+        Xml.XmlReader.Create(XmlTextBox.Text)
+ 
+        XmlReader.Read()
+        XmlReader.ReadToNextSibling("ArrayOfAnyType")
+        XmlReader.ReadToDescendant("anyType")
+        Do
+          Dim CurItem As New NewItem
+          XmlReader.ReadToDescendant("Description")
+          CurItem.Description = XmlReader.ReadString()
+          XmlReader.ReadToNextSibling("ProjectName")
+          CurItem.ProjectName = XmlReader.ReadString()
+          XmlReader.ReadToNextSibling("ProjectNumber")
+          CurItem.ProjectNumber = XmlReader.ReadString()
+          XmlReader.ReadToNextSibling("PartType")
+          CurItem.PartType = XmlReader.ReadString()
+          XmlReader.ReadToNextSibling("ItemName")
+          CurItem.ItemName = XmlReader.ReadString()
+          NewItems.Add(CurItem)
+        Loop While XmlReader.ReadToFollowing("anyType")
+      End Using
+ 
+      'Obtain the only instance of the IEdmVault5 object
+      Dim vault As IEdmVault5 = EdmVaultSingleton.Instance
+ 
+      If Not vault.IsLoggedIn Then
+        'Log into selected vault as the current user
+        vault.LoginAuto(VaultsComboBox.Text, _
+          Me.Handle.ToInt32())
+      End If
+ 
+      'Create the batch interface
+      Dim BatchItemGen As IEdmBatchItemGeneration2
+      BatchItemGen = vault.CreateUtility( _
+        EdmUtility.EdmUtil_BatchItemGeneration)
+      Dim VarVals(3) As EdmVarVal
+      VarVals(0).mlEdmVarValFlags = 0
+      VarVals(0).moVarIDorName = "Description"
+      VarVals(1).mlEdmVarValFlags = 0
+      VarVals(1).moVarIDorName = "Project Name"
+      VarVals(2).mlEdmVarValFlags = 0
+      VarVals(2).moVarIDorName = "Project number"
+      VarVals(3).mlEdmVarValFlags = 0
+      VarVals(3).moVarIDorName = "Part Type"
+      For i As Integer = 0 To NewItems.Count - 1
+        VarVals(0).moValue = NewItems(i).Description
+        VarVals(1).moValue = NewItems(i).ProjectName
+        VarVals(2).moValue = NewItems(i).ProjectNumber
+        VarVals(3).moValue = NewItems(i).PartType
+        BatchItemGen.AddSelection2(vault, VarVals, _
+          NewItems(i).ItemName)
+      Next i
+ 
+      'Build the item tree
+      Dim CreateSuccess As Boolean
+      CreateSuccess = BatchItemGen.CreateTree( _
+        Me.Handle.ToInt32, _
+        EdmItemGenerationFlags.Eigcf_Nothing)
+            If (CreateSuccess = FalseThen Exit Sub
+ 
+ 
+      'Generate the items
+      Dim ReturnedItems() As EdmGenItemInfo = Nothing
+      Dim bOpenExplorer As Boolean = False
+      BatchItemGen.GenerateItems(Me.Handle.ToInt32, _
+        ReturnedItems, bOpenExplorer, Nothing)
+ 
+      'Display the new item information in the list box
+      Dim msg As String = ""
+      If ReturnedItems.Length = 0 Then
+        msg = "No items were added."
+        ItemsListBox.Items.Add("No items were added.")
+      Else
+        For Each ItemInfo As EdmGenItemInfo _
+          In ReturnedItems
+ 
+          ItemsListBox.Items.Add("Item name: " + _
+            ItemInfo.mbsItemName)
+          ItemsListBox.Items.Add("Alternate name: " + _
+            ItemInfo.mbsItemAlternativeName)
+          ItemsListBox.Items.Add("Status: " + _
+            vault.GetErrorMessage(ItemInfo.mhResult))
+          ItemsListBox.Items.Add("")
+        Next ItemInfo
+      End If
+    Catch ex As Runtime.InteropServices.COMException
+      MessageBox.Show("HRESULT = 0x" + _
+        ex.ErrorCode.ToString("X") + vbCrLf + _
+        ex.Message)
+    Catch ex As Exception
+      MessageBox.Show(ex.Message)
+    End Try
+  End Sub
+ 
+  Private Sub AddItems_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+    Try
+      'Obtain the only instance of the IEdmVault object
+      Dim vault As IEdmVault8 = EdmVaultSingleton.Instance
+      Dim Views() As EdmViewInfo = Nothing
+ 
+      vault.GetVaultViews(Views, False)
+      VaultsComboBox.Items.Clear()
+      For Each View As EdmViewInfo In Views
+        VaultsComboBox.Items.Add(View.mbsVaultName)
+      Next
+      If VaultsComboBox.Items.Count > 0 Then
+        VaultsComboBox.Text = VaultsComboBox.Items(0)
+      End If
+    Catch ex As Runtime.InteropServices.COMException
+      MessageBox.Show("HRESULT = 0x" + _
+        ex.ErrorCode.ToString("X") + vbCrLf + _
+        ex.Message)
+    Catch ex As Exception
+      MessageBox.Show(ex.Message)
+    End Try
+  End Sub
+End Class
+ +
'Form1.Designer.vb
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class AddItems
+   Inherits System.Windows.Forms.Form
+ 
+   'Form overrides dispose to clean up the component list.
+   <System.Diagnostics.DebuggerNonUserCode()> _
+   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+      Try
+         If disposing AndAlso components IsNot Nothing Then
+            components.Dispose()
+         End If
+      Finally
+         MyBase.Dispose(disposing)
+      End Try
+   End Sub
+ 
+   'Required by the Windows Form Designer
+   Private components As System.ComponentModel.IContainer
+ 
+   'NOTE: The following procedure is required by the Windows Form Designer
+   'It can be modified using the Windows Form Designer.  
+   'Do not modify it using the code editor.
+   <System.Diagnostics.DebuggerStepThrough()> _
+   Private Sub InitializeComponent()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.XmlTextBox = New System.Windows.Forms.TextBox()
+        Me.XmlLabel = New System.Windows.Forms.Label()
+        Me.XmlOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.AddItemsButton = New System.Windows.Forms.Button()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.ItemsListBox = New System.Windows.Forms.ListBox()
+        Me.SuspendLayout()
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(222, 94)
+        Me.BrowseButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(59, 26)
+        Me.BrowseButton.TabIndex = 0
+        Me.BrowseButton.Text = "Browse..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'XmlTextBox
+        '
+        Me.XmlTextBox.Location = New System.Drawing.Point(24, 94)
+        Me.XmlTextBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.XmlTextBox.Name = "XmlTextBox"
+        Me.XmlTextBox.Size = New System.Drawing.Size(182, 20)
+        Me.XmlTextBox.TabIndex = 1
+        '
+        'XmlLabel
+        '
+        Me.XmlLabel.AutoSize = True
+        Me.XmlLabel.Location = New System.Drawing.Point(22, 78)
+        Me.XmlLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.XmlLabel.Name = "XmlLabel"
+        Me.XmlLabel.Size = New System.Drawing.Size(172, 13)
+        Me.XmlLabel.TabIndex = 2
+        Me.XmlLabel.Text = "XML file from which to import items:"
+        '
+        'XmlOpenFileDialog
+        '
+        Me.XmlOpenFileDialog.Filter = "XML files|*.xml"
+        '
+        'AddItemsButton
+        '
+        Me.AddItemsButton.Location = New System.Drawing.Point(29, 139)
+        Me.AddItemsButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.AddItemsButton.Name = "AddItemsButton"
+        Me.AddItemsButton.Size = New System.Drawing.Size(87, 24)
+        Me.AddItemsButton.TabIndex = 3
+        Me.AddItemsButton.Text = "Add items"
+        Me.AddItemsButton.UseVisualStyleBackColor = True
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(22, 40)
+        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(184, 21)
+        Me.VaultsComboBox.TabIndex = 12
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(22, 24)
+        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 13
+        Me.VaultsLabel.Text = "Select vault  view:"
+        '
+        'ItemsListBox
+        '
+        Me.ItemsListBox.FormattingEnabled = True
+        Me.ItemsListBox.Location = New System.Drawing.Point(29, 175)
+        Me.ItemsListBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.ItemsListBox.Name = "ItemsListBox"
+        Me.ItemsListBox.Size = New System.Drawing.Size(253, 121)
+        Me.ItemsListBox.TabIndex = 14
+        '
+        'AddItems
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(299, 320)
+        Me.Controls.Add(Me.ItemsListBox)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Controls.Add(Me.AddItemsButton)
+        Me.Controls.Add(Me.XmlLabel)
+        Me.Controls.Add(Me.XmlTextBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Margin = New System.Windows.Forms.Padding(2)
+        Me.Name = "AddItems"
+        Me.Text = "Add New Items"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+   Friend WithEvents BrowseButton As System.Windows.Forms.Button
+   Friend WithEvents XmlTextBox As System.Windows.Forms.TextBox
+   Friend WithEvents XmlLabel As System.Windows.Forms.Label
+   Friend WithEvents XmlOpenFileDialog As System.Windows.Forms.OpenFileDialog
+   Friend WithEvents AddItemsButton As System.Windows.Forms.Button
+   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+   Friend WithEvents ItemsListBox As System.Windows.Forms.ListBox
+ 
+End Class
+ +
'EdmVaultSingleton.vb
+
 
+Imports System.Threading 
+Imports EPDM.Interop.epdm
+ 
+Public NotInheritable Class EdmVaultSingleton
+  Private Shared mInstance As EdmVault5 = Nothing
+  Private Shared mLockObj As New Object()
+ 
+  Private Sub New()
+ 
+  End Sub
+ 
+  Public Shared ReadOnly Property Instance() As EdmVault5
+    Get
+      Try
+        If mInstance Is Nothing Then
+          Monitor.Enter(mLockObj)
+          If mInstance Is Nothing Then
+            mInstance = New EdmVault5()
+          End If
+          Monitor.Exit(mLockObj)
+        End If
+      Catch ex As Exception
+        Monitor.Exit(mLockObj)
+      End Try
+ 
+      Return mInstance
+ 
+    End Get
+  End Property
+ 
+End Class
+ +
'NewItem.vb
+
Public Class NewItem
+    'Value of "Description" variable
+    Private mDescription As String
+    'Value of "Project Name" variable
+    Private mProjectName As String
+    'Value of "Project number" variable
+    Private mProjectNumber As String
+    'Value of "Part Type" variable
+    Private mPartType As String
+    'Item name
+    Private mItemName As String
+ 
+    Public Sub New()
+ 
+    End Sub
+ 
+    Public Property Description() As String
+        Get
+            Description = mDescription
+        End Get
+        Set(ByVal Value As String)
+            mDescription = Value
+        End Set
+    End Property
+ 
+    Public Property ProjectName() As String
+        Get
+            ProjectName = mProjectName
+        End Get
+        Set(ByVal Value As String)
+            mProjectName = Value
+        End Set
+    End Property
+ 
+    Public Property ProjectNumber() As String
+        Get
+            ProjectNumber = mProjectNumber
+        End Get
+        Set(ByVal Value As String)
+            mProjectNumber = Value
+        End Set
+    End Property
+ 
+    Public Property PartType() As String
+        Get
+            PartType = mPartType
+        End Get
+        Set(ByVal Value As String)
+            mPartType = Value
+        End Set
+    End Property
+ 
+    Public Property ItemName() As String
+        Get
+            ItemName = mItemName
+        End Get
+        Set(ByVal Value As String)
+            mItemName = Value
+        End Set
+    End Property
+ 
+End Class
+ + + + + diff --git a/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_CSharp.htm b/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_CSharp.htm new file mode 100644 index 0000000..b329c96 --- /dev/null +++ b/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_CSharp.htm @@ -0,0 +1,443 @@ + + + +Add Row to Bill of Materials Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Row to Bill of Materials Example (C#)

+

This example shows how to add a file to the named Bill of Materials (BOM) of +a file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+ +

+ +

+ + +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type EdmBOM_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+
+
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 5. Ensure that the vault contains the BOM layout.
+
//    To inspect the +existing layouts:
+//    a. Open the SOLIDWORKS PDM Professional +Administration tool.
+//    b. Log into vault_name.
+//    c. Expand vault_name +> Bills of Materials.
+
//    d. Verify that layout, BOM, exists.
+
+// +6. Ensure that an assembly and its parts exist in a folder of
+//    the vault.
+// 7. Check in a text file named "temp" in the assembly directory.
+// 8. Modify the path to "temp" in the code.
+// 9. Ensure that a named Bill of Materials exists for the assembly.
+//    a. Open File Explorer on a vault_name view.
+//    b. Click the assembly.
+//    c. Click the Bill of Materials +tab.
+//    d. Click BOM.
+//    e. If a named Bill of Materials does not exist in the BOM +list:
+//       1. Click Save > Save As in +the tab toolbar.
+//       2. In the Save As dialog, click +Save

+
+//10. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:
+// 1. The Bill of Materials dialog box displays.
+//    a. Select a vault_name view.
+//    b. Click Select file.
+//    c. In the Select File dialog:
+//       1. Click the assembly specified in +Preconditions step 6.
+//       2. Click Open.
+//
    d. Click Get BOM.
+//       Displays message boxes containing:
+//       * Version information for the named BOM.
+//       * Row and column information about a BOM +view in the BOM layout
+//         for the selected assembly.
+//    e. Click OK in each message box.
+// 2. Inserts a row for "temp" after the first row in the BOM.
+// 3. Close the Bill of Materials dialog box.

+// 4. Verify the new row in the named BOM of the assembly in vault_name +view.
+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+using System.Xml.Serialization;
+using System.Windows.Forms;
+using System.ComponentModel;
+using EPDM.Interop.epdm;
+

+namespace EdmBOM_CSharp
+{
+    public partial class Form1 : Form
+    {
+        private IEdmVault5 vault1 = null;
+        IEdmFile7 aFile;
+        IEdmBom bom;
+        IEdmBomMgr bomMgr;
+        IEdmBomView2 bomView;

+        public Form1()
+        {
+            InitializeComponent();
+        }
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                File1List.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;

+                //Show the Select File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    IEdmFolder5 ppoRetParentFolder;
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void GetBOM_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault9)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if (aFile != null)
+                {
+                    
+                    bomMgr = (IEdmBomMgr)vault2.CreateUtility(EdmUtility.EdmUtil_BomMgr);
+                    EdmBomInfo[] derivedBOMs;
+                    aFile.GetDerivedBOMs(out derivedBOMs);
+                    int i = 0;
+                    int arrSize = derivedBOMs.Length;
+                    string str = "";
+                    int id;
+                    while (i < arrSize)
+                    {
+                        id = derivedBOMs[i].mlBomID;
+                        bom = (IEdmBom)vault2.GetObject(EdmObjectType.EdmObject_BOM, id);
+                        str = "Derived BOM: " + derivedBOMs[i].mbsBomName + " " + bom.CheckOutUserID + " " + bom.CurrentState.Name + " " + bom.CurrentVersion + " " + bom.FileID + " " + bom.IsCheckedOut;
+                        
+                        MessageBox.Show(str);
+                        i = i + 1;
+                    }

+                    bomView = (IEdmBomView2)bom.GetView(0);

+                    // Display BOM view row and column information
+                    object[] ppoRows = null;
+                    IEdmBomCell ppoRow = default(IEdmBomCell);
+                    bomView.GetRows(out ppoRows);
+                    i = 0;
+                    arrSize = ppoRows.Length;
+                    str = "";
+                    while (i < arrSize)
+                    {
+                        ppoRow = (IEdmBomCell)ppoRows[i];
+                        str = "BOM Row " + i + ": " + "\n" + "Item ID: " + ppoRow.GetItemID() + "\n" + "Path name: " + ppoRow.GetPathName() + "\n" + "Tree level: " + ppoRow.GetTreeLevel() + "\n" + " Is locked? " + ppoRow.IsLocked();
+                        MessageBox.Show(str);
+                        i = i + 1;
+                    }

+                    EdmBomColumn[] ppoColumns = null;
+                    bomView.GetColumns(out ppoColumns);
+                    i = 0;
+                    arrSize = ppoColumns.Length;
+                    str = "";
+                    while (i < arrSize)
+                    {
+                        str = "BOM Column " + i + ": " + "\n" + "Header: " + ppoColumns[i].mbsCaption + "\n" + "Column type as defined in EdmBomColumnType: " + ppoColumns[i].meType + "\n" + "ID: " + ppoColumns[i].mlColumnID + "\n" + "Flags: " + ppoColumns[i].mlFlags + "\n" + "Variable ID: " + ppoColumns[i].mlVariableID + "\n" + "Variable type as defined in EdmVariableType: " + ppoColumns[i].mlVariableType + "\n" + "Column width: " + ppoColumns[i].mlWidth;
+                        MessageBox.Show(str);
+                        i = i + 1;
+                    }

+                    EdmBomCell ppoNewRow = default(EdmBomCell);
+                    string errMsg = "";
+                    //object poValue = null;
+                    //object poComputedValue = null;
+                    //string pbsConfiguration = "";
+                    //bool pbReadOnly = false;
+                    int plFocusNode = 0;
+                    bomView.InsertRow((EdmBomCell)ppoRows[0], EdmBomInsertRowOption.EdmBomInsertRowOption_BelowRow, out ppoNewRow);
+                    ppoNewRow.SetVar(ppoColumns[0].mlVariableID, ppoColumns[0].meType"vault_name\\temp"""EdmBomSetVarOption.EdmBomSetVarOption_Both, out errMsg);
+                    //ppoNewRow.GetVar(ppoColumns[0].mlVariableID, ppoColumns[0].meType, poValue, poComputedValue, pbsConfiguration, pbReadOnly)
+                    //MessageBox.Show(poValue.ToString)
+                    //MessageBox.Show(poComputedValue.ToString)
+                    //MessageBox.Show(pbsConfiguration)
+                    //MessageBox.Show(pbReadOnly.ToString)

+                    bomView.Commit(""out errMsg, out plFocusNode);

+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

namespace EdmBOM_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+ +        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.GetBOM = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFiles
+            //
+            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select file...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click += new System.EventHandler(SelectFiles_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //GetBOM
+            //
+            this.GetBOM.Location = new System.Drawing.Point(40, 183);
+            this.GetBOM.Name = "GetBOM";
+            this.GetBOM.Size = new System.Drawing.Size(157, 23);
+            this.GetBOM.TabIndex = 6;
+            this.GetBOM.Text = "Get BOM";
+            this.GetBOM.UseVisualStyleBackColor = true;
+            this.GetBOM.Click += new System.EventHandler(this.GetBOM_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.GetBOM);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Bill of Materials";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button GetBOM;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+ +        #endregion
+    }
+}

+

Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_VBNET.htm b/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_VBNET.htm new file mode 100644 index 0000000..4e7e674 --- /dev/null +++ b/documentation/api_extracted/Add_Row_to_Bill_of_Materials_Example_VBNET.htm @@ -0,0 +1,383 @@ + + + +Add Row to Bill of Materials Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Row to Bill of Materials Example (VB.NET)

+

This example shows how to add a row to the named Bill of Materials (BOM) of a file in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+ +

+

+

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type EdmBOM in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+
' 4. Ensure that the vault contains the BOM layout.
+'
    To inspect the +existing layouts:
+'    a. Open the SOLIDWORKS PDM Professional +Administration tool.
+'    b. Log into vault_name.
+'    c. Expand vault_name +> Bills of Materials.
+
'    d. Verify that layout, BOM, exists.
+' 5. Ensure that an assembly and its parts exist in a folder of
+'    the vault.
+' 6. Check in a text file named "temp" in the assembly directory.
+' 7. Modify the path to "temp" in the code.
+' 8. Ensure that a named Bill of Materials exists for the assembly.
+'    a. Open File Explorer on a vault_name view.
+'    b. Click the assembly.
+'    c. Click the Bill of Materials +tab.
+'    d. Click BOM.
+'    e. If a named Bill of Materials does not exist in the BOM +list:
+'       1. Click Save > Save As in +the tab toolbar.
+'       2. In the Save As dialog, click +Save

+' 9. Click Debug > Start Debugging or press F5.
+'
+' Postconditions:
+' 1. The Bill of Materials dialog box displays.
+'    a. Select a vault_name view.
+'    b. Click Select file.
+'    c. In the Select File dialog:
+'       1. Click the assembly specified in +Preconditions step 5.
+'       2. Click Open.
+'    d. Click Get BOM.
+'       Displays message boxes containing:
+'       * Version information for the named BOM.
+'       * Row and column information about a BOM +view in the BOM layout
+'         for the selected assembly.
+'    e. Click OK in each message box.
+' 2. Inserts a row for "temp" after the first row in the BOM.
+' 3. Close the Bill of Materials dialog box.
+'
4. Verify the new row in the +named BOM of the assembly in vault_name view.
+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim aFile As IEdmFile7
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim bom As IEdmBom
+    Dim bomCell As IEdmBomCell
+    Dim bomMgr As IEdmBomMgr
+    Dim bomView As IEdmBomView2
+    Dim retVal As Boolean
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try
+            File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName)
+                    aPos = aFile.GetFirstFolderPosition
+                    aFolder = aFile.GetNextFolder(aPos)
+                Next
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub GetBOM_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetBOM.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault9)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            bomMgr = vault2.CreateUtility(EdmUtility.EdmUtil_BomMgr)
+            Dim ppoRetLayouts() As EdmBomLayout
+            bomMgr.GetBomLayouts(ppoRetLayouts)

+            Dim derivedBOMs() As EdmBomInfo
+            aFile.GetDerivedBOMs(derivedBOMs)

+            Dim arrSize As Integer
+            Dim i As Integer = 0
+            Dim id As Integer
+            Dim str As String = ""
+            arrSize = derivedBOMs.Length

+            While i < arrSize
+                id = derivedBOMs(i).mlBomID
+                bom = vault2.GetObject(EdmObjectType.EdmObject_BOM, id)
+                str = "Derived BOM: " + derivedBOMs(i).mbsBomName & " " & bom.CheckOutUserID & " " & bom.CurrentState.Name & " " & bom.CurrentVersion & " " & bom.FileID & " " & bom.IsCheckedOut
+                MessageBox.Show(str)
+                i = i + 1
+            End While

+            bomView = bom.GetView(0)

+            Dim ppoRows() As Object
+            Dim ppoRow As IEdmBomCell
+            bomView.GetRows(ppoRows)
+            i = 0
+            arrSize = ppoRows.Length
+            str = ""
+            While i < arrSize
+                ppoRow = ppoRows(i)
+                str = "Row " & i & ": " & ppoRow.GetItemID & " " & ppoRow.GetPathName & " " & ppoRow.GetTreeLevel & " " & ppoRow.IsLocked
+                MessageBox.Show(str)
+                i = i + 1
+            End While

+            Dim ppoColumns() As EdmBomColumn
+            bomView.GetColumns(ppoColumns)
+            i = 0
+            arrSize = ppoColumns.Length
+            str = ""
+            While i < arrSize
+                str = "Column " & i & ": " & ppoColumns(i).mbsCaption & " " & ppoColumns(i).meType & " " & ppoColumns(i).mlColumnID & " " & ppoColumns(i).mlFlags & " " & ppoColumns(i).mlVariableID & " " & ppoColumns(i).mlVariableType & " " & ppoColumns(i).mlWidth
+                MessageBox.Show(str)
+                i = i + 1
+            End While

+            Dim ppoNewRow As IEdmBomCell
+            Dim errMsg As String = ""
+            'Dim poValue As Object = Nothing
+            
'Dim poComputedValue As Object = Nothing
+            
'Dim pbsConfiguration As String = ""
+            
'Dim pbReadOnly As Boolean
+            Dim plFocusNode As Integer
+            bomView.InsertRow(ppoRows(0), EdmBomInsertRowOption.EdmBomInsertRowOption_BelowRow, ppoNewRow)
+            ppoNewRow.SetVar(ppoColumns(0).mlVariableID, ppoColumns(0).meType"vault_name\temp"""EdmBomSetVarOption.EdmBomSetVarOption_Both, errMsg)
+            'ppoNewRow.GetVar(ppoColumns(0).mlVariableID, ppoColumns(0).meType, poValue, poComputedValue, pbsConfiguration, pbReadOnly)
+            'MessageBox.Show(poValue.ToString)
+            'MessageBox.Show(poComputedValue.ToString)
+            'MessageBox.Show(pbsConfiguration)
+            'MessageBox.Show(pbReadOnly.ToString)

+            bomView.Commit("", errMsg, plFocusNode)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub


+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.GetBOM = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select file for which to get a BOM..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'GetBOM
+        '
+        Me.GetBOM.Location = New System.Drawing.Point(40, 183)
+        Me.GetBOM.Name = "GetBOM"
+        Me.GetBOM.Size = New System.Drawing.Size(157, 23)
+        Me.GetBOM.TabIndex = 6
+        Me.GetBOM.Text = "Get BOM"
+        Me.GetBOM.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = False
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.GetBOM)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Bill of Materials"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents GetBOM As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+

Back to top

+ +
+
+ + + + diff --git a/documentation/api_extracted/Add_Users_Example_CSharp.htm b/documentation/api_extracted/Add_Users_Example_CSharp.htm new file mode 100644 index 0000000..73a132d --- /dev/null +++ b/documentation/api_extracted/Add_Users_Example_CSharp.htm @@ -0,0 +1,534 @@ + + + +Add Users Example (C#) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Users Example (C#)

+

This example shows how to add users to a vault by +deserializing an XML file containing user data.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//---------------------------------------------------------------------------
+// Preconditions:
+//  1. Create an XML file for this example.
+//     a. Open a text editor like Notepad and copy and paste this code 
+//        into the editor.
+//     b. Save the file as User.xml and remember where you save the file.
+//  2. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > C# > Windows Forms Application.
+//     b. Type AddUsersCSharp in Name.
+//     c. Click Browse and navigate to the folder where to 
+//        create the project.
+//     d. Click OK
+//     e. Click Show All Files in the Solution Explorer toolbar and 
+//        expand Form1.cs in the Solution Explorer.
+//     f. Create a form similar to the form shown above and change:
+//        1. Top label to VaultsLabel.
+//        2. Combo box to VaultsCombobox.
+//        3. Second label to XmlLabel.
+//        4. Text box to XmlTextBox.
+//        5. Browse button to BrowseButton.
+//        6. Add users button to AddUsersButton.
+//     g. Replace the code in Form1.cs with this code.
+//     h. Replace the code in Form1.Designer.cs with this code.
+//     i. Right-click the AddUsersCSharp project name in the Solution Explorer.
+//        1. Click Add > Class > Class.
+//        2. Type EdmVaultSingleton.cs in Name.
+//        3. Click Add.
+//        4. Replace the code in EdmVaultSingleton.cs with this code.
+//     j. Right-click the AddUsersCSharp project name in the Solution Explorer.
+//        1. Click Add > Class > Class.
+//        2. Type User.cs in Name.
+//        3. Click Add.
+//        4. Replace the code in User.cs with this code.
+//  3. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Referenceclick 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of your 
+//     SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+//  4. Right-click EPDM.Interop.epdm in Referencesclick Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. Displays a dialog.
+//  2. Select a vault.
+//  3. Click Browse, locate and select User.xml, and click Open.
+//  4. Click Add users.
+//     A message box is displayed showing the names of the new users added
+//     to the vault.
+//  5. Click OK to close the message box.
+//  6. Close the dialog.
+//  7. Start and log into the SOLIDWORKS PDM Professional Administration 
+//     tool as Admin.
+//  8. Expand the vault where the new users were added.   
+//  9. Expand Users to see the names of the new users.  
+// 10. Double-click jdoe.
+//     a. Examine the properties.
+//     b. Click Administrative Permissions and examine the permissions.
+//     c. Click OK.
+// 11. Double-click jsmith and repeat steps 10a - 10c.
+//----------------------------------------------------------------------------
+
+
+
<?xml version="1.0" encoding="utf-8"?>
+<ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <anyType xsi:type="User">
+      <sn>Doe</sn>
+      <givenName>John</givenName>
+      <title>Designer</title>
+      <cn>John Doe</cn>
+      <username>jdoe@yourcompany.com</username>
+  </anyType>
+  <anyType xsi:type="User">
+      <sn>Smith</sn>
+      <givenName>Jane</givenName>
+      <title>Manager</title>
+      <cn>Jane Smith</cn>
+      <username>jsmith@yourcompany.com</username>
+  </anyType>
+</ArrayOfAnyType>
+ +
+//Form1.cs
+using System;
+using System.Collections;
+using System.Data;
+using System.Diagnostics;
+using System.IO;
+using System.Xml.Serialization;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+using System.Xml;
+using System.Runtime.InteropServices;
+ 
+ 
+namespace AddUsersCSharp
+{
+	public partial class Form1 : Form
+	{
+		public Form1()
+		{
+			InitializeComponent();
+		}
+ 
+		public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+		{
+			try
+			{
+				DialogResult dlgResult = XmlOpenFileDialog.ShowDialog();
+				if (dlgResult == DialogResult.Cancel)
+				{
+					return;
+				}
+				XmlTextBox.Text = XmlOpenFileDialog.FileName;
+			}
+			catch (System.Runtime.InteropServices.COMException ex)
+			{
+				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+			}
+			catch (Exception ex)
+			{
+				MessageBox.Show(ex.Message);
+			}
+		}
+ 
+ 
+		public void AddUsersButton_Click(System.Object sender, System.EventArgs e)
+		{
+			StreamReader StrReader = null;
+ 
+			try
+			{
+				//Deserialize users from an XML file
+				Type[] ExtraTypes = { Type.GetType("AddUsersCSharp.User") };
+				XmlSerializer XmlSer = new XmlSerializer(Type.GetType("System.Collections.ArrayList"), ExtraTypes);
+				StrReader = new StreamReader(XmlTextBox.Text);
+				ArrayList NewUsers = (ArrayList)XmlSer.Deserialize(StrReader);
+ 
+				//Obtain the only instance of the IEdmVaultObject
+				IEdmVault5 vault = EdmVaultSingleton.Instance;
+ 
+				if (!vault.IsLoggedIn)
+				{
+					//Log into selected vault as the current user
+					vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+				}
+ 
+				//Assign IEdmVault object to the IEdmUserMgr7 object
+				IEdmUserMgr7 UsrMgr = (IEdmUserMgr7)vault;
+ 
+				//Declare EdmUserData array to hold new user data
+				EdmUserData2[] UserData = new EdmUserData2[NewUsers.Count];
+ 
+				//Set the EdmUserData members for each new user
+				for (int i = 0; i <= NewUsers.Count - 1; i++)
+				{
+					if (NewUsers[i] != null)
+					{
+						UserData[i].mbsCompleteName = (NewUsers[i] as User).cn;
+						UserData[i].mbsEmail = (NewUsers[i] as User).username;
+						UserData[i].mbsInitials = (NewUsers[i] as User).givenName.Substring(0, 1) + (NewUsers[i] as User).sn.Substring(0, 1);
+						UserData[i].mbsUserName = (NewUsers[i] as User).username.Split('@')[0];
+						//Return user's IEdmUser6 interface in mpoUser
+						UserData[i].mlFlags = (int)EdmUserDataFlags.Edmudf_GetInterface;
+						//Add this user even if others cannot be added
+						UserData[i].mlFlags += (int)EdmUserDataFlags.Edmudf_ForceAdd;
+ 
+						//Set permissions 
+						EdmSysPerm[] perms = new EdmSysPerm[3];
+						perms[0] = EdmSysPerm.EdmSysPerm_EditUserMgr;
+						perms[1] = EdmSysPerm.EdmSysPerm_EditReportQuery;
+						perms[2] = EdmSysPerm.EdmSysPerm_MandatoryVersionComments;
+						UserData[i].moSysPerms = perms;
+					}
+				}
+ 
+				//Add the users to the vault
+				UsrMgr.AddUsers2(ref UserData);
+ 
+				string msg = "";
+				foreach (EdmUserData2 usr in UserData)
+				{
+					if (usr.mhStatus == 0)
+ 
+					{
+						msg += "Created user \"" + usr.mpoUser.Name + "\" successfully. ID = " + usr.mpoUser.ID.ToString() + "\n";
+						
+					}
+					else
+					{
+						IEdmVault11 vault2 = (IEdmVault11)vault;
+						msg += "Error creating user \"" + usr.mbsUserName + "\" - " + vault2.GetErrorMessage(usr.mhStatus) + "\n";
+					}
+				}
+				MessageBox.Show(msg);
+ 
+ 
+			}
+			catch (System.Runtime.InteropServices.COMException ex)
+			{
+				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+			}
+			catch (Exception ex)
+			{
+				MessageBox.Show(ex.Message);
+			}
+			finally
+			{
+				if ((StrReader != null))
+				{
+					StrReader.Close();
+				}
+			}
+		}
+ 
+ 
+		public void AddUsers_Load(System.Object sender, System.EventArgs e)
+		{
+ 
+			try
+			{
+			  //Obtain the only instance of the IEdmVault object
+			  IEdmVault8 vault = (IEdmVault8)EdmVaultSingleton.Instance;
+ 
+				EdmViewInfo[] Views = null;
+ 
+				vault.GetVaultViews(out Views, false);
+				VaultsComboBox.Items.Clear();
+				foreach (EdmViewInfo View in Views)
+				{
+					VaultsComboBox.Items.Add(View.mbsVaultName);
+				}
+				if (VaultsComboBox.Items.Count > 0)
+				{
+					VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+				}
+			}
+			catch (System.Runtime.InteropServices.COMException ex)
+			{
+				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+			}
+			catch (Exception ex)
+			{
+				MessageBox.Show(ex.Message);
+			}
+		}
+ 
+	}
+}
+ +
+
//Form1.Designer.cs
+
+
+
namespace AddUsersCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.XmlLabel = new System.Windows.Forms.Label();
+            this.XmlTextBox = new System.Windows.Forms.TextBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.AddUsersButton = new System.Windows.Forms.Button();
+            this.XmlOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+ 
+            //
+            //XmlOpenFileDialog
+            //
+            this.XmlOpenFileDialog.Filter = "XML files|*.XML";
+            //
+ 
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(23, 34);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(26, 62);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(171, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // XmlLabel
+            // 
+            this.XmlLabel.AutoSize = true;
+            this.XmlLabel.Location = new System.Drawing.Point(26, 111);
+            this.XmlLabel.Name = "XmlLabel";
+            this.XmlLabel.Size = new System.Drawing.Size(173, 13);
+            this.XmlLabel.TabIndex = 2;
+            this.XmlLabel.Text = "XML file from which to import users:";
+            // 
+            // XmlTextBox
+            // 
+            this.XmlTextBox.Location = new System.Drawing.Point(26, 139);
+            this.XmlTextBox.Name = "XmlTextBox";
+            this.XmlTextBox.Size = new System.Drawing.Size(171, 20);
+            this.XmlTextBox.TabIndex = 3;
+            // 
+            // BrowseButton
+            // 
+            this.BrowseButton.Location = new System.Drawing.Point(203, 135);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
+            this.BrowseButton.TabIndex = 4;
+            this.BrowseButton.Text = "Browse...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
+            // 
+            // AddUsersButton
+            // 
+            this.AddUsersButton.Location = new System.Drawing.Point(29, 189);
+            this.AddUsersButton.Name = "AddUsersButton";
+            this.AddUsersButton.Size = new System.Drawing.Size(75, 23);
+            this.AddUsersButton.TabIndex = 5;
+            this.AddUsersButton.Text = "Add users";
+            this.AddUsersButton.UseVisualStyleBackColor = true;
+            this.AddUsersButton.Click += new System.EventHandler(this.AddUsersButton_Click); 
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 262);
+            this.Controls.Add(this.AddUsersButton);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.XmlTextBox);
+            this.Controls.Add(this.XmlLabel);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add new users";
+            this.Load += new System.EventHandler(this.AddUsers_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Label XmlLabel;
+        private System.Windows.Forms.TextBox XmlTextBox;
+        private System.Windows.Forms.Button BrowseButton;
+        private System.Windows.Forms.Button AddUsersButton;
+        private System.Windows.Forms.OpenFileDialog XmlOpenFileDialog;
+    }
+}
+ 
+
+ +
+
//EdmVaultSingleton.cs
+using System;
+using System.Collections;
+using System.Diagnostics;
+using System.Threading;
+using EPDM.Interop.epdm;
+ 
+namespace AddUsersCSharp
+{
+    public class EdmVaultSingleton
+    {
+        private static EdmVault5 mInstance = null;
+        private static object mLockObj = new object();
+ 
+        private EdmVaultSingleton()
+        {
+ 
+        }
+ 
+        public static EdmVault5 Instance
+        {
+            get
+            {
+                try
+                {
+                    if (mInstance == null)
+                    {
+                        Monitor.Enter(mLockObj);
+                        if (mInstance == null)
+                        {
+                            mInstance = new EdmVault5();
+                        }
+                        Monitor.Exit(mLockObj);
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Monitor.Exit(mLockObj);
+                }
+ 
+                return mInstance;
+ 
+            }
+        }
+ 
+    }
+}
+
+ +
+
//User.cs
+using System;
+using System.Collections;
+using System.Diagnostics;
+ 
+namespace AddUsersCSharp
+{
+    public class User
+    {
+        //First name
+        private string mSn;
+        //Last name
+        private string mGivenName;
+        //Title
+        private string mTitle;
+        //Complete name
+        private string mCn;
+        //Email address
+        private string mUsername;
+ 
+        public User()
+        {
+ 
+        }
+ 
+        public string sn
+        {
+            get { return mSn; }
+            set { mSn = value; }
+        }
+ 
+        public string givenName
+        {
+            get { return mGivenName; }
+            set { mGivenName = value; }
+        }
+ 
+        public string title
+        {
+            get { return mTitle; }
+            set { mTitle = value; }
+        }
+ 
+        public string cn
+        {
+            get { return mCn; }
+            set { mCn = value; }
+        }
+ 
+        public string username
+        {
+            get { return mUsername; }
+            set { mUsername = value; }
+        }
+    }
+}
+
+ + + + + diff --git a/documentation/api_extracted/Add_Users_Example_VBNET.htm b/documentation/api_extracted/Add_Users_Example_VBNET.htm new file mode 100644 index 0000000..26cb67a --- /dev/null +++ b/documentation/api_extracted/Add_Users_Example_VBNET.htm @@ -0,0 +1,480 @@ + + + +Add Users Example (VB.NET) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Users Example (VB.NET)

+

This example shows how to add users to a vault by +deserializing an XML file containing user data.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Create an XML file for this example.
+'     a. Open a text editor like Notepad and copy and paste this code 
+'        into the editor.
+'     b. Save the file as User.xml and remember where you save the file.
+'  2. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type AddUsers in Name.
+'     c. Click Browse and navigate to the folder where to create 
+'        the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Create a form similar to the form shown above and change:
+'        1. Top label to VaultsLabel.
+'        2. Combo box to VaultsComboBox.
+'        3. Second label to XmlLabel.
+'        4. Text box to XmlTextBox.
+'        5. Browse button to BrowseButton.
+'        6. Add users button to AddUsersButton.
+'     g. Replace the code in Form1.vb with this code.
+'     h. Replace the code in Form1.Designer.vb with this code.
+'     i. Right-click the AddUsers project name in the Solution Explorer.
+'        1. Click Add > Class > Class.
+'        2. Type EdmVaultSingleton.vb in Name.
+'        3. Click Add.
+'        4. Replace the code in EdmVaultSingleton.vb with this code.
+'     j. Right-click the AddUsers project name in the Solution Explorer.
+'        1. Click Add > Class > Class.
+'        2. Type User.vb in Name.
+'        3. Click Add.
+'        4. Replace the code in User.vb with this code.
+'  3. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Referenceclick 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  4. Right-click EPDM.Interop.epdm in Referencesclick Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays a dialog.
+'  2. Select a vault.
+'  3. Click Browse, locate and click User.xml, and click Open.
+'  4. Click Add users.
+'     A message box is displayed showing the names and IDs of the new users added
+'     to the vault.
+'  5. Click OK to close the message box.
+'  6. Close the dialog.
+'  7. Start and log into the SOLIDWORKS PDM Professional Administration 
+'     tool as Admin.
+'  8. Expand the vault where the new users were added.   
+'  9. Expand Users to see the names of the new users. 
+' 10. Double-click jdoe.
+'     a. Examine the properties.
+'     b. Click Administrative Permissions and examine the permissions.
+'     c. Click OK.
+' 11. Double-click jsmith and repeat steps 10a - 10c.
+'----------------------------------------------------------------------------
+
+
+
<?xml version="1.0" encoding="utf-8"?>
+<ArrayOfAnyType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <anyType xsi:type="User">
+      <sn>Doe</sn>
+      <givenName>John</givenName>
+      <title>Designer</title>
+      <cn>John Doe</cn>
+      <username>jdoe@yourcompany.com</username>
+  </anyType>
+  <anyType xsi:type="User">
+      <sn>Smith</sn>
+      <givenName>Jane</givenName>
+      <title>Manager</title>
+      <cn>Jane Smith</cn>
+      <username>jsmith@yourcompany.com</username>
+  </anyType>
+</ArrayOfAnyType>
+ +
'Form1.vb
+Imports System.IO
+Imports System.Xml.Serialization
+Imports EPDM.Interop.epdm
+ 
+Public Class AddUsers
+ 
+  Private Sub BrowseButton_Click( _
+     ByVal sender As System.Object, _
+     ByVal e As System.EventArgs) _
+     Handles BrowseButton.Click
+    Try
+      Dim dlgResult As DialogResult = XmlOpenFileDialog.ShowDialog()
+      If dlgResult = Windows.Forms.DialogResult.Cancel Then
+        Exit Sub
+      End If
+      XmlTextBox.Text = XmlOpenFileDialog.FileName
+    Catch ex As Runtime.InteropServices.COMException
+      MessageBox.Show("HRESULT = 0x" + _
+      ex.ErrorCode.ToString("X") + vbCrLf + _
+      ex.Message)
+    Catch ex As Exception
+      MessageBox.Show(ex.Message)
+    End Try
+  End Sub
+ 
+    Private Sub AddUsersButton_Click( _
+        ByVal sender As System.Object, _
+        ByVal e As System.EventArgs) _
+        Handles AddUsersButton.Click
+ 
+        Dim StrReader As StreamReader = Nothing
+ 
+        Try
+            'Deserialize users from an XML file
+            Dim ExtraTypes() As Type = {Type.GetType("AddUsers.User")}
+            Dim XmlSer As New XmlSerializer( _
+                Type.GetType("System.Collections.ArrayList"), _
+                ExtraTypes)
+            StrReader = New StreamReader(XmlTextBox.Text)
+            Dim NewUsers As ArrayList = _
+                XmlSer.Deserialize(StrReader)
+ 
+            'Obtain the only instance of the IEdmVaultObject
+            Dim vault As IEdmVault5 = EdmVaultSingleton.Instance
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+            'Assign IEdmVault object to the IEdmUserMgr7 object
+            Dim UsrMgr As IEdmUserMgr7 = vault
+ 
+            'Declare EdmUserData array to hold new user data
+            Dim UserData(NewUsers.Count - 1) As EdmUserData2
+            'Set the EdmUserData members for each new user
+            For i As Integer = 0 To NewUsers.Count - 1
+                If Not NewUsers(i) Is Nothing Then
+                    UserData(i).mbsCompleteName = NewUsers(i).cn
+                    UserData(i).mbsEmail = NewUsers(i).username
+                    UserData(i).mbsInitials = _
+                        NewUsers(i).givenName.Substring(0, 1) + _
+                        NewUsers(i).sn.SubString(0, 1)
+                    UserData(i).mbsUserName = _
+                        NewUsers(i).username.Split("@")(0)
+                    'Return user's IEdmUser6 interface in mpoUser
+                    UserData(i).mlFlags = _
+                        EdmUserDataFlags.Edmudf_GetInterface
+                    'Add this user even if others cannot be added
+                    UserData(i).mlFlags += _
+                        EdmUserDataFlags.Edmudf_ForceAdd
+
                    'Set permissions 
+                    Dim perms(2) As EdmSysPerm
+                    perms(0) = EdmSysPerm.EdmSysPerm_EditUserMgr
+                    perms(1) = EdmSysPerm.EdmSysPerm_EditReportQuery
+                    perms(2) = EdmSysPerm.EdmSysPerm_MandatoryVersionComments
+                    UserData(i).moSysPerms = perms
+
+                End If
+            Next i
+ 
+            'Add the users to the vault
+            UsrMgr.AddUsers2(UserData)
+ 
+            Dim msg As String = ""
+            For Each usr As EdmUserData2 In UserData
+                If usr.mhStatus = 0 Then
+                    msg += "Created user """ + usr.mpoUser.Name _
+                        + """ successfully. ID = " _
+                        + usr.mpoUser.ID.ToString() + vbCrLf
+                Else
+                    msg += "Error creating user """ _
+                        + usr.mbsUserName + """ - " _
+                        + vault.GetErrormessage(usr.mhStatus) + vbCrLf
+                End If
+            Next
+            MessageBox.Show(msg)
+ 
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        Finally
+            If Not StrReader Is Nothing Then
+                StrReader.Close()
+            End If
+        End Try
+    End Sub
+ 
+    Private Sub AddUsers_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+ 
+        Try
+ 
+            'Obtain the only instance of the IEdmVault object
+            Dim vault As IEdmVault8 = EdmVaultSingleton.Instance
+            Dim Views() As EdmViewInfo = Nothing
+ 
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = VaultsComboBox.Items(0)
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+End Class
+ +
+
'Form1.Designer.vb
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class AddUsers
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer.
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.XmlTextBox = New System.Windows.Forms.TextBox()
+        Me.XmlLabel = New System.Windows.Forms.Label()
+        Me.XmlOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.AddUsersButton = New System.Windows.Forms.Button()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(227, 94)
+        Me.BrowseButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(59, 26)
+        Me.BrowseButton.TabIndex = 0
+        Me.BrowseButton.Text = "Browse..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'XmlTextBox
+        '
+        Me.XmlTextBox.Location = New System.Drawing.Point(24, 94)
+        Me.XmlTextBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.XmlTextBox.Name = "XmlTextBox"
+        Me.XmlTextBox.Size = New System.Drawing.Size(182, 20)
+        Me.XmlTextBox.TabIndex = 1
+        '
+        'XmlLabel
+        '
+        Me.XmlLabel.AutoSize = True
+        Me.XmlLabel.Location = New System.Drawing.Point(22, 78)
+        Me.XmlLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.XmlLabel.Name = "XmlLabel"
+        Me.XmlLabel.Size = New System.Drawing.Size(173, 13)
+        Me.XmlLabel.TabIndex = 2
+        Me.XmlLabel.Text = "XML file from which to import users:"
+        '
+        'XmlOpenFileDialog
+        '
+        Me.XmlOpenFileDialog.Filter = "XML files|*.xml"
+        '
+        'AddUsersButton
+        '
+        Me.AddUsersButton.Location = New System.Drawing.Point(24, 137)
+        Me.AddUsersButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.AddUsersButton.Name = "AddUsersButton"
+        Me.AddUsersButton.Size = New System.Drawing.Size(87, 24)
+        Me.AddUsersButton.TabIndex = 3
+        Me.AddUsersButton.Text = "Add users"
+        Me.AddUsersButton.UseVisualStyleBackColor = True
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(22, 40)
+        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(136, 21)
+        Me.VaultsComboBox.TabIndex = 12
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(22, 24)
+        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 13
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'AddUsers
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(304, 237)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Controls.Add(Me.AddUsersButton)
+        Me.Controls.Add(Me.XmlLabel)
+        Me.Controls.Add(Me.XmlTextBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Margin = New System.Windows.Forms.Padding(2)
+        Me.Name = "AddUsers"
+        Me.Text = "Add new users"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents XmlTextBox As System.Windows.Forms.TextBox
+    Friend WithEvents XmlLabel As System.Windows.Forms.Label
+    Friend WithEvents XmlOpenFileDialog As System.Windows.Forms.OpenFileDialog
+    Friend WithEvents AddUsersButton As System.Windows.Forms.Button
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+ 
+End Class
+ +
'EdmVaultSingleton.vb
+ 
+Imports System.Threading
+ 
+Imports EPDM.Interop.epdm
+ 
+Public NotInheritable Class EdmVaultSingleton
+  Private Shared mInstance As EdmVault5 = Nothing
+  Private Shared mLockObj As New Object()
+ 
+  Private Sub New()
+ 
+  End Sub
+ 
+  Public Shared ReadOnly Property Instance() As EdmVault5
+    Get
+      Try
+        If mInstance Is Nothing Then
+          Monitor.Enter(mLockObj)
+          If mInstance Is Nothing Then
+            mInstance = New EdmVault5()
+          End If
+          Monitor.Exit(mLockObj)
+        End If
+      Catch ex As Exception
+        Monitor.Exit(mLockObj)
+      End Try
+ 
+      Return mInstance
+ 
+    End Get
+  End Property
+ 
+End Class
+ +
'User.vb
+ 
+Public Class User
+   Private mSn As String         'First name
+   Private mGivenName As String  'Last name
+   Private mTitle As String      'Title
+   Private mCn As String         'Complete name
+   Private mUsername As String   'Email address
+ 
+   Public Sub New()
+ 
+   End Sub
+ 
+   Public Property sn() As String
+      Get
+         sn = mSn
+      End Get
+      Set(ByVal Value As String)
+         mSn = Value
+      End Set
+   End Property
+ 
+   Public Property givenName() As String
+      Get
+         givenName = mGivenName
+      End Get
+      Set(ByVal Value As String)
+         mGivenName = Value
+      End Set
+   End Property
+ 
+   Public Property title() As String
+      Get
+         title = mTitle
+      End Get
+      Set(ByVal Value As String)
+         mTitle = Value
+      End Set
+   End Property
+ 
+   Public Property cn() As String
+      Get
+         cn = mCn
+      End Get
+      Set(ByVal Value As String)
+         mCn = Value
+      End Set
+   End Property
+ 
+   Public Property username() As String
+      Get
+         username = mUsername
+      End Get
+      Set(ByVal Value As String)
+         mUsername = Value
+      End Set
+   End Property
+ 
+End Class
+ +
+ + + + diff --git a/documentation/api_extracted/Add_Variables_to_Vault_Example_CSharp.htm b/documentation/api_extracted/Add_Variables_to_Vault_Example_CSharp.htm new file mode 100644 index 0000000..6dbbc23 --- /dev/null +++ b/documentation/api_extracted/Add_Variables_to_Vault_Example_CSharp.htm @@ -0,0 +1,361 @@ + + + +Add Card Variables to Vault Example (C#) + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Card Variables to Vault Example (C#)

+

This example shows how to add card variables to a vault and +edit them.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type AddEditVars_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+
+
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Add +variables to vault dialog box.
+// 2. Select a vault view.
+// 3. Click Add +card variables
+//    +a. Adds two card variables, MyNewVar and MySecondVar, to the vault.
+//    b. Displays a message box with the IDs of the new +variables.
+//    c. Click OK.
+// 4. Click Edit card variables.
+//    a. Displays the Edit Variables dialog box.
+//    b. Click OK.
+//    c. Displays a message box.
+//    d. Click OK.

+// 5. Close the Add +variables to vault dialog box.         

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace AddEditVars_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmItem item;

+        IEdmFile8 fileInt;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }

+                Button1.Enabled = false;

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void AddVaultVars_Click(System.Object sender, System.EventArgs e)
+        {
+            //Add card variables to vault
+            try
+            {
+                IEdmVault11 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault11)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmVariableMgr6 poVarMgr = default(IEdmVariableMgr6);
+                poVarMgr = (IEdmVariableMgr6)vault2.CreateUtility(EdmUtility.EdmUtil_VariableMgr);

+                EdmVariableData[] aoNewVars = new EdmVariableData[2]; 

+                //Set some properties for the first variable
+                aoNewVars[0].mbsVariableName = "MyNewVar";
+                aoNewVars[0].meType = EdmVariableType.EdmVarType_Text;
+                aoNewVars[0].mlEdmVariableFlags = (int)EdmVariableFlags.EdmVar_Mandatory;
+                EdmAttributeData[] aoAttributes = new EdmAttributeData[1];
+                aoAttributes[0].mbsBlockName = "DrawingBorder";
+                aoAttributes[0].mbsAttribName = "PartNumber";
+                aoAttributes[0].mbsExtensions = "DWG,DXF";
+                aoNewVars[0].mpoAttributes = aoAttributes;

+                //Set some properties for the second variable
+                aoNewVars[1].mbsVariableName = "MySecondVar";
+                aoNewVars[1].meType = EdmVariableType.EdmVarType_Date;

+                //Add the variables
+                poVarMgr.AddVariables(ref aoNewVars);

+                //Show the IDs of the new variables
+                string sMsg = null;
+                sMsg = "";

+                int iIdx = 0;
+                iIdx = aoNewVars.GetLowerBound(0);

+                while (iIdx <= aoNewVars.GetUpperBound(0))
+                {
+                    sMsg = sMsg + aoNewVars[iIdx].mbsVariableName + " has ID " + (aoNewVars[iIdx].mlVariableID).ToString() + "\n";
+                    iIdx = iIdx + 1;
+                }

+                MessageBox.Show(sMsg);

+                Button1.Enabled = true;

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        private void Button1_Click(System.Object sender, System.EventArgs e)
+        {
+            //Edit card variables
+            try
+            {
+                IEdmVault11 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault11)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmVariableMgr5 varMgr = default(IEdmVariableMgr5);
+                varMgr = (IEdmVariableMgr5)vault2;
+                if (varMgr.EditVariables(this.Handle.ToInt32()))
+                {
+                    MessageBox.Show("An update was made!");
+                }
+                else
+                {
+                    MessageBox.Show("No changes were made.");
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace AddEditVars_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.AddVaultVars = new System.Windows.Forms.Button();
+            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.Button1 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //AddVaultVars
+            //
+            this.AddVaultVars.Location = new System.Drawing.Point(16, 86);
+            this.AddVaultVars.Name = "AddVaultVars";
+            this.AddVaultVars.Size = new System.Drawing.Size(139, 23);
+            this.AddVaultVars.TabIndex = 5;
+            this.AddVaultVars.Text = "Add card variables";
+            this.AddVaultVars.UseVisualStyleBackColor = true;
+            this.AddVaultVars.Click +=new System.EventHandler(AddVaultVars_Click);
+            //
+            //OpenFileDialog
+            //
+            this.OpenFileDialog.Title = "Open";
+            //
+            //Button1
+            //
+            this.Button1.Location = new System.Drawing.Point(16, 127);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(139, 23);
+            this.Button1.TabIndex = 6;
+            this.Button1.Text = "Edit card variables";
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click +=new System.EventHandler(Button1_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(243, 185);
+            this.Controls.Add(this.Button1);
+            this.Controls.Add(this.AddVaultVars);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add variables to vault";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button AddVaultVars;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
+        internal System.Windows.Forms.Button Button1;
+    }
+}

+

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Add_Variables_to_Vault_Example_VBNET.htm b/documentation/api_extracted/Add_Variables_to_Vault_Example_VBNET.htm new file mode 100644 index 0000000..c1b251b --- /dev/null +++ b/documentation/api_extracted/Add_Variables_to_Vault_Example_VBNET.htm @@ -0,0 +1,314 @@ + + + +Add Card Variables to Vault Example (VB.NET) + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add Card Variables to Vault Example (VB.NET)

+

This example shows how to add card variables to a vault and +edit them.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddEditVars in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add variables to +vault dialog box.
+' 2. Select a vault view.
+' 3. Click Add card variables
+ +'    a. Adds two card variables, MyNewVar and MySecondVar, to the +vault.
+'    b. Displays a message box with the IDs of the new variables.
+'    c. Click OK.
+' 4. Click Edit card variables.
+'    a. Displays the Edit Variables dialog box.
+'    b. Click OK.
+'    c. Displays a message box.
+'    d. Click OK.

+ +' 5. Close the Add variables to vault dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim item As IEdmItem
+    Dim fileInt As IEdmFile8

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If

+            Button1.Enabled = False

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub AddVaultVars_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddVaultVars.Click
+        'Add card variables to vault
+        Try
+            Dim vault2 As IEdmVault11 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault11)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim poVarMgr As IEdmVariableMgr6
+            poVarMgr = vault2.CreateUtility(EdmUtility.EdmUtil_VariableMgr)

+            Dim aoNewVars(1) As EdmVariableData 'Array with 2 variables 

+            'Set some properties for the first variable
+            aoNewVars(0).mbsVariableName = "MyNewVar"
+            aoNewVars(0).meType = EdmVariableType.EdmVarType_Text
+            aoNewVars(0).mlEdmVariableFlags = EdmVariableFlags.EdmVar_Mandatory
+            Dim aoAttributes(0) As EdmAttributeData
+            aoAttributes(0).mbsBlockName = "DrawingBorder"
+            aoAttributes(0).mbsAttribName = "PartNumber"
+            aoAttributes(0).mbsExtensions = "DWG,DXF"
+            aoNewVars(0).mpoAttributes = aoAttributes

+            'Set some properties for the second variable
+            aoNewVars(1).mbsVariableName = "MySecondVar"
+            aoNewVars(1).meType = EdmVariableType.EdmVarType_Date

+            'Add the variables
+            poVarMgr.AddVariables(aoNewVars)

+            'Show the IDs of the new variables
+            Dim sMsg As String
+            sMsg = ""

+            Dim iIdx As Integer
+            iIdx = LBound(aoNewVars)

+            While iIdx <= UBound(aoNewVars)
+                sMsg = sMsg + aoNewVars(iIdx).mbsVariableName + " has ID " + CStr(aoNewVars(iIdx).mlVariableID) + vbLf
+                iIdx = iIdx + 1
+            End While

+            MessageBox.Show(sMsg)

+            Button1.Enabled = True

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        'Edit card variables
+        Try
+            Dim vault2 As IEdmVault11 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault11)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim varMgr As IEdmVariableMgr5
+            varMgr = vault2
+            If varMgr.EditVariables(Me.Handle.ToInt32()) Then
+                MessageBox.Show("An update was made!")
+            Else
+                MessageBox.Show("No changes were made.")
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+End Class

+

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.AddVaultVars = New System.Windows.Forms.Button()
+        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'AddVaultVars
+        '
+        Me.AddVaultVars.Location = New System.Drawing.Point(16, 86)
+        Me.AddVaultVars.Name = "AddVaultVars"
+        Me.AddVaultVars.Size = New System.Drawing.Size(139, 23)
+        Me.AddVaultVars.TabIndex = 5
+        Me.AddVaultVars.Text = "Add card variables"
+        Me.AddVaultVars.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog
+        '
+        Me.OpenFileDialog.Title = "Open"
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(16, 127)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(139, 23)
+        Me.Button1.TabIndex = 6
+        Me.Button1.Text = "Edit card variables"
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(243, 185)
+        Me.Controls.Add(Me.Button1)
+        Me.Controls.Add(Me.AddVaultVars)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add variables to vault"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents AddVaultVars As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
+    Friend WithEvents Button1 As System.Windows.Forms.Button
+End Class

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_CSharp.htm b/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_CSharp.htm new file mode 100644 index 0000000..2d8f685 --- /dev/null +++ b/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_CSharp.htm @@ -0,0 +1,756 @@ + + + +Add and Remove User and Group from Folder Example (C#) + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add and Remove User and Group from Folder Example (C#)

+ +

This example shows how to:

+
    +
  • add and remove users to and + from a vault.
  • +
  • add a user of a group to a + folder in a vault.
  • +
  • remove a user of a group + from a folder and from a vault.
  • +
+ +

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+
//-------------------------------------------------------------------- 
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type AddRemoveUsersGroupsCSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project. 
+//     d. Click OK.
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the form, replace the code in Form1.Designer.cs with 
+//        this code.
+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  4. Ensure that the following folder and group exist in the targeted vault:
+//     * Folder in the vault root named Test.
+//     * Group named Management.
+//  5. Click Debug > Start Debugging or press F5.
+//
+//Postconditions: 
+// 1. Displays a dialog.
+// 2. Select a vault.
+// 3. Perform these user actions. Click OK to close each message box.
+//    a. Click Traverse users.
+//       Displays a message box showing the users in the vault.
+//    b. Click Add users.
+//       Displays a message box informing you that rrabbit 
+//       and efudd were added as users to the vault.
+//    c. Click Traverse users to verify that rrabbit and efudd 
+//       were added to the vault.
+//       Displays a message box showing the users in the vault.
+//    d. Click Remove user.
+//       Displays a message box informing you that rrabbit was 
+//       removed from the vault. 
+//    e. Click Traverse users to verify that rrabbit was removed 
+//       from the vault.
+//       Displays a message box showing the users in the vault.
+// 4. Perform these group actions. Click OK to close each message box.
+//    a. Click Traverse groups.
+//       Displays a message box showing the groups in the vault.
+//    b. Click Traverse group members.
+//       Displays a message box showing the users in the groups 
+//       in the vault.
+//    c. Click Add group member.
+//       Displays a message box informing you that efudd
+//       was added to the Management group.
+//    d. Click Traverse group members to verify that
+//       efudd is shown in the Management group.
+//       Displays a message box showing the users in the groups
+//       in the vault.
+//    e. Click Add group member to folder.
+//       Displays a message box informing you that efudd in
+//       the Management group was added to the Test folder.
+//    f. To verify the previous step:
+//       1. Open a File Explorer window.
+//       2. Right-click the Test folder in the selected vault
+//          and click Properties to open the Test Properties
+//          dialog box.
+//       3. Click Group Memberships.
+//       4. Click Management to verify that efudd is selected.
+//       5. Click OK to close the Test Properties dialog box.
+//    g. Click Remove group member and user.
+//       Displays a message box informing you that efudd was
+//       removed from the vault.
+//    h. Click Traverse group members to verify that
+//       efudd was removed from the Management group.
+//       Displays a message box showing the users in the 
+//       groups in the vault.
+//    i. Click Traverse users to verify that efudd was
+//       removed as a user from the vault.
+//       Displays a message box showing the users in the vault.
+// 5. Close the dialog.
+//    Sends two SOLIDWORKS PDM Professional messages
+//    to logged-in users and group members who have 
+//    permission to update users and groups. 
+// 6. To open these messages, click:
+//    * the SOLIDWORKS PDM Professional tray icon.
+//     - or -
+//    * Tools > Inbox in File Explorer.
+//--------------------------------------------------------------------
+
//Form1.cs
+
+
using System;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+ 
+namespace AddRemoveUsersGroupsCSharp
+{
+	public partial class Form1 : Form
+	{
+		public Form1()
+		{
+			InitializeComponent();
+		}
+			IEdmVault8 vault;
+			EdmVault5 vault1;
+			EdmUserData2[] UserData = new EdmUserData2[2];
+			IEdmUserMgr10 UsrMgr;
+			IEdmUser9 user;
+			IEdmUserGroup8 mngmtGroup;
+			EdmMemberFolder[] folderMembers = new EdmMemberFolder[1];
+ 
+	private void AddRemoveUsersGroupsCSharp_Load(System.Object sender, System.EventArgs e)
+	{
+ 
+		vault1 = new EdmVault5();
+		vault = (IEdmVault8)vault1;
+		EdmViewInfo[] Views = {};
+ 
+		vault.GetVaultViews(out Views, false);
+		VaultsComboBox.Items.Clear();
+		foreach (EdmViewInfo View in Views) {
+			VaultsComboBox.Items.Add(View.mbsVaultName);
+		}
+		if (VaultsComboBox.Items.Count > 0) {
+			VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+		}
+	}
+ 
+	private void TraverseUsersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+ 
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Traverse users
+			string Users = "";
+			IEdmPos5 UserPos = default(IEdmPos5);
+			UserPos = UsrMgr.GetFirstUserPosition();
+			while (!UserPos.IsNull) {
+				user = (IEdmUser9)UsrMgr.GetNextUser(UserPos);
+				Users = Users + user.Name + "\n";
+			}
+			MessageBox.Show(Users, vault.Name + " Vault Users"MessageBoxButtons.OK, MessageBoxIcon.Information);
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private void TraverseGroupsButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+ 
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Traverse groups
+			string Groups = "";
+			IEdmPos5 UserGroupPos = default(IEdmPos5);
+			UserGroupPos = UsrMgr.GetFirstUserGroupPosition();
+			while (!UserGroupPos.IsNull) {
+				mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos);
+				Groups = Groups + mngmtGroup.Name + "\n";
+			}
+			MessageBox.Show(Groups, vault.Name + " Vault Groups"MessageBoxButtons.OK, MessageBoxIcon.Information);
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private void TraverseGroupMembersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+ 
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Traverse group members
+			string Groups = "";
+			IEdmPos5 UserGroupPos = default(IEdmPos5);
+			UserGroupPos = UsrMgr.GetFirstUserGroupPosition();
+			while (!UserGroupPos.IsNull) 
+			{
+				mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos);
+				Groups = Groups + mngmtGroup.Name + " Members:" + "\n";
+				Groups = Groups + GetMembers(mngmtGroup);
+			}
+			MessageBox.Show(Groups, vault.Name + " Vault Group Users"MessageBoxButtons.OK, MessageBoxIcon.Information);
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private string GetMembers(IEdmUserGroup8 UserGroup)
+	{
+		string functionReturnValue = null;
+		try {
+ 
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			//Get group members
+			functionReturnValue = "";
+			string Users = "";
+			IEdmPos5 UserPos = default(IEdmPos5);
+			UserPos = UserGroup.GetFirstUserPosition();
+			while (!UserPos.IsNull) {
+				user = (IEdmUser9)UserGroup.GetNextUser(UserPos);
+				Users = Users + " " + user.Name + "\n";
+			}
+			functionReturnValue = Users;
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+		}
+		return functionReturnValue;
+ 
+	}
+ 
+ 
+ 
+	private void AddUsersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Add users to EdmUserData2
+			UserData[0].mbsCompleteName = "Roger Rabbit";
+			UserData[0].mbsEmail = "rrabbit@animatedcharacters.com";
+			UserData[0].mbsInitials = "RR";
+			UserData[0].mbsUserName = "rrabbit";
+ 
+			UserData[1].mbsCompleteName = "Elmer J. Fudd";
+			UserData[1].mbsEmail = "efudd@animatedcharacters.com";
+			UserData[1].mbsInitials = "EJF";
+			UserData[1].mbsUserName = "efudd";
+ 
+			//Return user's interface in mpoUser
+			UserData[0].mlFlags = (int)EdmUserDataFlags.Edmudf_GetInterface;
+			UserData[1].mlFlags = (int)EdmUserDataFlags.Edmudf_GetInterface;
+ 
+			//Add these users even if other users in the array cannot be added
+			UserData[0].mlFlags += (int)EdmUserDataFlags.Edmudf_ForceAdd;
+			UserData[1].mlFlags += (int)EdmUserDataFlags.Edmudf_ForceAdd;
+ 
+			//Set permissions 
+			EdmSysPerm[] perms = new EdmSysPerm[2];
+			perms[0] = EdmSysPerm.EdmSysPerm_EditReportQuery;
+			perms[1] = EdmSysPerm.EdmSysPerm_MandatoryVersionComments;
+			UserData[0].moSysPerms = perms;
+			UserData[1].moSysPerms = perms;
+ 
+			//Add the users to the vault
+			UsrMgr.AddUsers3(ref UserData, (int)EdmUserType.EdmUser_PDM);
+ 
+			string msg = "";
+			foreach (EdmUserData2 usr in UserData) {
+				if (usr.mhStatus == 0) {
+					msg += "Added user " + usr.mpoUser.Name + ". ID = " + usr.mpoUser.ID.ToString() + "." + "\n";
+				} else {
+					IEdmVault11 vault3 = (IEdmVault11)vault;
+					msg += "Error adding user " + usr.mbsUserName + ". " + vault3.GetErrorMessage(usr.mhStatus) + "\n";
+				}
+			}
+ 
+			MessageBox.Show(msg);
+ 
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+ 
+	}
+ 
+	private void RemoveUsersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			//Remove the rrabbit from the vault
+			UsrMgr = (IEdmUserMgr10)vault1.CreateUtility(EdmUtility.EdmUtil_UserMgr);
+			user = (IEdmUser9)UsrMgr.GetUser("rrabbit");
+			if ((user == null)) {
+				MessageBox.Show("No user set to remove. Click Add users.");
+				return;
+			}
+ 
+			int[] users = new int[1];
+			users[0] = user.ID;
+			UsrMgr.RemoveUsers(users);
+ 
+			MessageBox.Show("User " + user.Name + " removed.");
+ 
+			//Send message to all users with permission
+			//to update users and groups 
+			IEdmPos5 UserPos = default(IEdmPos5);
+			UserPos = UsrMgr.GetFirstUserPosition();
+			while (!UserPos.IsNull) {
+				IEdmUser9 userWithPerm = default(IEdmUser9);
+				userWithPerm = (IEdmUser9)UsrMgr.GetNextUser(UserPos);
+				if (userWithPerm.IsLoggedIn) {
+					if (userWithPerm.HasSysRightEx(EdmSysPerm.EdmSysPerm_EditUserMgr)) {
+						userWithPerm.SendMsg("ALERT: user removed""User " + user.Name + " removed.");
+					}
+				}
+			}
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private void RemoveGroupMembersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			if ((mngmtGroup == null)) {
+				MessageBox.Show("No group set from which to remove group member. Click Add group member.");
+				return;
+			}
+ 
+			//Remove user efudd from Test folder, Management group, and vault
+			mngmtGroup.RemoveMembers(folderMembers);
+			user = (IEdmUser9)UsrMgr.GetUser("efudd");
+ 
+			if ((user == null)) {
+				MessageBox.Show("No user set to remove from group. Click Add users.");
+				return;
+			}
+ 
+			int[] users = new int[1];
+			users[0] = user.ID;
+			UsrMgr.RemoveUsers(users);
+ 
+			MessageBox.Show("User " + user.Name + " removed from group and vault.");
+ 
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private void AddGroupMembersWithFoldersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Add efudd to Test folder
+			IEdmFolder6 folder = default(IEdmFolder6);
+			folder = (IEdmFolder6)vault.RootFolder.GetSubFolder("Test");
+ 
+			//Get user interface for user efudd
+			user = (IEdmUser9)UsrMgr.GetUser("efudd");
+ 
+			if ((user == null)) {
+				MessageBox.Show("No user set to add to group. Click Add users.");
+				return;
+			}
+ 
+			//Get the group interface for Management
+			mngmtGroup = (IEdmUserGroup8)UsrMgr.GetUserGroup("Management");
+ 
+			//Find out if the Management user group has 
+			//permission to update users and groups
+			if (mngmtGroup.HasSysRightEx(EdmSysPerm.EdmSysPerm_EditUserMgr)) {
+				mngmtGroup.SendMsg("PERMISSIONS INFO""Management group has permission to update groups and users."false);
+			} else {
+				mngmtGroup.SendMsg("PERMISSIONS INFO""Management group does not have permission to update groups and users."false);
+				return;
+			}
+ 
+			//Add efudd as member of Management for Test folder
+			EdmMemberFolder[] folderMembers = new EdmMemberFolder[1];
+			folderMembers[0].mlFolderID = folder.ID;
+			folderMembers[0].mlUserID = user.ID;
+			mngmtGroup.AddMembersWithFolders(folderMembers);
+ 
+			//Verify that efudd in Management group was added to 
+			//Test folder
+			object[] groups = null;
+			IEdmUserGroup8 groupName = null;
+			groups = user.GetGroupMembershipsInFolder(folder.ID);
+			int i = 0;
+			i = groups.GetUpperBound(0);
+			int j = 0;
+ 
+			groupName = (IEdmUserGroup8)groups[i];
+ 
+			IEdmPos5 UserGroupPos = default(IEdmPos5);
+			UserGroupPos = UsrMgr.GetFirstUserGroupPosition();
+			while (!UserGroupPos.IsNull) {
+				mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos);
+				if ((mngmtGroup.Name == groupName.Name))
+				{
+					if (j <= i) 
+					{
+						MessageBox.Show("User " + user.Name + " in the " + mngmtGroup.Name + " group was added to the " + folder.Name + " folder.");
+						j = j + 1;
+					}
+				}
+			}
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+	private void AddGroupMembersButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			if (!vault.IsLoggedIn) {
+				//Log into selected vault as the current user
+				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			UsrMgr = (IEdmUserMgr10)vault;
+ 
+			//Add efudd to Management group
+			mngmtGroup = (IEdmUserGroup8)UsrMgr.GetUserGroup("Management");
+ 
+			if ((mngmtGroup == null)) {
+				MessageBox.Show("Management group does not exist. Create a Management group.");
+				return;
+			}
+ 
+			user = (IEdmUser9)UsrMgr.GetUser("efudd");
+ 
+			if ((user == null)) {
+				MessageBox.Show("No user set to add to group. Click Add users.");
+				return;
+			}
+ 
+			int[] groupMbrIDs = new int[1];
+			groupMbrIDs[0] = user.ID;
+			mngmtGroup.AddMembers(groupMbrIDs);
+ 
+			MessageBox.Show("User " + user.Name + " added to " + mngmtGroup.Name + " group.");
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+ 
+		}
+	}
+ 
+     }
+}
+ +

+//Form1.Designer.cs

+
namespace AddRemoveUsersGroupsCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+		        this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+		        this.VaultsLabel = new System.Windows.Forms.Label();
+		        this.TraverseUsersButton = new System.Windows.Forms.Button();
+		        this.TraverseGroupsButton = new System.Windows.Forms.Button();
+		        this.TraverseGroupMembersButton = new System.Windows.Forms.Button();
+		        this.AddUsersButton = new System.Windows.Forms.Button();
+		        this.RemoveUsersButton = new System.Windows.Forms.Button();
+		        this.AddGroupMembersButton = new System.Windows.Forms.Button();
+		        this.RemoveGroupMembersButton = new System.Windows.Forms.Button();
+		        this.UserActionLabel = new System.Windows.Forms.Label();
+		        this.GroupActionLabel = new System.Windows.Forms.Label();
+		        this.AddGroupMembersWithFoldersButton = new System.Windows.Forms.Button();
+		        this.SuspendLayout();
+		        //
+		        //VaultsComboBox
+		        //
+		        this.VaultsComboBox.FormattingEnabled = true;
+		        this.VaultsComboBox.Location = new System.Drawing.Point(121, 11);
+		        this.VaultsComboBox.Margin = new System.Windows.Forms.Padding(2);
+		        this.VaultsComboBox.Name = "VaultsComboBox";
+		        this.VaultsComboBox.Size = new System.Drawing.Size(176, 21);
+		        this.VaultsComboBox.TabIndex = 10;
+		        //
+		        //VaultsLabel
+		        //
+		        this.VaultsLabel.AutoSize = true;
+		        this.VaultsLabel.Location = new System.Drawing.Point(12, 9);
+		        this.VaultsLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+		        this.VaultsLabel.Name = "VaultsLabel";
+		        this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+		        this.VaultsLabel.TabIndex = 11;
+		        this.VaultsLabel.Text = "Select vault view:";
+		        //
+		        //TraverseUsersButton
+		        //
+		        this.TraverseUsersButton.Location = new System.Drawing.Point(124, 59);
+		        this.TraverseUsersButton.Margin = new System.Windows.Forms.Padding(2);
+		        this.TraverseUsersButton.Name = "TraverseUsersButton";
+		        this.TraverseUsersButton.Size = new System.Drawing.Size(173, 25);
+		        this.TraverseUsersButton.TabIndex = 15;
+		        this.TraverseUsersButton.Text = "Traverse users";
+		        this.TraverseUsersButton.UseVisualStyleBackColor = true;
+                	        this.TraverseUsersButton.Click += new System.EventHandler(TraverseUsersButton_Click);
+		        //  
+		        //TraverseGroupsButton
+		        //
+		        this.TraverseGroupsButton.Location = new System.Drawing.Point(121, 166);
+		        this.TraverseGroupsButton.Margin = new System.Windows.Forms.Padding(2);
+		        this.TraverseGroupsButton.Name = "TraverseGroupsButton";
+		        this.TraverseGroupsButton.Size = new System.Drawing.Size(176, 25);
+		        this.TraverseGroupsButton.TabIndex = 16;
+		        this.TraverseGroupsButton.Text = "Traverse groups";
+		        this.TraverseGroupsButton.UseVisualStyleBackColor = true;
+                	        this.TraverseGroupsButton.Click += new System.EventHandler(TraverseGroupsButton_Click);
+		        //
+		        //TraverseGroupMembersButton
+		        //
+		        this.TraverseGroupMembersButton.Location = new System.Drawing.Point(121, 197);
+		        this.TraverseGroupMembersButton.Margin = new System.Windows.Forms.Padding(2);
+		        this.TraverseGroupMembersButton.Name = "TraverseGroupMembersButton";
+		        this.TraverseGroupMembersButton.Size = new System.Drawing.Size(176, 27);
+		        this.TraverseGroupMembersButton.TabIndex = 17;
+		        this.TraverseGroupMembersButton.Text = "Traverse group members";
+		        this.TraverseGroupMembersButton.UseVisualStyleBackColor = true;
+                	        this.TraverseGroupMembersButton.Click += new System.EventHandler(TraverseGroupMembersButton_Click);
+		        //
+		        //AddUsersButton
+		        //
+		        this.AddUsersButton.Location = new System.Drawing.Point(124, 89);
+		        this.AddUsersButton.Name = "AddUsersButton";
+		        this.AddUsersButton.Size = new System.Drawing.Size(173, 23);
+		        this.AddUsersButton.TabIndex = 18;
+		        this.AddUsersButton.Text = "Add users";
+		        this.AddUsersButton.UseVisualStyleBackColor = true;
+                	        this.AddUsersButton.Click += new System.EventHandler(AddUsersButton_Click);
+		        //
+		        //RemoveUsersButton
+		        //
+		        this.RemoveUsersButton.Location = new System.Drawing.Point(124, 118);
+		        this.RemoveUsersButton.Name = "RemoveUsersButton";
+		        this.RemoveUsersButton.Size = new System.Drawing.Size(173, 24);
+		        this.RemoveUsersButton.TabIndex = 19;
+		        this.RemoveUsersButton.Text = "Remove user";
+		        this.RemoveUsersButton.UseVisualStyleBackColor = true;
+                	        this.RemoveUsersButton.Click += new System.EventHandler(RemoveUsersButton_Click);
+		        //
+		        //AddGroupMembersButton
+		        //
+		        this.AddGroupMembersButton.Location = new System.Drawing.Point(121, 229);
+		        this.AddGroupMembersButton.Name = "AddGroupMembersButton";
+		        this.AddGroupMembersButton.Size = new System.Drawing.Size(176, 23);
+		        this.AddGroupMembersButton.TabIndex = 20;
+		        this.AddGroupMembersButton.Text = "Add group member";
+		        this.AddGroupMembersButton.UseVisualStyleBackColor = true;
+                	        this.AddGroupMembersButton.Click += new System.EventHandler(AddGroupMembersButton_Click);
+		        //
+		        //RemoveGroupMembersButton
+		        //
+		        this.RemoveGroupMembersButton.Location = new System.Drawing.Point(121, 287);
+		        this.RemoveGroupMembersButton.Name = "RemoveGroupMembersButton";
+		        this.RemoveGroupMembersButton.Size = new System.Drawing.Size(176, 25);
+		        this.RemoveGroupMembersButton.TabIndex = 21;
+		        this.RemoveGroupMembersButton.Text = "Remove group member and user";
+		        this.RemoveGroupMembersButton.UseVisualStyleBackColor = true;
+                	        this.RemoveGroupMembersButton.Click += new System.EventHandler(RemoveGroupMembersButton_Click);
+		        //
+		        //UserActionLabel
+		        //
+		        this.UserActionLabel.AutoSize = true;
+		        this.UserActionLabel.Location = new System.Drawing.Point(12, 59);
+		        this.UserActionLabel.Name = "UserActionLabel";
+		        this.UserActionLabel.Size = new System.Drawing.Size(69, 13);
+		        this.UserActionLabel.TabIndex = 22;
+		        this.UserActionLabel.Text = "User actions:";
+		        //
+		        //GroupActionLabel
+		        //
+		        this.GroupActionLabel.AutoSize = true;
+		        this.GroupActionLabel.Location = new System.Drawing.Point(12, 166);
+		        this.GroupActionLabel.Name = "GroupActionLabel";
+		        this.GroupActionLabel.Size = new System.Drawing.Size(76, 13);
+		        this.GroupActionLabel.TabIndex = 23;
+		        this.GroupActionLabel.Text = "Group actions:";
+		        //
+		        //AddGroupMembersWithFoldersButton
+		        //
+		        this.AddGroupMembersWithFoldersButton.Location = new System.Drawing.Point(121, 258);
+		        this.AddGroupMembersWithFoldersButton.Name = "AddGroupMembersWithFoldersButton";
+		        this.AddGroupMembersWithFoldersButton.Size = new System.Drawing.Size(176, 23);
+		        this.AddGroupMembersWithFoldersButton.TabIndex = 24;
+		        this.AddGroupMembersWithFoldersButton.Text = "Add group member to folder";
+		        this.AddGroupMembersWithFoldersButton.UseVisualStyleBackColor = true;
+                	        this.AddGroupMembersWithFoldersButton.Click += new System.EventHandler(AddGroupMembersWithFoldersButton_Click);
+		        //
+		        //Form1
+		        //
+		        this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+		        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+		        this.ClientSize = new System.Drawing.Size(333, 329);
+		        this.Controls.Add(this.AddGroupMembersWithFoldersButton);
+		        this.Controls.Add(this.GroupActionLabel);
+		        this.Controls.Add(this.UserActionLabel);
+		        this.Controls.Add(this.RemoveGroupMembersButton);
+		        this.Controls.Add(this.AddGroupMembersButton);
+		        this.Controls.Add(this.RemoveUsersButton);
+		        this.Controls.Add(this.AddUsersButton);
+		        this.Controls.Add(this.TraverseGroupMembersButton);
+		        this.Controls.Add(this.TraverseGroupsButton);
+		        this.Controls.Add(this.TraverseUsersButton);
+		        this.Controls.Add(this.VaultsComboBox);
+		        this.Controls.Add(this.VaultsLabel);
+		        this.Margin = new System.Windows.Forms.Padding(2);
+		        this.Name = "Form1";
+                	        this.Load += new System.EventHandler(AddRemoveUsersGroupsCSharp_Load);
+		        this.Text = "Add and remove users and groups";
+		        this.ResumeLayout(false);
+		        this.PerformLayout();
+ 
+	        }
+ 
+            #endregion
+ 
+	        internal System.Windows.Forms.ComboBox VaultsComboBox;
+	        internal System.Windows.Forms.Label VaultsLabel;
+	        internal System.Windows.Forms.Button TraverseUsersButton;
+	        internal System.Windows.Forms.Button TraverseGroupsButton;
+	        internal System.Windows.Forms.Button TraverseGroupMembersButton;
+	        internal System.Windows.Forms.Button AddUsersButton;
+	        internal System.Windows.Forms.Button RemoveUsersButton;
+	        internal System.Windows.Forms.Button AddGroupMembersButton;
+	        internal System.Windows.Forms.Button RemoveGroupMembersButton;
+	        internal System.Windows.Forms.Label UserActionLabel;
+	        internal System.Windows.Forms.Label GroupActionLabel;
+	        internal System.Windows.Forms.Button AddGroupMembersWithFoldersButton;
+ 
+        }
+ 
+} 
+
+

Back to top

+ +
+ + + + diff --git a/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_VBNET.htm b/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_VBNET.htm new file mode 100644 index 0000000..5063deb --- /dev/null +++ b/documentation/api_extracted/Add_and_Remove_User_and_Group_from_Folder_Example_VBNET.htm @@ -0,0 +1,758 @@ + + + +Add and Remove User and Group from Folder Example (VB.NET) + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add and Remove User and Group from Folder Example (VB.NET)

+

This example shows how to:

+
    +
  • add and remove users to and + from a vault.
  • +
  • add a user of a group to a + folder in a vault.
  • +
  • remove a user of a group + from a folder and from a vault.
  • +
+ +

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
+
'-------------------------------------------------------------------- 
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type AddRemoveUsersGroupsVBNET in Name.
+'     c. Click Browse and navigate to the folder where to create the project. 
+'     d. Click OK.
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the form, replace the code in Form1.Designer.vb with 
+'        this code.
+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that the following folder and group exist in the targeted vault:
+'     * Folder in the vault root named Test.
+'     * Group named Management.
+'  5. Click Debug > Start Debugging or press F5.
+'
+'Postconditions: 
+' 1. Displays a dialog.
+' 2. Select a vault.
+' 3. Perform these user actions. Click OK to close each message box.
+'    a. Click Traverse users.
+'       Displays a message box showing the users in the vault.
+'    b. Click Add users.
+'       Displays a message box informing you that rrabbit 
+'       and efudd were added as users to the vault.
+'    c. Click Traverse users to verify that rrabbit and efudd 
+'       were added to the vault.
+'       Displays a message box showing the users in the vault.
+'    d. Click Remove user.
+'       Displays a message box informing you that rrabbit was 
+'       removed from the vault. 
+'    e. Click Traverse users to verify that rrabbit was removed 
+'       from the vault.
+'       Displays a message box showing the users in the vault.
+' 4. Perform these group actions. Click OK to close each message box.
+'    a. Click Traverse groups.
+'       Displays a message box showing the groups in the vault.
+'    b. Click Traverse group members.
+'       Displays a message box showing the users in the groups 
+'       in the vault.
+'    c. Click Add group member.
+'       Displays a message box informing you that efudd
+'       was added to the Management group.
+'    d. Click Traverse group members to verify that
+'       efudd is shown in the Management group.
+'       Displays a message box showing the users in the 
+'       groups in the vault.
+'    e. Click Add group member to folder.
+'       Displays a message box informing you that efudd in
+'       the Management group was added to the Test folder.
+'    f. To verify the previous step:
+'       1. Open a File Explorer window.
+'       2. Right-click the Test folder in the selected vault
+'          and click Properties to open the Test Properties
+'          dialog box.
+'       3. Click Group Memberships.
+'       4. Click Management to verify that efudd is selected.
+'       5. Click OK to close the Test Properties dialog box.
+'    g. Click Remove group member and user.
+'       Displays a message box informing you that efudd was
+'       removed from the vault.
+'    h. Click Traverse group members to verify that
+'       efudd was removed from the Management group.
+'       Displays a message box showing the users in the 
+'       groups in the vault.
+'    i. Click Traverse users to verify that efudd was
+'       removed as a user from the vault.
+'       Displays a message box showing the users in the vault.
+' 5. Close the dialog.
+'    Sends two SOLIDWORKS PDM Professional messages
+'    to logged-in users and group members who have 
+'    permission to update users and groups. 
+' 6. To open these messages, click:
+'    * the SOLIDWORKS PDM Professional tray icon.
+'     - or -
+'    * Tools > Inbox in File Explorer.
+'--------------------------------------------------------------------
+'Form1.vb 
+ 
+Imports EPDM.Interop.epdm
+ 
+Public Class Form1
+ 
+    Dim vault As IEdmVault8
+    Dim vault1 As EdmVault5
+    Dim UserData(1) As EdmUserData2
+    Dim UsrMgr As IEdmUserMgr10
+    Dim user As IEdmUser9
+    Dim mngmtGroup As IEdmUserGroup8
+    Dim folderMembers(0) As EdmMemberFolder
+ 
+    Private Sub AddRemoveUsersGroupsVBNET_Load(ByVal sender As  _
+          System.ObjectByVal e As System.EventArgs) _
+          Handles MyBase.Load
+ 
+        vault1 = New EdmVault5()
+        vault = DirectCast(vault1, IEdmVault8)
+        Dim Views() As EdmViewInfo = {}
+ 
+        vault.GetVaultViews(Views, False)
+        VaultsComboBox.Items.Clear()
+        For Each View As EdmViewInfo In Views
+            VaultsComboBox.Items.Add(View.mbsVaultName)
+        Next
+        If VaultsComboBox.Items.Count > 0 Then
+            VaultsComboBox.Text = VaultsComboBox.Items(0)
+        End If
+    End Sub
+ 
+    Private Sub TraverseUsersButton_Click(ByVal sender As  _
+          System.ObjectByVal e As System.EventArgs) _
+          Handles TraverseUsersButton.Click
+        Try
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Traverse users
+            Dim Users As String = vbNullString
+            Dim UserPos As IEdmPos5
+            UserPos = UsrMgr.GetFirstUserPosition()
+            While Not UserPos.IsNull
+                user = UsrMgr.GetNextUser(UserPos)
+                Users = Users + user.Name + vbCrLf
+            End While
+            MessageBox.Show(Users, vault.Name + _
+               " Vault Users"MessageBoxButtons.OK, _
+               MessageBoxIcon.Information)
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Sub TraverseGroupsButton_Click(ByVal sender _
+          As System.ObjectByVal e As System.EventArgs) _
+          Handles TraverseGroupsButton.Click
+        Try
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Traverse groups
+            Dim Groups As String = vbNullString
+            Dim UserGroupPos As IEdmPos5
+            UserGroupPos = UsrMgr.GetFirstUserGroupPosition()
+            While Not UserGroupPos.IsNull
+                mngmtGroup = UsrMgr.GetNextUserGroup _
+                   (UserGroupPos)
+                Groups = Groups + mngmtGroup.Name + vbCrLf
+            End While
+            MessageBox.Show(Groups, vault.Name + _
+               " Vault Groups"MessageBoxButtons.OK, _
+               MessageBoxIcon.Information)
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Sub TraverseGroupMembersButton_Click( _
+          ByVal sender As System.Object, _
+          ByVal e As System.EventArgs) _
+          Handles TraverseGroupMembersButton.Click
+        Try
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Traverse group members
+            Dim Groups As String = vbNullString
+            Dim UserGroupPos As IEdmPos5
+            UserGroupPos = UsrMgr.GetFirstUserGroupPosition()
+            While Not UserGroupPos.IsNull
+                mngmtGroup = UsrMgr.GetNextUserGroup _
+                   (UserGroupPos)
+                Groups = Groups + mngmtGroup.Name + " Members:" _
+                   + vbCrLf
+                Groups = Groups + GetMembers(mngmtGroup)
+            End While
+            MessageBox.Show(Groups, vault.Name + _
+               " Vault Group Users", _
+            MessageBoxButtons.OK, MessageBoxIcon.Information)
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Function GetMembers(ByVal UserGroup _
+          As IEdmUserGroup8As String
+        Try
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            'Get group members
+            GetMembers = vbNullString
+            Dim Users As String = vbNullString
+            Dim UserPos As IEdmPos5
+            UserPos = UserGroup.GetFirstUserPosition()
+            While Not UserPos.IsNull
+                user = UserGroup.GetNextUser(UserPos)
+                Users = Users + " " + user.Name + vbCrLf
+            End While
+            GetMembers = Users
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+ 
+    End Function
+ 
+ 
+ 
+    Private Sub AddUsersButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddUsersButton.Click
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Add users 
+            UserData(0).mbsCompleteName = "Roger Rabbit"
+            UserData(0).mbsEmail = "rrabbit@animatedcharacters.com"
+            UserData(0).mbsInitials = "RR"
+            UserData(0).mbsUserName = "rrabbit"
+ 
+            UserData(1).mbsCompleteName = "Elmer J. Fudd"
+            UserData(1).mbsEmail = "efudd@animatedcharacters.com"
+            UserData(1).mbsInitials = "EJF"
+            UserData(1).mbsUserName = "efudd"
+ 
+            'Return user's interface in mpoUser
+            UserData(0).mlFlags = EdmUserDataFlags.Edmudf_GetInterface
+            UserData(1).mlFlags = EdmUserDataFlags.Edmudf_GetInterface
+ 
+            'Add these users even if other users in the array cannot be added
+            UserData(0).mlFlags += EdmUserDataFlags.Edmudf_ForceAdd
+            UserData(1).mlFlags += EdmUserDataFlags.Edmudf_ForceAdd
+ 
+            'Set permissions 
+            Dim perms(1) As EdmSysPerm
+            perms(0) = EdmSysPerm.EdmSysPerm_EditReportQuery
+            perms(1) = EdmSysPerm.EdmSysPerm_MandatoryVersionComments
+            UserData(0).moSysPerms = perms
+            UserData(1).moSysPerms = perms
+ 
+            'Add users to the vault
+            UsrMgr.AddUsers3(UserData, EdmUserType.Edmuser_PDM)
+ 
+            Dim msg As String = ""
+            For Each usr As EdmUserData2 In UserData
+                If usr.mhStatus = 0 Then
+                    msg += "Added user " + usr.mpoUser.Name _
+                        + ". ID = " _
+                        + usr.mpoUser.ID.ToString() + "." + vbCrLf
+                Else
+                    msg += "Error adding user " _
+                        + usr.mbsUserName + ". " _
+                        + vault.GetErrormessage(usr.mhStatus) + vbCrLf
+                End If
+            Next
+ 
+            MessageBox.Show(msg)
+ 
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+ 
+    End Sub
+ 
+    Private Sub RemoveUsersButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RemoveUsersButton.Click
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            'Remove rrabbit from the vault
+            UsrMgr = vault1.CreateUtility(EdmUtility.EdmUtil_UserMgr)
+            user = UsrMgr.GetUser("rrabbit")
+            If IsNothing(user) Then
+                MessageBox.Show("No user set to remove. Click Add users.")
+                Exit Sub
+            End If
+ 
+            Dim users(0) As Integer
+            users(0) = user.ID
+            UsrMgr.RemoveUsers(users)
+ 
+            MessageBox.Show("User " + user.Name + " removed.")
+ 
+            'Send message to all users with permission
+            'to update users and groups 
+            Dim UserPos As IEdmPos5
+            UserPos = UsrMgr.GetFirstUserPosition()
+            While Not UserPos.IsNull
+                Dim userWithPerm As IEdmUser9
+                userWithPerm = UsrMgr.GetNextUser(UserPos)
+                If userWithPerm.IsLoggedIn Then
+                    If userWithPerm.HasSysRightEx(EdmSysPerm. _
+                      EdmSysPerm_EditUserMgr) _
+                      Then
+                        userWithPerm.SendMsg("ALERT: user removed""User " + user.Name + " removed.")
+                    End If
+                End If
+            End While
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Sub RemoveGroupMembersButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RemoveGroupMembersButton.Click
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            If IsNothing(mngmtGroup) Then
+                MessageBox.Show("No group set from which to remove group member. Click Add group member.")
+                Exit Sub
+            End If
+ 
+            'Remove user efudd from Test folder, Management group, and vault
+            mngmtGroup.RemoveMembers(folderMembers)
+            user = UsrMgr.GetUser("efudd")
+ 
+            If IsNothing(user) Then
+                MessageBox.Show("No user set to remove from group. Click Add users.")
+                Exit Sub
+            End If
+ 
+            Dim users(0) As Integer
+            users(0) = user.ID
+            UsrMgr.RemoveUsers(users)
+ 
+            MessageBox.Show("User " + user.Name + " removed from group and vault.")
+ 
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Sub AddGroupMembersWithFoldersButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddGroupMembersWithFoldersButton.Click
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Add efudd to Test folder
+            Dim folder As IEdmFolder6
+            folder = vault.RootFolder.GetSubFolder("Test")
+ 
+            'Get user interface for user efudd
+            user = UsrMgr.GetUser("efudd")
+ 
+            If IsNothing(user) Then
+                MessageBox.Show("No user set to add to group. Click Add users.")
+                Exit Sub
+            End If
+ 
+            'Get the group interface for Management
+            mngmtGroup = UsrMgr.GetUserGroup("Management")
+ 
+            'Find out if the Management user group has 
+            'permission to update users and groups
+            If mngmtGroup.HasSysRightEx(EdmSysPerm.EdmSysPerm_EditUserMgr) Then
+                mngmtGroup.SendMsg("PERMISSIONS INFO""Management group has permission to update groups and users."False)
+            Else
+                mngmtGroup.SendMsg("PERMISSIONS INFO""Management group does not have permission to update groups and users."False)
+                Exit Sub
+            End If
+ 
+            'Add efudd as member of Management to Test folder
+            Dim folderMembers(0) As EdmMemberFolder
+            folderMembers(0).mlFolderID = folder.ID
+            folderMembers(0).mlUserID = user.ID
+            mngmtGroup.AddMembersWithFolders(folderMembers)
+ 
+            'Verify that efudd in Management was added to 
+            'Test folder
+            Dim groups() As Object
+            groups = user.GetGroupMembershipsInFolder(folder.ID)
+            Dim i As Integer = 0
+            i = groups.GetUpperBound(0)
+            Dim j As Integer = 0
+ 
+            Dim UserGroupPos As IEdmPos5
+            UserGroupPos = UsrMgr.GetFirstUserGroupPosition()
+            While Not UserGroupPos.IsNull
+                mngmtGroup = UsrMgr.GetNextUserGroup(UserGroupPos)
+                If (mngmtGroup.Name = groups(i).NameThen
+                    If j <= i Then
+                        MessageBox.Show("User " + user.Name + " in the " + mngmtGroup.Name + " group was added to the " + folder.Name + " folder.")
+                        j = j + 1
+                    End If
+                End If
+            End While
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+ 
+    Private Sub AddGroupMembersButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddGroupMembersButton.Click
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                                Me.Handle.ToInt32())
+            End If
+ 
+            UsrMgr = vault
+ 
+            'Add efudd to Management group
+            mngmtGroup = UsrMgr.GetUserGroup("Management")
+ 
+            If IsNothing(mngmtGroup) Then
+                MessageBox.Show("Management group does not exist. Create a Management group.")
+                Exit Sub
+            End If
+ 
+            user = UsrMgr.GetUser("efudd")
+ 
+            If IsNothing(user) Then
+                MessageBox.Show("No user set to add to group. Click Add users.")
+                Exit Sub
+            End If
+ 
+            Dim groupMbrIDs(0) As Integer
+            groupMbrIDs(0) = user.ID
+            mngmtGroup.AddMembers(groupMbrIDs)
+ 
+            MessageBox.Show("User " + user.Name + " added to " + mngmtGroup.Name + " group.")
+ 
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+ 
+        End Try
+    End Sub
+End Class
+ +
'Form1.Designer.vb
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.TraverseUsersButton = New System.Windows.Forms.Button()
+        Me.TraverseGroupsButton = New System.Windows.Forms.Button()
+        Me.TraverseGroupMembersButton = New System.Windows.Forms.Button()
+        Me.AddUsersButton = New System.Windows.Forms.Button()
+        Me.RemoveUsersButton = New System.Windows.Forms.Button()
+        Me.AddGroupMembersButton = New System.Windows.Forms.Button()
+        Me.RemoveGroupMembersButton = New System.Windows.Forms.Button()
+        Me.UserActionLabel = New System.Windows.Forms.Label()
+        Me.GroupActionLabel = New System.Windows.Forms.Label()
+        Me.AddGroupMembersWithFoldersButton = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(121, 11)
+        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(176, 21)
+        Me.VaultsComboBox.TabIndex = 10
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(12, 9)
+        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 11
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'TraverseUsersButton
+        '
+        Me.TraverseUsersButton.Location = New System.Drawing.Point(124, 59)
+        Me.TraverseUsersButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.TraverseUsersButton.Name = "TraverseUsersButton"
+        Me.TraverseUsersButton.Size = New System.Drawing.Size(173, 25)
+        Me.TraverseUsersButton.TabIndex = 15
+        Me.TraverseUsersButton.Text = "Traverse users"
+        Me.TraverseUsersButton.UseVisualStyleBackColor = True
+        '
+        'TraverseGroupsButton
+        '
+        Me.TraverseGroupsButton.Location = New System.Drawing.Point(121, 166)
+        Me.TraverseGroupsButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.TraverseGroupsButton.Name = "TraverseGroupsButton"
+        Me.TraverseGroupsButton.Size = New System.Drawing.Size(176, 25)
+        Me.TraverseGroupsButton.TabIndex = 16
+        Me.TraverseGroupsButton.Text = "Traverse groups"
+        Me.TraverseGroupsButton.UseVisualStyleBackColor = True
+        '
+        'TraverseGroupMembersButton
+        '
+        Me.TraverseGroupMembersButton.Location = New System.Drawing.Point(121, 197)
+        Me.TraverseGroupMembersButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.TraverseGroupMembersButton.Name = "TraverseGroupMembersButton"
+        Me.TraverseGroupMembersButton.Size = New System.Drawing.Size(176, 27)
+        Me.TraverseGroupMembersButton.TabIndex = 17
+        Me.TraverseGroupMembersButton.Text = "Traverse group members"
+        Me.TraverseGroupMembersButton.UseVisualStyleBackColor = True
+        '
+        'AddUsersButton
+        '
+        Me.AddUsersButton.Location = New System.Drawing.Point(124, 89)
+        Me.AddUsersButton.Name = "AddUsersButton"
+        Me.AddUsersButton.Size = New System.Drawing.Size(173, 23)
+        Me.AddUsersButton.TabIndex = 18
+        Me.AddUsersButton.Text = "Add users"
+        Me.AddUsersButton.UseVisualStyleBackColor = True
+        '
+        'RemoveUsersButton
+        '
+        Me.RemoveUsersButton.Location = New System.Drawing.Point(124, 118)
+        Me.RemoveUsersButton.Name = "RemoveUsersButton"
+        Me.RemoveUsersButton.Size = New System.Drawing.Size(173, 24)
+        Me.RemoveUsersButton.TabIndex = 19
+        Me.RemoveUsersButton.Text = "Remove user"
+        Me.RemoveUsersButton.UseVisualStyleBackColor = True
+        '
+        'AddGroupMembersButton
+        '
+        Me.AddGroupMembersButton.Location = New System.Drawing.Point(121, 229)
+        Me.AddGroupMembersButton.Name = "AddGroupMembersButton"
+        Me.AddGroupMembersButton.Size = New System.Drawing.Size(176, 23)
+        Me.AddGroupMembersButton.TabIndex = 20
+        Me.AddGroupMembersButton.Text = "Add group member"
+        Me.AddGroupMembersButton.UseVisualStyleBackColor = True
+        '
+        'RemoveGroupMembersButton
+        '
+        Me.RemoveGroupMembersButton.Location = New System.Drawing.Point(121, 287)
+        Me.RemoveGroupMembersButton.Name = "RemoveGroupMembersButton"
+        Me.RemoveGroupMembersButton.Size = New System.Drawing.Size(176, 25)
+        Me.RemoveGroupMembersButton.TabIndex = 21
+        Me.RemoveGroupMembersButton.Text = "Remove group member and user"
+        Me.RemoveGroupMembersButton.UseVisualStyleBackColor = True
+        '
+        'UserActionLabel
+        '
+        Me.UserActionLabel.AutoSize = True
+        Me.UserActionLabel.Location = New System.Drawing.Point(12, 59)
+        Me.UserActionLabel.Name = "UserActionLabel"
+        Me.UserActionLabel.Size = New System.Drawing.Size(69, 13)
+        Me.UserActionLabel.TabIndex = 22
+        Me.UserActionLabel.Text = "User actions:"
+        '
+        'GroupActionLabel
+        '
+        Me.GroupActionLabel.AutoSize = True
+        Me.GroupActionLabel.Location = New System.Drawing.Point(12, 166)
+        Me.GroupActionLabel.Name = "GroupActionLabel"
+        Me.GroupActionLabel.Size = New System.Drawing.Size(76, 13)
+        Me.GroupActionLabel.TabIndex = 23
+        Me.GroupActionLabel.Text = "Group actions:"
+        '
+        'AddGroupMembersWithFoldersButton
+        '
+        Me.AddGroupMembersWithFoldersButton.Location = New System.Drawing.Point(121, 258)
+        Me.AddGroupMembersWithFoldersButton.Name = "AddGroupMembersWithFoldersButton"
+        Me.AddGroupMembersWithFoldersButton.Size = New System.Drawing.Size(176, 23)
+        Me.AddGroupMembersWithFoldersButton.TabIndex = 24
+        Me.AddGroupMembersWithFoldersButton.Text = "Add group member to folder"
+        Me.AddGroupMembersWithFoldersButton.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(333, 329)
+        Me.Controls.Add(Me.AddGroupMembersWithFoldersButton)
+        Me.Controls.Add(Me.GroupActionLabel)
+        Me.Controls.Add(Me.UserActionLabel)
+        Me.Controls.Add(Me.RemoveGroupMembersButton)
+        Me.Controls.Add(Me.AddGroupMembersButton)
+        Me.Controls.Add(Me.RemoveUsersButton)
+        Me.Controls.Add(Me.AddUsersButton)
+        Me.Controls.Add(Me.TraverseGroupMembersButton)
+        Me.Controls.Add(Me.TraverseGroupsButton)
+        Me.Controls.Add(Me.TraverseUsersButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Margin = New System.Windows.Forms.Padding(2)
+        Me.Name = "Form1"
+        Me.Text = "Add and remove users and groups"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents TraverseUsersButton As System.Windows.Forms.Button
+    Friend WithEvents TraverseGroupsButton As System.Windows.Forms.Button
+    Friend WithEvents TraverseGroupMembersButton As System.Windows.Forms.Button
+    Friend WithEvents AddUsersButton As System.Windows.Forms.Button
+    Friend WithEvents RemoveUsersButton As System.Windows.Forms.Button
+    Friend WithEvents AddGroupMembersButton As System.Windows.Forms.Button
+    Friend WithEvents RemoveGroupMembersButton As System.Windows.Forms.Button
+    Friend WithEvents UserActionLabel As System.Windows.Forms.Label
+    Friend WithEvents GroupActionLabel As System.Windows.Forms.Label
+    Friend WithEvents AddGroupMembersWithFoldersButton As System.Windows.Forms.Button
+ 
+End Class
+ + + + + diff --git a/documentation/api_extracted/AddinMenuItems.gif b/documentation/api_extracted/AddinMenuItems.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe4a2e0251e3b1e9cdb21daf9e8b7f1d19ef604c GIT binary patch literal 2932 zcmeHD`9IVP7yiy<&00dZGI5I*67JY8&85gN)+9@rQudJSQ6}*nB2vaS*_Sbc$TEX4 z;uc~^WQ$~pJC#~iU+=B2_*`yVjC_R*QRzrQ)cH=GdPy98jqXfR zB!zhVQR(`byMk=2nj{Cc=KO}aTIJGsk4>Li4hy*6;>u(xT2V9|+6^G((*BfMk2b9I zxnnLN=J7z*@g+3k@#$2FERpVr=nycTRx)XZt8}dK8Mbj(8mUDeuv1jAcQUTZUGe>b zxXw;E-Lm90*=i|aBhJ-j6ueB7k!4NjBtXt01P6okV=+Yr@_Y3Nq(a@@&&o1Af0O@P;$`Ioqb?ZW53ygsW85xn9P=Mxnkn!dh8~@c zFcXt2JgCrJHt%B@c5)Jg^o^B>OLH}Err1wmi-UgGYI1vE0gd?TKdUHL_TnuE`y!g&TOsRHbfday&I=+L1i|kSO}3O$(v33~?S&XoH7m9f`5PTa5LLbIcM|P-8SK<`Sj_jDm(p<#)dm? z8#SR%u12Zn6>Fy7y;2~5!FP$C3)c@WPW-H{Km5{iO6wsxF~>bzJC{g*k+sUx>eSCq ziY8XHzbBGv$~2ZgxAqu^QlYPxjmwxDhV2WCQHix(9{rs9-&<^@MnH`kai}JC#Q+BF zFQxLYo%79D&OZ=7LKPO5d^{vlz>jh45QCF2NQc4vCtY%-YF36NbX2b%_K$!CqTU&+ z-Y4EFgp|^g3C(nv=(uX<0>090Pp>jV9CXl;PZ?hMWecXO zcM`XDf6nq-p}gv4ec@-Ie*GM7IKzCTG&R-u7sYHVkh1zb5IK9#;kX6RvskMcrE&Y$ zL%HES`a{?VY3=Es&?d@4X;oy|e33HeSLC^Ltr+}J_A75QA`3f^p6e#vTg8F;wO&IiN@5?wz1mcr`=LMVcXtihnC%n@_Z6v9Q- zDBH($5xpb*1T$S zp`pT&pYRV~mLnVqHqKJRMam(B^z%e}NYa%*&vGhw{-@CeNXKa8h=yaouc^m|b%S>U z(TPKMDwO|HpPW%C-l}Fd&^-JmAinA@ie%n%%7$DQ|x&7ua!ARvACQ9%S2@GKE=-x7#z z`@X6k=oA|ZydBNENVVd_8GhZ_#t9u-LIA(dVEA`{j)R^xapTK3lvc>?KU022$4t%u zqDR}L2mwAujOq1hSW9y$H8K(5E`8x>yD?Vd(ScY%zGkyY?O4FUSy#7%FhF3JLzNVV z-R1`(J4`jS#H{dBDx;h4SFYEF+#|WlR+3vP?gT~pSjGL=mZ98e3<`Wi`gZ=Q)5opd zH+v5op3cJSw)!WKgNJQtJ3$*UZy(Wht^9f?fnm1Dv8FlUww$)oL0;Owkri&@rC z=3r15JN-Lv5pialKVINxkYAs-QE}rZV{e^|IYabJ`gYgTYOkV^WDo7knE?rn&=M~r zA9<_+Ib?0Mq9gfnR4|Nk&8#X>JsRN8XdV;RqvD@et*rW9gB&biiq7wRj}plG*!AO0 zf(`835uIyL)X7rd}r+3)jM1&`fRW^Ri~=O!9u{4K&fhY3#h6{j3trgP`?#k;3lMWt--qOxk*x k;qG6ysm;UX)*PbiF8$g-^A|FWQ~h9f8J+2m006`P0CrKlYybcN literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AdminAddIns.gif b/documentation/api_extracted/AdminAddIns.gif new file mode 100644 index 0000000000000000000000000000000000000000..66c61d7a6924abc6b549c0d137bd9d6ce7d6f76f GIT binary patch literal 11272 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/AdminDlg.gif b/documentation/api_extracted/AdminDlg.gif new file mode 100644 index 0000000000000000000000000000000000000000..573248a766cf6b4a3ae94a618de9047422ac4e97 GIT binary patch literal 14338 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 + + +Administrate Add-ins Dialog Box + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Add-in Properties Dialog Box

+ + + +
+ +

+ +After creating an add-in DLL, you need to add it to the file vault. The +permission to add or remove an add-in is configured in the User Manager of the +SOLIDWORKS PDM Administration tool. The add-in properties are set in the +Properties dialog box that appears when you right-click an add-in in the +Administration Tool and select Open.

+

Read the SOLIDWORKS PDM +Administration Guide to learn more about adding and removing add-ins to and from +file vaults.

+ +

Read more +about creating add-ins in Getting Started.

+ +
+ + + + diff --git a/documentation/api_extracted/ApiHelp.css b/documentation/api_extracted/ApiHelp.css new file mode 100644 index 0000000..bdbe25b --- /dev/null +++ b/documentation/api_extracted/ApiHelp.css @@ -0,0 +1,313 @@ +/*=(===============================================================)*/ + +/*=(===============================================================)*/ +/*=(Created with RoboEditor.)=======================================*/ +/*=(===============================================================)*/ + +BODY { + font-family: Arial; + background-color: #ffffff; +} + +H1 { + font-weight: bold; + font-size: 10pt; + font-family: Verdana, sans-serif; + border-left-style: Inset; + border-right-style: Inset; + border-top-style: none; + border-bottom-style: none; + padding-top: 4pt; + padding-bottom: 4pt; + border-left-color: ##ccccff; + border-right-color: ##ccccff; + border-top-color: ##ccccff; + border-bottom-color: ##ccccff; + margin-top: -15pt; + text-indent: .1in; + border-top-width: 1px; + border-bottom-width: 1px; + background-color: #ccccff; + color: #0000b9; + border-left-width: 1px; + border-right-width: 1px; + margin-bottom: 10pt; + vertical-align: Baseline; + line-height: 12pt; + margin-left: -10pt; + margin-right: -10pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H1 { + font-weight: bold; + font-size: 10pt; + font-family: Verdana, sans-serif; + text-indent: .1in; + color: #0000b9; + line-height: 12pt; +} +/*}}end!kadov=======================================================*/ + + + +H2 { + font-weight: bold; + font-family: Verdana, sans-serif; + font-size: 8pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H2 { + font-weight: bold; + font-family: Verdana, sans-serif; + font-size: 8pt; +} +/*}}end!kadov=======================================================*/ + + + +H3 { + font-weight: bold; + font-size: 8pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H3 { + font-weight: bold; + font-size: 8pt; +} +/*}}end!kadov=======================================================*/ + + + +H4 { + font-weight: bold; + font-size: 8.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H4 { + font-weight: bold; + font-size: 12.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H5 { + font-weight: bold; + font-size: 12.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H5 { + font-weight: bold; + font-size: 10.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H6 { + font-weight: bold; + font-size: 10.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H6 { + font-weight: bold; + font-size: 8.0pt; +} +/*}}end!kadov=======================================================*/ + + + +P { + font-family: Verdana, sans-serif; + font-size: 8pt; + margin-left: 0pt; + margin-top: 6pt; + margin-bottom: 6pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P { + font-family: Verdana, sans-serif; + font-size: 8pt; +} +/*}}end!kadov=======================================================*/ + + + +A.expandspot { + color: #008000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.expandtext { + font-style: italic; + font-weight: normal; + color: #ff0000; +} + +A.dropspot { + cursor: hand; + color: #008000; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +A.glossterm { + color: #800000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.glosstext { + font-style: italic; + font-weight: normal; + color: #0000ff; +} + +OL, +UL { + margin-top: 0px; + margin-bottom: 0px; +} + +P.CodePlain { + font-family: "Courier New", monospace; + margin-left: 2pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CCodePlain { + font-family: "Courier New", monospace; +} +/*}}end!kadov=======================================================*/ + + + +P.CodeBold { + font-weight: bold; + font-style: normal; + font-family: "Courier New", monospace; + margin-left: 2pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CCodeBold { + font-weight: bold; + font-style: normal; + font-family: "Courier New", monospace; +} +/*}}end!kadov=======================================================*/ + + + +P.CodeIndent { + font-weight: bold; + font-style: normal; + font-family: "Courier New", monospace; + margin-left: 12pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CCodeIndent { + font-weight: bold; + font-style: normal; + font-family: "Courier New", monospace; +} +/*}}end!kadov=======================================================*/ + + + +P.APICODE { + font-size: 10pt; + font-family: "Courier New", monospace; +} + +/* Applies to the project title in the first row of the upper table in the + non-scrolling header region. */ +span#projecttitle +{ + font-family: Verdana, san-serif; + font-size: 90%; + color: #0000b9; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#pagetitle +{ + font-family: Verdana, san-serif; + font-size: 10pt; + font-weight: bold; + color: #0000b9; +} + + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CAPICODE { + font-size: 9pt; + font-family: "Courier New", monospace; +} +/*}}end!kadov=======================================================*/ + + + + +/*=(===============================================================)*/ + +.NewStyle +{ + font-family: 'verdana'; + font-size: 8px; +} +.NewStyle +{ + font-family: 'verdana'; +} +.NewStyle +{ + color: Teal; +} +.NewStyle +{ + font-size: 10px; +} \ No newline at end of file diff --git a/documentation/api_extracted/Assign_Columnset_To_Folder_Before_Browsing_Addin_Example_VBNET.htm b/documentation/api_extracted/Assign_Columnset_To_Folder_Before_Browsing_Addin_Example_VBNET.htm new file mode 100644 index 0000000..53f1759 --- /dev/null +++ b/documentation/api_extracted/Assign_Columnset_To_Folder_Before_Browsing_Addin_Example_VBNET.htm @@ -0,0 +1,870 @@ + + + +Assign Columnset to Folder before Browsing Add-in Example (VB.NET) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Assign Columnset to Folder before Browsing Add-in Example (VB.NET)

+

This example shows how to create an add-in that triggers a +pre-browse event and assigns a columnset to a folder before it is browsed.

+ +

+ +'--------------------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio +as Administrator.
+' 2. Click File > New > Project > Visual Basic > Class Library (.NET Framework).
+' 3. Select .NET Framework 4.5 +or later in the dropdown.
+' 4. Type ClassLibrary1 in Name.
+' 5. Click Browse and navigate to the folder where to create the project.
+' 6. Click OK
+ +' 7. Right-click the project name in the Solution Explorer and click Add Reference
+' 8. In the Add Reference dialog:   
+'    a. Add the +SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
+'       left-side panel, click +EPDM.Interop.epdm.dll
+'       and click OK).

+'    b. Click Close.
+ +' 9. Right-click the project name in the Solution Explorer and click Properties.
+'10. In the Properties window:
+'    a. On the Application tab, click Assembly Information.
+'    b. De-select Make assembly COM-Visible.
+'    c. On the Compile tab, +select x64 in the Target CPU dropdown, de-select Prefer 32-bit, and select Register for COM interop.
+'11. Save the project.

+'12. Copy the code below to +your project's Class1.vb.
+'13.
To populate the GUID + attribute, click Tools > Create GUID in the IDE,
+'    select GUID Format + 6, click Copy, and click Exit. Replace + <
Guid("")> +with
+'    the copied string.
+'14. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
+'    and log in as Admin.
+'15. Under vault_name, right-click Add-ins, and click New Add-in.
+ +'    a. Navigate to the bin +directory of your built project.
+'    b. Select ClassLibrary1.dll.
+'    c. Click Open.
+'    d. Click OK.
+
+'16. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
+'17. Expand Columns under the vault_name in the Admin +Tool.
'18. Right click File List Columns and select +New Column Set.
'19. Change the order of existing columns or add a +custom column and name the new column set.
'20. Click
+OK.

+'21. Change the ID parameter in SetColumnSetID of the code +to match your new column set ID. As none of the other folders and column sets +exist, the code will only execute the Case Else section.
'22. Save the +project.
'23. Select Release in the Solution Configurations +dropdown and x64 in the Solution Platforms dropdown.

+'24. Click Build > Build Solution.
+'
+' Postconditions: 
+' 1. Open File Explorer on a view of vault_name and +log in as Admin.
+' 2. This add-in triggers a pre-browse event before the root folder is +browsed.
' 3. Click OK on each dialog as it appears.
' 4. +This add-in registers and loads +a user's column set into the root folder before it is browsed.

+ +'---------------------------------------------------------------------------------------
+
+Imports EPDM.Interop.epdm
+Imports System.Runtime.InteropServices
+
+<Guid("")>
+<ComVisible(True)> 
+

+

+ +

+

+Public + + +Class + + +APIs

+

+ +    +Implements IEdmAddIn5

+

+ 

+

+ +    +Public vault +As IEdmVault22

+

+ +    +Dim ppocolumnset +As +EdmColumnSet

+

+ +    +Dim ppocolumnsets +As +EdmColumnSet()

+

+ 

+

+ +    +Public +Sub GetAddInInfo(ByRef +poInfo +As +EdmAddInInfo, + +ByVal +poVault +As +IEdmVault5, + +ByVal +poCmdMgr +As +IEdmCmdMgr5) + +Implements +IEdmAddIn5.GetAddInInfo

+

+ +        + +Try

+

+ +            +poInfo.mbsAddInName = + +"VB.NET Add-In"

+

+ +            +poInfo.mbsCompany = + +"Dassault Systemes"

+

+ +            +poInfo.mbsDescription = + +"Responding to folder browse events"

+

+ +            +poInfo.mlAddInVersion = Now.ToString("yyyyMMdd")

+

+ +            +poInfo.mlRequiredVersionMajor = 29

+

+ +            +poInfo.mlRequiredVersionMinor = 0

+

+ +            +poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreBrowseFolder)

+

+ +        + +Catch ex +As +Runtime.InteropServices.COMException

+

+ +            +MsgBox("HRESULT += 0x" + ex.ErrorCode.ToString("X") ++ vbCrLf + ex.Message)

+

+ +        + +Catch ex +As Exception

+

+ +            +MsgBox(ex.Message)

+

+ +        + +End +Try

+

+ +    +End +Sub

+

+ 

+

+ 

+

+ +    +Public +Sub OnCmd(ByRef +poCmd +As +EdmCmd, + +ByRef +ppoData +As +EdmCmdData()) + +Implements +IEdmAddIn5.OnCmd

+

+ 

+

+ +        + +Dim FolderID +As +Integer

+

+ +        + +Dim AffectedFile +As +EdmCmdData

+

+ +        + +Dim ID +As +Integer

+

+ +        + +Dim Name +As +String

+

+ +        +Name = +" "

+

+ 

+

+ +        +MsgBox("poCmd.meCmdType = " ++ poCmd.meCmdType.ToString)

+

+ 

+

+ +        + +If poCmd.meCmdType = +EdmCmdType.EdmCmd_PreBrowseFolder +Then

+

+ 

+

+ +            +vault = poCmd.mpoVault

+

+ 

+

+ +            +Getcolumnsets(ID, Name)

+

+ +            +vault.SetColumnSetID(ID)

+

+ 

+

+ +            + +For +Each AffectedFile +In +ppoData

+

+ +          +      FolderID = AffectedFile.mlObjectID1

+

+ 

+

+ +                + +'Set the column set for +the folder to be browsed

+

+ +                + +Select + + +Case +FolderID

+

+ +                    + + +Case +3

+

+ +                        + + +'vault.SetColumnSetID(5)

+

+ +                        + + +'GetCurrentColumnSet(ID, Name)

+

+ +                        + + +'MsgBox("Browsing Folder ID=3")

+

+ +                    + + +Case +4

+

+ +                        'vault.SetColumnSetID(6)

+

+ +                        + + +'MsgBox("Browsing Folder ID=4")

+

+ +                    + + +Case +5

+

+ +                        + + +'vault.SetColumnSetID(7)

+

+ +                        + + +'GetCurrentColumnSet(ID, Name)

+

+ +                        + + +'MsgBox("Browsing Folder ID=5")

+

+ +                    + + +Case +6

+

+ +                        + + +'vault.SetColumnSetID(8)

+

+ +                    +    'MsgBox("Browsing Folder ID=6")

+

+ +                    + + +Case +7

+

+ +                        + + +'vault.SetColumnSetID(9)

+

+ +                +        'GetCurrentColumnSet(ID, +Name)

+

+ +                        + + +'MsgBox("Browsing Folder ID=7")

+

+ +                    + + +Case +8

+

+ +                        'vault.SetColumnSetID(10)

+

+ +                        + + +'MsgBox("Browsing Folder ID=8")

+

+ +                    + + +Case + + +Else

+

+ +                        +GetCurrentColumnSet(ID, Name)

+

+ +                        +MsgBox("Browsing +Folder ID=" + FolderID.ToString())

+

+ 

+

+ +                + +End +Select

+

+ +            + +Next

+

+ +        + +End +If

+

+ +    +End +Sub

+

+ 

+

+ +    +Public +Sub GetCurrentColumnSet(ByRef +ColumnID +As + + +Integer, + + +ByRef +ColumnName +As + + +String)

+

+ 

+

+ +        +vault.GetCurrentColumnSet(ppocolumnset)

+

+ +        +ColumnName = ppocolumnset.mbsColumnSetName

+

+ +        +ColumnID = ppocolumnset.mlColumnSetID

+

+ +        +MsgBox("Current column set ID += " + ColumnID.ToString + +" Current column set name = " + ColumnName)

+

+ 

+

+ +    +End +Sub

+

+ 

+

+ +    +Public +Sub Getcolumnsets(ByRef +ColumnID +As + + +Integer, + + +ByRef +ColumnName +As + + +String)

+

+ +        +vault.GetColumnSets(ppocolumnsets)

+

+ +        + +Dim item +As EdmColumnSet

+

+ +        + +For +Each item +In ppocolumnsets

+

+ +            +ColumnName = item.mbsColumnSetName

+

+ +            +ColumnID = item.mlColumnSetID

+

+ +            MsgBox("User's column set ID += " + ColumnID.ToString + +" User's column set name = " ++ ColumnName)

+

+ +        + +Next

+

+ 

+

+ +    +End +Sub

+

+ 

+

+End +Class

+

+

+

Back to top

+ +

 

+ + + + diff --git a/documentation/api_extracted/BatchAddFiles.gif b/documentation/api_extracted/BatchAddFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..987c94057e6224061491cc795273f2fe66754121 GIT binary patch literal 10015 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 C4%ZR@ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/BatchChangeFiles.gif b/documentation/api_extracted/BatchChangeFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..142bfaf659634e217d5f647dd1e5e494b91d902c GIT binary patch literal 8247 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/BatchDeleteFiles.gif b/documentation/api_extracted/BatchDeleteFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..0733fc3107616f5db403515dea04a9cd157df092 GIT binary patch literal 8813 zcmV-zB9h%lNk%w1VJra=0e1iZA^8LW00000EC2ui04xC!0f+wp{{R30001)p089V? zRsaB8003YB0Du58G5|4p05ydGNu&T$oB&vx0AQ;CdAkr05D^p?78@QNBq|~)Ff#xE zGXOI(09i9LGcq!MHejnYVz)7Rx;BT0HH4@&h08OV|37ZMJ$tQ8002w?Q%V4gLK_rL zEGAD#M^I8!ORC~l002=X9aKL%Q&?qInb%pJ-CqCzTmUpz09Ror99b?VUNrz*VrN`y zd0LObTA2P{smoug?^>>fW-TR$;pMx?u#1}i9pH^k!@~^i;Iqwppu}ij<)}jV_TMT z36pkulb4&4tizSC$ebYvo*)mMRREcuqnx+Qnz?$P!Qz?L)1KD)o7&oyk}XzXjr{; zXu5haxrP9@j1s%Md%Vory4jk#+1bF<=)2hVyxP0H+xf&P3CB!1$67|lX;{j5XTx=9 z#({Rmmlnai|G>b&#ozePK{U==M$T+j%!W11hJeqHiPE7N&!C*nt5ndesm`sf%*=++ z(9p=$;LqIX%iizJ5DH*_v12s;1$wt>C$|+`W9_!i?Y9w%*pY+}zyY)BWJ-^W}|! z<(!n~qnqW($K&JU>Fem`?DFF7`|O>Q?yaQlx2^5Wh3@XE@bK{O_51LvVEx{O{phUr z_xb+-|NFre`^G8z%RBtgPyE(o|K9)p{{9I5009UD07Zhqg9sB&Sje!U!-o(fN}Ncs zqQ#3CGiuz(F=Il69Yb;)GH~D-2@~ANTgj5;y_Ya!%8WVh-n^PGZ|dC1v!~CWKx+ma zO0=laqey$gym{}&zo$^6N}W2@4b`hypPI?awX0VY_uNpJP{d>eH{^(6!h~uqTU2o4 z%AHGBZn0v<^6JfNtFJ9%fA{VUJlHScymb@L&BVB|N3OK#)2LIQUdLsg>esN>tr5qqw(Z*Qa_ipBySH!Mx4EHf!Oqw^IugnPkl?16 zUAuS%OP@|X@3HIHvuoeZ{aE$shHd_V9#0-ss`KYHrK+6%^7_f>|D4; zy{^Ci|NimEPHUwBXyAeWu`}B?3^urpI}k=F;e-@c7@>m<4mXc?)zC2k07Fbb&RgGE z*Ijniq^RPGEVk(4i!io$;&u1cXk&P(^hMu}Jkqzyk3g<+>6XTg^rm5zO+!5(!jXlPBUXX9rc%qT} z!KUYF1Mc@98ZHDX=%8pAs31DgM03ufj5g|M8-liR4y1uf>gc76Mx$YhX3~Ly1ms+T ziivBMYU-(|mbqP>tOhBkeEvcH$ZB6>9%JM>Y3@l5Yk8XHLRK!MwhkGHCTgrX$R=w} zJIuE8>r*a33Y81ZDyyuqiEhd%I}=DCkEo=knxZx2TEot{=%QQhy6m!BO}p@x%c3=D zt~x7`vHmD$zOu4f>#ZdQoYy*0tRvmCSGj=9!VIr720FY%%nLLWXJc_TE^8S&OG<*^SSHBXz#r>^80Ek z{Pyeboi40%*V9l(Ep^o76fE_#g9Zw%)DEMw%h$V*42{SjXUwrwE_@8K$Rm>s_Q@%8 zIuFa>zMNt$E7sD>{@#1fG78?~;{5aAgcqJ}&}?Ey^nFPm9beM-GEL6ZlviF%)lNt4 z!b&bcy}3M{Q!NHMvd9AVGpJ*u`s&z#%rQ%8Ys@<9s6PX?EZm^1^4#9m4Kv_(_hQfR z_SEyYish;^M*z$ZkO$A;kT8hhIjge=^8q~YO#oO#KmE?+3a$9!ei`lfd`SygXLm*x z6Uh7U2SP;FSrc)|{rD3@L^1f|?}9q&a6$k67r_4Aj~Gk<1|k-S2u?VV6Rn6~E0{sS z3Nk|r1Pq`SEJ#5Kw&H=DU?3uRVS>1oiFYlt&fW4RyyDfPAB+GVx!7Sn6`boA+}oM= zcJ_+}n5$?0HPqP-!52OkX@`7$G2i)o#IIRx$4JEZgA}Lu2ZT|@1@U{I{@j;E7o;N{ z^!uU!4TwNr9O8^;q{IU~cnb?+@QZMC!3HbnK@d^`jfdbx1x&cI-nooSHLJxe>hVH; z?1K$5G*=LB=tCh&kB5x};vQ_6vmp`@M&nzY66LgsS2fXz*nuJyr}(*+v;>P;++r33 z;R12E@|Cb0WB(Ai4Ky-vjS_TYD_yxuambO55(FUw&!|T}-h*y`G*c~D!HP*3q86j* zhavTm4@ABTXNzQq_pHY}AMOx`0T{p_z{$O3B!PJkNLMz!_s!-_Z+ih)fGrYt3{5uf zXq*1Xr#^WEIZ%pnlvRYIK;yVdRd$gY2u-L$WtqPOim-vWbOkPOQ9&0ZRE`!!s0%1K zQCzqpg2H4V3604zFsU$RlX!A>K671-q zHG~>Ob7BEq++>~#*eN}q0=0*#AVD7JMNb;FDt-ETl|HxH$sK*tU+r6^{OC6*A_Rhr z`!nDrq(D|dNkOd$1co9MQHi=%q7!&^g+x0#(JcsS3%KxWpa9EPy}AOgov>>q6yb{! z?yjVNyqh7+ag8w4f(@80gJx%X%^7CXr;<1)_8yQ^>;>SbLIuYNOiM|dww9@b5dMW} ze+rHgL;{nUd=pkzflsdbmY?~W)jV!M47D2fxcw^z5ypYs<{GdVPT+v0B!xq^4#1287J=HSr3Sz$MCV7PBTBn(bYrc^+ zig5!j5Q7{qI?b7)&?{ZRMhxlbhO(Ev?B6*1+00fpF!*o+aj;`|6!0UES6B-nNLmLW zsPuiQNA7a#tcWsd@Qv;nCtJI_tGLd!jgCQ%H_WfC_|CV!_e}#9`1{}fu7SV@PVj;o z{NMsV!3kJk0u$6=4Y;D}3A3HTmnoCmA;|a!HXv?G|IpkZADq1Y#5`tv&6?KlPPv-D zTBB;PBPlSCxy)y-6Lz56RuuQ0GV2@2n+Y!DAdlCX)Lk@oqdetEr!dQjR4Z|vDPB;I zy40tR?rO{<=gD;XeW}j%s5_nL_IWUb=Y#aJb9LqN9#XAfrgax}{q1nC`qi~<@wOvx zazM{EToJ@$1yxouJ_cGH*@R%Pw`YP>-cl6A=e)CILyXPe@`r1nz=X8hs>36^OlCPfiJ#xM9 z;r+Pu8Gc5mw|(fbo%`LFs`tGo+HTuD{OZHX_{T^7=av4ic;-L;=f*n%$j zf-o3^GB|@Xh=Px$f)hxCI=F*8*n>X!gEDA?K8AxpScFD+gh-f#Fero*M}$iFgisiT zQh0<+hcf>W4)VrYhJ*oJPngJ=kbYxstA zSci7#h4H6`Ie3SB*oS`D5^?B+e>jMQ=!SuKh5mb3h>Ey~T6l=^mxzoQiIPZ#Unq!^ zc!`(@hn0wknb?V*xP+Vdh@Uu$q$q++XmxT3iKV!TtVn^U=y>imhpjk^toVu)7mKP$ zi@NxUw&*P;bqun&i^7PBy(kaA7>vW1jEs1S_i&4&0*tw+jM7MmC@68w=!SzpB zSC26W4;8>XJV1f)kO9fCg9n+A_b7?^h>qFDkMlSW0QrLPAOm0^5AbjSkzh&-nSmcE zf(I!K2zh}a*^qDekntFis89^Z@Q*)u{*ne+k{BqHA2^aUiIRn=lKV&uE(w!9s18l= z0WBer0U!Wiu#iTHl=2V{F~B@K&;$XX01OEa7Lbuv2?mLPJv{J{IB5e@S(R6*krvPe z2)UGCKo15G3Gn~~Y>AO=*^xS_gep0A_dpE(2$Vr7l}M=$Pk@yfK$6Swml~M?%g_V` zd68zxkSmc0M5zl7P?UjLk~m3{j42O}DG!i&kb?=Bokgl+i<90{C(d7Uf%ags9Wmy3CkfXSPcIhx*imf0znD?tw(5CqB)1dULT z&H04Sxsnoa4?j7bI|!NSsQ`yrkQ@03hKZOOc>$6jpo%$~ni&8@8JF_Fn#$mo4ceNM zd6@}Hl$s!#E& z|KJC|`U6lw3%)uJ{_v}Xa1S~F0`m|R=<2J<1y8ZA){3qCx~bZ#q}=MPamuDG z7_A_X1*Rk(v8&(%8XK=rfw3TfwOY%yUwf>kg*{Obwxl_>JMj(OL*l zaSwEBwZ2NRg>VJyTD8Nfw+pMVee1WTB^81@mxQYmhFhQgp}0R7ty;UWe&DjfO0hq{ z4iEdTZ~Ln_3j#XJvzpl6DI4u4Sd1a z`oQ-X!4WB)tg3^&ioqf*s~T*NOd64F(HG+wgCRV^E}X5BdTlgfmnm!uD-45~`ocQg zsiPXhibKPwpu&qgg4LiIMtsCboWx4J#7x}8lTi&mJi{m)#5O#{cY4Ku$PPa|#X^k5 zUi_w7JZ6qp!#DiJW}L-Vg+gR(#b@lMI1t8tp~h5P#%*lIZ)_NH+{Jag$F9f@et`=9 zd0fSOJjg6@$9)0F$fU=F%*Tc-9w;O#ioD2m+{lRRM?p--lH8_-oC=xn$Z#RZnLNpU zYzv(H$eD1-Y#hpBJIbX@H>V8Bs%*!sT*>kf2(OIEvAnFT+{r8x2q}!qxeTzZtO+RO z%cva8U%bi0+{?e5%E-LI!(7bG{LEOa%+h?!)O@FJtS`&#EyfJX*{sRzz|F;c%g!9m zh4FzX_kL=JM{Jj1O{yc(b za0cqI!!RAwvZ@X(&4miB3B2sh1+CHt-GN1*4)=i2C3p|&Py{x8((94a?R*|9ErLZ* zz(QSu|6tTxc+*O4%j(h8Ay@=K9n~aw4^-WVNR89HvkqAO&OOb6T+lDekkx6ufot7?x(T0>Nue9KmHvsKCTNp3`PZS@gM~fRZasxoUDkDg33d&HdA)() zIiTpdor3L=IT@EY>DLvQ*fU9?gq_(d!Jvpep)Ls4M@<=WT?dX3**`eh8VK5j>Dhga zomENNnr+*=-P^ZqfwT>Sot@f?EroB)+Kvs`nxNGn$khP!+|V7}>i!@OLkZnzd639} zmg?}LQ8|^!u-#8t002so**%bbiK7Y%K-BHsMp*!nVBN2&0Oh@+88F`h@C8yS-`Wk{ z0U+KPU<2YkknVkuVCex;`2o+JmFkd{CmNdAz2K7xmhvs#6kg%ct=d(6(wi_DbGHtz zJsHgXfm{tsBwpg;01kX<1>o=mRv-@EkO8ES0jj{_E-vFu00ZJM4KgqV8E^`(^x~)R z;xRtsE&k%BFavtv4HuvXt_0*Lj^m-w0I&4q;-C!)K;$((~=S73{*UP}492cCh3LB@Hl+ z>@iLX%&t&#Pyl++>^<)6)Zp#k9_`eA?c=`f+&=BsF73|l?bP1w z?*8luwc?Pj<5m#vc5d&oKJ5Cw?+JD5jLi;RrRx$f*RPG%l6?>S9_&$$P*$!AP4EKW zegSr1;}9FPe`4qx#SPv%~J?kEoa@e3dC86OH)p79nx@gE=Y6MqUN zAMxhC?p>bp4Pf)r9_i^;m!I?S2YlANJJX^FNVSgfc3?W2bEv>RloE{ zolpA==x6QgK8^61Kl-F!`lf&SsGs_(uk`+I+yKw{9sc=*o`GCF47Pv!xS#vFzx%x3 z`@aACz#sg=Km5dB{KhZ*t>5&opHH!0*9QI{+wySy(m(ywU;Wm9{n(%T^1$@Yx%`^| z^#u?5YAp`YpZ(^4{^+0n>aYFc!2R;+{ooJcvyXu-oepdrg6UAx8NO8={^5h}&;U_H z;6Q=}4IV_8P~k#`4IMs&7*V3bGx986#F$azMvfgl%EQ5K)5uNpC`edW$B`yY>~MU9 z8B^v=nl)|S#F0ZKx4Ikdvchldw zbq6Dc99gp3zAOPd{>nx3X3m{GfBps?TJ&hrrA?nkom%y3)}nbzKk+=-Sa?Zo~0$EAI0ZW82Mj20pi>ysl46wz=wjxkQ zAAdxUMwBiu2n9NEg#&{uk(-XyoO?{#-vlgfoQU8mN?H{jvky@*Ii_I-Axdi@l* z;eoTf@!+BUIM?5%0CqTI-3YcwF^R3J*jsfqCfPTRL9+2ivs{JM*pgqq?PQNv-qvEK zFowBdnN$8arJ6ev$A73hnx zUK(Pmhtjp!q`?+gYp0R!6>Xix-kN2z+jcu(waF&++q%<+d*!^3bk$dP>-3?BwV8F< zXXh*Ps=KB=cip3M9VOVk-aUBXhqRq+tA|HE`6r9F>SyJjhdxwmND4jm=&v6hhv}Qf zTXgKd&s}@!`LrH<^H~?4suedqzx~zIABp_f-KU>&_=U=`{QCEYTrvEOWFP+o_&EQ` z4|oGapke+BxIX!God|jo}dzsB2ga*H`f$b=A@Rjya+TcBF&6Elb9Z%=2M0l%3>~3cT-WNG6M*eKB~i< z=R{{Z)p^cLBEy{Vn87Y7DF86EbCLlNz!#bj00ki9p7eZY3<6MqM`WOv{+uTm)S-(? zejuO&EvO9$O34E3G6OaUfCu*JP;XmcB*5T813geRk~7h8gr1y45tKx z*vfl|!=^XIX-;)|Q*UJ86gCCN6RPk8D~O|~q{x6Oh-%afAoUbMEox7H%G6UFHK|MO zsVQcl2X9pymH!NTUa5Mo1;s`|p#A=1LO7*65-~d`1fK#jf)T&P1X)+;Q)p^q@d??gN>%_xrRrTRTZMhb^{`d-saxwB zR>Xq!s!?rh0`Pj*(i+yaef{QN4G5M#Qp2{l#cghNds}Jv)V94Pg;#moRN?;Cr_v}c zZhLzQ;1X94x}8G-o=c78R@b-9W$tl(Yulhwb{aCU0(F~u-SIkgx93IgZDAWe**0dJ zPpNHsTW zh9UqQpoU_ftBnL`b;GJ1FNNnj;`P!Fod44lD+haz5zAK^lKpRnSAb9cD=c>!GrsJN z34n(i(|EYqb!v|21dP`dE7)<1=Ud|0o%k~E zbxM4-JZ3VN+017~bDF8aW!ZTdZ(wHTJ%%x7I@j6GcgAy`^}J_3_u0>X26UhS&1Uqq zS8{M>3L6EzXht{M(T|2SpXK3A_7?Fhh~}d>f+C-c;TWp%LKEKXDhJCVa)M~Z=M>^~w~*#~4c zvymNGXh&Pvrlz*FwVfDj%cL&R;lm+*Ly1pZ-w4OI#T^)u zRQNjE8h1B4Iv&%HgWQG{H~9$PU5$*VoPW+f63bnF@sXoA<}IH&{Ww1IFKa^PIk&gS zQ_*q22x2AGNCOU(zI3KH-RVzQ~2l*0sKMu6Nz*Ux#`ctTA+=&&BAP zu!S|)v39n%-R*COd)(zdce>Zz?svy~-u1qBzW3ele+PWrt#J&p3k3si2*e%E6%@ud z-tn7A#VRB}dCFJb@|VYa<~6^0&UfDPp9g*DML&Adm;RpgWWPMwhi(fxVBiK5FvcCu z&Jx*Z*6~sZ>v%wgQKmUuq;j;yH zpaTg=0R>#Z377ykScfKb!Y72nC~QJ@n1?E~X~HYS!YtInE#$&3^ujL$!!Q)XF(kt> zG{ZAQ!!-0l1f+l?L_!600SS=9Ii$lnv_mDtLnWkuJ>{#6T3pK_o;%%)>)O j#6(oYMP$TAbi_x5#7LCHNzB7Sv_wJ7J^;|ffB*nHY59<9 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/BatchGetFiles.gif b/documentation/api_extracted/BatchGetFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..497ebe50ce7227cb5abb6bd242f86b1cb4685760 GIT binary patch literal 8576 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/BatchUpdateVars.gif b/documentation/api_extracted/BatchUpdateVars.gif new file mode 100644 index 0000000000000000000000000000000000000000..187516f1cbf5b178db34ddd94e6b1102cba46e16 GIT binary patch literal 6477 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_CSharp.htm b/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_CSharp.htm new file mode 100644 index 0000000..878e001 --- /dev/null +++ b/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_CSharp.htm @@ -0,0 +1,469 @@ + + + +Batch Add Files and Folders to Vault Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Files and Folders to Vault Example (C#)

+

This example shows how to add several files and folders to +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type BatchAddFiles_CSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project.
+//     d. Click OK
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the +form, replace the code in Form1.Designer.cs with 
+//        this code.

+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, and click Add).
+
+//  4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. The Batch +add files to vault dialog box displays.
+//     a. Select a vault view.
+//     b. Click Select file outside vault to copy to vault.
+//     c. In the Select File dialog:
+//        1. Click a file +outside the vault.
+//        2. Click Open.
+//     d. Click Select file inside vault to copy to vault.
+//     e. In the Select File dialog:

+//        1. Click a file in the vault.
+//        2. Click Open.
+//     f. Click Commit all files to vault.
+//  2. Click Add in the Batch Items dialog box.

+//  3. Click OK to close the +message box.
+//     Two new folders, Folder1 and Folder2, +are created in the vault's
+//     root directory. The first selected file is copied to +Folder1.
+//     The second selected file is copied to Folder2.
+//  4. Close the Batch add files to vault dialog box.

+ +//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchAddFiles_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmBatchAdd2 batchAdder;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void CopyToVault_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                FileList1.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                SelectFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = SelectFileDialog.ShowDialog();
+                //If the user did +not click Open, exit this subroutine
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                batchAdder = (IEdmBatchAdd2)vault2.CreateUtility(EdmUtility.EdmUtil_BatchAdd);

+                // Add Folder1 to the batch 
+                string newFolder = vault1.RootFolderPath + "\\Folder1";
+                batchAdder.AddFolderPath(newFolder, 0, (int)EdmBatchAddFolderFlag.Ebaff_Nothing);

+                foreach (string FileName in SelectFileDialog.FileNames)
+                {
+                    FileList1.Items.Add(FileName);
+
+                    // Add each selected file +to the batch
+                    batchAdder.AddFileFromPathToPath(FileName, newFolder, 0);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+        public void CopyFromVault_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                FileList2.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                SelectFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = SelectFileDialog.ShowDialog();
+                //If the user didn't click Open, exit this subroutine
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                // Add Folder2 to the batch
+                batchAdder.AddFolder(vault1.RootFolderID"Folder2", 0, (int)EdmBatchAddFolderFlag.Ebaff_Nothing);

+                IEdmFile5 aFile = default(IEdmFile5);
+                IEdmFolder5 aFolder = default(IEdmFolder5);
+                IEdmPos5 aPos = default(IEdmPos5);
+                IEdmFolder5 ppoRetParentFolder = default(IEdmFolder5);
+                foreach (string FileName in SelectFileDialog.FileNames)
+                {
+                    FileList2.Items.Add(FileName);
+
+                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    aPos = aFile.GetFirstFolderPosition();
+                    aFolder = aFile.GetNextFolder(aPos);
+
+                    // Add each selected file to the +batch
+                    batchAdder.AddFileFromVaultToPath(aFile.ID, aFolder.ID, vault1.RootFolderPath + "\\Folder2");
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BatchAdd_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                // Show all of the items in the batch
+                batchAdder.ShowDlg(this.Handle.ToInt32(), (int)EdmAddFileDlgFlag.Eafdf_Nothing, "Files and folders in the batch:""Batch Items");

+                EdmFileInfo[] ppoAddedFiles = new EdmFileInfo[10];
+
+                // Commit all of the items in the batch to the vault
+                batchAdder.CommitAdd(this.Handle.ToInt32(), ref ppoAddedFiles);

+                //Display the returned information in a message box

+                int idx;
+                idx = ppoAddedFiles.GetLowerBound(0);
+                string msg = "";


+                while (idx <= ppoAddedFiles.GetUpperBound(0))
+                {
+                    string row = null;
+                    row = "(" + ppoAddedFiles[idx].mbsPath + ") arg = " + (ppoAddedFiles[idx].mlArg).ToString();

+                    if (ppoAddedFiles[idx].mhResult == 0)
+                    {
+                        row = row + " status = OK ";
+                    }
+                    else
+                    {
+                        string oErrName = "";
+                        string oErrDesc = "";

+                        vault1.GetErrorString(ppoAddedFiles[idx].mhResultout oErrName, out oErrDesc);
+                        row = row + " status = " + oErrName;
+                    }

+                    idx = idx + 1;
+                    msg = msg + "\n" + row;

+                }

+                MessageBox.Show(msg);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchAddFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BatchAdd = new System.Windows.Forms.Button();
+            this.CopyToVault = new System.Windows.Forms.Button();
+            this.FileList1 = new System.Windows.Forms.ListBox();
+            this.CopyFromVault = new System.Windows.Forms.Button();
+            this.FileList2 = new System.Windows.Forms.ListBox();
+            this.SelectFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(12, 27);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(12, 43);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //BatchAdd
+            //
+            this.BatchAdd.Location = new System.Drawing.Point(67, 236);
+            this.BatchAdd.Name = "BatchAdd";
+            this.BatchAdd.Size = new System.Drawing.Size(123, 23);
+            this.BatchAdd.TabIndex = 2;
+            this.BatchAdd.Text = "Commit all files to vault";
+            this.BatchAdd.UseVisualStyleBackColor = true;
+            this.BatchAdd.Click += new System.EventHandler(this.BatchAdd_Click);
+            //
+            //CopyToVault
+            //
+            this.CopyToVault.Location = new System.Drawing.Point(12, 80);
+            this.CopyToVault.Name = "CopyToVault";
+            this.CopyToVault.Size = new System.Drawing.Size(239, 23);
+            this.CopyToVault.TabIndex = 3;
+            this.CopyToVault.Text = "Select file outside vault to copy to vault...";
+            this.CopyToVault.UseVisualStyleBackColor = true;
+            this.CopyToVault.Click += new System.EventHandler(this.CopyToVault_Click);
+            //
+            //FileList1
+            //
+            this.FileList1.FormattingEnabled = true;
+            this.FileList1.Location = new System.Drawing.Point(12, 109);
+            this.FileList1.Name = "FileList1";
+            this.FileList1.Size = new System.Drawing.Size(239, 30);
+            this.FileList1.TabIndex = 4;
+            //
+            //CopyFromVault
+            //
+            this.CopyFromVault.Location = new System.Drawing.Point(12, 160);
+            this.CopyFromVault.Name = "CopyFromVault";
+            this.CopyFromVault.Size = new System.Drawing.Size(239, 23);
+            this.CopyFromVault.TabIndex = 5;
+            this.CopyFromVault.Text = "Select file inside vault to copy to vault...";
+            this.CopyFromVault.UseVisualStyleBackColor = true;
+            this.CopyFromVault.Click += new System.EventHandler(this.CopyFromVault_Click);
+            //
+            //FileList2
+            //
+            this.FileList2.FormattingEnabled = true;
+            this.FileList2.Location = new System.Drawing.Point(12, 189);
+            this.FileList2.Name = "FileList2";
+            this.FileList2.Size = new System.Drawing.Size(239, 30);
+            this.FileList2.TabIndex = 6;
+            //
+            //SelectFileDialog
+            //
+            this.SelectFileDialog.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 291);
+            this.Controls.Add(this.FileList2);
+            this.Controls.Add(this.CopyFromVault);
+            this.Controls.Add(this.FileList1);
+            this.Controls.Add(this.CopyToVault);
+            this.Controls.Add(this.BatchAdd);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Batch add files to vault";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Button BatchAdd;
+        private System.Windows.Forms.Button CopyToVault;
+        private System.Windows.Forms.ListBox FileList1;
+        private System.Windows.Forms.Button CopyFromVault;
+        private System.Windows.Forms.ListBox FileList2;
+        private System.Windows.Forms.OpenFileDialog SelectFileDialog;
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_VBNET.htm b/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_VBNET.htm new file mode 100644 index 0000000..1a9c8dd --- /dev/null +++ b/documentation/api_extracted/Batch_Add_Files_and_Folders_Example_VBNET.htm @@ -0,0 +1,406 @@ + + + +Batch Add Files and Folders to Vault Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Files and Folders to Vault Example (VB.NET)

+

This example shows how to add several files and folders to +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchAddFiles in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. The Batch add files to +vault dialog box displays.
+'     a. Select a vault view.
+'     b. Click Select file outside vault to copy to vault.
+'     c. In the Select File dialog:
+'        1. Click a file outside the vault.
+'        2. Click Open.
+'     d. Click Select file inside vault to copy to vault.
+'     e. In the Select File dialog:

+'        1. Click a file in the vault.
+'        2. Click Open.
+'     f. Click Commit all files to vault.
+'  2. Click Add in the Batch Items dialog box.

+'  3. Click OK to close the +message box.
+'     Two new folders, Folder1 and Folder2, +are created in the vault's
+'     root directory. The first selected file is copied to +Folder1.
+'     The second selected file is copied to Folder2.
+'  4. Close the Batch add files to vault dialog box.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchAdder As IEdmBatchAdd2
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub CopyToVault_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CopyToVault.Click
+        Try
+            FileList1.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            SelectFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = SelectFileDialog.ShowDialog()
+            'If the user did +not click Open, exit this subroutine
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            batchAdder = vault2.CreateUtility(EdmUtility.EdmUtil_BatchAdd)

+            ' Add Folder1 to the batch 
+            Dim newFolder As String = vault1.RootFolderPath + "\Folder1"
+            batchAdder.AddFolderPath(newFolder, 0, EdmBatchAddFolderFlag.Ebaff_Nothing)

+            For Each FileName As String In SelectFileDialog.FileNames
+
+                FileList1.Items.Add(FileName)
+
+                ' Add each selected file to the batch
+                batchAdder.AddFileFromPathToPath(FileName, newFolder, 0)
+
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+    Public Sub CopyFromVault_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CopyFromVault.Click
+        Try
+            FileList2.Items.Clear()
+            
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            SelectFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = SelectFileDialog.ShowDialog()
+            'If the user didn't click Open, exit this subroutine
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            ' Add Folder2 to the batch
+            batchAdder.AddFolder(vault1.RootFolderID"Folder2", 0, EdmBatchAddFolderFlag.Ebaff_Nothing)

+            Dim aFile As IEdmFile5
+            Dim aFolder As IEdmFolder5
+            Dim aPos As IEdmPos5
+            For Each FileName As String In SelectFileDialog.FileNames
+
+                FileList2.Items.Add(FileName)
+
+                aFile = vault1.GetFileFromPath(FileName)
+                aPos = aFile.GetFirstFolderPosition
+                aFolder = aFile.GetNextFolder(aPos)
+
+                ' Add each selected file to the batch
+                batchAdder.AddFileFromVaultToPath(aFile.ID, aFolder.ID, vault1.RootFolderPath + "\Folder2")
+
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BatchAdd_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchAdd.Click
+        Try
+            
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            ' Show all of the items in the batch
+            batchAdder.ShowDlg(Me.Handle.ToInt32(), EdmAddFileDlgFlag.Eafdf_Nothing, "Files and folders in the batch:""Batch Items")

+            Dim ppoAddedFiles() As EdmFileInfo = Nothing
+

+            ' Commit all of the items in the batch to the vault
+            batchAdder.CommitAdd(Me.Handle.ToInt32(), ppoAddedFiles)

+            'Display the returned information in a message box
+            Dim idx As Integer
+            idx = LBound(ppoAddedFiles)
+            Dim msg As String = ""

+            While idx <= UBound(ppoAddedFiles)

+                Dim row As String
+                row = "(" + ppoAddedFiles(idx).mbsPath + ") arg = " + CStr(ppoAddedFiles(idx).mlArg)

+                If ppoAddedFiles(idx).mhResult = 0 Then
+                    row = row + " status = OK "
+                Else
+                    Dim oErrName As String = ""
+                    Dim oErrDesc As String = ""

+                    vault1.GetErrorString(ppoAddedFiles(idx).mhResult, oErrName, oErrDesc)
+                    row = row + " status = " + oErrName
+                End If

+                idx = idx + 1
+                msg = msg + vbLf + row

+            End While

+            MsgBox(msg)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub


+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BatchAdd = New System.Windows.Forms.Button()
+        Me.CopyToVault = New System.Windows.Forms.Button()
+        Me.FileList1 = New System.Windows.Forms.ListBox()
+        Me.CopyFromVault = New System.Windows.Forms.Button()
+        Me.FileList2 = New System.Windows.Forms.ListBox()
+        Me.SelectFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(12, 27)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(12, 43)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BatchAdd
+        '
+        Me.BatchAdd.Location = New System.Drawing.Point(67, 236)
+        Me.BatchAdd.Name = "BatchAdd"
+        Me.BatchAdd.Size = New System.Drawing.Size(123, 23)
+        Me.BatchAdd.TabIndex = 2
+        Me.BatchAdd.Text = "Commit all files to vault"
+        Me.BatchAdd.UseVisualStyleBackColor = True
+        '
+        'CopyToVault
+        '
+        Me.CopyToVault.Location = New System.Drawing.Point(12, 80)
+        Me.CopyToVault.Name = "CopyToVault"
+        Me.CopyToVault.Size = New System.Drawing.Size(239, 23)
+        Me.CopyToVault.TabIndex = 3
+        Me.CopyToVault.Text = "Select file outside vault to copy to vault..."
+        Me.CopyToVault.UseVisualStyleBackColor = True
+        '
+        'FileList1
+        '
+        Me.FileList1.FormattingEnabled = True
+        Me.FileList1.Location = New System.Drawing.Point(12, 109)
+        Me.FileList1.Name = "FileList1"
+        Me.FileList1.Size = New System.Drawing.Size(239, 30)
+        Me.FileList1.TabIndex = 4
+        '
+        'CopyFromVault
+        '
+        Me.CopyFromVault.Location = New System.Drawing.Point(12, 160)
+        Me.CopyFromVault.Name = "CopyFromVault"
+        Me.CopyFromVault.Size = New System.Drawing.Size(239, 23)
+        Me.CopyFromVault.TabIndex = 5
+        Me.CopyFromVault.Text = "Select file inside vault to copy to vault..."
+        Me.CopyFromVault.UseVisualStyleBackColor = True
+        '
+        'FileList2
+        '
+        Me.FileList2.FormattingEnabled = True
+        Me.FileList2.Location = New System.Drawing.Point(12, 189)
+        Me.FileList2.Name = "FileList2"
+        Me.FileList2.Size = New System.Drawing.Size(239, 30)
+        Me.FileList2.TabIndex = 6
+        '
+        'SelectFileDialog
+        '
+        Me.SelectFileDialog.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 291)
+        Me.Controls.Add(Me.FileList2)
+        Me.Controls.Add(Me.CopyFromVault)
+        Me.Controls.Add(Me.FileList1)
+        Me.Controls.Add(Me.CopyToVault)
+        Me.Controls.Add(Me.BatchAdd)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Batch add files to vault"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BatchAdd As System.Windows.Forms.Button
+    Friend WithEvents CopyToVault As System.Windows.Forms.Button
+    Friend WithEvents FileList1 As System.Windows.Forms.ListBox
+    Friend WithEvents CopyFromVault As System.Windows.Forms.Button
+    Friend WithEvents FileList2 As System.Windows.Forms.ListBox
+    Friend WithEvents SelectFileDialog As System.Windows.Forms.OpenFileDialog

+End Class

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Add_Folders_Example_CSharp.htm b/documentation/api_extracted/Batch_Add_Folders_Example_CSharp.htm new file mode 100644 index 0000000..8648d73 --- /dev/null +++ b/documentation/api_extracted/Batch_Add_Folders_Example_CSharp.htm @@ -0,0 +1,342 @@ + + + +Batch Add Folders Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Folders Example (C#)

+

This example shows how to create several folders in the +vault at once.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type BatchAddFolders_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Add +folders dialog box.
+
+//    a. Select a vault view.
+
+//    b. +Type the name of a new folder to create in the root folder
+//       of the vault.
+
+
+//    c. Click +Add folder to the batch.
+
+
+//       +1. Displays a message that the folder is added to the batch.
+
+
+//       +2. Click OK.
+
+// 2. Repeat +steps 1b-c repeatedly to add more folders to the batch.
+// 3. Click Create folders.
+//    a. Displays a message that the folder is created.
+//    b. Click OK in each message box. 
+// 4. Close the Add folders dialog box.           

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+namespace BatchAddFolders_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmBatchAddFolders batchAddFolders;
+        EdmFolderInfo[] ppoRetFolders = null;

+        int i;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        private void AddFolders_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if (batchAddFolders == null)
+                {
+                    batchAddFolders = (IEdmBatchAddFolders)vault2.CreateUtility(EdmUtility.EdmUtil_BatchAddFolders);
+                }

+                batchAddFolders.AddFolder(vault2.RootFolderID, TextBox1.Text, i, (int)EdmBatchAddFolderFlag.Ebaff_GetInterface, null, 0);
+                i = i + 1;

+                MessageBox.Show(TextBox1.Text + " added to the batch.");
+                TextBox1.Clear();

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }

+        public void CreateFolders_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                batchAddFolders.Create(this.Handle.ToInt32(), ref ppoRetFolders, (int)EdmBatchCreateFolderFlag.Ebcf_Nothing);

+                foreach (EdmFolderInfo FoldName in ppoRetFolders)
+                {
+                    MessageBox.Show("Created " + FoldName.mbsPath + " successfully" + " in " + vault2.RootFolder.Name);
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchAddFolders_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.AddFolders = new System.Windows.Forms.Button();
+            this.CreateFolders = new System.Windows.Forms.Button();
+            this.TextBox1 = new System.Windows.Forms.TextBox();
+            this.Label1 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //AddFolders
+            //
+            this.AddFolders.Location = new System.Drawing.Point(16, 112);
+            this.AddFolders.Name = "AddFolders";
+            this.AddFolders.Size = new System.Drawing.Size(145, 23);
+            this.AddFolders.TabIndex = 3;
+            this.AddFolders.Text = "Add folder to the batch...";
+            this.AddFolders.UseVisualStyleBackColor = true;
+            this.AddFolders.Click +=new System.EventHandler(AddFolders_Click);
+            //
+            //CreateFolders
+            //
+            this.CreateFolders.Location = new System.Drawing.Point(111, 156);
+            this.CreateFolders.Name = "CreateFolders";
+            this.CreateFolders.Size = new System.Drawing.Size(98, 23);
+            this.CreateFolders.TabIndex = 5;
+            this.CreateFolders.Text = "Create folders";
+            this.CreateFolders.UseVisualStyleBackColor = true;
+            this.CreateFolders.Click +=new System.EventHandler(CreateFolders_Click);
+            //
+            //TextBox1
+            //
+            this.TextBox1.Location = new System.Drawing.Point(16, 88);
+            this.TextBox1.Name = "TextBox1";
+            this.TextBox1.Size = new System.Drawing.Size(289, 20);
+            this.TextBox1.TabIndex = 6;
+            //
+            //Label1
+            //
+            this.Label1.AutoSize = true;
+            this.Label1.Location = new System.Drawing.Point(13, 72);
+            this.Label1.Name = "Label1";
+            this.Label1.Size = new System.Drawing.Size(237, 13);
+            this.Label1.TabIndex = 7;
+            this.Label1.Text = "Type name of new folder to add to the vault root:";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 208);
+            this.Controls.Add(this.Label1);
+            this.Controls.Add(this.TextBox1);
+            this.Controls.Add(this.CreateFolders);
+            this.Controls.Add(this.AddFolders);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add folders";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button AddFolders;
+        internal System.Windows.Forms.Button CreateFolders;
+        internal System.Windows.Forms.TextBox TextBox1;
+        internal System.Windows.Forms.Label Label1;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Add_Folders_Example_VBNET.htm b/documentation/api_extracted/Batch_Add_Folders_Example_VBNET.htm new file mode 100644 index 0000000..902b7e8 --- /dev/null +++ b/documentation/api_extracted/Batch_Add_Folders_Example_VBNET.htm @@ -0,0 +1,292 @@ + + + +Batch Add Folders Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Folders Example (VB.NET)

+

This example shows how to create several folders in the +vault at once.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddFolder in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Add +folders dialog box.
+'    a. Select a vault view.
+'    b. +Type the name of a new folder to create in the root folder
+'       of the vault.
+'    c. Click +Add folder to the batch.
+'       +1. Displays a message that the folder is added to the batch.
+'       +2. Click OK.

+' 2. Repeat +steps 1b-c repeatedly to add more folders to the batch.
+' 3. Click Create folders.
+'    a. Displays a message that the folder is created.
+'    b. Click OK in each message box. 
+' 4. Close the Add folders dialog box.

+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchAddFolders As IEdmBatchAddFolders
+    Dim ppoRetFolders() As EdmFolderInfo = Nothing
+    Dim i As Integer

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub AddFolders_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddFolders.Click

+        Try
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If batchAddFolders Is Nothing Then
+                batchAddFolders = vault1.CreateUtility(EdmUtility.EdmUtil_BatchAddFolders)
+            End If

+            batchAddFolders.AddFolder(vault2.RootFolderID, TextBox1.Text, i, EdmBatchAddFolderFlag.Ebaff_GetInterface, Nothing, 0)
+            i = i + 1

+            MsgBox(TextBox1.Text & " added to the batch.")
+            TextBox1.Clear()

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+    Public Sub CreateFolders_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CreateFolders.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            batchAddFolders.Create(Me.Handle.ToInt32, ppoRetFolders, EdmBatchCreateFolderFlag.Ebcf_Nothing)

+            For Each FoldName As EdmFolderInfo In ppoRetFolders
+                MsgBox("Created " & FoldName.mbsPath & " successfully" & " in " + vault2.RootFolder.Name)
+            Next

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.AddFolders = New System.Windows.Forms.Button()
+        Me.CreateFolders = New System.Windows.Forms.Button()
+        Me.TextBox1 = New System.Windows.Forms.TextBox()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'AddFolders
+        '
+        Me.AddFolders.Location = New System.Drawing.Point(16, 112)
+        Me.AddFolders.Name = "AddFolders"
+        Me.AddFolders.Size = New System.Drawing.Size(145, 23)
+        Me.AddFolders.TabIndex = 3
+        Me.AddFolders.Text = "Add folder to the batch..."
+        Me.AddFolders.UseVisualStyleBackColor = True
+        '
+        'CreateFolders
+        '
+        Me.CreateFolders.Location = New System.Drawing.Point(111, 156)
+        Me.CreateFolders.Name = "CreateFolders"
+        Me.CreateFolders.Size = New System.Drawing.Size(98, 23)
+        Me.CreateFolders.TabIndex = 5
+        Me.CreateFolders.Text = "Create folders"
+        Me.CreateFolders.UseVisualStyleBackColor = True
+        '
+        'TextBox1
+        '
+        Me.TextBox1.Location = New System.Drawing.Point(16, 88)
+        Me.TextBox1.Name = "TextBox1"
+        Me.TextBox1.Size = New System.Drawing.Size(289, 20)
+        Me.TextBox1.TabIndex = 6
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Location = New System.Drawing.Point(13, 72)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(237, 13)
+        Me.Label1.TabIndex = 7
+        Me.Label1.Text = "Type name of new folder to add to the vault root:"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 208)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.TextBox1)
+        Me.Controls.Add(Me.CreateFolders)
+        Me.Controls.Add(Me.AddFolders)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add folders"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents AddFolders As System.Windows.Forms.Button
+    Friend WithEvents CreateFolders As System.Windows.Forms.Button
+    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
+    Friend WithEvents Label1 As System.Windows.Forms.Label
+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_CSharp.htm b/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_CSharp.htm new file mode 100644 index 0000000..1f6f532 --- /dev/null +++ b/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_CSharp.htm @@ -0,0 +1,306 @@ + + + +Batch Add Item References Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Item References Example (C#)

+

This example shows how to add item references in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type BatchAddItemRefs_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. +
Open Start > All Programs > +SOLIDWORKS PDM Professional >
+//    Item Explorer.
+//    a. Click the vault to which to add new items.
+//    b. Click New Item on the toolbar to add
+ +00000004 and 00000005.
+//    c. Keep the Item Explorer open.
+// 5. Click Debug > Start Debugging or press F5.
+//
+
// Postconditions: 
+//  1. The Add Item Reference dialog box displays.

+//     a. Select a vault view.
+//     b. Click Add +item reference.
+//  2. Click +OK in the BatchAddItemRefs dialog box.
+//  3. In +the Item Explorer:
+//     a. Click 00000004 under New Item Folder.
+//     b. Observe that item 00000005 is linked to item +00000004.

+//  4. Close the Add Item Reference dialog box and the Item Explorer.
+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchAddItemRefs_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void AddItemRefs_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                AddItemReference((IEdmVault11)vault1);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        private void AddItemReference(IEdmVault11 vault)
+        {
+            //Set up the search interface to find items
+            IEdmSearchResult5 res = default(IEdmSearchResult5);
+            IEdmSearch7 search = default(IEdmSearch7);
+            search = (IEdmSearch7)vault.CreateUtility(EdmUtility.EdmUtil_Search);
+            search.StartFolderID = vault.ItemRootFolderID;
+            search.SetToken(EdmSearchToken.Edmstok_FindFolders, false);
+            search.SetToken(EdmSearchToken.Edmstok_FindFiles, true);
+            search.SetToken(EdmSearchToken.Edmstok_FindItems, true);
+            search.SetToken(EdmSearchToken.Edmstok_Recursive, true);

+            //Get the database ID of item number 00000004
+            search.FileName = "00000004.<item>";
+            res = search.GetFirstResult();
+            if (res == null)
+                return;
+            int item4ID = 0;
+            item4ID = res.ID;

+            //Get the database ID of item number 00000005
+            search.FileName = "00000005.<item>";
+            res = search.GetFirstResult();
+            if (res == null)
+                return;
+            int item5ID = 0;
+            item5ID = res.ID;

+            //Add item number 00000005 as a reference to item number 00000004
+            EdmItemRef[] addRefs = new EdmItemRef[1];
+            addRefs[0].moParentNamePathOrItemID = item4ID;
+            addRefs[0].moNamePathOrID = item5ID;
+            addRefs[0].mlEdmRefFlags = (int)EdmRefFlags.EdmRef_Item;

+            //No item references to remove
+            EdmItemRef[] removeRefs = null;
+            removeRefs = null;

+            IEdmBatchItemReferenceUpdate batch = default(IEdmBatchItemReferenceUpdate);
+            batch = (IEdmBatchItemReferenceUpdate)vault.CreateUtility(EdmUtility.EdmUtil_BatchItemReferenceUpdate);
+            batch.UpdateReferences(addRefs, removeRefs);
+            MessageBox.Show("Result of operation: " + "\n" + vault.GetErrorMessage(addRefs[0].mhResult));

+        }
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchAddItemRefs_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.AddItemRefs = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //AddItemRefs
+            //
+            this.AddItemRefs.Location = new System.Drawing.Point(39, 84);
+            this.AddItemRefs.Name = "AddItemRefs";
+            this.AddItemRefs.Size = new System.Drawing.Size(157, 23);
+            this.AddItemRefs.TabIndex = 6;
+            this.AddItemRefs.Text = "Add item reference";
+            this.AddItemRefs.UseVisualStyleBackColor = true;
+            this.AddItemRefs.Click += new System.EventHandler(AddItemRefs_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 147);
+            this.Controls.Add(this.AddItemRefs);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Add Item Reference";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button AddItemRefs;

+        #endregion
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_VBNET.htm b/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_VBNET.htm new file mode 100644 index 0000000..5b5ac2d --- /dev/null +++ b/documentation/api_extracted/Batch_Add_and_Remove_Item_References_Example_VBNET.htm @@ -0,0 +1,259 @@ + + + +Batch Add Item References Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Add Item References Example (VB.NET)

+

This example shows how to add item references in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchGetFiles in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+
'  4. +Open Start > All Programs > SOLIDWORKS PDM Professional >
+'     Item Explorer.
+'     a. Click the vault to which to add new items.
+'     b. Click New Item on the toolbar to add
+ +00000004 and 00000005.
+'     c. Keep the Item Explorer open.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+
'  1. The Add +Item Reference dialog box displays.
+'     a. Select a vault view.
+'     b. Click Add +item reference.
+'  2. Click OK in the BatchAddItemRefs dialog +box.
+'  3. In the Item Explorer:
+'     a. Click 00000004 under New Item Folder.
+'     b. Observe that item 00000005 is linked to item +00000004.
+'  4. Close the Add Item Reference dialog box and the Item Explorer.
+
'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+    Private vault1 As IEdmVault5 = Nothing
+    

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            vault1 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub AddItemRefs_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles AddItemRefs.Click
+        Try

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            AddItemReference(vault1)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub AddItemReference(ByVal vault As IEdmVault11)

+        'Set up the search interface to find items
+        Dim res As IEdmSearchResult5
+        Dim search As IEdmSearch7
+        search = vault.CreateUtility(EdmUtility.EdmUtil_Search)
+        search.StartFolderID = vault.ItemRootFolderID
+        search.SetToken(EdmSearchToken.Edmstok_FindFolders, False)
+        search.SetToken(EdmSearchToken.Edmstok_FindFiles, True)
+        search.SetToken(EdmSearchToken.Edmstok_FindItems, True)
+        search.SetToken(EdmSearchToken.Edmstok_Recursive, True)

+        'Get the database ID of item number 00000004
+        search.FileName = "00000004.<item>"
+        res = search.GetFirstResult
+        If res Is Nothing Then Exit Sub
+        Dim item4ID As Integer
+        item4ID = res.ID

+        'Get the database ID of item number 00000005
+        search.FileName = "00000005.<item>"
+        res = search.GetFirstResult
+        If res Is Nothing Then Exit Sub
+        Dim item5ID As Integer
+        item5ID = res.ID

+        'Add item number 00000005 as a reference to item number 00000004
+        Dim addRefs(0) As EdmItemRef
+        addRefs(0).moParentNamePathOrItemID = item4ID
+        addRefs(0).moNamePathOrID = item5ID
+        addRefs(0).mlEdmRefFlags = EdmRefFlags.EdmRef_Item

+        'No item references to remove
+        Dim removeRefs() As EdmItemRef
+        removeRefs = Nothing

+        Dim batch As IEdmBatchItemReferenceUpdate
+        batch = vault.CreateUtility(EdmUtility.EdmUtil_BatchItemReferenceUpdate)
+        batch.UpdateReferences(addRefs, removeRefs)
+        MsgBox("Result of operation: " + vbLf + vault.GetErrorMessage(addRefs(0).mhResult))

+    End Sub

+End Class

+

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.AddItemRefs = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'AddItemRefs
+        '
+        Me.AddItemRefs.Location = New System.Drawing.Point(39, 84)
+        Me.AddItemRefs.Name = "AddItemRefs"
+        Me.AddItemRefs.Size = New System.Drawing.Size(157, 23)
+        Me.AddItemRefs.TabIndex = 6
+        Me.AddItemRefs.Text = "Add item reference"
+        Me.AddItemRefs.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 147)
+        Me.Controls.Add(Me.AddItemRefs)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Add Item Reference"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents AddItemRefs As System.Windows.Forms.Button


+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_CSharp.htm b/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_CSharp.htm new file mode 100644 index 0000000..5867253 --- /dev/null +++ b/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_CSharp.htm @@ -0,0 +1,441 @@ + + + +Batch Change States of Files As User Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Change States of Files As User Example (C#)

+

This example shows how to change the states of several +files in one batch using other credentials.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows Forms Application.
+//    b. Type BatchChangeFileStates_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the +form, replace the code in Form1.Designer.cs with 
+//       this code.

+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and +click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Ensure that a workflow exists with:
+//    a. A Waiting for Approval state.
+//    b. An Approved state.
+ +//    c. A Passed Approval transition from the Waiting for Approval state to
+//       the Approved state.
+ +//    d. One or more vault files in the Waiting for Approval state.
+
// +5. +If you want to change states as +another user, modify the RunAsUser credentials to match a user in your vault.
+// 6. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. The Approve Files dialog box displays.
+//    a. Select a vault view.
+//    b. Click Select files to approve.
+//    c. In the Select File dialog:
+ +//       1. Select vault files in the Waiting for Approval state.
+//       2. Click Open.
+//    d. Click Approve all files.
+// 2. Click OK in the Do Transition dialog box.
+ +//    The selected files change to the Approved state using the Passed Approval
+//    transition.
+// 3. Close the Approve Files dialog box.
+ +//----------------------------------------------------------------------------

+ +

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchChangeFileStates_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault1 = null;
+        IEdmBatchChangeState6 batchChanger;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmPos5 aPos;
+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void Transition_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //File1List.Items.Clear()

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();
+                //If the user didn't click Open, exit this subroutine
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                batchChanger = (IEdmBatchChangeState4)vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState);
+                IEdmFolder5 ppoRetParentFolder;
+                foreach (string FileName in OpenFileDialog1.FileNames)
+                {
+                    File1List.Items.Add(FileName);
+                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    aPos = aFile.GetFirstFolderPosition();
+                    aFolder = aFile.GetNextFolder(aPos);
+                    // Add each file selected to the batch
+                    batchChanger.AddFile(aFile.ID, aFolder.ID);
+                }

+                batchChanger.Comment = "Transition to Approved state.";

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void BatchChange_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                // Get the available transitions
+                EdmChangeStateTransitionInfo[] ppoTransitions = null;
+                batchChanger.GetAvailableTransitionList(out ppoTransitions);

+                int i = 0;
+                string str = "";
+                while (i <= ppoTransitions.GetUpperBound(0))
+                {
+                    if (i == 0)
+                    {
+                        str = ppoTransitions[i].moName;
+                    }
+                    else
+                    {
+                        str = str + ", " + ppoTransitions[i].moName;
+                    }
+                    i = i + 1;
+                }

+                //MsgBox("Transitions available: " & str)

+                // Get list of files affected by the state transition
+                IEdmSelectionList6 selList = default(IEdmSelectionList6);
+                selList = (IEdmSelectionList6)batchChanger.GetFileList((int)EdmChangeStateFileListFlag.Ecsflf_GetActionUpdated + (int)EdmChangeStateFileListFlag.Ecsflf_GetChanged + (int)EdmChangeStateFileListFlag.Ecsflf_GetUnprocessed);

+                EdmSelectionObject selObject = new EdmSelectionObject();

+                aPos = selList.GetHeadPosition();
+                str = "Files affected by this state transition: ";
+                i = 0;
+                while (i < selList.Count)
+                {
+                    selList.GetNext2(aPos, out selObject);
+                    str = str + selObject.mbsPath;
+                    i = i + 1;
+                }

+                //MsgBox(str)

+                // Create the file reference tree and verify allowed transitions

+ +

+                 +//'''''''''''''''''''''''''''''''''''''RunAsUser +API''''''''''''''''''''''''''''''''''''''''''''
                +// Admin is the logged in user here, but if you uncomment the next line +(batchChanger.RunAsUser),
                +// you will do a state change using the admin_jeda user.
                +// Change the username and password to match a user that exists in your vault.
                +// CreateTree, ShowDlg, and ChangeState2 should all be called after RunAsUser.

+

+
                +//batchChanger.RunAsUser(Me.Handle.ToInt32(), "Admin_jeda", +"abc")

+                retVal = batchChanger.CreateTree("Passed Approval");

+                bool retVal2 = false;
+                if ((retVal))
+                {
+                    // Show all of the items in the batch
+                    retVal2 = batchChanger.ShowDlg(this.Handle.ToInt32());

+                    if ((retVal2))
+                    {
+                        // User clicked OK; commit all of the items in the batch to the vault
+                        batchChanger.ChangeState2(this.Handle.ToInt32(), +"");
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+       
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchChangeFileStates_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.Transition = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.BatchChange = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //Transition
+            //
+            this.Transition.Location = new System.Drawing.Point(39, 85);
+            this.Transition.Name = "Transition";
+            this.Transition.Size = new System.Drawing.Size(158, 23);
+            this.Transition.TabIndex = 2;
+            this.Transition.Text = "Select files to approve...";
+            this.Transition.UseVisualStyleBackColor = true;
+            this.Transition.Click += new System.EventHandler(this.Transition_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //BatchChange
+            //
+            this.BatchChange.Location = new System.Drawing.Point(40, 183);
+            this.BatchChange.Name = "BatchChange";
+            this.BatchChange.Size = new System.Drawing.Size(157, 23);
+            this.BatchChange.TabIndex = 6;
+            this.BatchChange.Text = "Approve all files";
+            this.BatchChange.UseVisualStyleBackColor = true;
+            this.BatchChange.Click += new System.EventHandler(this.BatchChange_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = true;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.BatchChange);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.Transition);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Approve Files";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button Transition;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button BatchChange;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_VBNET.htm b/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_VBNET.htm new file mode 100644 index 0000000..f6bc21f --- /dev/null +++ b/documentation/api_extracted/Batch_Change_States_of_Files_As_User_Example_VBNET.htm @@ -0,0 +1,386 @@ + + + +Batch Change States of Files As User Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Change States of Files As User Example (VB.NET)

+

This example shows how to change the states of several +files in one batch using other credentials.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type BatchChangeFileStates in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that a workflow exists with:
+'    a. A Waiting for Approval state.
+'    b. An Approved state.
+'    c. A Passed Approval transition from the Waiting for +Approval state to
+'       the Approved state.
+'    d. One or more vault files in the Waiting for Approval +state.
+' 5. If you want to change states as another user, modify the RunAsUser +credentials to match a user in your vault.

+' 6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. The Approve Files dialog box displays.
+'    a. Select a vault view.
+'    b. Click Select files to +approve.
+'    c. In the Select File dialog:
+'       1. Select vault files in the Waiting for +Approval state.
+'       2. Click Open.
+'    d. Click Approve +all files.
+' 2. Click OK in the Do Transition dialog box.
+'    The selected files change to the Approved state using +the Passed Approval
+'    transition.
+' 3. Close the Approve Files dialog box.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchChanger As IEdmBatchChangeState6
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim retVal As Boolean
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub Transition_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Transition.Click
+        Try
+            'File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()
+            'If the user didn't click Open, exit this subroutine
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            batchChanger = vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState)

+            For Each FileName As String In OpenFileDialog1.FileNames
+                File1List.Items.Add(FileName)
+                aFile = vault1.GetFileFromPath(FileName)
+                aPos = aFile.GetFirstFolderPosition
+                aFolder = aFile.GetNextFolder(aPos)
+                ' Add each file selected to the batch
+                batchChanger.AddFile(aFile.ID, aFolder.ID)
+            Next

+            batchChanger.Comment = "Transition to Approved state."

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+   

+    Public Sub BatchChange_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchChange.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            ' Get the available transitions
+            Dim ppoTransitions() As EdmChangeStateTransitionInfo = Nothing
+            batchChanger.GetAvailableTransitionList(ppoTransitions)

+            Dim i As Integer = 0
+            Dim str As String = ""
+            While i <= ppoTransitions.GetUpperBound(0)
+                If i = 0 Then
+                    str = ppoTransitions(i).moName
+                Else
+                    str = str + ", " + ppoTransitions(i).moName
+                End If
+                i = i + 1
+            End While

+            'MsgBox("Transitions available: " & str)

+            ' Get list of files affected by the state transition
+            Dim selList As IEdmSelectionList6
+            selList = batchChanger.GetFileList(EdmChangeStateFileListFlag.Ecsflf_GetActionUpdated + EdmChangeStateFileListFlag.Ecsflf_GetChanged + EdmChangeStateFileListFlag.Ecsflf_GetUnprocessed)

+            Dim selObject As EdmSelectionObject = New EdmSelectionObject()

+            aPos = selList.GetHeadPosition()
+            str = "Files affected by this state transition: "
+            i = 0
+            While i < selList.Count
+                selList.GetNext2(aPos, selObject)
+                str = str + selObject.mbsPath
+                i = i + 1
+            End While

+            'MsgBox(str)

+            ' Create the file reference tree and verify allowed transitions

+

+             +'''''''''''''''''''''''''''''''''''''RunAsUser +API''''''''''''''''''''''''''''''''''''''''''''
            +' Admin is the logged in user here, but if you uncomment the next line +(batchChanger.RunAsUser),
            +' you will do a state change using the  admin_jeda user.
            +' Change the username and password to match a user that exists in your vault.
            +' CreateTree, ShowDlg, and ChangeState2 should all be called after RunAsUser.

+

+
            +'batchChanger.RunAsUser(Me.Handle.ToInt32(), "Admin_jeda", +"abc")

+            retVal = batchChanger.CreateTree("Passed Approval")

+            Dim retVal2 As Boolean
+            If (retVal) Then
+                ' Show all of the items in the batch
+                retVal2 = batchChanger.ShowDlg(Me.Handle.ToInt32())

+                If (retVal2) Then
+                    ' User clicked OK; commit all of the items in the batch to the vault
+                    batchChanger.ChangeState2(Me.Handle.ToInt32(), +"")
+                End If
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Transition = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.BatchChange = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Transition
+        '
+        Me.Transition.Location = New System.Drawing.Point(39, 85)
+        Me.Transition.Name = "Transition"
+        Me.Transition.Size = New System.Drawing.Size(158, 23)
+        Me.Transition.TabIndex = 2
+        Me.Transition.Text = "Select files to approve..."
+        Me.Transition.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'BatchChange
+        '
+        Me.BatchChange.Location = New System.Drawing.Point(40, 183)
+        Me.BatchChange.Name = "BatchChange"
+        Me.BatchChange.Size = New System.Drawing.Size(157, 23)
+        Me.BatchChange.TabIndex = 6
+        Me.BatchChange.Text = "Approve all files"
+        Me.BatchChange.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = True
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.BatchChange)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.Transition)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Approve Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Transition As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents BatchChange As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Change_States_of_Files_Example_CSharp.htm b/documentation/api_extracted/Batch_Change_States_of_Files_Example_CSharp.htm new file mode 100644 index 0000000..8d3bcc3 --- /dev/null +++ b/documentation/api_extracted/Batch_Change_States_of_Files_Example_CSharp.htm @@ -0,0 +1,412 @@ + + + +Batch Change States of Files Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Change States of Files Example (C#)

+

This example shows how to change the states of several +files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows Forms Application.
+//    b. Type BatchChangeFileStates_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the +form, replace the code in Form1.Designer.cs with 
+//       this code.

+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and +click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Ensure that a workflow exists with:
+//    a. A Waiting for Approval state.
+//    b. An Approved state.
+ +//    c. A Passed Approval transition from the Waiting for Approval state to
+//       the Approved state.
+ +//    d. One or more vault files in the Waiting for Approval state.
+
// +5. Modify the bsPasswd parameter in IEdmBatchChangeState4::ChangeState2 to
+//    match the password of your logged-in PDM user.

+// 6. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. The Approve Files dialog box displays.
+//    a. Select a vault view.
+//    b. Click Select files to approve.
+//    c. In the Select File dialog:
+ +//       1. Select vault files in the Waiting for Approval state.
+//       2. Click Open.
+//    d. Click Approve all files.
+// 2. Click OK in the Do Transition dialog box.
+ +//    The selected files change to the Approved state using the Passed Approval
+//    transition.
+// 3. Close the Approve Files dialog box.
+ +//----------------------------------------------------------------------------

+ +

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchChangeFileStates_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault1 = null;
+        IEdmBatchChangeState4 batchChanger;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmPos5 aPos;
+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void Transition_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //File1List.Items.Clear()

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();
+                //If the user didn't click Open, exit this subroutine
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                batchChanger = (IEdmBatchChangeState4)vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState);
+                IEdmFolder5 ppoRetParentFolder;
+                foreach (string FileName in OpenFileDialog1.FileNames)
+                {
+                    File1List.Items.Add(FileName);
+                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    aPos = aFile.GetFirstFolderPosition();
+                    aFolder = aFile.GetNextFolder(aPos);
+                    // Add each file selected to the batch
+                    batchChanger.AddFile(aFile.ID, aFolder.ID);
+                }

+                batchChanger.Comment = "Transition to Approved state.";

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void BatchChange_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                // Get the available transitions
+                EdmChangeStateTransitionInfo[] ppoTransitions = null;
+                batchChanger.GetAvailableTransitionList(out ppoTransitions);

+                int i = 0;
+                string str = "";
+                while (i <= ppoTransitions.GetUpperBound(0))
+                {
+                    if (i == 0)
+                    {
+                        str = ppoTransitions[i].moName;
+                    }
+                    else
+                    {
+                        str = str + ", " + ppoTransitions[i].moName;
+                    }
+                    i = i + 1;
+                }

+                //MsgBox("Transitions available: " & str)

+                // Get list of files affected by the state transition
+                IEdmSelectionList6 selList = default(IEdmSelectionList6);
+                selList = (IEdmSelectionList6)batchChanger.GetFileList((int)EdmChangeStateFileListFlag.Ecsflf_GetActionUpdated + (int)EdmChangeStateFileListFlag.Ecsflf_GetChanged + (int)EdmChangeStateFileListFlag.Ecsflf_GetUnprocessed);

+                EdmSelectionObject selObject = new EdmSelectionObject();

+                aPos = selList.GetHeadPosition();
+                str = "Files affected by this state transition: ";
+                i = 0;
+                while (i < selList.Count)
+                {
+                    selList.GetNext2(aPos, out selObject);
+                    str = str + selObject.mbsPath;
+                    i = i + 1;
+                }

+                //MsgBox(str)

+                // Create the file reference tree and verify allowed transitions
+                retVal = batchChanger.CreateTree("Passed Approval");

+                bool retVal2 = false;
+                if ((retVal))
+                {
+                    // Show all of the items in the batch
+                    retVal2 = batchChanger.ShowDlg(this.Handle.ToInt32());

+                    if ((retVal2))
+                    {
+                        // User clicked OK; commit all of the items in the batch to the vault
+                        batchChanger.ChangeState2(this.Handle.ToInt32(), +"password");
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+       
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchChangeFileStates_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.Transition = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.BatchChange = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //Transition
+            //
+            this.Transition.Location = new System.Drawing.Point(39, 85);
+            this.Transition.Name = "Transition";
+            this.Transition.Size = new System.Drawing.Size(158, 23);
+            this.Transition.TabIndex = 2;
+            this.Transition.Text = "Select files to approve...";
+            this.Transition.UseVisualStyleBackColor = true;
+            this.Transition.Click += new System.EventHandler(this.Transition_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //BatchChange
+            //
+            this.BatchChange.Location = new System.Drawing.Point(40, 183);
+            this.BatchChange.Name = "BatchChange";
+            this.BatchChange.Size = new System.Drawing.Size(157, 23);
+            this.BatchChange.TabIndex = 6;
+            this.BatchChange.Text = "Approve all files";
+            this.BatchChange.UseVisualStyleBackColor = true;
+            this.BatchChange.Click += new System.EventHandler(this.BatchChange_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = true;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.BatchChange);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.Transition);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Approve Files";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button Transition;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button BatchChange;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Change_States_of_Files_Example_VBNET.htm b/documentation/api_extracted/Batch_Change_States_of_Files_Example_VBNET.htm new file mode 100644 index 0000000..9fd1a39 --- /dev/null +++ b/documentation/api_extracted/Batch_Change_States_of_Files_Example_VBNET.htm @@ -0,0 +1,362 @@ + + + +Batch Change States of Files Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Change States of Files Example (VB.NET)

+

This example shows how to change the states of several +files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type BatchChangeFileStates in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that a workflow exists with:
+'    a. A Waiting for Approval state.
+'    b. An Approved state.
+'    c. A Passed Approval transition from the Waiting for +Approval state to
+'       the Approved state.
+'    d. One or more vault files in the Waiting for Approval +state.
+' 5. Modify the bsPasswd parameter in IEdmBatchChangeState4::ChangeState2 to
+'    match the password of your logged-in PDM user.

+' 6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. The Approve Files dialog box displays.
+'    a. Select a vault view.
+'    b. Click Select files to +approve.
+'    c. In the Select File dialog:
+'       1. Select vault files in the Waiting for +Approval state.
+'       2. Click Open.
+'    d. Click Approve +all files.
+' 2. Click OK in the Do Transition dialog box.
+'    The selected files change to the Approved state using +the Passed Approval
+'    transition.
+' 3. Close the Approve Files dialog box.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchChanger As IEdmBatchChangeState4
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim retVal As Boolean
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub Transition_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Transition.Click
+        Try
+            'File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()
+            'If the user didn't click Open, exit this subroutine
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            batchChanger = vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState)

+            For Each FileName As String In OpenFileDialog1.FileNames
+                File1List.Items.Add(FileName)
+                aFile = vault1.GetFileFromPath(FileName)
+                aPos = aFile.GetFirstFolderPosition
+                aFolder = aFile.GetNextFolder(aPos)
+                ' Add each file selected to the batch
+                batchChanger.AddFile(aFile.ID, aFolder.ID)
+            Next

+            batchChanger.Comment = "Transition to Approved state."

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+   

+    Public Sub BatchChange_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchChange.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            ' Get the available transitions
+            Dim ppoTransitions() As EdmChangeStateTransitionInfo = Nothing
+            batchChanger.GetAvailableTransitionList(ppoTransitions)

+            Dim i As Integer = 0
+            Dim str As String = ""
+            While i <= ppoTransitions.GetUpperBound(0)
+                If i = 0 Then
+                    str = ppoTransitions(i).moName
+                Else
+                    str = str + ", " + ppoTransitions(i).moName
+                End If
+                i = i + 1
+            End While

+            'MsgBox("Transitions available: " & str)

+            ' Get list of files affected by the state transition
+            Dim selList As IEdmSelectionList6
+            selList = batchChanger.GetFileList(EdmChangeStateFileListFlag.Ecsflf_GetActionUpdated + EdmChangeStateFileListFlag.Ecsflf_GetChanged + EdmChangeStateFileListFlag.Ecsflf_GetUnprocessed)

+            Dim selObject As EdmSelectionObject = New EdmSelectionObject()

+            aPos = selList.GetHeadPosition()
+            str = "Files affected by this state transition: "
+            i = 0
+            While i < selList.Count
+                selList.GetNext2(aPos, selObject)
+                str = str + selObject.mbsPath
+                i = i + 1
+            End While

+            'MsgBox(str)

+            ' Create the file reference tree and verify allowed transitions
+            retVal = batchChanger.CreateTree("Passed Approval")

+            Dim retVal2 As Boolean
+            If (retVal) Then
+                ' Show all of the items in the batch
+                retVal2 = batchChanger.ShowDlg(Me.Handle.ToInt32())

+                If (retVal2) Then
+                    ' User clicked OK; commit all of the items in the batch to the vault
+                    batchChanger.ChangeState2(Me.Handle.ToInt32(), +"password")
+                End If
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Transition = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.BatchChange = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Transition
+        '
+        Me.Transition.Location = New System.Drawing.Point(39, 85)
+        Me.Transition.Name = "Transition"
+        Me.Transition.Size = New System.Drawing.Size(158, 23)
+        Me.Transition.TabIndex = 2
+        Me.Transition.Text = "Select files to approve..."
+        Me.Transition.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'BatchChange
+        '
+        Me.BatchChange.Location = New System.Drawing.Point(40, 183)
+        Me.BatchChange.Name = "BatchChange"
+        Me.BatchChange.Size = New System.Drawing.Size(157, 23)
+        Me.BatchChange.TabIndex = 6
+        Me.BatchChange.Text = "Approve all files"
+        Me.BatchChange.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = True
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.BatchChange)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.Transition)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Approve Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Transition As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents BatchChange As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_CSharp.htm b/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_CSharp.htm new file mode 100644 index 0000000..d7cb13c --- /dev/null +++ b/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_CSharp.htm @@ -0,0 +1,388 @@ + + + +Batch Delete Files and Folders from Vault Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Delete Files and Folders from Vault Example (C#)

+

This example shows how to delete several files and a folder +from +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type BatchDeleteFiles_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, click +Add, and click Close).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. Ensure that the root folder of the vault contains an empty Folder1 and at
+//    least one file.
+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:
+// 1. The Delete Files dialog box displays.
+//    a. Select a vault view.
+//    b. Click Select files to delete from vault.
+//    c. In the Select File dialog:
+//       1. Click a file inside the vault.
+//       2. Click Open.
+//    d. Click Delete files from vault.
+// 2. Click Delete in the Confirm Multiple File Delete dialog box.
+//    a. If no errors occur, the selected file and Folder1 +are moved
+//       from the vault to the SOLIDWORKS PDM +recycling bin.
+(To see the
+//       SOLIDWORKS PDM recycling bin, right-click +your vault, click
+//       Properties, and click Deleted +Items.)

+//    b. If an error dialog box pops up, click OK to close +it.
+// 3. Close the Delete Files dialog box.
+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+namespace BatchDeleteFiles_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault1 = null;
+        IEdmBatchDelete3 batchDeleter;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmPos5 aPos;
+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //File1List.Items.Clear()

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                batchDeleter = (IEdmBatchDelete3)vault2.CreateUtility(EdmUtility.EdmUtil_BatchDelete);

+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    IEdmFolder5 ppoRetParentFolder;
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                        aPos = aFile.GetFirstFolderPosition();
+                        aFolder = aFile.GetNextFolder(aPos);
+                        // Add selected file to the batch
+                        batchDeleter.AddFileByPath(FileName);
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BatchDelete_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if ((batchDeleter != null))
+                {
+                    // Add Folder1 to the batch of items to be deleted
+                    batchDeleter.AddFolder(vault1.RootFolderPath + "\\Folder1");

+                    // Move files and folder to the Recycle Bin
+                    retVal = batchDeleter.ComputePermissions(falsenull);

+                    if ((!retVal))
+                    {
+                        batchDeleter.ShowWarningDlg2(this.Handle.ToInt32(), true);
+                    }

+                    retVal = batchDeleter.CommitDelete(this.Handle.ToInt32(), null);

+                    EdmBatchDelErrInfo[] ppoDelErrors = null;
+                    if ((!retVal))
+                    {
+                        batchDeleter.ShowCommitErrorsDlg(this.Handle.ToInt32());
+                        batchDeleter.GetCommitErrors(ppoDelErrors);
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchDeleteFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.BatchDelete = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFiles
+            //
+            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select files to delete from vault...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click += new System.EventHandler(SelectFiles_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //BatchDelete
+            //
+            this.BatchDelete.Location = new System.Drawing.Point(40, 183);
+            this.BatchDelete.Name = "BatchDelete";
+            this.BatchDelete.Size = new System.Drawing.Size(157, 23);
+            this.BatchDelete.TabIndex = 6;
+            this.BatchDelete.Text = "Delete files from vault";
+            this.BatchDelete.UseVisualStyleBackColor = true;
+            this.BatchDelete.Click += new System.EventHandler(this.BatchDelete_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = true;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.BatchDelete);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Delete Files";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button BatchDelete;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+        #endregion
+    }
+}

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_VBNET.htm b/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_VBNET.htm new file mode 100644 index 0000000..a651e45 --- /dev/null +++ b/documentation/api_extracted/Batch_Delete_Files_and_Folders_Example_VBNET.htm @@ -0,0 +1,331 @@ + + + +Batch Delete Files and Folders from Vault Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Delete Files and Folders from Vault Example (VB.NET)

+

This example shows how to delete several files and a folder +from +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchDeleteFiles in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that the root folder of the vault contains an empty Folder1 and +at
+'     least one file.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. The Delete Files dialog box displays.
+'     a. Select a vault view.
+'     b. Click Select files +to delete from vault.
+'     c. In the Select File dialog:
+'        1. Click a file +inside the vault.
+'        2. Click Open.
+'     d. Click Delete +files from vault.
+'  2. Click Delete in the Confirm Multiple File Delete dialog box.
+'     a. If no errors occur, the selected file and +Folder1 are moved
+'        from the vault to the SOLIDWORKS PDM +recycling bin. (To see the
+'        SOLIDWORKS PDM recycling bin, +right-click your vault, click
+'        Properties, and click +Deleted Items.)
+'     b. If an error dialog box pops up, click OK to +close it.
+'  3. Close the Delete Files dialog box.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchDeleter As IEdmBatchDelete3
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim retVal As Boolean
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try
+            'File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            batchDeleter = vault2.CreateUtility(EdmUtility.EdmUtil_BatchDelete)

+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName)
+                    aPos = aFile.GetFirstFolderPosition
+                    aFolder = aFile.GetNextFolder(aPos)
+                    ' Add selected file to the batch
+                    batchDeleter.AddFileByPath(FileName)
+                Next
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BatchDelete_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchDelete.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If Not IsNothing(batchDeleter) Then
+                ' Add Folder1 to the batch of items to be deleted
+                batchDeleter.AddFolder(vault1.RootFolderPath + "\Folder1")

+                ' Move files and folder to the Recycle Bin
+                retVal = batchDeleter.ComputePermissions(FalseNothing)

+                If (Not retVal) Then
+                    batchDeleter.ShowWarningDlg2(Me.Handle.ToInt32(), True)
+                End If

+                retVal = batchDeleter.CommitDelete(Me.Handle.ToInt32(), Nothing)

+                Dim ppoDelErrors() As EdmBatchDelErrInfo = Nothing
+                If (Not retVal) Then
+                    batchDeleter.ShowCommitErrorsDlg(Me.Handle.ToInt32())
+                    batchDeleter.GetCommitErrors(ppoDelErrors)
+                End If
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.BatchDelete = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select files to delete from vault..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'BatchDelete
+        '
+        Me.BatchDelete.Location = New System.Drawing.Point(40, 183)
+        Me.BatchDelete.Name = "BatchDelete"
+        Me.BatchDelete.Size = New System.Drawing.Size(157, 23)
+        Me.BatchDelete.TabIndex = 6
+        Me.BatchDelete.Text = "Delete files from vault"
+        Me.BatchDelete.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+       
Me.OpenFileDialog1.Multiselect = True
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.BatchDelete)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Delete Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents BatchDelete As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Get_Files_Example_CSharp.htm b/documentation/api_extracted/Batch_Get_Files_Example_CSharp.htm new file mode 100644 index 0000000..df6f7b7 --- /dev/null +++ b/documentation/api_extracted/Batch_Get_Files_Example_CSharp.htm @@ -0,0 +1,405 @@ + + + +Batch Check Out Files Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Check Out Files Example (C#)

+

This example shows how to check out several files from +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type BatchGetFiles_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. Ensure that the vault contains at least one checked-in file.
+// 5. Click Debug > Start Debugging or press F5.
+//
+
// Postconditions: 
+//  1. The Check Out Files dialog box displays.

+//     a. Select a vault view.
+//     b. Click Select files to check out from vault.
+//     c. In the Select File dialog:
+//        1. Click a +couple of files inside the vault.
+//        2. Click Open.
+//     d. Click Check out files from vault.
+//  2. Click Check Out in the Check Out dialog box.
+//  3. Close the Check Out Files dialog box.
+//  4. Observe that the selected files are checked out of the selected vault.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+

+namespace BatchGetFiles_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmBatchGet batchGetter;
+        IEdmSelectionList6 fileList = null;
+        EdmSelectionObject poSel;
+        EdmSelItem[] ppoSelection = null;
+        int fileCount = 0;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmFolder5 ppoRetParentFolder;
+        IEdmPos5 aPos;
+        string str;
+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                //File1List.Items.Clear()

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                batchGetter = (IEdmBatchGet)vault2.CreateUtility(EdmUtility.EdmUtil_BatchGet);
+
+                //Convert the selected files to an
+                //array of EdmSelItem structs
+                int nbrFiles = 0;
+                nbrFiles = OpenFileDialog1.Filenames.Count;
+                Array.Resize(ref ppoSelection, nbrFiles);

+                //If the user didn't click Open, no files were selected
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    int i = 0;
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                        aPos = aFile.GetFirstFolderPosition();
+                        aFolder = aFile.GetNextFolder(aPos);
+                        ppoSelection[i] = new EdmSelItem();
+                        ppoSelection[i].mlDocID = aFile.ID;
+                        ppoSelection[i].mlProjID = aFolder.ID;
+                        i = i + 1;
+                    }
+                    // Add selections to the batch of files to check out
+                    batchGetter.AddSelection((EdmVault5)vault1, ref ppoSelection);
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BatchGet_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }


+                if ((batchGetter != null))
+                {
+                    batchGetter.CreateTree(this.Handle.ToInt32(), (int)EdmGetCmdFlags.Egcf_Lock);

+                    fileCount = batchGetter.FileCount;
+                    fileList = (IEdmSelectionList6)batchGetter.GetFileList((int)EdmGetFileListFlag.Egflf_GetLocked + (int)EdmGetFileListFlag.Egflf_GetFailed + (int)EdmGetFileListFlag.Egflf_GetRetrieved + (int)EdmGetFileListFlag.Egflf_GetUnprocessed);

+                    aPos = fileList.GetHeadPosition();

+                    str = "Getting " + fileCount + " files: ";
+                    while (!(aPos.IsNull))
+                    {
+                        fileList.GetNext2(aPos, out poSel);
+                        str = str + "\r\n" + poSel.mbsPath;
+                    }

+                    //MessageBox.Show(str)

+                    retVal = batchGetter.ShowDlg(this.Handle.ToInt32());
+                    // No dialog if checking out only one file

+                    if ((retVal))
+                    {
+                        batchGetter.GetFiles(this.Handle.ToInt32(), null);
+                    }

+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+

+

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchGetFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.BatchGet = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFiles
+            //
+            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select files to check out from vault...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click += new System.EventHandler(SelectFiles_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //BatchGet
+            //
+            this.BatchGet.Location = new System.Drawing.Point(40, 183);
+            this.BatchGet.Name = "BatchGet";
+            this.BatchGet.Size = new System.Drawing.Size(157, 23);
+            this.BatchGet.TabIndex = 6;
+            this.BatchGet.Text = "Check out files from vault";
+            this.BatchGet.UseVisualStyleBackColor = true;
+            this.BatchGet.Click += new System.EventHandler(this.BatchGet_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = true;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.BatchGet);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Check Out Files";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button BatchGet;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+        #endregion
+    }
+}

+

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Get_Files_Example_VBNET.htm b/documentation/api_extracted/Batch_Get_Files_Example_VBNET.htm new file mode 100644 index 0000000..b58e9e4 --- /dev/null +++ b/documentation/api_extracted/Batch_Get_Files_Example_VBNET.htm @@ -0,0 +1,351 @@ + + + +Batch Check Out Files Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Check Out Files Example (VB.NET)

+

This example shows how to check out several files from +the vault in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchGetFiles in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that the vault contains at least one checked-in file.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. The Check Out Files dialog box displays.

+'     a. Select a vault view.
+'     b. Click Select files to check out from vault.
+'     c. In the Select File dialog:
+'        1. Click a couple of files inside the vault.
+'        2. Click Open.
+'     d. Click Check out files from vault.
+'  2. Click Check Out in the Check Out dialog box.
+'  3. Close the Check Out Files dialog box.
+ +'  4. Observe that the selected files are checked out of the selected vault.
+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchGetter As IEdmBatchGet
+    Dim fileList As IEdmSelectionList6 = Nothing
+    Dim poSel As EdmSelectionObject = Nothing
+    Dim ppoSelection() As EdmSelItem
+    Dim fileCount As Integer = 0
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim str As String
+    Dim retVal As Boolean
+

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try
+            'File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            batchGetter = vault2.CreateUtility(EdmUtility.EdmUtil_BatchGet)
+
+            Dim +nbrFiles As Integer += 0
+            nbrFiles = +OpenFileDialog1.FileNames.Count()
+            +Array.Resize(ppoSelection, nbrFiles)

+            'If the user didn't click Open, no files were selected
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                Dim i As Integer = 0
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName)
+                    aPos = aFile.GetFirstFolderPosition
+                    aFolder = aFile.GetNextFolder(aPos)
+                    ppoSelection(i) = New EdmSelItem
+                    ppoSelection(i).mlDocID = aFile.ID
+                    ppoSelection(i).mlProjID = aFolder.ID
+                    i = i + 1
+                Next
+                ' Add selections to the batch of files to check out
+                batchGetter.AddSelection(vault1, ppoSelection)
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    

+

+    Public Sub BatchGet_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchGet.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If Not IsNothing(batchGetter) Then

+                batchGetter.CreateTree(Me.Handle.ToInt32(), EdmGetCmdFlags.Egcf_Lock)

+                fileCount = batchGetter.FileCount
+                fileList = batchGetter.GetFileList(EdmGetFileListFlag.Egflf_GetLocked & EdmGetFileListFlag.Egflf_GetFailed & EdmGetFileListFlag.Egflf_GetRetrieved & EdmGetFileListFlag.Egflf_GetUnprocessed)

+                aPos = fileList.GetHeadPosition()

+                str = "Getting " & fileCount & " files: "
+                While Not (aPos.IsNull())
+                    fileList.GetNext2(aPos, poSel)
+                    str = str + vbLf + poSel.mbsPath
+                End While

+                'MsgBox(str)

+                retVal = batchGetter.ShowDlg(Me.Handle.ToInt32()) ' No dialog if checking out only one file

+                If (retVal) Then
+                    batchGetter.GetFiles(Me.Handle.ToInt32(), Nothing)
+                End If

+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+

+


+End Class

+

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.BatchGet = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select files to check out from vault..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'BatchGet
+        '
+        Me.BatchGet.Location = New System.Drawing.Point(40, 183)
+        Me.BatchGet.Name = "BatchGet"
+        Me.BatchGet.Size = New System.Drawing.Size(157, 23)
+        Me.BatchGet.TabIndex = 6
+        Me.BatchGet.Text = "Check out files from vault"
+        Me.BatchGet.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = True
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.BatchGet)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Check Out Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents BatchGet As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_CSharp.htm b/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_CSharp.htm new file mode 100644 index 0000000..d9658ef --- /dev/null +++ b/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_CSharp.htm @@ -0,0 +1,543 @@ + + + +Batch Get and Set Reference Variables Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Get and Set Reference Variables Example (C#)

+

This example shows how to get and set reference variables in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//     b. Type BatchGetSetRefVariables_CSharp in Name.
+//     c. Click Browse and navigate to the folder where to +create the project.
+//     d. Click OK.
+//     e. Click Show All Files in the Solution Explorer +toolbar and expand
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with +this code.
+//     g. To create the form, replace the code in +Form1.Designer.cs with
+//        this code.
+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, +click
+//     Assemblies > Framework in the left-side panel, +browse to the top folder of
+//     your SOLIDWORKS PDM Professional installation, locate and +click
+//     EPDM.Interop.epdm.dll, click Open, and click +Add).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//     Embed Interop Types to False to handle +methods that pass arrays of
+//     structures.
+//  4. Open the Administration tool.
+//     a. Log into a vault.
+//     b. Double-click Bill of Materials > BOM.
+//     c. Click Description in the Columns list.
+//     d. Select Look for variable in reference specific +values.
+//     e. Click OK.
+//  5. Open File Explorer on a vault view.
+//  6. Ensure that an assembly and its referenced parts reside in the +vault.
+//  7. Check out the assembly.
+//  8. Click the Bill of Materials tab in the vault view.
+//  9. Select Latest in the Reference Version dropdown.
+// 10. Select @ in the Configuration dropdown.
+// 11. Type a description in Description for each part in the assembly.
+// 12. Click Save on the Bill of Materials toolbar and close the vault +view.
+// 13. Click Debug > Start Debugging or press F5.
+//
+
// Postconditions: 
+//  1. The Batch Reference Variables dialog box displays.

+//     a. Select a vault view.
+//     b. Click Show +all reference variables.
+//        1. In the Select Parent File +dialog, select the assembly file identified
+//           in Preconditions +step 8 and click Open.
+//        2. In the Select +Child File dialog, select a part file referenced by the
+//           assembly file and click Open.
+//          
+Displays all of the reference variables for all +configurations.
+//        +3. Click OK in the dialog box.
+//     +c. Click Get Description reference variable.
+
//        +1. In the Select Parent File dialog, select +the assembly file identified
+//           in Preconditions +step 8 and click Open.

+//        2.
+In the Select +Child File dialog, select a part file referenced by the
+//           assembly file and click Open.

+//          
+Displays the current value of reference variable, +Description.
+//        +3. Click OK in the dialog box.
+//     d. Click Update Description reference variable.
+
//        +1. In the Select Parent File dialog, select +the assembly file identified
+//           in Preconditions +step 8 and click Open.

+//        2.
+In the Select +Child File dialog, select a part file referenced by the
+//           assembly file and click Open.

+//       

+//  2. Close the Batch Reference Variables dialog box.
+//  3. Open the vault view and click the assembly.
+//  4. Click the Bill of Materials tab.
+//
  5. Select @ in the +Configuration dropdown.
+//  6. Observe the text in the Description column for the updated +part.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchGetSetRefVariables_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault = null;
+        IEdmFolder5 ppoRetParentFolder;


+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                vault = new EdmVault5();
+                IEdmVault8 vault1 = (IEdmVault8)vault;
+                EdmViewInfo[] Views = null;

+                vault1.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void Button1_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ShowRefVars((IEdmVault11)vault);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void Button2_Click(System.Object sender, System.EventArgs e)
+        {
+            try 
+            {
+                ShowRefDescription((IEdmVault11)vault);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void Button3_Click(System.Object sender, System.EventArgs e)
+        {
+            try 
+            {
+                UpdateRefDescription((IEdmVault11)vault);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        private void ShowRefVars(IEdmVault11 vault)
+        {
+            if (vault == null)
+            {
+                vault = (IEdmVault11)new EdmVault5();
+            }

+            if (!vault.IsLoggedIn)
+            {
+                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+            }

+            //Let the user select the parent file
+            IEdmStrLst5 pathList = default(IEdmStrLst5);
+            pathList = (IEdmStrLst5)vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 parent = default(IEdmFile8);
+            
+            parent = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Let the user select the child file
+            pathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 child = default(IEdmFile8);
+            child = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Get reference variables in the latest version
+            IEdmBatchRefVars batch = default(IEdmBatchRefVars);
+            batch = (IEdmBatchRefVars)vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);
+            EdmRefVar[] vars = null;
+            batch.GetAllRefVars(out vars, parent.ID, 0, child.ID);

+            //Show the result
+            string msg = null;
+            msg = "Reference variables:" + "\n" + "\n";
+            int idx = 0;
+            idx = vars.GetLowerBound(0);
+            while (idx <= vars.GetUpperBound(0))
+            {
+                msg = msg + "Parent ID: " + (vars[idx].mlParentFileID).ToString() + "\n";
+                msg = msg + "Parent cfg: " + vars[idx].mbsParentCfgName + "\n";
+                msg = msg + "Child ID: " + (vars[idx].mlChildFileID).ToString() + "\n";
+                msg = msg + "Child cfg: " + vars[idx].mbsChildCfgName + "\n";
+                msg = msg + "Status: " + vault.GetErrorMessage(vars[idx].mhResult) + "\n";
+                msg = msg + "Variable ID: " + (vars[idx].mlVarID).ToString() + "\n";
+                msg = msg + "Value: " + (vars[idx].moValue).ToString() + "\n";
+                msg = msg + "\n";
+                idx = idx + 1;
+            }

+            MessageBox.Show(msg);
+        }


+        private void ShowRefDescription(IEdmVault11 vault)
+        {
+            if (vault == null)
+            {
+                vault = (IEdmVault11)new EdmVault5();
+            }

+            if (!vault.IsLoggedIn)
+            {
+                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+            }

+            //Let the user select the parent file
+            IEdmStrLst5 pathList = default(IEdmStrLst5);
+            pathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 parent = default(IEdmFile8);
+            parent = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Let the user select the child file
+            pathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 child = default(IEdmFile8);
+            child = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Get the Description variable
+            IEdmVariableMgr6 varMgr = default(IEdmVariableMgr6);
+            varMgr = (IEdmVariableMgr6)vault.CreateUtility(EdmUtility.EdmUtil_VariableMgr);
+            IEdmVariable5 desc = default(IEdmVariable5);
+            desc = varMgr.GetVariable("Description");
+            if (desc == null)
+                return;

+            //Get reference variables in the latest version
+            IEdmBatchRefVars batch = default(IEdmBatchRefVars);
+            batch = (IEdmBatchRefVars)vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);

+            EdmRefVar[] vars = new EdmRefVar[1];
+            vars[0].mlParentFileID = parent.ID;
+            vars[0].mlChildFileID = child.ID;
+            vars[0].mbsChildCfgName = "@";
+            vars[0].mbsParentCfgName = "@";
+            vars[0].mlParentVersion = 0;
+            vars[0].mlVarID = desc.ID;

+            batch.GetRefVars(ref vars);

+            //Show the result to the caller
+            string msg = null;
+            msg = "Reference variable: " + "Description" + "\n" + "\n";
+            msg = msg + "Status: " + vault.GetErrorMessage(vars[0].mhResult) + "\n";
+            msg = msg + "Value: " + (vars[0].moValue).ToString();

+

+
+            MessageBox.Show(msg);

+        }


+        private void UpdateRefDescription(IEdmVault11 vault)
+        {
+            if (vault == null)
+            {
+                vault = (IEdmVault11)new EdmVault5();
+            }

+            if (!vault.IsLoggedIn)
+            {
+                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+            }

+            //Let the user select the parent file
+            IEdmStrLst5 pathList = default(IEdmStrLst5);
+            pathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 parent = default(IEdmFile8);
+            parent = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Let the user select the child file
+            pathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:");
+            if (pathList == null)
+                return;

+            IEdmFile8 child = default(IEdmFile8);
+            child = (IEdmFile8)vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out ppoRetParentFolder);

+            //Get the Description variable
+            IEdmVariableMgr6 varMgr = default(IEdmVariableMgr6);
+            varMgr = (IEdmVariableMgr6)vault.CreateUtility(EdmUtility.EdmUtil_VariableMgr);
+            IEdmVariable5 desc = default(IEdmVariable5);
+            desc = varMgr.GetVariable("Description");
+            if (desc == null)
+                return;

+            //Get reference variables in the latest version
+            IEdmBatchRefVars batch = default(IEdmBatchRefVars);
+            batch = (IEdmBatchRefVars)vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);

+            EdmRefVar[] vars = new EdmRefVar[1];
+            vars[0].mlParentFileID = parent.ID;
+            vars[0].mlChildFileID = child.ID;
+            vars[0].mbsChildCfgName = "@";
+            vars[0].mbsParentCfgName = "@";
+            vars[0].mlParentVersion = 0;
+            vars[0].mlVarID = desc.ID;

+            batch.GetRefVars(ref vars);

+            //Change the Description variable
+            vars[0].moValue = "New +description";

+            //Store the value back in the reference
+            batch.SetRefVars(ref vars);

+

+
+            MessageBox.Show(vault.GetErrorMessage(vars[0].mhResult));
+        }
+    }
+}

+

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchGetSetRefVariables_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.Button1 = new System.Windows.Forms.Button();
+            this.Button2 = new System.Windows.Forms.Button();
+            this.Button3 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(33, 43);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 0;
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(30, 18);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(100, 13);
+            this.VaultsLabel.TabIndex = 1;
+            this.VaultsLabel.Text = "Select a vault view:";
+            //
+            //Button1
+            //
+            this.Button1.Location = new System.Drawing.Point(33, 84);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(187, 23);
+            this.Button1.TabIndex = 2;
+            this.Button1.Text = "Show all reference variables...";
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click += new System.EventHandler(Button1_Click);
+            //
+            //Button2
+            //
+            this.Button2.Location = new System.Drawing.Point(33, 138);
+            this.Button2.Name = "Button2";
+            this.Button2.Size = new System.Drawing.Size(187, 24);
+            this.Button2.TabIndex = 3;
+            this.Button2.Text = "Get Description reference variable...";
+            this.Button2.UseVisualStyleBackColor = true;
+            this.Button2.Click += new System.EventHandler(Button2_Click);
+            //
+            //Button3
+            //
+            this.Button3.Location = new System.Drawing.Point(33, 190);
+            this.Button3.Name = "Button3";
+            this.Button3.Size = new System.Drawing.Size(208, 23);
+            this.Button3.TabIndex = 4;
+            this.Button3.Text = "Update Description reference variable...";
+            this.Button3.UseVisualStyleBackColor = true;
+            this.Button3.Click += new System.EventHandler(Button3_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 262);
+            this.Controls.Add(this.Button3);
+            this.Controls.Add(this.Button2);
+            this.Controls.Add(this.Button1);
+            this.Controls.Add(this.VaultsLabel);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Name = "Form1";
+            this.Text = "Batch Reference Variables";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.Button Button1;
+        internal System.Windows.Forms.Button Button2;
+        internal System.Windows.Forms.Button Button3;

+        #endregion
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_VBNET.htm b/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_VBNET.htm new file mode 100644 index 0000000..61df5f9 --- /dev/null +++ b/documentation/api_extracted/Batch_Get_and_Set_Reference_Variables_Example_VBNET.htm @@ -0,0 +1,436 @@ + + + +Batch Get and Set Reference Variables Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Get and Set Reference Variables Example (VB.NET)

+

This example shows how to get and set reference variables in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchGetSetRefVariables in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+
'  4. Open the Administration tool.
+'     a. Log into a vault.
+'     b. Double-click Bill of Materials > BOM.
+'     c. Click Description in the Columns list.
+'     d. Select Look for variable in reference specific +values.
+'     e. Click OK.
+'  5. Open File Explorer on a vault view.
+'  6. Ensure that an assembly and its referenced parts reside in the +vault.
+'  7. Check out the assembly.
+'  8. Click the Bill of Materials tab in the vault view.
+'  9. Select Latest in the Reference Version dropdown.
+' 10. Select @ in the Configuration dropdown.
+' 11. Type a description in Description for each part in the assembly.
+' 12. Click Save on the Bill of Materials toolbar and close the vault +view.
+' 13. Click Debug > Start Debugging or press F5.
+'
+'
 Postconditions: 
+'  1. The Batch Reference Variables dialog box displays.

+'     a. Select a vault view.
+'     b. Click Show +all reference variables.
+'        1. In the Select Parent File dialog, +select the assembly file identified
+'           in Preconditions +step 5 and click Open.
+'        2. In the Select Child File dialog, +select a part file referenced by the
+'           assembly file and click Open.
+'           Displays all of +the reference variables for all configurations.

+'        +3. Click OK in the dialog box.
+'     +c. Click Get Description reference variable.
+'        1.
+In the Select Parent File dialog, select the assembly +file identified
+'           in Preconditions +step 5 and click Open.

+'        2.
+In the Select Child File dialog, select a part file +referenced by the
+'           assembly file and click Open.

+'           Displays the +current value of reference variable, Description.

+'        +3. Click OK in the dialog box.
+'     d. Click Update Description reference variable.
+'        1.
+In the Select Parent File dialog, select the assembly +file identified
+'           in Preconditions +step 5 and click Open.

+'        2.
+In the Select Child File dialog, select a part file +referenced by the
+'           assembly file and click Open.

+'        3. Type a new description and click +OK.

+'        +4. Click OK in the dialog box.

+'  2. Close the Batch Reference Variables dialog box.
+'  3. Open the vault view and click the assembly.
+'  4. Click the Bill of Materials tab.
+'  5. Select @ in the Configuration dropdown.
+'  6. Observe the text in the Description column for the updated +part.

+
'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1

+    Private vault As IEdmVault5 = Nothing


+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            vault = New EdmVault5()
+            Dim vault1 As IEdmVault8 = DirectCast(vault, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault1.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        ShowRefVars(vault)
+    End Sub

+    Public Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
+        ShowRefDescription(vault)
+    End Sub

+    Public Sub Button3_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button3.Click
+        UpdateRefDescription(vault)
+    End Sub

+    Private Sub ShowRefVars(ByVal vault As IEdmVault11)

+        If vault Is Nothing Then
+            vault = New EdmVault5()
+        End If

+        If Not vault.IsLoggedIn Then
+            vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+        End If

+        'Let the user select the parent file
+        Dim pathList As IEdmStrLst5
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim parent As IEdmFile8
+        parent = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Let the user select the child file
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim child As IEdmFile8
+        child = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Get reference variables in the latest version
+        Dim batch As IEdmBatchRefVars
+        batch = vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars)
+        Dim vars() As EdmRefVar
+        vars = Nothing
+        batch.GetAllRefVars(vars, parent.ID, 0, child.ID)

+        'Show the result
+        Dim msg As String
+        msg = "Reference variables:" + vbLf + vbLf
+        Dim idx As Integer
+        idx = LBound(vars)
+        While idx <= UBound(vars)
+            msg = msg + "Parent ID: " + CStr(vars(idx).mlParentFileID) + vbLf
+            msg = msg + "Parent cfg: " + vars(idx).mbsParentCfgName + vbLf
+            msg = msg + "Child ID: " + CStr(vars(idx).mlChildFileID) + vbLf
+            msg = msg + "Child cfg: " + vars(idx).mbsChildCfgName + vbLf
+            msg = msg + "Status: " + vault.GetErrorMessage(vars(idx).mhResult) + vbLf
+            msg = msg + "Variable ID: " + CStr(vars(idx).mlVarID) + vbLf
+            msg = msg + "Value: " + CStr(vars(idx).moValue) + vbLf
+            msg = msg + vbLf
+            idx = idx + 1
+        End While

+        MsgBox(msg)
+    End Sub

+    Private Sub ShowRefDescription(ByVal vault As IEdmVault11)

+        If vault Is Nothing Then
+            vault = New EdmVault5()
+        End If

+        If Not vault.IsLoggedIn Then
+            vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+        End If

+        'Let the user select the parent file
+        Dim pathList As IEdmStrLst5
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim parent As IEdmFile8
+        parent = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Let the user select the child file
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim child As IEdmFile8
+        child = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Get the Description variable
+        Dim varMgr As IEdmVariableMgr6
+        varMgr = vault.CreateUtility(EdmUtility.EdmUtil_VariableMgr)
+        Dim desc As IEdmVariable5
+        desc = varMgr.GetVariable("Description")
+        If desc Is Nothing Then Exit Sub

+        'Get reference variables in the latest version
+        Dim batch As IEdmBatchRefVars
+        batch = vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars)
+        Dim vars(0) As EdmRefVar
+        vars(0).mlParentFileID = parent.ID
+        vars(0).mlChildFileID = child.ID
+        vars(0).mbsChildCfgName = "@"
+        vars(0).mbsParentCfgName = "@"
+        vars(0).mlParentVersion = 0
+        vars(0).mlVarID = desc.ID
+        batch.GetRefVars(vars)

+        'Show the result to the caller
+        Dim msg As String
+        msg = "Reference variable: " + "Description" + vbLf + vbLf
+        msg = msg + "Status: " + vault.GetErrorMessage(vars(0).mhResult) + vbLf
+        msg = msg + "Value: " + CStr(vars(0).moValue)
+        MsgBox(msg)

+    End Sub

+    Private Sub UpdateRefDescription(ByVal vault As IEdmVault11)

+        If vault Is Nothing Then
+            vault = New EdmVault5()
+        End If

+        If Not vault.IsLoggedIn Then
+            vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+        End If

+        'Let the user select the parent file
+        Dim pathList As IEdmStrLst5
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Parent File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim parent As IEdmFile8
+        parent = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Let the user select the child file
+        pathList = vault.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles, "All Files (*.*)|*.*||""""""""Select Child File:")
+        If pathList Is Nothing Then Exit Sub

+        Dim child As IEdmFile8
+        child = vault.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition))

+        'Get the Description variable
+        Dim varMgr As IEdmVariableMgr6
+        varMgr = vault.CreateUtility(EdmUtility.EdmUtil_VariableMgr)
+        Dim desc As IEdmVariable5
+        desc = varMgr.GetVariable("Description")
+        If desc Is Nothing Then Exit Sub

+        'Get reference variables in the latest version
+        Dim batch As IEdmBatchRefVars
+        batch = vault.CreateUtility(EdmUtility.EdmUtil_BatchRefVars)
+        Dim vars(0) As EdmRefVar
+        vars(0).mlParentFileID = parent.ID
+        vars(0).mlChildFileID = child.ID
+        vars(0).mbsChildCfgName = "@"
+        vars(0).mbsParentCfgName = "@"
+        vars(0).mlParentVersion = 0
+        vars(0).mlVarID = desc.ID
+        batch.GetRefVars(vars)

+        'Let the user edit the Description variable
+        vars(0).moValue = InputBox("Enter new description:""Update Reference Variable", vars(0).moValue)

+        'Store the value back in the reference
+        batch.SetRefVars(vars)
+        MsgBox(vault.GetErrorMessage(vars(0).mhResult))
+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.Button2 = New System.Windows.Forms.Button()
+        Me.Button3 = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(33, 43)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 0
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(30, 18)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(100, 13)
+        Me.VaultsLabel.TabIndex = 1
+        Me.VaultsLabel.Text = "Select a vault view:"
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(33, 84)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(187, 23)
+        Me.Button1.TabIndex = 2
+        Me.Button1.Text = "Show all reference variables..."
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'Button2
+        '
+        Me.Button2.Location = New System.Drawing.Point(33, 138)
+        Me.Button2.Name = "Button2"
+        Me.Button2.Size = New System.Drawing.Size(187, 24)
+        Me.Button2.TabIndex = 3
+        Me.Button2.Text = "Get Description reference variable..."
+        Me.Button2.UseVisualStyleBackColor = True
+        '
+        'Button3
+        '
+        Me.Button3.Location = New System.Drawing.Point(33, 190)
+        Me.Button3.Name = "Button3"
+        Me.Button3.Size = New System.Drawing.Size(208, 23)
+        Me.Button3.TabIndex = 4
+        Me.Button3.Text = "Update Description reference variable..."
+        Me.Button3.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 262)
+        Me.Controls.Add(Me.Button3)
+        Me.Controls.Add(Me.Button2)
+        Me.Controls.Add(Me.Button1)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Name = "Form1"
+        Me.Text = "Batch Reference Variables"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents Button1 As System.Windows.Forms.Button
+    Friend WithEvents Button2 As System.Windows.Forms.Button
+    Friend WithEvents Button3 As System.Windows.Forms.Button

+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_CSharp.htm b/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_CSharp.htm new file mode 100644 index 0000000..ac4df45 --- /dev/null +++ b/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_CSharp.htm @@ -0,0 +1,391 @@ + + + +Batch Revoke State Transitions of Files Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Revoke State Transitions of Files Example (C#)

+

This example shows how to revoke the state transitions of several +files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

+ +//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type BatchChangeFileStates_CSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project.
+//     d. Click OK
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the +form, replace the code in Form1.Designer.cs with 
+//        this code.

+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, and +click Add).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  +4. Ensure that:
+//     a. A workflow exists with +
a No +Approval Required transition.
+//     b. One or more vault files are +transitioned to the Approved state using the
+//        No Approval Required transition.

+//  5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. The Revoke +state transitions dialog box displays.
+//     a. Select a vault view.
+//     b. Click Select files for +which to revoke transitions.
+//     c. In the Select File dialog:
+//        1. Select a +file that transitioned to the Approved state using the
+//           No Approval +Required transition.

+//        2. Click Open.
+//  2. Click Revoke +transitions.
+//  3. Click OK in the Revoke Transition dialog box.
+//     The selected file's No Approval Required transition +is revoked.
+//  4. Close the Revoke +state transitions dialog box.

+ +//----------------------------------------------------------------------------

+ +

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchRevokeTransitions_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmBatchChangeState3 batchChanger;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmPos5 aPos;
+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                File1List.Items.Clear();

+                IEdmVault11 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault11)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();
+                //If the user didn't click Open, exit this subroutine
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                batchChanger = (IEdmBatchChangeState3)vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState);
+                IEdmFolder5 ppoRetParentFolder = null;
+                foreach (string FileName in OpenFileDialog1.FileNames)
+                {
+                    File1List.Items.Add(FileName);
+                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                    aPos = aFile.GetFirstFolderPosition();
+                    aFolder = aFile.GetNextFolder(aPos);
+                    // Add each file selected to the batch
+                    batchChanger.AddFile(aFile.ID, aFolder.ID);
+                }

+                batchChanger.Comment = "Revoke transitions.";
+                batchChanger.AllowAdminToRevoke(true);
+                //batchChanger.SetRevokeUserID(vault2.GetLoggedInWindowsUserID(vault2.Name))

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void RevokeTransitions_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                // Get list of files affected by the transition revocation
+                IEdmSelectionList6 selList = default(IEdmSelectionList6);
+                selList = (IEdmSelectionList6)batchChanger.GetFileList((int)EdmChangeStateFileListFlag.Ecsflf_GetChanged);

+                EdmSelectionObject selObject = new EdmSelectionObject();

+                string str = null;
+                int i = 0;
+                aPos = selList.GetHeadPosition();
+                str = "Files affected by this transition revocation: ";
+                i = 0;
+                while (i < selList.Count)
+                {
+                    selList.GetNext2(aPos, out selObject);
+                    str = str + selObject.mbsPath;
+                    i = i + 1;
+                }

+                //MessageBox.Show(str)

+                // Create the file reference tree and verify transition revocation
+                retVal = batchChanger.CreateTreeForRevoke("No Approval Required");

+                bool retVal2 = false;
+                if ((retVal))
+                {
+                    // Show all of the items in the batch
+                    retVal2 = batchChanger.ShowDlg(this.Handle.ToInt32());

+                    if ((retVal2))
+                    {
+                        // Commit all of the items in the batch to the vault
+                        batchChanger.ChangeState(this.Handle.ToInt32());
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchRevokeTransitions_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.RevokeTransitions = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(12, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(15, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFiles
+            //
+            this.SelectFiles.Location = new System.Drawing.Point(15, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(233, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select files for which to revoke transitions...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click +=new System.EventHandler(SelectFiles_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(15, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(257, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //RevokeTransitions
+            //
+            this.RevokeTransitions.Location = new System.Drawing.Point(40, 183);
+            this.RevokeTransitions.Name = "RevokeTransitions";
+            this.RevokeTransitions.Size = new System.Drawing.Size(157, 23);
+            this.RevokeTransitions.TabIndex = 6;
+            this.RevokeTransitions.Text = "Revoke transitions";
+            this.RevokeTransitions.UseVisualStyleBackColor = true;
+            this.RevokeTransitions.Click +=new System.EventHandler(RevokeTransitions_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = false;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 235);
+            this.Controls.Add(this.RevokeTransitions);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Revoke state transitions";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        #endregion
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button RevokeTransitions;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_VBNET.htm b/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_VBNET.htm new file mode 100644 index 0000000..8a7b4f2 --- /dev/null +++ b/documentation/api_extracted/Batch_Revoke_Transitions_of_Files_Example_VBNET.htm @@ -0,0 +1,340 @@ + + + +Batch Revoke State Transitions of Files Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Revoke State Transitions of Files Example (VB.NET)

+

This example shows how to revoke the state transitions of several +files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchChangeFileStates in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that:
+'     a. A workflow exists with +
a No +Approval Required transition.
+'     +b. One or more vault files are transitioned to the Approved state using the
+'        No Approval Required transition.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. The Revoke +state transitions dialog box displays.
+'     a. Select a vault view.
+'     b. Click Select files for +which to revoke transitions.
+'     c. In the Select File dialog:
+'        1. Select a +file that transitioned to the Approved state using the
+'           No Approval +Required transition.

+'        2. Click Open.
+'  2. Click Revoke +transitions.
+'  3. Click OK in the Revoke Transition dialog box.
+'     The selected file's +No Approval Required transition is revoked.
+'  4. Close the Revoke +state transitions dialog box.
+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchChanger As IEdmBatchChangeState3
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim retVal As Boolean
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try
+            File1List.Items.Clear()

+            Dim vault2 As IEdmVault11 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault11)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+            'Show the Select File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()
+            'If the user didn't click Open, exit this subroutine
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            batchChanger = vault2.CreateUtility(EdmUtility.EdmUtil_BatchChangeState)

+            For Each FileName As String In OpenFileDialog1.FileNames
+                File1List.Items.Add(FileName)
+                aFile = vault1.GetFileFromPath(FileName)
+                aPos = aFile.GetFirstFolderPosition
+                aFolder = aFile.GetNextFolder(aPos)
+                ' Add each file selected to the batch
+                batchChanger.AddFile(aFile.ID, aFolder.ID)
+            Next

+            batchChanger.Comment = "Revoke transitions."
+            batchChanger.AllowAdminToRevoke(True)
+            'batchChanger.SetRevokeUserID(vault2.GetLoggedInWindowsUserID(vault2.Name))

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub RevokeTransitions_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RevokeTransitions.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            ' Get list of files affected by the transition revocation
+            Dim selList As IEdmSelectionList6
+            selList = batchChanger.GetFileList(EdmChangeStateFileListFlag.Ecsflf_GetChanged)

+            Dim selObject As EdmSelectionObject = New EdmSelectionObject()

+            Dim str As String
+            Dim i As Integer
+            aPos = selList.GetHeadPosition()
+            str = "Files affected by this transition revocation: "
+            i = 0
+            While i < selList.Count
+                selList.GetNext2(aPos, selObject)
+                str = str + selObject.mbsPath
+                i = i + 1
+            End While

+            'MsgBox(str)

+            ' Create the file reference tree and verify transition revocation
+            retVal = batchChanger.CreateTreeForRevoke("No Approval Required")

+            Dim retVal2 As Boolean
+            If (retVal) Then
+                ' Show all of the items in the batch
+                retVal2 = batchChanger.ShowDlg(Me.Handle.ToInt32())

+                If (retVal2) Then
+                    ' Commit all of the items in the batch to the vault
+                    batchChanger.ChangeState(Me.Handle.ToInt32())
+                End If
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.RevokeTransitions = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(12, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(15, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(15, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(233, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select files for which to revoke transitions..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(15, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(257, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'RevokeTransitions
+        '
+        Me.RevokeTransitions.Location = New System.Drawing.Point(40, 183)
+        Me.RevokeTransitions.Name = "RevokeTransitions"
+        Me.RevokeTransitions.Size = New System.Drawing.Size(157, 23)
+        Me.RevokeTransitions.TabIndex = 6
+        Me.RevokeTransitions.Text = "Revoke transitions"
+        Me.RevokeTransitions.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = False
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 235)
+        Me.Controls.Add(Me.RevokeTransitions)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Revoke state transitions"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents RevokeTransitions As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Unlock_Files_Example_CSharp.htm b/documentation/api_extracted/Batch_Unlock_Files_Example_CSharp.htm new file mode 100644 index 0000000..b4b8e30 --- /dev/null +++ b/documentation/api_extracted/Batch_Unlock_Files_Example_CSharp.htm @@ -0,0 +1,408 @@ + + + +Batch Check In Files Example (C#) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Check In Files Example (C#)

+

This example shows how to check in several files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type BatchUnlockFiles_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. Check out a vault file.
+// 5. Click Debug > Start Debugging or press F5.
+//
+
// Postconditions: 
+
// 1. Displays +the Check In Files dialog box.
+//    a. Select a vault view.
+//    b. Click Select files to check out from vault.
+//    c. In the Select File dialog:
+//       1. Click the +checked-out vault file.
+//       2. Click Open.
+//    d. Click Check in files.
+//    e. Displays the Check in dialog box with the Reload or +Close Files
+//       after Check In
dropdown in the +toolbar.

+//    +f. Click the Check in button.
+//    g. Click OK in the message box.

+// 2. Close the Check +In Files dialog box.
+// 3. Observe that the selected file is +checked in to the selected vault.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace BatchUnlockFiles_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+        IEdmBatchUnlock2 batchUnlocker;
+        IEdmSelectionList6 fileList = null;
+        EdmSelectionObject poSel;
+        EdmSelItem[] ppoSelection = new EdmSelItem[11];
+        int fileCount = 0;
+        IEdmFile5 aFile;
+        IEdmFolder5 aFolder;
+        IEdmFolder5 ppoRetParentFolder;
+        IEdmPos5 aPos;
+        string str;

+        bool retVal;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select +File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
+                //Show the Select +File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                batchUnlocker = (IEdmBatchUnlock2)vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock);
+
+                //Convert the selected files to an
+                //array of EdmSelItem structs
+                int nbrFiles = 0;
+                nbrFiles = OpenFileDialog1.Filenames.Count;
+                Array.Resize(ref ppoSelection, nbrFiles);

+                //If the user did +not click Open, no files selected
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    int i = 0;
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
+                        aPos = aFile.GetFirstFolderPosition();
+                        aFolder = aFile.GetNextFolder(aPos);
+                        ppoSelection[i] = new EdmSelItem();
+                        ppoSelection[i].mlDocID = aFile.ID;
+                        ppoSelection[i].mlProjID = aFolder.ID;
+                        i = i + 1;
+                    }
+                    // Add selections to the batch of files to check in
+                    batchUnlocker.AddSelection((EdmVault5)vault1, ref ppoSelection);
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void BatchUnlock_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }


+                if ((batchUnlocker != null))
+                {
+                    batchUnlocker.CreateTree(this.Handle.ToInt32(), (int)EdmUnlockBuildTreeFlags.Eubtf_ShowCloseAfterCheckinOption + (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock);

+                    batchUnlocker.Comment = "Updates";
+                    fileList = (IEdmSelectionList6)batchUnlocker.GetFileList((int)EdmUnlockFileListFlag.Euflf_GetUnlocked + (int)EdmUnlockFileListFlag.Euflf_GetUndoLocked + (int)EdmUnlockFileListFlag.Euflf_GetUnprocessed);

+                    aPos = fileList.GetHeadPosition();

+                    str = "Getting " + fileCount + " files: ";
+                    while (!(aPos.IsNull))
+                    {
+                        fileList.GetNext2(aPos, out poSel);
+                        str = str + "\r\n" + poSel.mbsPath;
+                    }

+                    //MessageBox.Show(str)

+                    retVal = batchUnlocker.ShowDlg(this.Handle.ToInt32());

+                    object statuses = null;
+                    if ((retVal))
+                    {
+                        batchUnlocker.UnlockFiles(this.Handle.ToInt32(), null);
+                        statuses = batchUnlocker.GetStatus((int)EdmUnlockStatusFlag.Eusf_CloseAfterCheckinFlag);
+                        MessageBox.Show("Close Files after Check In selected? " + statuses);
+                    }

+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchUnlockFiles_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFiles = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.BatchUnlock = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFiles
+            //
+            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
+            this.SelectFiles.Name = "SelectFiles";
+            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
+            this.SelectFiles.TabIndex = 2;
+            this.SelectFiles.Text = "Select files to check in to vault...";
+            this.SelectFiles.UseVisualStyleBackColor = true;
+            this.SelectFiles.Click += new System.EventHandler(SelectFiles_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //BatchUnlock
+            //
+            this.BatchUnlock.Location = new System.Drawing.Point(40, 183);
+            this.BatchUnlock.Name = "BatchUnlock";
+            this.BatchUnlock.Size = new System.Drawing.Size(157, 23);
+            this.BatchUnlock.TabIndex = 6;
+            this.BatchUnlock.Text = "Check in files";
+            this.BatchUnlock.UseVisualStyleBackColor = true;
+            this.BatchUnlock.Click += new System.EventHandler(this.BatchUnlock_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Multiselect = true;
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 242);
+            this.Controls.Add(this.BatchUnlock);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFiles);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Check In Files";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFiles;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button BatchUnlock;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+        #endregion
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Unlock_Files_Example_VBNET.htm b/documentation/api_extracted/Batch_Unlock_Files_Example_VBNET.htm new file mode 100644 index 0000000..5e04c7b --- /dev/null +++ b/documentation/api_extracted/Batch_Unlock_Files_Example_VBNET.htm @@ -0,0 +1,348 @@ + + + +Batch Check In Files Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Check In Files Example (VB.NET)

+

This example shows how to check in several files in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchUnlockFiles in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Check out a vault file.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays the Check In Files dialog box.

+'     a. Select a vault view.
+'     b. Click Select files to check out from vault.
+'     c. In the Select File dialog:
+'        1. Click the checked-out vault file.
+'        2. Click Open.
+'     d. Click Check in files.
+'     e. Displays the Check in dialog box with the Reload +or Close Files
+'        after Check In
dropdown in the +toolbar.

+'     f. Click the Check in button.
+'     g. Click OK in the message box.

+'  2. Close the Check In +Files dialog box.
+ +'  3. Observe that the selected file is +checked in to the selected vault.
+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing
+    Dim batchUnlocker As IEdmBatchUnlock2
+    Dim fileList As IEdmSelectionList6 = Nothing
+    Dim poSel As EdmSelectionObject = Nothing
+    Dim ppoSelection() As EdmSelItem
+    Dim fileCount As Integer = 0
+    Dim aFile As IEdmFile5
+    Dim aFolder As IEdmFolder5
+    Dim aPos As IEdmPos5
+    Dim str As String
+    Dim retVal As Boolean

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select +File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
+

+            'Show the Select +File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            batchUnlocker = vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock)
+
+            Dim +nbrFiles As Integer += 0
+            nbrFiles = +OpenFileDialog1.FileNames.Count()
+            +Array.Resize(ppoSelection, nbrFiles)

+            'If the user did +not click Open, no files selected
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                Dim i As Integer = 0
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName)
+                    aPos = aFile.GetFirstFolderPosition
+                    aFolder = aFile.GetNextFolder(aPos)
+                    ppoSelection(i) = New EdmSelItem
+                    ppoSelection(i).mlDocID = aFile.ID
+                    ppoSelection(i).mlProjID = aFolder.ID
+                    i = i + 1
+                Next
+                ' Add selections to the batch of files to check in
+                batchUnlocker.AddSelection(vault1, ppoSelection)
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub BatchUnlock_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchUnlock.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If Not IsNothing(batchUnlocker) Then

+                batchUnlocker.CreateTree(Me.Handle.ToInt32(), EdmUnlockBuildTreeFlags.Eubtf_ShowCloseAfterCheckinOption ++ EdmUnlockBuildTreeFlags.Eubtf_MayUnlock)

+                batchUnlocker.Comment = "Updates"
+                fileList = batchUnlocker.GetFileList(EdmUnlockFileListFlag.Euflf_GetUnlocked + EdmUnlockFileListFlag.Euflf_GetUndoLocked + EdmUnlockFileListFlag.Euflf_GetUnprocessed)

+                aPos = fileList.GetHeadPosition()

+                str = "Getting " & fileCount & " files: "
+                While Not (aPos.IsNull())
+                    fileList.GetNext2(aPos, poSel)
+                    str = str + vbLf + poSel.mbsPath
+                End While

+                'MsgBox(str)

+                retVal = batchUnlocker.ShowDlg(Me.Handle.ToInt32())

+                Dim statuses As Object
+                If (retVal) Then
+                    batchUnlocker.UnlockFiles(Me.Handle.ToInt32(), Nothing)
+                    statuses = batchUnlocker.GetStatus(EdmUnlockStatusFlag.Eusf_CloseAfterCheckinFlag)

+

                    +MsgBox("Close Files after Check In selected? " & statuses)
+
+                End If

+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFiles = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.BatchUnlock = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFiles
+        '
+        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFiles.Name = "SelectFiles"
+        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
+        Me.SelectFiles.TabIndex = 2
+        Me.SelectFiles.Text = "Select files to check in to vault..."
+        Me.SelectFiles.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'BatchUnlock
+        '
+        Me.BatchUnlock.Location = New System.Drawing.Point(40, 183)
+        Me.BatchUnlock.Name = "BatchUnlock"
+        Me.BatchUnlock.Size = New System.Drawing.Size(157, 23)
+        Me.BatchUnlock.TabIndex = 6
+        Me.BatchUnlock.Text = "Check in files"
+        Me.BatchUnlock.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Multiselect = True
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 242)
+        Me.Controls.Add(Me.BatchUnlock)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFiles)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Check In Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFiles As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents BatchUnlock As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Update_Variables_Example_CSharp.htm b/documentation/api_extracted/Batch_Update_Variables_Example_CSharp.htm new file mode 100644 index 0000000..62eb537 --- /dev/null +++ b/documentation/api_extracted/Batch_Update_Variables_Example_CSharp.htm @@ -0,0 +1,375 @@ + + + +Batch Update Card Variables Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Update Card Variables Example (C#)

+

This example shows how to update file and folder card +variables in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type BatchUpdateCardVarsCSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, and click +Add).
+
+// 3. Add Microsoft.CSharp as reference (click 
+//    Assemblies > Framework +in the left-side panel, select + 
+//    Microsoft.CSharp, and click OK).
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 5. +
+Ensure that at least one text file is +checked out, and at least one folder
+//    with the word Folder in the name exists in the vault.

+// 6. Click Debug > Start Debugging or press F5.
+//
+
// Postconditions: 
+//  1. Displays the Batch Update dialog box.

+//     a. Select a vault.
+//     b. Click Batch Update Variables.
+//        * Updates the Title and Comment +variables in the data cards
+//          only of checked-out +text files.
+//        * Updates the Description variable +of the data cards of all folders
+//          with the word +Folder in +their names.
+//        * Displays a message box saying +Card variables updated.
+//     c. Click OK to close the message box.

+//  2. Close the Batch Update dialog box.
+//  3. Inspect the data cards of any checked-out text files and folders +with
+//     the word Folder in their names in the selected vault.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+namespace BatchUpdateCardVarsCSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }


+        private void BatchUpdateButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Create a batch update utility
+                IEdmBatchUpdate2 Update = default(IEdmBatchUpdate2);
+                Update = (IEdmBatchUpdate2)vault2.CreateUtility(EdmUtility.EdmUtil_BatchUpdate);

+                //Get the IDs of the file and folder +card variables to update
+                int TitleID = 0;
+                int CommentID = 0;
+                int DescriptionID = 0;
+                IEdmVariableMgr5 VariableMgr = default(IEdmVariableMgr5);

+                VariableMgr = (IEdmVariableMgr5)vault1;
+                TitleID = VariableMgr.GetVariable("Title").ID;
+                DescriptionID = VariableMgr.GetVariable("Description").ID;
+                CommentID = VariableMgr.GetVariable("Comment").ID;

+                //Search for all text files in the +vault
+                IEdmSearch5 Search = default(IEdmSearch5);
+                Search = (IEdmSearch5)vault2.CreateUtility(EdmUtility.EdmUtil_Search);

+                Search.FileName = "%.txt";

+                IEdmSearchResult5 Result = default(IEdmSearchResult5);
+                Result = Search.GetFirstResult();

+                while ((Result != null))
+                {
+                    Update.SetVar(Result.ID, TitleID, "My Title""", (int)EdmBatchFlags.EdmBatch_Nothing);
+                    Update.SetVar(Result.ID, CommentID, "My Comment""", (int)EdmBatchFlags.EdmBatch_Nothing);
+                    Result = Search.GetNextResult();
+                }

+                +//Search for all folders whose names contain +"Folder" in the vault
+                +Search.FileName = "%Folder%";

+                Result = Search.GetFirstResult();

+                while ((Result != null))
+                {
+                    Update.SetFolderVar(Result.ID, DescriptionID, "My Description", (int)EdmBatchFlags.EdmBatch_Nothing);
+                    Result = Search.GetNextResult();
+                }

+                //Write all the card +variable values to the database
+                EdmBatchError2[] Errors = null;
+                int errorSize = 0;
+                errorSize = Update.CommitUpdate(out Errors, null);

+                //Display any errors 
+                string Msg = null;
+                Msg = "Card +variables updated.";

+                string ErrName = null;
+                string ErrDesc = null;
+                string FileName = null;

+                int Lo = 0;
+                Lo = Errors.GetLowerBound(0);

+                int Hi = 0;
+                Hi = Errors.GetUpperBound(0);

+
               IEdmVault9 vault9;
+                vault9 = (IEdmVault9)vault1;
+                EdmObjectInfo[] ppoObjects = null;
+                
+                while (Lo < Hi - 1)
+                {
+                    ppoObjects[Lo].meType = EdmObjectType.EdmObject_File;
+                    Lo = Lo + 1;
+                }
+ 
+                vault9.GetObjects(ref ppoObjects);
+ 
+                while (Lo < Hi - 1)
+                {
+                    if ((Errors[Lo].mlFileID > 0))
+                    {
+                        IEdmFile6 File = default(IEdmFile6);
+                        int ID;
+                        ID = (int)ppoObjects[Lo].moObjectID;
+                        if (ppoObjects[Lo].meType == EdmObjectType.EdmObject_File)
+                        {
+                            if (ID == Errors[Lo].mlFileID)
+                            {
+                                File = (IEdmFile6)ppoObjects[Lo].mpoObject;
+                                FileName = File.Name;
+                            }
+                        }
+                    }

+                    vault1.GetErrorString(Errors[Lo].mlErrorCodeout ErrName, out ErrDesc);
+                    Msg = Msg + "\n" + ErrName + " " + FileName;
+                    Lo = Lo + 1;
+                }

+                MessageBox.Show(Msg);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}
+ +

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace BatchUpdateCardVarsCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.BatchUpdateButton = new System.Windows.Forms.Button();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.Label1 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            //
+            //BatchUpdateButton
+            //
+            this.BatchUpdateButton.Location = new System.Drawing.Point(30, 100);
+            this.BatchUpdateButton.Name = "BatchUpdateButton";
+            this.BatchUpdateButton.Size = new System.Drawing.Size(215, 23);
+            this.BatchUpdateButton.TabIndex = 0;
+            this.BatchUpdateButton.Text = "Batch Update Variables";
+            this.BatchUpdateButton.UseVisualStyleBackColor = true;
+            this.BatchUpdateButton.Click += new System.EventHandler(this.BatchUpdateButton_Click);
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(30, 56);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //Label1
+            //
+            this.Label1.AutoSize = true;
+            this.Label1.Location = new System.Drawing.Point(27, 23);
+            this.Label1.Name = "Label1";
+            this.Label1.Size = new System.Drawing.Size(91, 13);
+            this.Label1.TabIndex = 2;
+            this.Label1.Text = "Select vault view:";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 153);
+            this.Controls.Add(this.Label1);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.BatchUpdateButton);
+            this.Name = "Form1";
+            this.Text = "Batch Update";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Button BatchUpdateButton;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Label Label1;
+        #endregion
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Batch_Update_Variables_Example_VBNET.htm b/documentation/api_extracted/Batch_Update_Variables_Example_VBNET.htm new file mode 100644 index 0000000..7712095 --- /dev/null +++ b/documentation/api_extracted/Batch_Update_Variables_Example_VBNET.htm @@ -0,0 +1,310 @@ + + + +Batch Update Card Variables Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Batch Update Card Variables Example (VB.NET)

+

This example shows how to update file and folder card +variables in one batch.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type BatchUpdateCardVars in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the +form, replace the code in Form1.Designer.vb with 
+'        this code.

+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Add, and click OK).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that at least one text file is checked out, and at least one +folder
+'     with the word Folder in its name exists in the vault.

+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays the Batch Update dialog box.

+'     a. Select a vault.
+'     b. Click Batch Update Variables.
+'        * Updates the Title and Comment +variables in the data cards
+'          only of checked-out +text files.
+'        * Updates the Description variable +of the data cards of all folders
+'          with the word Folder in +their names.
+'        * Displays a message box saying +Card variables updated.
+'     c. Click OK to close the message box.

+'  2. Close the Batch Update dialog box.
+
'  +3. Inspect the data cards of any checked-out text files and folders with
+'     the word Folder in their names in the selected vault.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+    Dim vault1 As IEdmVault5 = New EdmVault5()
+    Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+    Dim Views As EdmViewInfo() = Nothing
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+    Private Sub BatchUpdateButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BatchUpdateButton.Click

+        Try
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Create a batch update utility
+            Dim Update As IEdmBatchUpdate2
+            Update = vault2.CreateUtility(EdmUtility.EdmUtil_BatchUpdate)

+            'Get the IDs of the file +and folder card variables to update
+            Dim TitleID As Integer
+            Dim CommentID As Integer
+            Dim DescriptionID As Integer
+            Dim VariableMgr As IEdmVariableMgr5

+            VariableMgr = vault1
+            TitleID = VariableMgr.GetVariable("Title").ID
+            DescriptionID = VariableMgr.GetVariable("Description").ID
+            CommentID = VariableMgr.GetVariable("Comment").ID

+            'Search for all text files in +the vault
+            Dim Search As IEdmSearch5
+            Search = vault1.CreateUtility(EdmUtility.EdmUtil_Search)

+            Search.FileName = "%.txt"

+            Dim Result As IEdmSearchResult5
+            Result = Search.GetFirstResult

+            While Not Result Is Nothing
+                Update.SetVar(Result.ID, TitleID, "My Title"""EdmBatchFlags.EdmBatch_Nothing)
+                Update.SetVar(Result.ID, CommentID, "My Comment"""EdmBatchFlags.EdmBatch_Nothing)
+                Result = Search.GetNextResult
+            End While

+            'Search for all +folders whose names contain the word Folder in the vault
+            Search.FileName = "%Folder%"

+            Result = Search.GetFirstResult

+            While Not Result Is Nothing
+                Update.SetFolderVar(Result.ID, DescriptionID, "My Description"EdmBatchFlags.EdmBatch_Nothing)
+                Result = Search.GetNextResult
+            End While

+            'Write all the card variable values to the database
+            Dim Errors() As EdmBatchError2 = Nothing
+            Dim errorSize As Integer
+            errorSize = Update.CommitUpdate(Errors, Nothing)

+            'Display any errors
+            Dim Msg As String
+            Msg = "Card +variables updated."

+            Dim ErrName As String = Nothing
+            Dim ErrDesc As String = Nothing
+            Dim FileName As String = Nothing

+            Dim Lo As Integer
+            Lo = LBound(Errors)

+            Dim Hi As Integer
+            Hi = UBound(Errors)

+
            Dim vault9 As IEdmVault9
+            vault9 = DirectCast(vault1, IEdmVault9)
+            Dim ppoObjects(Hi) As EdmObjectInfo
+            While Lo <= Hi
+                ppoObjects(Lo).meType = EdmObjectType.EdmObject_File
+                Lo = Lo + 1
+            End While
+
+            vault9.GetObjects(ppoObjects)
+ 
+            While Lo <= Hi
+                If (Errors(Lo).mlFileID > 0) Then
+                    Dim File As IEdmFile6 = Nothing
+                    Dim ID As Integer
+                    ID = DirectCast(ppoObjects(Lo).moObjectIDInteger)
+                    If (ppoObjects(Lo).meType = EdmObjectType.EdmObject_File) _
+                       And (ID = Errors(Lo).mlFileIDThen
+                        File = DirectCast(ppoObjects(Lo).mpoObjectIEdmFile6)
+                        FileName = File.Name
+                    End If
+                End If

+                vault1.GetErrorString(Errors(Lo).mlErrorCode, ErrName, ErrDesc)
+                Msg = Msg + vbLf + ErrName + " " + FileName
+                Lo = Lo + 1
+            End While

+            MsgBox(Msg)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+End Class
+

+Back to top

+

+'Form1.Designer.vb

+

+       

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.BatchUpdateButton = New System.Windows.Forms.Button()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'BatchUpdateButton
+        '
+        Me.BatchUpdateButton.Location = New System.Drawing.Point(30, 100)
+        Me.BatchUpdateButton.Name = "BatchUpdateButton"
+        Me.BatchUpdateButton.Size = New System.Drawing.Size(215, 23)
+        Me.BatchUpdateButton.TabIndex = 0
+        Me.BatchUpdateButton.Text = "Batch Update Variables"
+        Me.BatchUpdateButton.UseVisualStyleBackColor = True
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(30, 56)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Location = New System.Drawing.Point(27, 23)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(75, 13)
+        Me.Label1.TabIndex = 2
+        Me.Label1.Text = "Select vault +view:"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 153)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.BatchUpdateButton)
+        Me.Name = "Form1"
+        Me.Text = "Batch Update"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents BatchUpdateButton As System.Windows.Forms.Button
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Label1 As System.Windows.Forms.Label

+End Class

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Bitmasks.htm b/documentation/api_extracted/Bitmasks.htm new file mode 100644 index 0000000..9651a26 --- /dev/null +++ b/documentation/api_extracted/Bitmasks.htm @@ -0,0 +1,394 @@ + + + + + + + + + + +Bitmasks + + + + + + + + + + + + + + + + + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Bitmasks

+ +

Bitmasks are essentially bitwise comparisons. Understanding how bitmasks + work might make more sense if you think of their binary representation.

+ +

The binary representation of the decimal number 1 is 0001, 2 is 0010, + 4 is 0100, etc.

+ +

Think of each bit as a switch. For example, the decimal number 5 in + binary is 0101. The third bit (0100) is on and the first bit (0001) is + on. So, 0101 = 0100 + 0001.

+ +

 If a + SOLIDWORKS PDM Professional enumerator has a bitmask like the following:

+ +

 

+ + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Decimal

+

Option

+

Binary

+

1

+

OptionA

+

0001

+

2

+

OptionB

+

0010

+

4

+

OptionC

+

0100

+

8

+

OptionD

+

1000

+ +

 

+ +

and you want OptionA and OptionC on, then add their two values together:

+ +

 

+ + + ++++ + + + + + + + + + + + + + + + + + + + +
+

Decimal

+

Option

+

Binary

+

   1

+

OptionA

+

0001

+

+ 4

+

OptionC

+

0100

+

= 5

+

 

+

0101

+ +

      

+ +

 

+ + + + diff --git a/documentation/api_extracted/ButtonProps.gif b/documentation/api_extracted/ButtonProps.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a1ab0f356e3891097e7dcb3ce12ac0a69ff1777 GIT binary patch literal 7369 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 F{{iWV`~d&} literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/CSharpAddIns.htm b/documentation/api_extracted/CSharpAddIns.htm new file mode 100644 index 0000000..c8db5fd --- /dev/null +++ b/documentation/api_extracted/CSharpAddIns.htm @@ -0,0 +1,234 @@ + + + +Creating Add-ins (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Creating Add-ins (C#)

+ + + +
+ +

This topic shows how to create a +debug add-in using Visual C# in Microsoft Visual Studio.
+
+
NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

+ +
    +
  1. + Start Microsoft Visual + Studio or another version that supports debugging.
  2. +
  3. Click File > + New > Project > Visual C# > Windows Desktop > Class Library + (.NET Framework).
  4. +
  5. In the .NET Framework dropdown at the top of the + New Project dialog, keep the default version (recommended) or select + .NET Framework 4.5 or later. See Using .NET + Framework for Add-in Applications for more information.
  6. +
  7. + Type the name of your + project in Name.
  8. +
  9. Click + Browse and navigate to the folder where to create your project.
  10. +
  11. Click OK.
    +
    + Class1.cs containing empty class, Class1, is created.
  12. +
  13. Right-click the project name in the Solution Explorer and click + Add > Reference.
     
      +
    1. Click Browse in the left-hand panel, navigate to and select + EPDM.Interop.epdm.dll, and click OK.
    2. +
    3. Right-click Epdm.Interop.epdm in the Solution Explorer, + select Properties, and set Embed Interop Types to False + to handle methods that pass arrays of structures.
       
    4. +
    5. Click Assemblies > Framework in the left-hand panel, + select + System.Windows.Forms, and click OK.
       
    6. +
    7. Click Close.
    8. +
  14. +
  15. Right-click the project name in the Solution Explorer and + click Properties.
     
      +
    1. Click Application > Assembly Information.
    2. +
    3. De-select + Make assembly COM-Visible.
    4. +
    5. On the Build tab, + select AnyCPU for the target platform, de-select + Prefer 32-bit and select Register for COM + interop.
    6. +
  16. +
  17. Make this + a Debug Add-in:
     
      +
    1. Click the Debug tab.
       
    2. +
    3. Click + Start external program + and type + C:\Windows\System32\notepad.exe in the text field.
    4. +
    +

     

  18. +
  19. If creating this add-in on a 64-bit computer, edit + + project_path\project_name\project_name\project_name.csproj + in Notepad:
     
      +
    1. Insert the following line below <PropertyGroup + Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> and + below  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == + 'Release|AnyCPU' ">.

      <PlatformTarget>AnyCPU</PlatformTarget>
       
    2. +
    3. Save the file and exit Notepad.
    4. +
     
  20. +
  21. Double-click Class1.cs in the Solution Explorer + to open the code window.
     
  22. +
  23. At the top of the code window, type:

    + using System.Windows.Forms;
    +
    + using System.Runtime.InteropServices;
    +
    using + EPDM.Interop.epdm;
     
  24. +
  25. +

    + Replace:

  26. +
    public class Class1
    +

    +  with:

    +

    +
    [Guid(""), + ComVisible(true)]

    +

    + public class Class1 : IEdmAddIn5

  27. To populate the GUID + attribute above, click Tools > Create GUID in the IDE, select GUID + Format 5, click Copy, and click Exit. Populate + [Guid(""), + ...] with the copied string.
     
  28. +
  29. Implement + IEdmAddIn5::GetAddInInfo + by adding the following to Class1:
     

    +     public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
        {
            //Specify + information to display in the add-in's Properties dialog box
            poInfo.mbsAddInName = "C# Add-in";
            poInfo.mbsCompany = "My Company";
            poInfo.mbsDescription = "Menu add-in that shows a message box.";
            poInfo.mlAddInVersion = 1;
     
            //Specify + the minimum required version of SolidWorks PDM + Professional
            poInfo.mlRequiredVersionMajor = 6;
            poInfo.mlRequiredVersionMinor = 4;
     
            // Register a menu command
            poCmdMgr.AddCmd(1, "C# Add-in", (int)EdmMenuFlags.EdmMenu_Nothing);
     
        }

  30. +
  31. Implement + IEdmAddIn5::OnCmd + by adding the following to Class1:
  32. +

    + public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    + {
     
            // Handle the menu command
            if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
            {
                if (poCmd.mlCmdID == 1) + {
                    System.Windows.Forms.MessageBox.Show("C# Add-in");
                }
            }
    +  }

    +
    +
  33. Implement your own window handle wrapper by + right-clicking the project name in the Solution Explorer and clicking Add > Class:
     
      +
    1. Type WindowHandle.cs in Name.
       
    2. +
    3. Click Add.
       
    4. +
    5. Replace the code in the code window with the + following code.
    6. + +
    +
    +
    +

    + using System;
    + using System.Collections.Generic;
    + using System.Text;
    + using System.Windows.Forms;
     
    + namespace Addin_CSharp
    {
        //Wrapper class to use SOLIDWORKS PDM Professional as the parent window
        class WindowHandle : IWin32Window
        {
            private IntPtr mHwnd;
     
            public WindowHandle(int hWnd)
            {
                mHwnd = new IntPtr(hWnd);
            }
            public IntPtr Handle
            {
                get { return mHwnd; }
            }
        }
    }

    +
    +

    Your add-in uses the new wrapper in the menu + command handler to + show the message box by calling System.Windows.Forms.MessageBox.Show in Class1::OnCmd in + Class1.cs.

    +
    +
  34. Click Build > Build + Solution to build the add-in.
     
  35. +
  36. Install + the add-in for debugging through the SOLIDWORKS PDM Professional + Administration tool:
     
      +
    1. Open the SOLIDWORKS + PDM Professional Administration tool.
       
    2. +
    3. Expand the vault where + you want to install this add-in and log in as Admin.
       
    4. +
    5. Right-click Add-ins and select Debug + Add-ins.
       
    6. +
    7. Click Add Add-in, browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll, and click Open.

      Your add-in's name, path, and class ID should appear in + the Add-ins installed + for debugging on this machine list.
       
    8. +
    9. Click OK.
       
    10. +
  37. +
  38. In Microsoft Visual Studio, click Debug > Start Debugging + or press F5.
     
  39. +
  40. Open Notepad and click File > Open.
     
  41. +
  42. In the Open dialog, click the name of the vault where you installed this add-in.
     
  43. +
  44. Right-click inside the vault view and click C# + Add-in.

    Displays the message, C# Add-in.
     
  45. +
  46. Click OK to close the message box.
     
  47. +
  48. Click Cancel.
     
  49. +
  50. Close Notepad.

    + + Complete +Source Code

    +
    +

    + //Class1.cs

    +

    +
    + using System;
    + using System.Collections;
    + using System.Collections.Generic;
    + using System.Data;
    + using System.Diagnostics;
    + using System.Windows.Forms;
    + using System.Runtime.InteropServices;
    + using EPDM.Interop.epdm;
     
    [Guid(""), + ComVisible(true)]    + // See step 14 above to create the GUID
    + public class Class1 : IEdmAddIn5
    {
     
        public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
        {
            
            poInfo.mbsAddInName = "C# Add-in";
            poInfo.mbsCompany = "My Company";
            poInfo.mbsDescription = "Menu add-in that shows a message box.";
            poInfo.mlAddInVersion = 1;
    +
            poInfo.mlRequiredVersionMajor = 6;
            poInfo.mlRequiredVersionMinor = 4;
     
            poCmdMgr.AddCmd(1, "C# Add-in", (int)EdmMenuFlags.EdmMenu_Nothing);
     
        }
     

    +

    +     public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
             
            if (poCmd.meCmdType == EdmCmdType.EdmCmd_Menu)
            {
                if (poCmd.mlCmdID == 1)
                {
                    System.Windows.Forms.MessageBox.Show("C# Add-in");
                }
            }
        }
    }

    +

    + //WindowHandle.cs

    +

    + using System;
    + using System.Collections.Generic;
    + using System.Text;
    + using System.Windows.Forms;
     
    + namespace Addin_CSharp
    {
        class WindowHandle : IWin32Window
        {
            private IntPtr mHwnd;
     
            public WindowHandle(int hWnd)
            {
                mHwnd = new IntPtr(hWnd);
            }
            public IntPtr Handle
            {
                get { return mHwnd; }
            }
        }
    }

    +
  51. + +
+ + + + diff --git a/documentation/api_extracted/CardView1.gif b/documentation/api_extracted/CardView1.gif new file mode 100644 index 0000000000000000000000000000000000000000..d829bf449426a48e26f393bc60fc3796e1933264 GIT binary patch literal 4537 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 bIqq$&khc89Hg-`Pr=yL#rESwD0C4|5`Ucip literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/CardView2.gif b/documentation/api_extracted/CardView2.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f4f9f40ba8ce1755eb8f4e0461de6d0692fdbb8 GIT binary patch literal 8451 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 + + +Change Card Variables Add-in Example (C#) + + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Change Card Variables Add-in Example (C#)

+

This example shows how to create an add-in that pops up a message box when a file is +approved.

+ +

+//--------------------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+// 2. Click File > New > Project > Visual C# > Class Library (.NET Framework).
+// 3. Select .NET Framework 4.5 +or later in the dropdown.
+// 4. Type CardVariables_CSharp in Name.
+// 5. Click Browse and navigate to the folder where to create the project.
+// 6. Click OK
+// 7. Right-click the project name in the Solution Explorer and click Add Reference
+// 8. In the Add Reference dialog:   
+//    a. Add the +SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
+//       left-side panel, click +EPDM.Interop.epdm.dll
+//       and click OK).
//    b. Add Microsoft.VisualBasic +and System.Windows.Forms as a references (click Assemblies +> Framework in the
+//       left-side panel, click System.Windows.Forms +and Microsoft.VisualBasic, and click OK).

+//    c. Click Close.
+// 9. Right-click the project name in the Solution Explorer and click Properties.
+//10. In the Properties window:
+//    a. On the Application tab, click Assembly Information.
+//    b. De-select Make assembly COM-Visible.
+//    c. On the Build tab, +select Any CPU, de-select Prefer 32-bit, and +select Register for COM interop.
+//11. Save the project.

+//12. Copy the code below to Class1.cs.
+//13.
To populate the GUID + attribute, click Tools > Create GUID in the IDE,
+//    select GUID Format 5, click Copy, and click Exit. +Populate [
Guid(""),...] +with
+//    the copied string.

+//14. Click Build > Build Solution.
+//
// Postconditions: 
+// 1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
+//    and log in as Admin.
+// 2. Under vault_name, right-click Add-ins, and click New Add-in.
+//    a. Navigate to the bin\Debug directory of your built project.
+//    b. Click EPDM.Interop.epdm.dll and CardVariables.dll.
+//    c. Click Open.
+//    d. Click OK.
+// 3. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
+// 4. In the taskbar, click the Administration tool blueberry and click Log +off > vault_name.

+// 5. Open File Explorer on a view of vault_name to:
+//    a. Log in as Admin.

+//    b. Create, check in, +and check out a file whose data card contains Project Name 
+//       and Project Number.

+//    c. Click the Data Card tab.
+//    d. In Project Name, type MercuryVenusEarthMarsJupiter, or Saturn.
+//    e. Observe the change in Project Number.
//    f. In Project Number, type a number between 1000 and 1005.

+//    g. Observe the change in Project Name.
+//---------------------------------------------------------------------------------------
 

+

+using Microsoft.VisualBasic
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Diagnostics;
+using EPDM.Interop.epdm;
+using System.Runtime.InteropServices;
+
+[Guid(""), +ComVisible(true)] 
+public class CardVariables : IEdmAddIn5
+{

+    public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
+    {
+        try
+        {
+            poInfo.mbsAddInName = "C# Card Variable Add-In";
+            poInfo.mbsCompany = "Dassault Systemes";
+            poInfo.mbsDescription = "Example demonstrating updating a card variable based on another card variable";
+            poInfo.mlAddInVersion = 1;
+            //Minimum SOLIDWORKS PDM Professional version
+            //needed for C# Add-Ins is 6.4
+            poInfo.mlRequiredVersionMajor = 6;
+            poInfo.mlRequiredVersionMinor = 4;

+            //Register to receive a notification when
+            //a data card variable value changes
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardInput);

+            IEdmDictionary5 ProjectDictionary = default(IEdmDictionary5);
+            ProjectDictionary = poVault.GetDictionary("Projects"true);

+            bool SuccessSet = false;
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1000""Mercury");
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1001""Venus");
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1002""Earth");
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1003""Mars");
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1004""Jupiter");
+            SuccessSet = ProjectDictionary.StringTestAndSetAt("1005""Saturn");

+        }
+        catch (System.Runtime.InteropServices.COMException ex)
+        {
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\r\n" + ex.Message);
+        }
+        catch (Exception ex)
+        {
+            MessageBox.Show(ex.Message);
+        }
+    }

+

+
+    readonly Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag static_OnCmd_VariableChangeInProgress_Init = new Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag();


+    //A data card variable value has changed
+    bool static_OnCmd_VariableChangeInProgress;
+    public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
+    {
+        try
+        {
+            switch (poCmd.meCmdType)
+            {
+                case EdmCmdType.EdmCmd_CardInput:
+
+                    lock (static_OnCmd_VariableChangeInProgress_Init)
+                    {
+                        try
+                        {
+                            if (InitStaticVariableHelper(static_OnCmd_VariableChangeInProgress_Init))
+                            {
+                                static_OnCmd_VariableChangeInProgress = false;
+                            }
+                        }
+                        finally
+                        {
+                            static_OnCmd_VariableChangeInProgress_Init.State = 1;
+                        }
+                    }

+                    IEdmEnumeratorVariable5 vars = (IEdmEnumeratorVariable5)poCmd.mpoExtra;
+                    IEdmStrLst5 ConfigNames = (IEdmStrLst5)((EdmCmdData)ppoData.GetValue(0)).mpoExtra;
+                    string Config = null;
+                    if (IsConfigInList(ConfigNames, "@"))
+                    {
+                        Config = "@";
+                    }
+                    else
+                    {
+                        Config = "";
+                    }

+                    //Take appropriate action based on the data card variable that has changed
+                    switch (poCmd.mbsComment)
+                    {

+                        //The Project Name variable has changed
+                        case "Project Name":
+                            if (static_OnCmd_VariableChangeInProgress == true)
+                            {
+                                static_OnCmd_VariableChangeInProgress = false;
+                                break
+                            }
+                            object ProjectName = "";
+                            vars.GetVar("Project Name", Config, out ProjectName);

+                            //Get the old Project Number
+                            object ProjectNumber = "";
+                            vars.GetVar("Project number", Config, out ProjectNumber);

+                            //Get the existing Projects dictionary
+                            IEdmDictionary5 ProjectDictionary = default(IEdmDictionary5);
+                            ProjectDictionary = ((IEdmVault5)(poCmd.mpoVault)).GetDictionary("Projects"false);

+                            //Look up the new project number
+                            string NewProjectNumber = "";
+                            //Find all values containing the substring
+                            //stored in ProjectName 
+                            string key = "";
+                            string value = "";
+                            IEdmPos5 pos = default(IEdmPos5);
+                            pos = ProjectDictionary.StringFindValues((string)ProjectName);
+                            while (!pos.IsNull)
+                            {
+                                ProjectDictionary.StringGetNextAssoc(pos, out key, out value);
+                                //Traverse the values until a match
+                                //is found
+                                if (value == (string)ProjectName)
+                                {
+                                    NewProjectNumber = key;
+                                    break;
+                                }
+                            }

+                            //Only update the variable if it changed
+                            if (!(NewProjectNumber == (string)ProjectNumber))
+                            {
+                                static_OnCmd_VariableChangeInProgress = true;
+                                vars.SetVar("Project number", Config, NewProjectNumber);

+                            }
+                            break;

+                        //The Project Number variable has changed
+                        case "Project number":
+                            if (static_OnCmd_VariableChangeInProgress == true)
+                            {
+                                static_OnCmd_VariableChangeInProgress = false;
+                                break
+                            }


+                            ProjectNumber = "";
+                            vars.GetVar("Project number", Config, out ProjectNumber);

+                            //Get the old Project Name
+                            ProjectName = "";
+                            vars.GetVar("Project Name", Config, out ProjectName);

+                            //Get the existing Projects dictionary
+                            ProjectDictionary = ((IEdmVault5)(poCmd.mpoVault)).GetDictionary("Projects"false);

+                            //Look up the project name
+                            string NewProjectName = "";
+                            ProjectDictionary.StringGetAt((string)ProjectNumber, out NewProjectName);


+                            //Only update the variable if it's changed
+                            if (!(NewProjectName == ((string)ProjectName)))
+                            {
+                                static_OnCmd_VariableChangeInProgress = true;
+                                vars.SetVar("Project Name", Config, NewProjectName);
+                            }
+                            break;
+                    }
+                    break;
+            }
+        }
+        catch (System.Runtime.InteropServices.COMException ex)
+        {
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\r\n" + ex.Message);
+        }
+        catch (Exception ex)
+        {
+            MessageBox.Show(ex.Message);
+        }
+    }

+    private bool IsConfigInList(IEdmStrLst5 ConfigNames, string ConfigName)
+    {
+        bool functionReturnValue = false;
+        functionReturnValue = false;
+        try
+        {
+            string CurConfig = null;
+            IEdmPos5 Pos = ConfigNames.GetHeadPosition();
+            while (!Pos.IsNull)
+            {
+                CurConfig = ConfigNames.GetNext(Pos);
+                if (CurConfig == ConfigName)
+                {
+                    functionReturnValue = true;
+                    break
+                }
+            }
+            return functionReturnValue;
+        }
+        catch (System.Runtime.InteropServices.COMException ex)
+        {
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\r\n" + ex.Message);
+        }
+        catch (Exception ex)
+        {
+            MessageBox.Show(ex.Message);
+        }
+        return functionReturnValue;
+    }

+

+
+    static bool InitStaticVariableHelper(Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag flag)
+    {
+        if (flag.State == 0)
+        {
+            flag.State = 2;
+            return true;
+        }
+        else if (flag.State == 2)
+        {
+            throw new Microsoft.VisualBasic.CompilerServices.IncompleteInitialization();
+        }
+        else
+        {
+            return false;
+        }
+    }

+}

+ +

+Back to top

+ + + + diff --git a/documentation/api_extracted/Change_Card_Variables_Addin_Example_VBNET.htm b/documentation/api_extracted/Change_Card_Variables_Addin_Example_VBNET.htm new file mode 100644 index 0000000..1f813f2 --- /dev/null +++ b/documentation/api_extracted/Change_Card_Variables_Addin_Example_VBNET.htm @@ -0,0 +1,299 @@ + + + +Change Card Variables Add-in Example (VB.NET) + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Change Card Variables Add-in Example (VB.NET)

+

This example shows how to create an add-in that modifies a data card variable +when another data card variable changes.

+ +

+ +'--------------------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+' 2. Click File > New > Project > Visual Basic > Class Library (.NET Framework).
+' 3. Select .NET Framework 4.5 +or later in the dropdown.
+' 4. Type CardVariables in Name.
+' 5. Click Browse and navigate to the folder where to create the project.
+' 6. Click OK
+ +' 7. Right-click the project name in the Solution Explorer and click Add Reference
+' 8. In the Add Reference dialog:   
+'    a. Add the +SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
+'       left-side panel, click +EPDM.Interop.epdm.dll
+'       and click OK).

+'    b. Click Close.
+ +' 9. Right-click the project name in the Solution Explorer and click Properties.
+'10. In the Properties window:
+'    a. On the Application tab, click Assembly Information.
+'    b. De-select Make assembly COM-Visible.
+'    c. On the Compile tab, +select Any CPU, de-select Prefer 32-bit, and select Register for COM interop.
+'11. Save the project.

+'12. Copy the code below to Class1.vb.
+'13.
To populate the GUID + attribute, click Tools > Create GUID in the IDE,
+'    select GUID Format + 6, click Copy, and click Exit. Replace + <
Guid("")> +with
+'    the copied string.

+'14. Click Build > Build Solution.
+'
+' Postconditions: 
+' 1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
+'    and log in as Admin.
+' 2. Under vault_name, right-click Add-ins, and click New Add-in.
+ +'    a. Navigate to the bin\Debug + +directory of your built project.
+'    b. Click EPDM.Interop.epdm.dll and CardVariables.dll.
+'    c. Click Open.
+'    d. Click OK.
+' 3. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
+' 4. In the taskbar, click the Administration tool icon and click Log +Off > vault_name.

+' 5. Open File Explorer on a view of vault_name to:
+'    a. Log in as Admin.

+'    b. Create, check in, +and check out a file whose data card contains Project Name 
+'       and Project Number.
+'    c. Click the Data Card tab.

+'    d. In Project Name, type MercuryVenusEarthMarsJupiter, or Saturn.
+'    e. Observe the change in Project Number.
+'    f. In Project Number, type a number between 1000 and 1005.

+'    g. Observe the change in Project Name.
+ +'---------------------------------------------------------------------------------------
+
+Imports EPDM.Interop.epdm
+Imports System.Runtime.InteropServices
+
+<Guid("")>
+<ComVisible(True)> 
+Public Class CardVariables
+    Implements IEdmAddIn5

+    Public Sub GetAddInInfo( _
+          ByRef poInfo As EdmAddInInfo, _
+          ByVal poVault As IEdmVault5, _
+          ByVal poCmdMgr As IEdmCmdMgr5) _
+          Implements IEdmAddIn5.GetAddInInfo
+        Try
+            poInfo.mbsAddInName = "VB.NET Card Variable Add-In"
+            poInfo.mbsCompany = "Dassault Systemes"
+            poInfo.mbsDescription = "Example demonstrating " _
+              + "updating a card variable based on another card variable"
+            poInfo.mlAddInVersion = 1
+            'Minimum SOLIDWORKS PDM Professional version
+            'needed for VB.Net Add-Ins is 6.4
+            poInfo.mlRequiredVersionMajor = 6
+            poInfo.mlRequiredVersionMinor = 4

+            'Register to receive a notification when
+            'a data card variable value changes
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardInput)

+            Dim ProjectDictionary As IEdmDictionary5
+            ProjectDictionary = poVault.GetDictionary( _
+              "Projects"True'Create it if it doesn't exist

+            Dim SuccessSet As Boolean = False
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1000""Mercury")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1001""Venus")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1002""Earth")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1003""Mars")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1004""Jupiter")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1005""Saturn")

+        Catch ex As Runtime.InteropServices.COMException
+            MsgBox("HRESULT = 0x" + _
+               ex.ErrorCode.ToString("X") + vbCrLf + _
+               ex.Message)
+        Catch ex As Exception
+            MsgBox(ex.Message)
+        End Try
+    End Sub

+

+    'A data card variable value has changed
+    Public Sub OnCmd( _
+          ByRef poCmd As EdmCmd, _
+          ByRef ppoData As EdmCmdData[]) _
+          Implements IEdmAddIn5.OnCmd
+        Try
+            
+            Select Case poCmd.meCmdType

+                Case EdmCmdType.EdmCmd_CardInput
+                    Static VariableChangeInProgress As Boolean = _
+                       False
+                    Dim vars As IEdmEnumeratorVariable5 = _
+                       poCmd.mpoExtra
+                    Dim ConfigNames As IEdmStrLst5 = _
+                        DirectCast(ppoData(0), EdmCmdData).mpoExtra
+                    Dim Config As String
+                    If IsConfigInList(ConfigNames, "@"Then
+                        Config = "@"
+                    Else
+                        Config = ""
+                    End If

+                    'Take appropriate action based on the data card variable that has changed
+                    Select Case poCmd.mbsComment

+                        'The Project Name variable has changed
+                        Case "Project Name"
+                            If VariableChangeInProgress = True Then
+                                VariableChangeInProgress = False
+                                Exit Select
+                            End If
+                            Dim ProjectName As String = ""
+                            vars.GetVar("Project Name", Config, _
+                              ProjectName)

+                            'Get the old Project Number
+                            Dim ProjectNumber As String = ""
+                            vars.GetVar("Project number", Config, _
+                               ProjectNumber)

+                            'Get the existing Projects dictionary
+                            Dim ProjectDictionary As IEdmDictionary5
+                            ProjectDictionary = poCmd.mpoVault. _
+                              GetDictionary("Projects"False)

+                            'Look up the new project number
+                            Dim NewProjectNumber As String = ""
+                            'Find all values containing the substring
+                            'stored in ProjectName 
+                            Dim key As String = ""
+                            Dim value As String = ""
+                            Dim pos As IEdmPos5
+                            pos = ProjectDictionary.StringFindValues( _
+                              ProjectName)
+                            While Not pos.IsNull
+                                ProjectDictionary.StringGetNextAssoc( _
+                                  pos, key, value)
+                                'Traverse the values until a match
+                                'is found
+                                If value = ProjectName Then
+                                    NewProjectNumber = key
+                                    Exit While
+                                End If
+                            End While

+                            'Only update the variable if it +changed
+                            If Not NewProjectNumber = ProjectNumber _
+                                  Then
+                                VariableChangeInProgress = True
+                                vars.SetVar("Project number", Config, _
+                                   NewProjectNumber)
+                                
+                            End If

+                            'The Project Number variable has changed
+                        Case "Project number"
+                            If VariableChangeInProgress = True Then
+                                VariableChangeInProgress = False
+                                Exit Select
+                            End If

+

+
+                            Dim ProjectNumber As String = ""
+                            vars.GetVar("Project number", Config, _
+                               ProjectNumber)

+                            'Get the old Project Name
+                            Dim ProjectName As String = ""
+                            vars.GetVar("Project Name", Config, _
+                               ProjectName)

+                            'Get the existing Projects dictionary
+                            Dim ProjectDictionary As IEdmDictionary5
+                            ProjectDictionary = poCmd.mpoVault. _
+                              GetDictionary("Projects"False)

+                            'Look up the project name
+                            Dim NewProjectName As String = ""
+                            ProjectDictionary.StringGetAt( _
+                              ProjectNumber, NewProjectName)

+

+
+                            'Only update the variable if it's changed
+                            If Not NewProjectName = ProjectName Then
+                                VariableChangeInProgress = True
+                                vars.SetVar("Project Name", Config, _
+                                   NewProjectName)
+                            End If
+                    End Select
+            End Select
+        Catch ex As Runtime.InteropServices.COMException
+            MsgBox("HRESULT = 0x" + _
+               ex.ErrorCode.ToString("X") + vbCrLf + _
+               ex.Message)
+        Catch ex As Exception
+            MsgBox(ex.Message)
+        End Try
+    End Sub

+    Private Function IsConfigInList(ByVal ConfigNames As IEdmStrLst5ByVal ConfigName As StringAs Boolean
+        IsConfigInList = False
+        Try
+            Dim CurConfig As String
+            Dim Pos As IEdmPos5 = ConfigNames.GetHeadPosition()
+            While Not Pos.IsNull
+                CurConfig = ConfigNames.GetNext(Pos)
+                If CurConfig = ConfigName Then
+                    IsConfigInList = True
+                    Exit While
+                End If
+            End While
+            Return IsConfigInList
+        Catch ex As Runtime.InteropServices.COMException
+            MsgBox("HRESULT = 0x" + _
+               ex.ErrorCode.ToString("X") + vbCrLf + _
+               ex.Message)
+        Catch ex As Exception
+            MsgBox(ex.Message)
+        End Try
+    End Function

+End Class

+

Back to top

+ +

 

+ + + + diff --git a/documentation/api_extracted/CheckInFlags.gif b/documentation/api_extracted/CheckInFlags.gif new file mode 100644 index 0000000000000000000000000000000000000000..424db98f7d8b6fdb786546e4e3f0ecb45558dab4 GIT binary patch literal 6679 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 QvM7792GOho5djbYJMAQWI{*Lx literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Check_Out_and_Copy_File_Example_CSharp.htm b/documentation/api_extracted/Check_Out_and_Copy_File_Example_CSharp.htm new file mode 100644 index 0000000..45541fd --- /dev/null +++ b/documentation/api_extracted/Check_Out_and_Copy_File_Example_CSharp.htm @@ -0,0 +1,237 @@ + + + +Check Out and Copy File Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Check Out and Copy File Example (C#)

+

This example shows how to find a vault from a file path, +check out the file from the vault, and copy the file to another location.

+ +

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type GetVaultFromFilePath_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, click Add, +and click Close).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Ensure that c:\temp exists.
+// 5. Ensure that at least one file is checked into a vault.

+// 6. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Check +out and copy a file dialog box.
+// 2. Click Check +out and copy a file.
+// 3. In the Open dialog, navigate to and click a file checked into a vault.
+// 4. Click Open.
+
//    +a. Gets the vault from the selected file's path.
+//    b. Logs into the vault.
+//    c. Checks out the file.

+//    d. Displays a message box confirming the check-out.
+//    e. Click OK.
+//    f. Copies the selected file to c:\temp.
+//    g. Displays a message box confirming the copy.
+//    h. Click OK.

+// 5. Close the Check +out and copy a file dialog box.            

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+namespace GetVaultFromPath_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+        }

+        private void Button1_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                EdmVault5 vault = default(EdmVault5);
+                vault = new EdmVault5();

+                IEdmStrLst5 strList = default(IEdmStrLst5);
+                strList = vault.BrowseForFile(this.Handle.ToInt32());

+                IEdmPos5 pos = default(IEdmPos5);
+                pos = strList.GetHeadPosition();
+                string filePath = strList.GetNext(pos);

+                //Get name of the vault in which the file is located 
+                string VaultName = null;
+                VaultName = vault.GetVaultNameFromPath(filePath);

+                //Log into the vault 
+                vault.LoginAuto(VaultName, this.Handle.ToInt32());

+                //Get the interface to the file and its parent folder 
+                IEdmFile5 file = default(IEdmFile5);
+                IEdmFolder5 folder = null;
+                file = vault.GetFileFromPath(filePath, out folder);

+                if (file == null)
+                {
+                    MessageBox.Show("The file is not in the vault " + VaultName + ".");
+                }
+                else
+                {
+                    //Check out the file 
+                    file.LockFile(folder.IDthis.Handle.ToInt32());
+                    MessageBox.Show("Checked out " + file.Name + " in vault " + VaultName + ".");

+                    //Copy the file
+                    IEdmEnumeratorVersion5 verEnum = default(IEdmEnumeratorVersion5);
+                    verEnum = (IEdmEnumeratorVersion5)file;
+                    int Version = 0;
+                    Version = file.GetLocalVersionNo(folder.ID);
+                    IEdmVersion5 ver = default(IEdmVersion5);
+                    ver = verEnum.GetVersion(Version);
+                    ver.GetFileCopy(this.Handle.ToInt32(), "c:\\temp\\");
+                    MessageBox.Show("Copied " + file.Name + " to c:\\temp.");
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                if (ex.ErrorCode.ToString() == "-2147220949")
+                {
+                    MessageBox.Show("The selected file is not located in a file vault.");
+                }
+                else
+                {
+                    MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+                }
+                
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace GetVaultFromPath_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.Button1 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //Button1
+            //
+            this.Button1.Location = new System.Drawing.Point(31, 26);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(150, 23);
+            this.Button1.TabIndex = 6;
+            this.Button1.Text = "Check out and copy a file";
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click +=new System.EventHandler(Button1_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(263, 87);
+            this.Controls.Add(this.Button1);
+            this.Name = "Form1";
+            this.Text = "Check out and copy a file";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);

+        }

+        #endregion

+        internal System.Windows.Forms.Button Button1;
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Check_Out_and_Copy_File_Example_VBNET.htm b/documentation/api_extracted/Check_Out_and_Copy_File_Example_VBNET.htm new file mode 100644 index 0000000..46d4700 --- /dev/null +++ b/documentation/api_extracted/Check_Out_and_Copy_File_Example_VBNET.htm @@ -0,0 +1,200 @@ + + + +Check Out and Copy File Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Check Out and Copy File Example (VB.NET)

+

This example shows how to find a vault from a file path, +check out the file from the vault, and copy the file to another location.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type GetVaultFromFilePath in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that c:\temp exists.
+' 5. Ensure that at least one file is checked into a vault.

+' 6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Check out and copy a +file dialog box.
+' 2. Click Check out and copy a file.
+' 3. In the Open dialog, navigate to and click a file checked into a vault.
+' 4. Click Open.
+
+'    a. Gets the vault from the +selected file's path.
+'    b. Logs into the vault.
+'    c. Checks out the file.

+'    d. Displays a message box confirming the check-out.
+'    e. Click OK.
+'    f. Copies the selected file to c:\temp.
+'    g. Displays a message box confirming the copy.
+'    h. Click OK.

+ +' 5. Close the Check out and copy a file dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+    End Sub

+    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        Try
+            Dim vault As EdmVault5
+            vault = New EdmVault5

+            Dim strList As IEdmStrLst5
+            strList = vault.BrowseForFile(Me.Handle.ToInt32())

+            Dim pos As IEdmPos5
+            pos = strList.GetHeadPosition()
+            Dim filePath As String = strList.GetNext(pos)

+            'Get name of the vault in which the file is located 
+            Dim VaultName As String
+            VaultName = vault.GetVaultNameFromPath(filePath)

+            'Log into the vault 
+            vault.LoginAuto(VaultName, Me.Handle.ToInt32())

+            'Get the interface to the file and its parent folder 
+            Dim file As IEdmFile5
+            Dim folder As IEdmFolder5 = Nothing
+            file = vault.GetFileFromPath(filePath, folder)
 
+            If file Is Nothing Then
+                MessageBox.Show("The file is not in the vault " + VaultName + ".")
+            Else
+                'Check out the file 
+                file.LockFile(folder.IDMe.Handle.ToInt32())
+                MessageBox.Show("Checked out " & file.Name & " in vault " + VaultName + ".")

+                'Copy the file
+                Dim verEnum As IEdmEnumeratorVersion5
+                verEnum = file
+                Dim Version As Integer
+                Version = file.GetLocalVersionNo(folder.ID)
+                Dim ver As IEdmVersion5
+                ver = verEnum.GetVersion(Version)
+                ver.GetFileCopy(Me.Handle.ToInt32(), "c:\temp\")
+                MessageBox.Show("Copied " & file.Name & " to c:\temp.")
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException

+

+            +If ex.ErrorCode = &H8004022B Then
+                MessageBox.Show("The selected file is not located in a file vault.")
+            Else
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+            End If
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+End Class

+

+Back to top

+

+'Form1.Designer.vb

+
+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    Private components As System.ComponentModel.IContainer = Nothing

+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(31, 26)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(150, 23)
+        Me.Button1.TabIndex = 6
+        Me.Button1.Text = "Check out and copy a file"
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(263, 87)
+        Me.Controls.Add(Me.Button1)
+        Me.Name = "Form1"
+        Me.Text = "Check out and copy a file"
+        Me.ResumeLayout(False)

+    End Sub

+#End Region

+    Friend WithEvents Button1 As System.Windows.Forms.Button

+End Class

+

Back to top

+ + + + diff --git a/documentation/api_extracted/CopyFile.gif b/documentation/api_extracted/CopyFile.gif new file mode 100644 index 0000000000000000000000000000000000000000..212d7d8eb6f8b10e39759f252248a9da9ef0d4b5 GIT binary patch literal 4595 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/CopyTree.gif b/documentation/api_extracted/CopyTree.gif new file mode 100644 index 0000000000000000000000000000000000000000..391f601e2b32e33b0ee91055f590a3073679e9d6 GIT binary patch literal 8360 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Copy_Assembly_Tree_Example_CSharp.htm b/documentation/api_extracted/Copy_Assembly_Tree_Example_CSharp.htm new file mode 100644 index 0000000..837f5bb --- /dev/null +++ b/documentation/api_extracted/Copy_Assembly_Tree_Example_CSharp.htm @@ -0,0 +1,450 @@ + + + +Copy Assembly Tree of Files Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Copy Assembly Tree of Files Example (C#)

+

This example shows how to copy an assembly and its tree of +reference files to a destination folder in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CopyTree_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+ +// 2. Add references to: 
+//    a. EPDM.Interop.epdm.dll (click Browse and +browse to the top folder
+//       of your SOLIDWORKS PDM Professional +installation, select
+//       EPDM.Interop.epdm.dll).
+
//    b. +EPDM.interop.EPDMResultCode.dll (click +Browse, select
+//       EPDM.interop.EPDMResultCode.dll, +and click OK)
.

+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+
// +4. Ensure that the vault root folder contains an assembly that
+//    is checked in with its referenced parts and drawings.
+// 5. Create a destination folder called New Folder in the vault.

+// 6. Click Debug > Start Debugging or press F5.

+//
+// Postconditions: 
+// 1. Displays the Copy +Assembly dialog box.
+//    a. Select a vault view.
+//    b. Click Select +assembly
+//       Locate and double-click +an assembly.
+//    c. Click Select a destination folder.
+//       1. Locate and select New Folder.
+//       2. Click OK.
+//    d. Click Copy tree.
+//       The Copy Tree dialog shows the files to +copy.
+//    e. Click Copy
+//       The Copying tree progress bar appears. 
+//    f. Inspect the destination folder.

+// 2. Close the Copy +Assembly dialog box.         

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+

+namespace CopyTree_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Open dialog
+                OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
+                //Show the Open dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog.ShowDialog();
+                //If the user didn't click Open, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                foreach (string FileName in OpenFileDialog.FileNames)
+                {
+                    ListBox.Items.Add(FileName);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+        public void AddFiles_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {

+                IEdmVault19 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault19)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                if (!(ListBox.Items.Count == 1))
+                {
+                    MessageBox.Show("Please select an assembly.");
+                    return;
+                }

+                if (!(listBox1.Items.Count == 1))
+                {
+                    MessageBox.Show("Please select a destination folder.");
+                    return;
+                }


+                IEdmFile12 aFile = default(IEdmFile12);
+                string destFolder = null;
+                IEdmFolder9 Folder = default(IEdmFolder9);

+                Folder = (IEdmFolder9)vault2.RootFolder;


+                string[] FileNames = new string[3];
+                int Index = 0;
+                dynamic fileStr = "";
+                foreach (Object FileName_loopVariable in ListBox.Items)
+                {
+                    fileStr = FileName_loopVariable.ToString();
+              
+                    FileNames[Index] = fileStr.Substring(fileStr.LastIndexOf("\\"));
+                    Index = Index + 1;
+                }


+                // Copy the assembly's tree of files to the specified destination folder
+                EdmCopyTreeOptions copyTreeOptions;
+                copyTreeOptions.mbsPrefix = "Copy_";
+                copyTreeOptions.mbsSuffix = "";
+                copyTreeOptions.mbIncludeDrawings = -1;
+                copyTreeOptions.mbUseLatestVersion = -1;

+                IEdmFolder5 ppoParentFolder;

+                aFile = (IEdmFile12)vault2.GetFileFromPath(Folder.LocalPath + "\\" + FileNames[0], out ppoParentFolder);
+                destFolder = listBox1.Items[0].ToString();
+                vault2.CopyTree(aFile.ID, Folder.ID, destFolder, truetrue, copyTreeOptions, this.Handle.ToInt32());


+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        private void BrowseDestFolder_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                listBox1.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmFolder10 rootFolder = default(IEdmFolder10);
+                rootFolder = (IEdmFolder10)vault1.RootFolder;

+                IEdmFolder10 aFolder = default(IEdmFolder10);
+                aFolder = (IEdmFolder10)vault1.BrowseForFolder(this.Handle.ToInt32(), "Select a destination folder");

+                listBox1.Items.Add(rootFolder.LocalPath + "\\" + aFolder.Name);


+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }

+        
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CopyTree_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+                /// Clean up any resources being used.
+                /// </summary>
+                /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+                /// Required method for Designer support - do not modify
+                /// the contents of this method with the code editor.
+                /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseAssembly = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.CopyTree = new System.Windows.Forms.Button();
+            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
+            this.BrowseDestFolder = new System.Windows.Forms.Button();
+            this.listBox1 = new System.Windows.Forms.ListBox();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // BrowseAssembly
+            // 
+            this.BrowseAssembly.Location = new System.Drawing.Point(16, 85);
+            this.BrowseAssembly.Name = "BrowseAssembly";
+            this.BrowseAssembly.Size = new System.Drawing.Size(121, 23);
+            this.BrowseAssembly.TabIndex = 3;
+            this.BrowseAssembly.Text = "Select assembly...";
+            this.BrowseAssembly.UseVisualStyleBackColor = true;
+            this.BrowseAssembly.Click += new System.EventHandler(this.BrowseButton_Click);
+            // 
+            // ListBox
+            // 
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.None;
+            this.ListBox.Size = new System.Drawing.Size(259, 30);
+            this.ListBox.TabIndex = 4;
+            // 
+            // CopyTree
+            // 
+            this.CopyTree.Location = new System.Drawing.Point(77, 293);
+            this.CopyTree.Name = "CopyTree";
+            this.CopyTree.Size = new System.Drawing.Size(98, 23);
+            this.CopyTree.TabIndex = 5;
+            this.CopyTree.Text = "Copy tree";
+            this.CopyTree.UseVisualStyleBackColor = true;
+            this.CopyTree.Click += new System.EventHandler(this.AddFiles_Click);
+            // 
+            // OpenFileDialog
+            // 
+            this.OpenFileDialog.Title = "Open";
+            // 
+            // BrowseDestFolder
+            // 
+            this.BrowseDestFolder.Location = new System.Drawing.Point(16, 181);
+            this.BrowseDestFolder.Name = "BrowseDestFolder";
+            this.BrowseDestFolder.Size = new System.Drawing.Size(142, 23);
+            this.BrowseDestFolder.TabIndex = 6;
+            this.BrowseDestFolder.Text = "Select destination folder...";
+            this.BrowseDestFolder.UseVisualStyleBackColor = true;
+            this.BrowseDestFolder.Click += new System.EventHandler(this.BrowseDestFolder_Click);
+            // 
+            // listBox1
+            // 
+            this.listBox1.FormattingEnabled = true;
+            this.listBox1.Location = new System.Drawing.Point(16, 211);
+            this.listBox1.Name = "listBox1";
+            this.listBox1.SelectionMode = System.Windows.Forms.SelectionMode.None;
+            this.listBox1.Size = new System.Drawing.Size(259, 30);
+            this.listBox1.TabIndex = 7;
+            //
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 363);
+            this.Controls.Add(this.listBox1);
+            this.Controls.Add(this.BrowseDestFolder);
+            this.Controls.Add(this.CopyTree);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseAssembly);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Copy Assembly";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseAssembly;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button CopyTree;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
+        internal System.Windows.Forms.Button BrowseDestFolder;
+        internal System.Windows.Forms.ListBox listBox1;
+    }
+}

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Copy_Assembly_Tree_Example_VBNET.htm b/documentation/api_extracted/Copy_Assembly_Tree_Example_VBNET.htm new file mode 100644 index 0000000..df0774f --- /dev/null +++ b/documentation/api_extracted/Copy_Assembly_Tree_Example_VBNET.htm @@ -0,0 +1,396 @@ + + + +Copy Assembly Tree of Files Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Copy Assembly Tree of Files Example (VB.NET)

+

This example shows how to copy an assembly and its tree of +reference files to a destination folder in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CopyTree in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, replace the code in Form1.Designer.vb with this code.
+' 2. Add references to:
+'    a. EPDM.Interop.epdm.dll (right-click the project

+'       name in the Solution Explorer, click Add +> Reference
+'       Assemblies > Framework > +Browse and browse to the top folder of your  
+'       SOLIDWORKS PDM Professional installation, select 
+'       EPDM.Interop.epdm.dll, +and click OK).
+'    b.
+EPDM.interop.EPDMResultCode.dll (click +Browse, navigate to and select
+'       EPDM.interop.EPDMResultCode.dll, +and click OK).

+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Ensure that the vault root folder contains an assembly that is checked
+'    in with its referenced parts and drawings.
+' 5. Create a destination folder called New Folder in the vault.

+' 6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Copy Assembly dialog box.
+'    a. Select a vault view.
+'    b. Click Select assembly
+ +'       Locate and double-click an +assembly.
+'    c. Click Select a destination folder.
+'       1. Locate and select New Folder.
+'       2. Click OK.
+'    d. Click Copy tree.
+'       The Copy Tree dialog shows the files to +copy.
+'    e. Click Copy
+'       The Copying tree progress bar appears. 
+'    f. Inspect the destination folder.

+ +' 2. Close the Copy Assembly dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseAssembly.Click
+        Try
+            ListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Open dialog
+            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
+            'Show the Open dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog.ShowDialog()
+            'If the user didn't click Open, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            For Each FileName As String In OpenFileDialog.FileNames
+                ListBox.Items.Add(FileName)
+            Next
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub Button1_Click(sender As Object, e As EventArgsHandles BrowseDestFolder.Click
+        Try
+            ListBox1.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim rootFolder As IEdmFolder10
+            rootFolder = vault1.RootFolder

+            Dim aFolder As IEdmFolder10
+            aFolder = vault1.BrowseForFolder(Me.Handle.ToInt32(), "Select a destination folder")

+            ListBox1.Items.Add(rootFolder.LocalPath + "\" + aFolder.Name)


+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub AddFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CopyTree.Click
+        Try

+            Dim vault2 As IEdmVault19 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault19)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            If Not ListBox.Items.Count = 1 Then
+                MessageBox.Show("Please select an assembly.")
+                Exit Sub
+            End If

+            If Not ListBox1.Items.Count = 1 Then
+                MessageBox.Show("Please select a destination folder.")
+                Exit Sub
+            End If


+            Dim aFile As IEdmFile12
+            Dim destFolder As String
+            Dim Folder As IEdmFolder9

+            Folder = vault2.RootFolder


+            Dim FileNames(2) As String
+            Dim Index As Integer = 0
+            Dim fileStr = ""
+            For Each FileName In ListBox.Items
+                fileStr = FileName.ToString()
+                FileNames(Index) = fileStr.Substring(fileStr.LastIndexOf("\"))
+                Index = Index + 1
+            Next


+            ' Copy the assembly's tree of files to the specified destination folder
+            Dim copyTreeOptions As EdmCopyTreeOptions = Nothing
+            copyTreeOptions.mbsPrefix = "Copy_"
+            copyTreeOptions.mbsSuffix = ""
+            copyTreeOptions.mbIncludeDrawings = -1
+            copyTreeOptions.mbUseLatestVersion = -1

+            aFile = vault2.GetFileFromPath(Folder.LocalPath + "\" + FileNames(0))
+            destFolder = ListBox1.Items(0)
+            vault2.CopyTree(aFile.ID, Folder.ID, destFolder, TrueTrue, copyTreeOptions, Me.Handle.ToInt32())


+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub




+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+        ''' Clean up any resources being used.
+        ''' </summary>
+        ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+        ''' Required method for Designer support - do not modify
+        ''' the contents of this method with the code editor.
+        ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseAssembly = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.CopyTree = New System.Windows.Forms.Button()
+        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
+        Me.BrowseDestFolder = New System.Windows.Forms.Button()
+        Me.ListBox1 = New System.Windows.Forms.ListBox()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseAssembly
+        '
+        Me.BrowseAssembly.Location = New System.Drawing.Point(16, 85)
+        Me.BrowseAssembly.Name = "BrowseAssembly"
+        Me.BrowseAssembly.Size = New System.Drawing.Size(108, 23)
+        Me.BrowseAssembly.TabIndex = 3
+        Me.BrowseAssembly.Text = "Select assembly..."
+        Me.BrowseAssembly.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.SelectionMode = System.Windows.Forms.SelectionMode.None
+        Me.ListBox.Size = New System.Drawing.Size(259, 17)
+        Me.ListBox.TabIndex = 4
+        '
+        'CopyTree
+        '
+        Me.CopyTree.Location = New System.Drawing.Point(86, 226)
+        Me.CopyTree.Name = "CopyTree"
+        Me.CopyTree.Size = New System.Drawing.Size(98, 23)
+        Me.CopyTree.TabIndex = 5
+        Me.CopyTree.Text = "Copy tree"
+        Me.CopyTree.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog
+        '
+        Me.OpenFileDialog.Multiselect = True
+        Me.OpenFileDialog.Title = "Open"
+        '
+        'BrowseDestFolder
+        '
+        Me.BrowseDestFolder.Location = New System.Drawing.Point(16, 152)
+        Me.BrowseDestFolder.Name = "BrowseDestFolder"
+        Me.BrowseDestFolder.Size = New System.Drawing.Size(155, 23)
+        Me.BrowseDestFolder.TabIndex = 6
+        Me.BrowseDestFolder.Text = "Select a destination folder..."
+        Me.BrowseDestFolder.UseVisualStyleBackColor = True
+        '
+        'ListBox1
+        '
+        Me.ListBox1.FormattingEnabled = True
+        Me.ListBox1.Location = New System.Drawing.Point(16, 181)
+        Me.ListBox1.Name = "ListBox1"
+        Me.ListBox1.Size = New System.Drawing.Size(259, 17)
+        Me.ListBox1.TabIndex = 7
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 280)
+        Me.Controls.Add(Me.ListBox1)
+        Me.Controls.Add(Me.BrowseDestFolder)
+        Me.Controls.Add(Me.CopyTree)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseAssembly)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Copy Assembly"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseAssembly As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents CopyTree As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
+    Friend WithEvents BrowseDestFolder As Button
+    Friend WithEvents ListBox1 As ListBox
+End Class

+

+

+

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Copy_File_Example_CSharp.htm b/documentation/api_extracted/Copy_File_Example_CSharp.htm new file mode 100644 index 0000000..4daa057 --- /dev/null +++ b/documentation/api_extracted/Copy_File_Example_CSharp.htm @@ -0,0 +1,271 @@ + + + +Copy File Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Copy File Example (C#)

+

This example shows how to copy a file in the vault to a different +folder in the vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+ +

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows Forms Application.
+//    b. Type VaultUtilities in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and 
+//    click EPDM.Interop.EPDMResultCode.dll, click Open, click Add, and click Close).
+// 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 5. Run the Administration tool, log in as admin, expand the vault, 
+//    right-click File Types, click Duplicate file name settings, and 
+//    click Do not allow duplicate files names in this file vault.
+// 6. Ensure that multiple folders exists in vault. 
+// 7. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Copy file dialog box.
+//    a. Select a vault view.
+//    b. Click Copy file.
+//       1. In the Open dialog, click a vault file.
+//       2. Click Open.
+//       3. In the Select Folder dialog, click a different folder to which to 
+//          copy the selected file.
+//       4. Click OK.
+//       5. Displays a message with the file copy status.
+//       6. Click OK.
+// 2. Close the Copy file dialog box.         
+//----------------------------------------------------------------------------
+
//Form1.cs 
+ 
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+using EPDM.Interop.EPDMResultCode;
+
+ 
+namespace VaultUtilities_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;
+ 
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;
+ 
+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }  
+ 
+        private void Button1_Click(System.Object sender, System.EventArgs e)
+        {
+            //Copy file
+ 
+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                EdmStrLst5 pathList = default(EdmStrLst5);
+                pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles);
+                if (pathList == null)
+                    return;
+ 
+                IEdmFile5 file = default(IEdmFile5);
+                IEdmFolder5 srcFolder = null;
+                file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out srcFolder); 
+
+                IEdmFolder5 destFolder1 = default(IEdmFolder5);
+                destFolder1 = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select destination folder:");
+                if (destFolder1 == null)
+                    return;
+ 
+                IEdmFolder8 destFolder = (IEdmFolder8)destFolder1; 
+
+                int fileID = 0;
+                int copyFileStatus;
+                fileID = destFolder.CopyFile2(file.ID, srcFolder.IDthis.Handle.ToInt32(), out copyFileStatus, "", (int)EdmCopyFlag.EdmCpy_Simple);
+                switch (copyFileStatus)
+                {
+                    case (int)EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY:
+                        MessageBox.Show("WARNING: File is not unique in the vault, but the file was copied to a new file with a file ID of " + fileID + ".");
+                        break;
+                    case 0:
+                        MessageBox.Show("SUCCESS: File copied to a new file with a file ID of " + fileID + ".");
+                        break;
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}
+
//Form1.Designer.cs
+
namespace VaultUtilities_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.Button1 = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // Button1
+            // 
+            this.Button1.Location = new System.Drawing.Point(16, 82);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(66, 23);
+            this.Button1.TabIndex = 6;
+            this.Button1.Text = "Copy file";
+            this.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click += new System.EventHandler(this.Button1_Click);
+            // 
+            // OpenFileDialog1
+            // 
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(197, 140);
+            this.Controls.Add(this.Button1);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Copy file";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button Button1;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
+    }
+}
+ + + + diff --git a/documentation/api_extracted/Copy_File_Example_VBNET.htm b/documentation/api_extracted/Copy_File_Example_VBNET.htm new file mode 100644 index 0000000..b54bc9b --- /dev/null +++ b/documentation/api_extracted/Copy_File_Example_VBNET.htm @@ -0,0 +1,237 @@ + + + +Copy File Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Copy File Example (VB.NET)

+

This example shows how to copy a file in the vault to a different folder in the +vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type VaultUtilities in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, and click Add).
+' 3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and 
+'    click EPDM.Interop.EPDMResultCode.dll, click Open, click Add, and click Close).
+' 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 5. Run the Administration tool, log in as admin, expand the vault, 
+'    right-click File Types, click Duplicate file name settings, and 
+'    click Do not allow duplicate files names in this file vault. 
+' 6. Ensure that multiple folders exist in the vault.
+' 7. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Copy file dialog box.
+'    a. Select a vault view.
+'    b. Click Copy file.
+'       1. In the Open dialog, click a vault file.
+'       2. Click Open.
+'       3. In the Select Folder dialog, click a different folder to which to 
+'          copy the selected file.
+'       4. Click OK.
+'       5. Displays a message with the file copy status.
+'       6. Click OK.
+' 2. Close the Copy file dialog box.         
+'----------------------------------------------------------------------------
+
'Form1.vb
+ 
+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm
+Imports EPDM.Interop.EPDMResultCode
+ 
+ 
+Public Class Form1
+ 
+    Private vault1 As IEdmVault5 = Nothing
+ 
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+ 
+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing
+ 
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub  
+ 
+    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        'Copy file
+        Try
+ 
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If 
+ 
+            Dim pathList As EdmStrLst5
+            pathList = vault2.BrowseForFile(Me.Handle.ToInt32(), EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles)
+            If pathList Is Nothing Then Exit Sub
+ 
+            Dim file As IEdmFile5
+            Dim srcFolder As IEdmFolder5 = Nothing
+            file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition), srcFolder)
+ 
+            Dim destFolder1 As IEdmFolder5 = Nothing
+            Dim destFolder As IEdmFolder8 = DirectCast(destFolder1, IEdmFolder5)
+            destFolder = vault2.BrowseForFolder(Me.Handle.ToInt32(), "Select destination folder:")
+            If destFolder Is Nothing Then Exit Sub
+            Dim fileID As Integer
+            Dim copyFileStatus As Integer
+            fileID = destFolder.CopyFile2(file.ID, srcFolder.IDMe.Handle.ToInt32(), copyFileStatus, ""EdmCopyFlag.EdmCpy_Simple)
+            Select Case copyFileStatus
+                Case EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY
+                    MessageBox.Show("WARNING: File is not unique in the vault, but the file was copied to a new file with a file ID of " & fileID & ".")
+                Case Else
+                    MessageBox.Show("SUCCESS: File copied to a new file with a file ID of " & fileID & ".")
+            End Select 
+ 
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+End Class
+
Form1.Designer.vb
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing
+ 
+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub
+ 
+#Region "Windows Form Designer generated code"
+ 
+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(16, 84)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(62, 23)
+        Me.Button1.TabIndex = 6
+        Me.Button1.Text = "Copy file"
+        Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(213, 132)
+        Me.Controls.Add(Me.Button1)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Copy file"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+ 
+#End Region
+ 
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Button1 As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
+End Class
+
+ + + + diff --git a/documentation/api_extracted/CreateCardView.gif b/documentation/api_extracted/CreateCardView.gif new file mode 100644 index 0000000000000000000000000000000000000000..e857acbed28bf4db6ca75d4ef70df180e0cd3cf7 GIT binary patch literal 9365 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 P&;m73|LjcY3=)C@Vk&1O(6x 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 P@?1@|>d%u%e9!*?e5-DZ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/CreateLabel.gif b/documentation/api_extracted/CreateLabel.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a0cc0a6e90e51dc68f2f911f27011d8e1b3c8a1 GIT binary patch literal 8148 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/CreateMenuFlags.htm b/documentation/api_extracted/CreateMenuFlags.htm new file mode 100644 index 0000000..efa14a2 --- /dev/null +++ b/documentation/api_extracted/CreateMenuFlags.htm @@ -0,0 +1,12 @@ + + + + +New Page 1 + + + + + + + diff --git a/documentation/api_extracted/CreateUserPic.gif b/documentation/api_extracted/CreateUserPic.gif new file mode 100644 index 0000000000000000000000000000000000000000..556f3c6216d5201bca83f5ad91e79f2c72b76784 GIT binary patch literal 7008 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 F06SX9Cz${M literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Create_Card_View_Example_CSharp.htm b/documentation/api_extracted/Create_Card_View_Example_CSharp.htm new file mode 100644 index 0000000..2171844 --- /dev/null +++ b/documentation/api_extracted/Create_Card_View_Example_CSharp.htm @@ -0,0 +1,533 @@ + + + +Create Card View Example (C#) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Card View Example (C#)

+

This example shows how to create a file or folder card +view.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type CreateCardView_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add references to:
+//    b. EPDM.Interop.epdm.dll (click Browse and +browse to the top folder
+//       of your SOLIDWORKS PDM Professional +installation, click
+//       EPDM.Interop.epdm.dll > Add).
+
//    c. +EPDM.interop.EPDMResultCode.dll (click +Browse >
+//       EPDM.interop.EPDMResultCode.dll > Add +> OK)
.

+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. Create a folder in a vault.
+// 5. +
Check out a file from the vault in which +you created the folder.
+// 6. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:
+//
1. Displays the Create Card View dialog box.
+// 2. Select the vault view in which you created a folder and
+//    checked out a file.
+// 3. Click either:
+//    a. Select file.
+//    b. In the Select File dialog:
+//       1. Click the file checked out in +Preconditions step 5.
+//       2. Click Open.
+
//       3. Inspect +the message box, then click OK.
+//    c. In the file data card, modify a field.
+//    d. Click Save data card.
+//    e. Check in the file and inspect its data +card.
+//       - or -
+//    a. Select folder.
+//    b. In the Select Folder dialog, select the vault folder +created
+//       in Preconditions step 4 +and click OK.
+
//    c. Inspect the message box, +then click OK.
+//    d. In the folder data card, click the Edit Values +tab.
+//    e. Modify a field.
+//    f. Click Save data card.
+//    g. Inspect the folder card in the vault.
+// 4. Close the Create Card View dialog box.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace CreateCardView_CSharp
+{
+    public partial class Form1 : FormEdmCallback
+    {
+        
+        private IEdmVault5 vault1 = null;
+        IEdmCardView64 view;
+        IEdmFile7 aFile;
+        IEdmFolder5 aFolder;

+        public Form1()
+        {
+            InitializeComponent();

+        }

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFile_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                File1List.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                SelectFolder.Enabled = false;

+                //Set the initial directory in the Select File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;

+                //Show the Select File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out aFolder);
+                        ShowCard(aFolder, aFile.ID);
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFolder_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                Folder1List.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                SelectFile.Enabled = false;
+                aFolder = vault1.BrowseForFolder(this.Handle.ToInt32(), "Select folder:");
+                if (Folder1List == null)
+                    return;
+                Folder1List.Items.Add(aFolder.Name);
+                ShowCard(aFolder, 0);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SaveCard_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                Folder1List.Items.Clear();

+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                view.SaveData();
+                SaveCard.Enabled = false;

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        //Display the card of the selected file or folder  
+        public void ShowCard(IEdmFolder5 folder, int fileID)
+        {
+            // Create the card view interface 
+            IEdmFolder10
 folder10;
+            folder10 = (IEdmFolder10)folder;
+            view = (IEdmCardView64)folder10.CreateCardView2(fileID, this.Handle.ToInt32(), 40, 300, (EdmCallback)this, +(int)EdmCardViewFlag.EdmCvf_Normal);
+            if (view == null)
+            {
+                MessageBox.Show("The file does not have a card.");
+                return;
+            }

+

+             view.SetFlagIsFocusOnDataCard(true);

+            // Set input focus to the first control in the card
+            view.SetFocus(0);

+            // Enable all controls in the card
+            view.Update(EdmCardViewUpdateType.EdmCvut_EnableCtrl);

+            // Get the size needed to display the card 
+            int width = 0;
+            int height = 0;
+            view.GetCardSize(out width, out height);

+            // Resize the form window to make room for the card 
+            this.Width = (width + 100);
+            this.Height = (height + 400);
+            view.ShowWindow(true);

+

+            +int ID;
           +string folderName;
           +string vaultName;
           +IEdmVault5 vaultObject;

+           + // Get some folder information
+            ID = folder10.ID;
+            folderName = folder10.Name;
+            vaultObject = folder10.Vault;
+            vaultName = vaultObject.Name;

+

+
           +MessageBox.Show("Database ID: " + ID.ToString() + "; Vault name: " + vaultName + "; Folder name: " + folderName);

+            folder10.Refresh();

+            SaveCard.Enabled = false;
+        }

+        public void CancelButton_Click(System.Object sender, System.EventArgs e)
+        {
+            view.OnCancel();
+            SaveCard.Enabled = false;
+            SelectFile.Enabled = true;
+            SelectFolder.Enabled = true;
+            view.ShowWindow(false);
+        }

+        public void SetModifiedFlag()
+        {
+            SaveCard.Enabled = true;
+        }

+        public void SetProgressPos(int lPos)
+        {
+        }

+        public void SetProgressRange(int lMin, int lMax)
+        {
+        }

+        public void SetStatusMessage(string bsMessage)
+        {
+        }
+    }
+   
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CreateCardView_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFile = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.SaveCard = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SelectFolder = new System.Windows.Forms.Button();
+            this.Folder1List = new System.Windows.Forms.ListBox();
+            this.Cancel = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFile
+            //
+            this.SelectFile.Location = new System.Drawing.Point(39, 85);
+            this.SelectFile.Name = "SelectFile";
+            this.SelectFile.Size = new System.Drawing.Size(157, 23);
+            this.SelectFile.TabIndex = 2;
+            this.SelectFile.Text = "Select file...";
+            this.SelectFile.UseVisualStyleBackColor = true;
+            this.SelectFile.Click += new System.EventHandler(SelectFile_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //SaveCard
+            //
+            this.SaveCard.Location = new System.Drawing.Point(40, 255);
+            this.SaveCard.Name = "SaveCard";
+            this.SaveCard.Size = new System.Drawing.Size(107, 23);
+            this.SaveCard.TabIndex = 6;
+            this.SaveCard.Text = "Save data card";
+            this.SaveCard.UseVisualStyleBackColor = true;
+            this.SaveCard.Click +=new System.EventHandler(SaveCard_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //SelectFolder
+            //
+            this.SelectFolder.Location = new System.Drawing.Point(40, 163);
+            this.SelectFolder.Name = "SelectFolder";
+            this.SelectFolder.Size = new System.Drawing.Size(157, 23);
+            this.SelectFolder.TabIndex = 7;
+            this.SelectFolder.Text = "Select folder...";
+            this.SelectFolder.UseVisualStyleBackColor = true;
+            this.SelectFolder.Click += new System.EventHandler(this.SelectFolder_Click);
+            //
+            //Folder1List
+            //
+            this.Folder1List.FormattingEnabled = true;
+            this.Folder1List.Location = new System.Drawing.Point(39, 192);
+            this.Folder1List.Name = "Folder1List";
+            this.Folder1List.Size = new System.Drawing.Size(220, 43);
+            this.Folder1List.TabIndex = 8;
+            //
+            //Cancel
+            //
+            this.Cancel.Location = new System.Drawing.Point(163, 255);
+            this.Cancel.Name = "Cancel";
+            this.Cancel.Size = new System.Drawing.Size(96, 23);
+            this.Cancel.TabIndex = 9;
+            this.Cancel.Text = "Cancel";
+            this.Cancel.UseVisualStyleBackColor = true;
+            this.Cancel.Click += new System.EventHandler(this.Form1_Load);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 327);
+            this.Controls.Add(this.Cancel);
+            this.Controls.Add(this.Folder1List);
+            this.Controls.Add(this.SelectFolder);
+            this.Controls.Add(this.SaveCard);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFile);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Create Card View";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFile;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button SaveCard;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
+        internal System.Windows.Forms.Button SelectFolder;
+        internal System.Windows.Forms.ListBox Folder1List;
+        internal System.Windows.Forms.Button Cancel;

+        #endregion
+    }
+}

+
 
+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Card_View_Example_VBNET.htm b/documentation/api_extracted/Create_Card_View_Example_VBNET.htm new file mode 100644 index 0000000..ae36259 --- /dev/null +++ b/documentation/api_extracted/Create_Card_View_Example_VBNET.htm @@ -0,0 +1,456 @@ + + + +Create Card View Example (VB.NET) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Card View Example (VB.NET)

+

This example shows how to create a file or folder card +view.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CreateCardView in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add references to:
+'    a. EPDM.Interop.epdm.dll (right-click the project

+'       name in the Solution Explorer, click Add +> Reference
+'       Assemblies > Framework > +Browse and browse to the top folder of +your  
+'       SOLIDWORKS PDM Professional installation, click 
+'       EPDM.Interop.epdm.dll +> Add).
+'    b.
+EPDM.interop.EPDMResultCode.dll (click +Browse >
+'       EPDM.interop.EPDMResultCode.dll > Add > +OK).

+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+
' 4. Create a folder in the vault.
+' 5.
Check +out a file from the vault in which you created the folder.
+' 6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions:
+' 1. Displays the Create Card View dialog box.
+' 2. Select the vault in which you created a folder and
+'    checked out a file.
+' 3. Click either:
+'    a. Select file.
+'    b. In the Select File dialog:
+'       1. Click the file checked out in +Preconditions step 5.
+'       2. Click Open.
+'       3. Inspect the message box, then click +OK.
+'    c. In the file data card, modify a field.
+'    d. Click Save data card.
+'    e. Check in the file and inspect its data +card.
+'       - or -
+'    a. Select folder.
+'    b. In the Select Folder dialog, select the vault folder +created in
+'       Preconditions step 4 and click OK.
+'    c. Inspect the message box, then click OK.
+'    d. In the folder data card, click the Edit Values +tab.
+'    e. Modify a field.
+'    f. Click Save data card.
+'    g. Inspect the folder card in the vault.
+' 4. Close the Create Card View dialog box.

+ +'----------------------------------------------------------------------------
+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+    Implements EdmCallback

+    Private vault1 As IEdmVault5 = Nothing
+    Dim view As IEdmCardView64
+    Dim aFile As IEdmFile7
+    Dim aFolder As IEdmFolder5

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFile_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFile.Click
+        Try
+            File1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            SelectFolder.Enabled = False

+            'Set the initial directory in the Select File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath

+            'Show the Select File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    +aFile = CType(vault1.GetFileFromPath(FileName, aFolder), IEdmFile7)
+                    ShowCard(aFolder, aFile.ID)
+                Next
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFolder_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFolder.Click
+        Try
+            Folder1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            SelectFile.Enabled = False
+            aFolder = vault1.BrowseForFolder(Me.Handle.ToInt32(), "Select folder:")
+            If Folder1List Is Nothing Then Exit Sub
+            Folder1List.Items.Add(aFolder.Name)
+            ShowCard(aFolder, 0)
+             
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SaveCard_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SaveCard.Click
+        Try
+            Folder1List.Items.Clear()

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            view.SaveData()
+            SaveCard.Enabled = False

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    'Display the card of the selected file or folder  
+    Private Sub ShowCard(ByVal folder As IEdmFolder5ByVal fileID As Integer)
+
+        ' Create the card view interface
+        Dim
 folder10 As IEdmFolder10 = Nothing
+        folder10 = DirectCast(folder, IEdmFolder10) 
+        view = CType(folder10.CreateCardView2(fileID, Me.Handle.ToInt32(), 40, 300, MeEdmCardViewFlag.EdmCvf_Normal), IEdmCardView64)
+
+        If view Is Nothing Then
+            MsgBox("The file does not have a card.")
+            Exit Sub
+        End If

+        view.SetFlagIsFocusOnDataCard(True)
+
        ' Set input focus to the first control in the card

+        view.SetFocus(0)

+        ' Enable all controls in the card
+        view.Update(EdmCardViewUpdateType.EdmCvut_EnableCtrl)

+        ' Get the size needed to display the card 
+        Dim width As Integer
+        Dim height As Integer
+        view.GetCardSize(width, height)

+        ' Resize the form window to make room for the card 
+        Me.Width = (width + 100)
+        Me.Height = (height + 400)
+        view.ShowWindow(True)

+

+        Dim ID As Integer
+        Dim folderName As String
+        Dim vaultName As String
+        Dim vaultObject As IEdmVault5

+

+        ' Get some +folder information
+        ID = folder10.ID
+        folderName = folder10.Name
+        vaultObject = folder10.Vault
+        vaultName = vaultObject.Name
+        +MessageBox.Show("Database ID: " + ID.ToString() + "; Vault name: " + vaultName + "; Folder name: " + folderName)

+        folder10.Refresh()

+        SaveCard.Enabled = False
+    End Sub

+    Private Sub Cancel_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Cancel.Click
+        view.OnCancel()
+        SaveCard.Enabled = False
+        SelectFile.Enabled = True
+        SelectFolder.Enabled = True
+        view.ShowWindow(False)
+    End Sub

+    Private Sub EdmCallback_SetModifiedFlag() Implements EdmCallback.SetModifiedFlag
+        SaveCard.Enabled = True
+    End Sub

+    Private Sub EdmCallback_SetProgressPos(ByVal lPos As IntegerImplements EdmCallback.SetProgressPos
+    End Sub

+    Private Sub EdmCallback_SetProgressRange(ByVal lMin As IntegerByVal lMax As IntegerImplements EdmCallback.SetProgressRange
+    End Sub

+    Private Sub EdmCallback_SetStatusMessage(ByVal bsMessage As StringImplements EdmCallback.SetStatusMessage
+    End Sub

+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFile = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.SaveCard = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SelectFolder = New System.Windows.Forms.Button()
+        Me.Folder1List = New System.Windows.Forms.ListBox()
+        Me.Cancel = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFile
+        '
+        Me.SelectFile.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFile.Name = "SelectFile"
+        Me.SelectFile.Size = New System.Drawing.Size(157, 23)
+        Me.SelectFile.TabIndex = 2
+        Me.SelectFile.Text = "Select file..."
+        Me.SelectFile.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'SaveCard
+        '
+        Me.SaveCard.Location = New System.Drawing.Point(40, 255)
+        Me.SaveCard.Name = "SaveCard"
+        Me.SaveCard.Size = New System.Drawing.Size(107, 23)
+        Me.SaveCard.TabIndex = 6
+        Me.SaveCard.Text = "Save data card"
+        Me.SaveCard.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'SelectFolder
+        '
+        Me.SelectFolder.Location = New System.Drawing.Point(40, 163)
+        Me.SelectFolder.Name = "SelectFolder"
+        Me.SelectFolder.Size = New System.Drawing.Size(157, 23)
+        Me.SelectFolder.TabIndex = 7
+        Me.SelectFolder.Text = "Select folder..."
+        Me.SelectFolder.UseVisualStyleBackColor = True
+        '
+        'Folder1List
+        '
+        Me.Folder1List.FormattingEnabled = True
+        Me.Folder1List.Location = New System.Drawing.Point(39, 192)
+        Me.Folder1List.Name = "Folder1List"
+        Me.Folder1List.Size = New System.Drawing.Size(220, 43)
+        Me.Folder1List.TabIndex = 8
+        '
+        'Cancel
+        '
+        Me.Cancel.Location = New System.Drawing.Point(163, 255)
+        Me.Cancel.Name = "Cancel"
+        Me.Cancel.Size = New System.Drawing.Size(96, 23)
+        Me.Cancel.TabIndex = 9
+        Me.Cancel.Text = "Cancel"
+        Me.Cancel.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 327)
+        Me.Controls.Add(Me.Cancel)
+        Me.Controls.Add(Me.Folder1List)
+        Me.Controls.Add(Me.SelectFolder)
+        Me.Controls.Add(Me.SaveCard)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFile)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Create Card View"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFile As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents SaveCard As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
+    Friend WithEvents SelectFolder As System.Windows.Forms.Button
+    Friend WithEvents Folder1List As System.Windows.Forms.ListBox
+    Friend WithEvents Cancel As System.Windows.Forms.Button

+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Custom_Card_View_Example_CSharp.htm b/documentation/api_extracted/Create_Custom_Card_View_Example_CSharp.htm new file mode 100644 index 0000000..53727ea --- /dev/null +++ b/documentation/api_extracted/Create_Custom_Card_View_Example_CSharp.htm @@ -0,0 +1,510 @@ + + + +Create Custom Card View Example (C#) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Custom Card View Example (C#)

+

This example shows how to create a custom file card +view.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ + +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
+//    b. Type CustomCardView_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to +create the project.
+//    d. Click OK.
+//    e. Click Show All Files in the Solution Explorer +toolbar and expand
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with +this code.
+//    g. To create the form, replace the code in +Form1.Designer.cs with
+//       this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, +click
+//    Assemblies > Framework in the left-side panel, +browse to the top folder of
+//    your SOLIDWORKS PDM Professional installation, locate and +click
+//    EPDM.Interop.epdm.dll, click Open, and click +Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
+//    Embed Interop Types to False to handle +methods that pass arrays of
+//    structures.
+// 4. +
Check out a file that has a data card with +a Comment tab and a
+//    Comment variable.

+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:

+
// +1. Displays the Custom Card View dialog box.
+// 2. Select a vault view.
+// 3. Click Select file.
+//    a. In the Select File dialog:
+//       1. Click the text file checked out in +Preconditions step 5.
+//       2. Click Open.
+//    b. In the file data card, click the Comment tab.
+//    c. Type something in Comments.
+// 4. Click Save data card.
+// 5. Click OK in the message box.
+// 6. Close the Custom Card View dialog box.
+// 7. Check in the file and inspect the comment in the file data card.

+//----------------------------------------------------------------------------

+

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace CustomCardView_CSharp
+{
+    public partial class Form1 : FormIEdmCardViewCallback6
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1;
+        IEdmCardView63 view;
+        IEdmFile7 aFile;
+        IEdmFolder5 aFolder;


+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                vault1 = new EdmVault5();
+                IEdmVault10 vault = (IEdmVault10)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SelectFile_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                File1List.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Set the initial directory in the Select File dialog
+                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;

+                //Show the Select File dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = OpenFileDialog1.ShowDialog();

+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    // do nothing
+                }
+                else
+                {
+                    foreach (string FileName in OpenFileDialog1.FileNames)
+                    {
+                        File1List.Items.Add(FileName);
+                        aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out aFolder);
+                        ShowCard(aFolder, aFile.ID);
+                    }
+                }

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void SaveCard_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                view.SaveData();
+                SaveCard.Enabled = false;

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        //Display the card of the selected file
+        private void ShowCard(IEdmFolder5 folder, int fileID)
+        {
+            try
+            {
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+                IEdmVault10 vault = (IEdmVault10)vault1;

+                EdmCardViewParams @params = default(EdmCardViewParams);
+                @params.mlFileID = fileID;
+                @params.mlFolderID = folder.ID;
+                @params.mlCardID = 0;
+                @params.mlX = 40;
+                @params.mlY = 300;
+                @params.mhParentWindow = this.Handle.ToInt32();
+                @params.mlEdmCardViewFlags = (int)EdmCardViewFlag.EdmCvf_Normal;

+                //Create the card view interface 
+                view = vault.CreateCardViewEx2(@params, this);

+                if (view == null)
+                {
+                    MessageBox.Show("The file does not have a card.");
+                    return;
+                }

+                //Set input focus to the first control in the card
+                view.SetFocus(0);

+                //Enable all controls in the card
+                view.Update(EdmCardViewUpdateType.EdmCvut_EnableCtrl);

+                //Get the size needed to display the card 
+                int width = 0;
+                int height = 0;
+                view.GetCardSize(out width, out height);

+                //Resize the form window to make room for the card 
+                this.Width = (width + 100);
+                this.Height = (height + 400);
+                view.ShowWindow(true);

+                SaveCard.Enabled = false;

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        private void EdmCardViewCallback6_SetModifiedFlag()
+        {
+            SaveCard.Enabled = true;
+        }
+        void IEdmCardViewCallback6.SetModifiedFlag()
+        {
+            EdmCardViewCallback6_SetModifiedFlag();
+        }

+        private void EdmCardViewCallback6_OnAddInInput(int lFlags)
+        {
+        }
+        void IEdmCardViewCallback6.OnAddInInput(int lFlags)
+        {
+            EdmCardViewCallback6_OnAddInInput(lFlags);
+        }

+        private void EdmCardViewCallback6_SetCtrlData(int lCardWnd, int lCardID, int lControlID, int lVariableID, string bsVariableName, IEdmCardView5 poView, ref object poValue)
+        {
+            try
+            {
+                if (bsVariableName == "Comment")
+                {
+                    MessageBox.Show(lCardWnd + " " + lCardID + " " + lControlID + " " + lVariableID + " " + bsVariableName + " " + poValue.ToString());

+                    IEdmEnumeratorVariable8 enumvar = default(IEdmEnumeratorVariable8);
+                    enumvar = (IEdmEnumeratorVariable8)aFile.GetEnumeratorVariable();

+                    enumvar.SetVar(bsVariableName, "", poValue, true);
+                    enumvar.CloseFile(true);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+        void IEdmCardViewCallback6.SetCtrlData(int lCardWnd, int lCardID, int lControlID, int lVariableID, string bsVariableName, IEdmCardView5 poView, ref object poValue)
+        {
+            EdmCardViewCallback6_SetCtrlData(lCardWnd, lCardID, lControlID, lVariableID, bsVariableName, poView, ref poValue);
+        }

+        private object EdmCardViewCallback6_GetCtrlData(int lCardWnd, int lCardID, int lControlID, int lVariableID, string bsVariableName, IEdmCardView5 poView)
+        {
+            object poValue += null;
+        +    try

+

+            +{
+            +    +
IEdmEnumeratorVariable8 enumVar += +(IEdmEnumeratorVariable8)aFile.GetEnumeratorVariable();
+                +enumVar.GetVar(bsVariableName, +
"", +out poValue);
+            +} +

+

+            +catch (System.Runtime.InteropServices.COMException ex)

+

+            {
+                  +
MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            +catch 
(Exception ex)

+

+            {
+                  +
MessageBox.Show(ex.Message);
+            +}
+    +

+            return +poValue;
+        }
+        object IEdmCardViewCallback6.GetCtrlData(int lCardWnd, int lCardID, int lControlID, int lVariableID, string bsVariableName, IEdmCardView5 poView)
+        {
+            return EdmCardViewCallback6_GetCtrlData(lCardWnd, lCardID, lControlID, lVariableID, bsVariableName, poView);
+        }

+        private object EdmCardViewCallback6_GetDefaultValueComponent(EdmDefValComp eValue)
+        {
+            return null;
+        }
+        object IEdmCardViewCallback6.GetDefaultValueComponent(EdmDefValComp eValue)
+        {
+            return EdmCardViewCallback6_GetDefaultValueComponent(eValue);
+        }
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CustomCardView_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.SelectFile = new System.Windows.Forms.Button();
+            this.File1List = new System.Windows.Forms.ListBox();
+            this.SaveCard = new System.Windows.Forms.Button();
+            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //SelectFile
+            //
+            this.SelectFile.Location = new System.Drawing.Point(39, 85);
+            this.SelectFile.Name = "SelectFile";
+            this.SelectFile.Size = new System.Drawing.Size(157, 23);
+            this.SelectFile.TabIndex = 2;
+            this.SelectFile.Text = "Select file...";
+            this.SelectFile.UseVisualStyleBackColor = true;
+            this.SelectFile.Click +=new System.EventHandler(SelectFile_Click);
+            //
+            //File1List
+            //
+            this.File1List.FormattingEnabled = true;
+            this.File1List.HorizontalScrollbar = true;
+            this.File1List.Location = new System.Drawing.Point(40, 114);
+            this.File1List.Name = "File1List";
+            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.File1List.Size = new System.Drawing.Size(220, 43);
+            this.File1List.TabIndex = 4;
+            //
+            //SaveCard
+            //
+            this.SaveCard.Location = new System.Drawing.Point(40, 176);
+            this.SaveCard.Name = "SaveCard";
+            this.SaveCard.Size = new System.Drawing.Size(107, 23);
+            this.SaveCard.TabIndex = 6;
+            this.SaveCard.Text = "Save data card";
+            this.SaveCard.UseVisualStyleBackColor = true;
+            this.SaveCard.Click +=new System.EventHandler(SaveCard_Click);
+            //
+            //OpenFileDialog1
+            //
+            this.OpenFileDialog1.FileName = "OpenFileDialog1";
+            this.OpenFileDialog1.Title = "Select File";
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 227);
+            this.Controls.Add(this.SaveCard);
+            this.Controls.Add(this.File1List);
+            this.Controls.Add(this.SelectFile);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Custom Card View";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button SelectFile;
+        internal System.Windows.Forms.ListBox File1List;
+        internal System.Windows.Forms.Button SaveCard;
+        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

+        #endregion
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Custom_Card_View_Example_VBNET.htm b/documentation/api_extracted/Create_Custom_Card_View_Example_VBNET.htm new file mode 100644 index 0000000..4581682 --- /dev/null +++ b/documentation/api_extracted/Create_Custom_Card_View_Example_VBNET.htm @@ -0,0 +1,396 @@ + + + +Create Custom Card View Example (VB.NET) + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Custom Card View Example (VB.NET)

+

This example shows how to create a custom file card +view.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ + +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CustomCardView_VBNET in Name.
+'    c. Click Browse and navigate to the folder where to create the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the +form, replace the code in Form1.Designer.vb with 
+'       this code.

+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+
' 4. Check +out a file that has a data card with a Comment tab and a
+'    Comment variable.

+' 5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions:
+' 1. Displays the Custom Card View dialog box.
+' 2. Select a vault view.
+' 3. Click Select file.
+'    a. In the Select File dialog:
+'       1. Click the text file checked out in +Preconditions step 4.
+'       2. Click Open.
+'    b. In the file data card, click the Comment tab.
+'    c. Type something in Comments.
+' 4. Click Save data card.
+' 5. Click OK in the message box.
+' 6. Close the Custom Card View dialog box.
+' 7. Check in the file and inspect the comment in the file data card.

+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+    Implements IEdmCardViewCallback6

+    Private vault1 As IEdmVault5
+    Dim view As IEdmCardView63
+    Dim aFile As IEdmFile7
+    Dim aFolder As IEdmFolder5

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+        Try
+            vault1 = New EdmVault5()
+            Dim vault As IEdmVault10 = DirectCast(vault1, IEdmVault10)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SelectFile_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFile.Click
+        Try
+            File1List.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Set the initial directory in the Select File dialog
+            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath

+            'Show the Select File dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = OpenFileDialog1.ShowDialog()

+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                ' do nothing
+            Else
+                For Each FileName As String In OpenFileDialog1.FileNames
+                    File1List.Items.Add(FileName)
+                    aFile = vault1.GetFileFromPath(FileName, aFolder)
+                    ShowCard(aFolder, aFile.ID)
+                Next
+            End If

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub SaveCard_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SaveCard.Click
+        Try

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            view.SaveData()
+            SaveCard.Enabled = False

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    'Display the card of the selected file
+    Private Sub ShowCard(ByVal folder As IEdmFolder5ByVal fileID As Integer)
+        Try

+
+

+
+         If vault1 Is Nothing Then
+             vault1 = New EdmVault5()
+         End If

+         If Not vault1.IsLoggedIn Then
+             vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+         End If
+         Dim vault As IEdmVault10 = vault1

+         Dim params As EdmCardViewParams
+         params.mlFileID = fileID
+         params.mlFolderID = folder.ID
+         params.mlCardID = 0
+         params.mlX = 40
+         params.mlY = 300
+         params.mhParentWindow = Me.Handle.ToInt32()
+         params.mlEdmCardViewFlags = EdmCardViewFlag.EdmCvf_Normal

+         'Create the card view interface 
+         view = vault.CreateCardViewEx2(params, Me)

+         If view Is Nothing Then
+             MsgBox("The file does not have a card.")
+             Exit Sub
+         End If

+         'Set input focus to the first control in the card
+         view.SetFocus(0)

+         'Enable all controls in the card
+         view.Update(EdmCardViewUpdateType.EdmCvut_EnableCtrl)

+         'Get the size needed to display the card 
+         Dim width As Integer
+         Dim height As Integer
+         view.GetCardSize(width, height)

+         'Resize the form window to make room for the card 
+         Me.Width = (width + 100)
+         Me.Height = (height + 400)
+         view.ShowWindow(True)

+         SaveCard.Enabled = False

+
+

+
+        Catch
 ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub EdmCardViewCallback6_SetModifiedFlag() Implements IEdmCardViewCallback6.SetModifiedFlag
+        SaveCard.Enabled = True
+    End Sub

+    Private Sub EdmCardViewCallback6_OnAddInInput(ByVal lFlags As IntegerImplements IEdmCardViewCallback6.OnAddInInput
+    End Sub

+    Private Sub EdmCardViewCallback6_SetCtrlData(ByVal lCardWnd As IntegerByVal lCardID As IntegerByVal lControlID As IntegerByVal lVariableID As IntegerByVal bsVariableName As StringByVal poView As IEdmCardView5ByRef poValue As ObjectImplements IEdmCardViewCallback6.SetCtrlData 

+

+        Try
+            If bsVariableName = "Comment" Then
+                MsgBox(lCardWnd & " " & lCardID & " " & lControlID & " " & lVariableID & " " & bsVariableName & " " & poValue.ToString)

+                Dim enumvar As IEdmEnumeratorVariable8
+                enumvar = aFile.GetEnumeratorVariable()

+                enumvar.SetVar(bsVariableName, "", poValue, True)
+                enumvar.CloseFile(True)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Function EdmCardViewCallback6_GetCtrlData(ByVal lCardWnd As IntegerByVal lCardID As IntegerByVal lControlID As IntegerByVal lVariableID As IntegerByVal bsVariableName As StringByVal poView As IEdmCardView5As Object Implements IEdmCardViewCallback6.GetCtrlData
+        

+

        Dim poValue As Object += Nothing
+        +Try
+             Dim enumVar As IEdmEnumeratorVariable5 += aFile.GetEnumeratorVariable()
+             +enumVar.GetVar(bsVariableName, "", +poValue)
+          Catch ex As System.Runtime.InteropServices.COMException
+              MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+          Catch ex As Exception
+              MessageBox.Show(ex.Message)
+        End Try
+        Return +poValue

+

+
+    End Function

+    Private Function EdmCardViewCallback6_GetDefaultValueComponent(ByVal eValue As EdmDefValCompAs Object Implements IEdmCardViewCallback6.GetDefaultValueComponent
+        Return Nothing
+    End Function

+    
+End Class

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.SelectFile = New System.Windows.Forms.Button()
+        Me.File1List = New System.Windows.Forms.ListBox()
+        Me.SaveCard = New System.Windows.Forms.Button()
+        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'SelectFile
+        '
+        Me.SelectFile.Location = New System.Drawing.Point(39, 85)
+        Me.SelectFile.Name = "SelectFile"
+        Me.SelectFile.Size = New System.Drawing.Size(157, 23)
+        Me.SelectFile.TabIndex = 2
+        Me.SelectFile.Text = "Select file..."
+        Me.SelectFile.UseVisualStyleBackColor = True
+        '
+        'File1List
+        '
+        Me.File1List.FormattingEnabled = True
+        Me.File1List.HorizontalScrollbar = True
+        Me.File1List.Location = New System.Drawing.Point(40, 114)
+        Me.File1List.Name = "File1List"
+        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
+        Me.File1List.Size = New System.Drawing.Size(220, 43)
+        Me.File1List.TabIndex = 4
+        '
+        'SaveCard
+        '
+        Me.SaveCard.Location = New System.Drawing.Point(40, 176)
+        Me.SaveCard.Name = "SaveCard"
+        Me.SaveCard.Size = New System.Drawing.Size(107, 23)
+        Me.SaveCard.TabIndex = 6
+        Me.SaveCard.Text = "Save data card"
+        Me.SaveCard.UseVisualStyleBackColor = True
+        '
+        'OpenFileDialog1
+        '
+        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
+        Me.OpenFileDialog1.Title = "Select File"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 227)
+        Me.Controls.Add(Me.SaveCard)
+        Me.Controls.Add(Me.File1List)
+        Me.Controls.Add(Me.SelectFile)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Custom Card View"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents SelectFile As System.Windows.Forms.Button
+    Friend WithEvents File1List As System.Windows.Forms.ListBox
+    Friend WithEvents SaveCard As System.Windows.Forms.Button
+    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Label_Example_CSharp.htm b/documentation/api_extracted/Create_Label_Example_CSharp.htm new file mode 100644 index 0000000..64b1427 --- /dev/null +++ b/documentation/api_extracted/Create_Label_Example_CSharp.htm @@ -0,0 +1,366 @@ + + + +Create Labels on Folders Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Labels on Folders Example (C#)

+

This example shows how to create a label on a folder and +all of its subfolders and files.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CreateLabel_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Create label dialog box.
+
+//    a. Select a vault view.
+
+//    b. Click Browse for +parent folder
+
+//       1. Locate and click a +folder +in the vault.
+
+
+//       2. Click OK.
+
+
+//    c. Click Create label.
+
+
+//       1. Creates label, MyCompany, +on the +selected folder and all of its
+
+
+//          subfolders and files.
+
+
+//       2. Displays a message box with information +about all of the labels
+
+
+//          +on the selected folder.
+
+
+//       3. Click OK.
+
+// 2. Close the Create label dialog box.
+
// +3. To verify label creation on a folder or file, open a view on the
+//    selected vault, click either a folder or a file, and click
+//    Display > History.  
            

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace CreateLabel_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                IEdmVault5 vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                ListBox.Items.Clear();

+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Show the Browse For Folder dialog
+                System.Windows.Forms.DialogResult DialogResult;
+                DialogResult = FolderBrowserDialog1.ShowDialog();
+                //If the user didn't click OK, exit
+                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
+                {
+                    return;
+                }

+                ListBox.Items.Add(FolderBrowserDialog1.SelectedPath);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void CreateLabel_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;
+                if (!vault1.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                IEdmFolder5 parentFolder = default(IEdmFolder5);
+                parentFolder = vault2.GetFolderFromPath(ListBox.Items[0].ToString());

+                int labelID = 0;
+                string labelName = "MyCompany";
+                labelID = parentFolder.CreateLabel(labelName, "Label set by test program"true);

+                IEdmPos5 pos = default(IEdmPos5);
+                IEdmLabel5 label = default(IEdmLabel5);
+                string message = null;
+                message = "The following labels have been set on folder " + parentFolder.Name + ":" + "\n";
+                pos = parentFolder.GetFirstLabelPosition();
+                while (!pos.IsNull)
+                {
+                    label = (IEdmLabel5)parentFolder.GetNextLabel(pos);
+                    message = message + label.Name + " (" + label.Comment + ")" + " created by " + label.User.Name + "(ID = " + label.UserID + ")" + " at " + label.Time + "\n";
+                }

+                MessageBox.Show(message);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CreateLabel_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.BrowseButton = new System.Windows.Forms.Button();
+            this.ListBox = new System.Windows.Forms.ListBox();
+            this.CreateLabel = new System.Windows.Forms.Button();
+            this.FolderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = " Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            //
+            //BrowseButton
+            //
+            this.BrowseButton.Location = new System.Drawing.Point(16, 85);
+            this.BrowseButton.Name = "BrowseButton";
+            this.BrowseButton.Size = new System.Drawing.Size(186, 23);
+            this.BrowseButton.TabIndex = 3;
+            this.BrowseButton.Text = "Browse for parent folder...";
+            this.BrowseButton.UseVisualStyleBackColor = true;
+            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
+            //
+            //ListBox
+            //
+            this.ListBox.FormattingEnabled = true;
+            this.ListBox.HorizontalScrollbar = true;
+            this.ListBox.Location = new System.Drawing.Point(16, 114);
+            this.ListBox.Name = "ListBox";
+            this.ListBox.Size = new System.Drawing.Size(259, 43);
+            this.ListBox.TabIndex = 4;
+            //
+            //CreateLabel
+            //
+            this.CreateLabel.Location = new System.Drawing.Point(84, 178);
+            this.CreateLabel.Name = "CreateLabel";
+            this.CreateLabel.Size = new System.Drawing.Size(98, 23);
+            this.CreateLabel.TabIndex = 5;
+            this.CreateLabel.Text = "Create label";
+            this.CreateLabel.UseVisualStyleBackColor = true;
+            this.CreateLabel.Click +=new System.EventHandler(CreateLabel_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(317, 215);
+            this.Controls.Add(this.CreateLabel);
+            this.Controls.Add(this.ListBox);
+            this.Controls.Add(this.BrowseButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Create label";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button BrowseButton;
+        internal System.Windows.Forms.ListBox ListBox;
+        internal System.Windows.Forms.Button CreateLabel;
+        internal System.Windows.Forms.FolderBrowserDialog FolderBrowserDialog1;
+    }
+}

+

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Label_Example_VBNET.htm b/documentation/api_extracted/Create_Label_Example_VBNET.htm new file mode 100644 index 0000000..6089336 --- /dev/null +++ b/documentation/api_extracted/Create_Label_Example_VBNET.htm @@ -0,0 +1,301 @@ + + + +Create Labels on Folders Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Labels on Folders Example (VB.NET)

+

This example shows how to create a label on a folder and +all of its subfolders and files.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CreateLabel in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Create label dialog box.
+'    a. Select a vault view.
+'    b. Click Browse for +parent folder
+ +'       1. Locate and click a +folder +in the vault.
+'       2. Click OK.
+'    c. Click Create label.
+'       1. Creates label, MyCompany, on the +selected folder and all of its
+'          subfolders and files.
+'       2. Displays a message box with information +about all of the labels
+'          on the selected folder.
+'       3. Click OK.

+ +' 2. Close the Create label dialog box.
+' 3. To verify label creation on a folder or file, open a view on the
+'    selected vault, click either a folder or a file, and click
+'    Display > History.       

+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Private vault1 As IEdmVault5 = Nothing

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            Dim vault1 As IEdmVault5 = New EdmVault5()
+            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+            Dim Views As EdmViewInfo() = Nothing

+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
+        Try
+            ListBox.Items.Clear()

+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Show the Browse For Folder dialog
+            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
+            DialogResult = FolderBrowserDialog1.ShowDialog()
+            'If the user didn't click OK, exit
+            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
+                Return
+            End If

+            ListBox.Items.Add(FolderBrowserDialog1.SelectedPath)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Public Sub CreateLabel_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CreateLabel.Click
+        Try

+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+            If Not vault1.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            Dim parentFolder As IEdmFolder5
+            parentFolder = vault2.GetFolderFromPath(ListBox.Items(0).ToString())

+            Dim labelID As Integer
+            Dim labelName As String = "MyCompany"
+            labelID = parentFolder.CreateLabel(labelName, "Label set by test program"True)

+            Dim pos As IEdmPos5
+            Dim label As IEdmLabel5
+            Dim message As String
+            message = "The following labels have been set on folder " + parentFolder.Name + ":" + vbLf
+            pos = parentFolder.GetFirstLabelPosition
+            While Not pos.IsNull
+                label = parentFolder.GetNextLabel(pos)
+                +message = message & label.Name & " (" & label.Comment & ")" & " created by " & label.User.Name & "(ID = " & label.UserID & ")" & " at " & label.Time & vbLf
+            End While

+            MsgBox(message)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+    ''' <summary>
+    ''' Required designer variable.
+    ''' </summary>
+    Private components As System.ComponentModel.IContainer = Nothing

+    ''' <summary>
+    ''' Clean up any resources being used.
+    ''' </summary>
+    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.BrowseButton = New System.Windows.Forms.Button()
+        Me.ListBox = New System.Windows.Forms.ListBox()
+        Me.CreateLabel = New System.Windows.Forms.Button()
+        Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
+        Me.VaultsLabel.TabIndex = 0
+        Me.VaultsLabel.Text = " Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'BrowseButton
+        '
+        Me.BrowseButton.Location = New System.Drawing.Point(16, 85)
+        Me.BrowseButton.Name = "BrowseButton"
+        Me.BrowseButton.Size = New System.Drawing.Size(186, 23)
+        Me.BrowseButton.TabIndex = 3
+        Me.BrowseButton.Text = "Browse for parent folder..."
+        Me.BrowseButton.UseVisualStyleBackColor = True
+        '
+        'ListBox
+        '
+        Me.ListBox.FormattingEnabled = True
+        Me.ListBox.HorizontalScrollbar = True
+        Me.ListBox.Location = New System.Drawing.Point(16, 114)
+        Me.ListBox.Name = "ListBox"
+        Me.ListBox.Size = New System.Drawing.Size(259, 43)
+        Me.ListBox.TabIndex = 4
+        '
+        'CreateLabel
+        '
+        Me.CreateLabel.Location = New System.Drawing.Point(84, 178)
+        Me.CreateLabel.Name = "CreateLabel"
+        Me.CreateLabel.Size = New System.Drawing.Size(98, 23)
+        Me.CreateLabel.TabIndex = 5
+        Me.CreateLabel.Text = "Create label"
+        Me.CreateLabel.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(317, 215)
+        Me.Controls.Add(Me.CreateLabel)
+        Me.Controls.Add(Me.ListBox)
+        Me.Controls.Add(Me.BrowseButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Name = "Form1"
+        Me.Text = "Create label"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents BrowseButton As System.Windows.Forms.Button
+    Friend WithEvents ListBox As System.Windows.Forms.ListBox
+    Friend WithEvents CreateLabel As System.Windows.Forms.Button
+    Friend WithEvents FolderBrowserDialog1 As System.Windows.Forms.FolderBrowserDialog
+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Create_New_Vault_Example_CSharp.htm b/documentation/api_extracted/Create_New_Vault_Example_CSharp.htm new file mode 100644 index 0000000..0ae3557 --- /dev/null +++ b/documentation/api_extracted/Create_New_Vault_Example_CSharp.htm @@ -0,0 +1,289 @@ + + + +Create New Vault Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create New Vault Example (C#)

+

This example shows how to:

+
    +
  • Create a new vault.
  • +
  • Create a new vault view.
  • +
  • Log into the new vault.
  • +
  • Get all of the users currently logged into vault views on + this machine.
  • +
+
+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CreateNewVault_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, and click Add).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+
// +4. In the code, substitute the following parameters in IEdmVault11::CreateNewVault
+//    to create MyNewVault on your machine:
+//    * database_server
+//    * sql_sa_password

+// 5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Create +new vault dialog box.
+//    a. +Click Create and log in to MyNewVault.
+//    b. After a few seconds, displays a login dialog.
+//    c. Type Admin's password in Password.
+//    d. Click Log in.
+//       1. MyNewVault is created using the +Default configuration in the root
+//          folder of the archive +server.
+//       2. A view of MyNewVault, accessible to +all users, is created in c:\temp.
+//       3. Admin is logged into MyNewVault.

+//    +e. Click Get users logged into all vaults
+//    +f. Displays a dialog with all of the users currently logged into
+//       vault views on this machine.
+//    g. Click OK.

+// 2. Close the Create +new vault dialog box.           

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace CreateNewVault_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }

+        IEdmVault5 vault1;
+        IEdmVault13 vault2;
+        string vaults = "";
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            vault1 = new EdmVault5();
+            vault2 = (IEdmVault13)vault1;
+        }


+        public void GetLoggedIn_Click(System.Object sender, System.EventArgs e)
+        {
+            //Get all of the users currently logged into +vault views on this machine
+            try
+            {
+                if (vault1 == null)
+                {
+                    MessageBox.Show("Click Log in");
+                    return;
+                }

+                IEdmUserMgr5 userMgr = default(IEdmUserMgr5);
+                userMgr = (IEdmUserMgr5)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);
+                IEdmPos5 pos = default(IEdmPos5);
+                pos = userMgr.GetFirstLoggedInUserPosition(vaults);

+                string userName = "";
+                string computerName = "";
+                string vaultName = "";
+                object loginTime = null;

+                string message = null;
+                message = "The following users are +logged into vault views:" + "\n" + "\n";

+                while (!pos.IsNull)
+                {
+                    userMgr.GetNextLoggedInUser(pos, out userName, out computerName, out vaultName, ref loginTime);
+                    message = message + userName + " (" + computerName + ")" + " logged in to " + vaultName + " at " + loginTime + "\n";
+                }

+                MessageBox.Show(message);

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        private void Button1_Click(System.Object sender, System.EventArgs e)
+        {
+            // Create +a new vault and vault view
+            try
+            {
+                vault1 = new EdmVault5();
+                vault2 = (IEdmVault13)vault1;

+                vault2.CreateNewVault("""""""MyNewVault""This is my new vault""""database_server""sa""sql_sa_password""MyNewVault", 110, "", (int)EdmCreateVaultFlag.EdmCreateVault_UseDefaultAdminPassword, null"Default");
+                vault2.CreateNewVaultView("""""""MyNewVault""c:\\temp", (int)EdmCreateVaultViewFlag.EdmCreateVaultView_SharedView);

+                EdmViewInfo[] Views = null;
+                vault2.GetVaultViews(out Views, false);
+                vaults = "";

+                foreach (EdmViewInfo View in Views)
+                {
+                    vaults = vaults + View.mbsVaultName + "\n";
+                }

+                //Log into the new vault view
+                vault2.LoginAuto("MyNewVault"this.Handle.ToInt32());
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CreateNewVault_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.GetLoggedIn = new System.Windows.Forms.Button();
+            this.Button1 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            //GetLoggedIn
+            //
+            this.GetLoggedIn.Location = new System.Drawing.Point(31, 71);
+            this.GetLoggedIn.Name = "GetLoggedIn";
+            this.GetLoggedIn.Size = new System.Drawing.Size(167, 23);
+            this.GetLoggedIn.TabIndex = 5;
+            this.GetLoggedIn.Text = "Get users logged into all vaults";
+            this.GetLoggedIn.UseVisualStyleBackColor = true;
+            this.GetLoggedIn.Click +=new System.EventHandler(GetLoggedIn_Click);
+            //
+            //Button1
+            //
+            this.Button1.Location = new System.Drawing.Point(31, 26);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(178, 23);
+            this.Button1.TabIndex = 6;
+            this.Button1.Text = "Create and log in to MyNewVault";
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click +=new System.EventHandler(Button1_Click);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(287, 136);
+            this.Controls.Add(this.Button1);
+            this.Controls.Add(this.GetLoggedIn);
+            this.Name = "Form1";
+            this.Text = "Create new vault";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion

+        internal System.Windows.Forms.Button GetLoggedIn;
+        internal System.Windows.Forms.Button Button1;
+    }
+}

+

+

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Create_New_Vault_Example_VBNET.htm b/documentation/api_extracted/Create_New_Vault_Example_VBNET.htm new file mode 100644 index 0000000..9213874 --- /dev/null +++ b/documentation/api_extracted/Create_New_Vault_Example_VBNET.htm @@ -0,0 +1,240 @@ + + + +Create New Vault Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create New Vault Example (VB.NET)

+

This example shows how to:

+
    +
  • Create a new vault.
  • +
  • Create a new vault view.
  • +
  • Log into the new vault.
  • +
  • Get all of the users currently logged into vault views on + this machine.
  • +
+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CreateNewVault in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. In the code, substitute the following parameters in IEdmVault11::CreateNewVault
+'    to create MyNewVault on your machine:
+'    * database_server
+'    * sql_sa_password

+' 5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Create new vault dialog box.
+'    a. Click Create and log in to +MyNewVault.
+'    b. After a few seconds, displays a login dialog.
+'    c. Type Admin's password in Password.
+'    d. Click Log in.
+'       1. MyNewVault is created using the Default +configuration in the root
+'          folder of the archive +server.
+'       2. A view of MyNewVault, accessible to all +users, is created in c:\temp.
+'       3. Admin is logged into MyNewVault.

+'    e. Click Get users logged +into all vaults
+ +'    f. Displays a dialog with all of the users currently logged +into 
+'       vault views on this machine.
+'    g. Click OK.

+ +' 2. Close the Create new vault dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm


+Public Class Form1

+    Dim vault1 As IEdmVault5 = New EdmVault5()
+    Dim vault2 As IEdmVault13 = DirectCast(vault1, IEdmVault13)
+    Dim vaults As String = ""
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+    End Sub


+    Public Sub GetLoggedIn_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetLoggedIn.Click
+        'Get all of the users currently logged into vault views on this machine
+        Try
+            If vault1 Is Nothing Then
+                MessageBox.Show("Click Log in")
+                Exit Sub
+            End If

+            Dim userMgr As IEdmUserMgr5
+            userMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)
+            Dim pos As IEdmPos5
+            pos = userMgr.GetFirstLoggedInUserPosition(vaults)

+            Dim userName As String = ""
+            Dim computerName As String = ""
+            Dim vaultName As String = ""
+            Dim loginTime As Object = Nothing

+            Dim message As String
+            message = "The following users are logged into vault views:" & vbLf & vbLf

+            While Not pos.IsNull
+                userMgr.GetNextLoggedInUser(pos, userName, computerName, vaultName, loginTime)
+                message = message & userName & " (" & computerName & ")" & " logged in to " & vaultName & " at " & loginTime.ToString & vbLf
+            End While

+            MsgBox(message)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        ' Create a new vault and vault view
+        Try
+            vault1 = New EdmVault5()
+            vault2 = DirectCast(vault1, IEdmVault13)

+            vault2.CreateNewVault("""""""MyNewVault""This is my new vault""""database_server""sa""sql_sa_password""MyNewVault", 110, ""EdmCreateVaultFlag.EdmCreateVault_UseDefaultAdminPassword, Nothing"Default")
+            vault2.CreateNewVaultView("""""""MyNewVault""c:\temp"EdmCreateVaultViewFlag.EdmCreateVaultView_SharedView)

+            Dim Views As EdmViewInfo() = Nothing
+            vault2.GetVaultViews(Views, False)

+            For Each View As EdmViewInfo In Views
+                vaults = vaults & View.mbsVaultName & vbLf
+            Next

+            'Log into the new vault view 
+            vault2.LoginAuto("MyNewVault"Me.Handle.ToInt32())

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    Private components As System.ComponentModel.IContainer = Nothing

+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        If disposing AndAlso (components IsNot NothingThen
+            components.Dispose()
+        End If
+        MyBase.Dispose(disposing)
+    End Sub

+#Region "Windows Form Designer generated code"

+    ''' <summary>
+    ''' Required method for Designer support - do not modify
+    ''' the contents of this method with the code editor.
+    ''' </summary>

+

+    Private Sub InitializeComponent()
+        Me.GetLoggedIn = New System.Windows.Forms.Button()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'GetLoggedIn
+        '
+        Me.GetLoggedIn.Location = New System.Drawing.Point(31, 71)
+        Me.GetLoggedIn.Name = "GetLoggedIn"
+        Me.GetLoggedIn.Size = New System.Drawing.Size(167, 23)
+        Me.GetLoggedIn.TabIndex = 5
+        Me.GetLoggedIn.Text = "Get users logged into all vaults"
+        Me.GetLoggedIn.UseVisualStyleBackColor = True
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(31, 26)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(178, 23)
+        Me.Button1.TabIndex = 6
+        Me.Button1.Text = "Create and log in to MyNewVault"
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(287, 136)
+        Me.Controls.Add(Me.Button1)
+        Me.Controls.Add(Me.GetLoggedIn)
+        Me.Name = "Form1"
+        Me.Text = "Create new vault"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub

+#End Region

+    Friend WithEvents GetLoggedIn As System.Windows.Forms.Button
+    Friend WithEvents Button1 As System.Windows.Forms.Button

+

+
+End Class

+
+

Back to top

+ + + + diff --git a/documentation/api_extracted/Create_User_Picture_Example_CSharp.htm b/documentation/api_extracted/Create_User_Picture_Example_CSharp.htm new file mode 100644 index 0000000..ed1295d --- /dev/null +++ b/documentation/api_extracted/Create_User_Picture_Example_CSharp.htm @@ -0,0 +1,301 @@ + + + +Create User Picture Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create User Picture Example (C#)

+

This example shows how to display a user's picture in a +form and pop up user information when hovering over a form label.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
+//    b. Type CreateUserPicture_CSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, click Add, +and click Close).
+// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays the Get +Admin's picture dialog box.
+// 2. Select a vault view.
+// 3. Click Get +picture
+// +4. Displays a picture of the Admin of the selected vault.
+// 5. Hover over System Administrator.
+// 6. Pops up a window with the Admin's information.

+// 7. Close the Get +Admin's picture dialog box.        

+ +//----------------------------------------------------------------------------

+//Form1.cs

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;

+namespace CreateUserPicture_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+
+        IEdmImage mpoImage;
+
+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            IEdmVault8 vault = (IEdmVault8)new EdmVault5();
+            EdmViewInfo[] Views = {
+
+ };

+            vault.GetVaultViews(out Views, false);
+            VaultsComboBox.Items.Clear();
+            foreach (EdmViewInfo View in Views)
+            {
+                VaultsComboBox.Items.Add(View.mbsVaultName);
+            }
+            if (VaultsComboBox.Items.Count > 0)
+            {
+                VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+            }
+        }

+        private void Button1_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault5 vault = default(IEdmVault5);
+                IEdmVault12 vault2 = default(IEdmVault12);
+                vault = new EdmVault5();
+                vault2 = (IEdmVault12)vault;

+                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());

+                IEdmUserMgr8 poUserMgr = default(IEdmUserMgr8);
+                poUserMgr = (IEdmUserMgr8)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);

+                //Create a bounding rectangle for the picture 
+                EdmRect oRect = default(EdmRect);
+                oRect.mlTop = 10;
+                oRect.mlLeft = 10;
+                oRect.mlRight = oRect.mlLeft + 80;
+                oRect.mlBottom = oRect.mlTop + 100;

+                //Create the Admin user's image
+                IEdmUser10 poAdmin = default(IEdmUser10);
+                poAdmin = (IEdmUser10)poUserMgr.GetUser("Admin");
+                mpoImage = poUserMgr.CreateUserPicture(this.Handle.ToInt32(), ref oRect, poAdmin.ID);

+                Label1.Text = poAdmin.FullName;

+                //Invalidate the window to trigger a call to OnPaintPic
+                this.Invalidate();

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }

+        //Displays the Admin user's picture when the form is repainted
+        private void Form1_Paint(System.Object sender, System.Windows.Forms.PaintEventArgs e)
+        {
+            if ((mpoImage != null))
+            {
+                mpoImage.Paint(e.Graphics.GetHdc().ToInt32());
+            }
+        }

+        //Called when the user hovers over the form label, Label1

+        private void Label1_MouseHover(System.Object sender, System.EventArgs e)
+        {
+            IEdmVault12 poVault = default(IEdmVault12);
+            poVault = (IEdmVault12)new EdmVault5();
+            poVault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());

+            IEdmUserMgr8 poUserMgr = default(IEdmUserMgr8);
+            poUserMgr = (IEdmUserMgr8)poVault.CreateUtility(EdmUtility.EdmUtil_UserMgr);

+            //Get the screen coordinates of the label that displays the user name
+            System.Drawing.Point pnt = default(System.Drawing.Point);
+            pnt.X = Label1.Left;
+            pnt.Y = Label1.Top;
+            pnt = this.PointToScreen(pnt);

+            //Create the bounding rectangle
+            EdmRect oTrackRect = default(EdmRect);
+            oTrackRect.mlTop = pnt.Y;
+            oTrackRect.mlLeft = pnt.X;
+            oTrackRect.mlRight = oTrackRect.mlLeft + Label1.Width;
+            oTrackRect.mlBottom = oTrackRect.mlTop + Label1.Height;

+            //Display a popup window with the Admin user's information
+            poUserMgr.ShowUserPopup(this.Handle.ToInt32(), ref oTrackRect, Label1.Text);
+        }
+    }
+}

+

+

+Back to top

+

+//Form1.Designer.cs

+

+namespace CreateUserPicture_CSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Windows Form Designer generated code

+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.Button1 = new System.Windows.Forms.Button();
+            this.Label1 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            //
+            //VaultsLabel
+            //
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(22, 164);
+            this.VaultsLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 10;
+            this.VaultsLabel.Text = "Select vault view:";
+            //
+            //VaultsComboBox
+            //
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(25, 179);
+            this.VaultsComboBox.Margin = new System.Windows.Forms.Padding(2);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(132, 21);
+            this.VaultsComboBox.TabIndex = 11;
+            //
+            //Button1
+            //
+            this.Button1.Location = new System.Drawing.Point(48, 214);
+            this.Button1.Margin = new System.Windows.Forms.Padding(2);
+            this.Button1.Name = "Button1";
+            this.Button1.Size = new System.Drawing.Size(101, 31);
+            this.Button1.TabIndex = 14;
+            this.Button1.Text = "Get picture";
+            this.Button1.UseVisualStyleBackColor = true;
+            this.Button1.Click +=new System.EventHandler(Button1_Click);
+            //
+            //Label1
+            //
+            this.Label1.AutoSize = true;
+            this.Label1.Location = new System.Drawing.Point(22, 128);
+            this.Label1.Name = "Label1";
+            this.Label1.Size = new System.Drawing.Size(0, 13);
+            this.Label1.TabIndex = 15;
+            this.Label1.MouseHover +=new System.EventHandler(Label1_MouseHover);
+            //
+            //Form1
+            //
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(235, 256);
+            this.Controls.Add(this.Label1);
+            this.Controls.Add(this.Button1);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Margin = new System.Windows.Forms.Padding(2);
+            this.Name = "Form1";
+            this.Text = "Get Admin's picture";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.Paint +=new System.Windows.Forms.PaintEventHandler(Form1_Paint);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion
+        internal System.Windows.Forms.Label VaultsLabel;
+        internal System.Windows.Forms.ComboBox VaultsComboBox;
+        internal System.Windows.Forms.Button Button1;
+        internal System.Windows.Forms.Label Label1;
+    }
+}

+

+Back to top

+ + + + diff --git a/documentation/api_extracted/Create_User_Picture_Example_VBNET.htm b/documentation/api_extracted/Create_User_Picture_Example_VBNET.htm new file mode 100644 index 0000000..1788770 --- /dev/null +++ b/documentation/api_extracted/Create_User_Picture_Example_VBNET.htm @@ -0,0 +1,262 @@ + + + +Create User Picture Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create User Picture Example (VB.NET)

+

This example shows how to display a user's picture in a +form and pop up user information when hovering over a form label.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

+ +'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type CreateUserPicture in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays the Get Admin's picture +dialog box.
+' 2. Select a vault view.
+' 3. Click Get picture
+ +' 4. Displays a picture of the Admin of the selected vault.
+' 5. Hover over System Administrator.
+' 6. Pops up a window with the Admin's information.

+ +' 7. Close the Get Admin's picture dialog box.         
+ +'----------------------------------------------------------------------------

+'Form1.vb

+

+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+

+    Dim mpoImage As IEdmImage
+

+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+        Dim vault As IEdmVault8 = New EdmVault5
+        Dim Views() As EdmViewInfo = {}

+        vault.GetVaultViews(Views, False)
+        VaultsComboBox.Items.Clear()
+        For Each View As EdmViewInfo In Views
+            VaultsComboBox.Items.Add(View.mbsVaultName)
+        Next
+        If VaultsComboBox.Items.Count > 0 Then
+            VaultsComboBox.Text = VaultsComboBox.Items(0)
+        End If
+    End Sub

+    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
+        Try

+            Dim vault As IEdmVault5
+            Dim vault2 As IEdmVault12
+            vault = New EdmVault5
+            vault2 = vault

+            vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())

+            Dim poUserMgr As IEdmUserMgr8
+            poUserMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)

+            'Create a bounding rectangle for the picture 
+            Dim oRect As EdmRect
+            oRect.mlTop = 10
+            oRect.mlLeft = 10
+            oRect.mlRight = oRect.mlLeft + 80
+            oRect.mlBottom = oRect.mlTop + 100

+            'Create the Admin user's image
+            Dim poAdmin As IEdmUser10
+            poAdmin = poUserMgr.GetUser("Admin")
+            mpoImage = poUserMgr.CreateUserPicture(Me.Handle.ToInt32, oRect, poAdmin.ID)

+            Label1.Text = poAdmin.FullName

+            'Invalidate the window to trigger a call to OnPaintPic
+            Me.Invalidate()

+        Catch ex As System.Runtime.InteropServices.COMException
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    'Displays the Admin user's picture when the form is repainted
+    Private Sub OnPaintPic(ByVal sender As System.ObjectByVal e As System.Windows.Forms.PaintEventArgsHandles MyBase.Paint
+        If Not mpoImage Is Nothing Then
+            mpoImage.Paint(e.Graphics.GetHdc())
+        End If
+    End Sub

+    'Called when the user hovers over the form label, Label1
+    Private Sub OnMouseHoverName(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Label1.MouseHover

+        Dim poVault As IEdmVault12
+        poVault = New EdmVault5
+        poVault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())

+        Dim poUserMgr As IEdmUserMgr8
+        poUserMgr = poVault.CreateUtility(EdmUtility.EdmUtil_UserMgr)

+        'Get the screen coordinates of the label that displays the user name
+        Dim pnt As System.Drawing.Point
+        pnt.X = Label1.Left
+        pnt.Y = Label1.Top
+        pnt = Me.PointToScreen(pnt)

+        'Create the bounding rectangle
+        Dim oTrackRect As EdmRect
+        oTrackRect.mlTop = pnt.Y
+        oTrackRect.mlLeft = pnt.X
+        oTrackRect.mlRight = oTrackRect.mlLeft + Label1.Width
+        oTrackRect.mlBottom = oTrackRect.mlTop + Label1.Height

+        'Display a popup window with the Admin user's information
+        poUserMgr.ShowUserPopup(Me.Handle.ToInt32, oTrackRect, Label1.Text)
+    End Sub

+End Class

+

+

+Back to top

+

+'Form1.Designer.vb

+
+

+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form

+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub

+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer

+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Button1 = New System.Windows.Forms.Button()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(22, 164)
+        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 10
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(25, 179)
+        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(132, 21)
+        Me.VaultsComboBox.TabIndex = 11
+        '
+        'Button1
+        '
+        Me.Button1.Location = New System.Drawing.Point(48, 214)
+        Me.Button1.Margin = New System.Windows.Forms.Padding(2)
+        Me.Button1.Name = "Button1"
+        Me.Button1.Size = New System.Drawing.Size(101, 31)
+        Me.Button1.TabIndex = 14
+        Me.Button1.Text = "Get picture"
+        Me.Button1.UseVisualStyleBackColor = True
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Location = New System.Drawing.Point(22, 128)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(0, 13)
+        Me.Label1.TabIndex = 15
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(235, 256)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.Button1)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Margin = New System.Windows.Forms.Padding(2)
+        Me.Name = "Form1"
+        Me.Text = "Get Admin's picture"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()

+    End Sub
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Button1 As System.Windows.Forms.Button
+    Friend WithEvents Label1 As System.Windows.Forms.Label

+End Class

+

Back to top

+ + + + diff --git a/documentation/api_extracted/Create_Vault_View_Tab_Addin_Example_CSharp.htm b/documentation/api_extracted/Create_Vault_View_Tab_Addin_Example_CSharp.htm new file mode 100644 index 0000000..7a6d4ce --- /dev/null +++ b/documentation/api_extracted/Create_Vault_View_Tab_Addin_Example_CSharp.htm @@ -0,0 +1,487 @@ + + + +Create Vault View Tab Add-in Example (C#) + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create Vault View Tab Add-in Example (C#)

+

This example shows how to create an add-in that adds a +custom tab to the bottom panel of a vault view when it is opened in File Explorer.

+ +

+//--------------------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+// 2. Click File > New > Project > Visual C# > Class +Library (.NET Framework).
+// 3. Type SWEPDMAddin1 in Name.
+// 4. Click Browse and navigate to the folder where to create the project.
+// 5. Click OK
+// 6. Right-click the project name in the Solution Explorer and select Add +> Reference
+// 7. In the Reference Manager dialog:   
+//    a. Click the Browse +tab.
+//    b. Click Browse at the bottom.
+//    c. Navigate to the SOLIDWORKS PDM Client installation +folder.
+//    d. Select EPDM.Interop.epdm.dll and click Add.
+//    e. Ensure that EPDM.Interop.epdm.dll is checked in +the Reference Manager dialog.

+//    f. Click OK.
+// 8. Right-click the project name in the Solution Explorer and select Properties.
+// 9. In the Properties window:
+//    a. On the Application tab, click Assembly Information.
+//    b. De-select Make assembly COM-Visible.
+//    c. On the Build tab, +select Any CPU, de-select +Prefer 32-bit, and select +Register for COM interop.
+//10. Save the project.

+//11. Copy SWEPDMADDin1 +code to a new class, SWEPDMAddin1.cs.
+//12. Right-click the project and select Add > User Control.
+//13. Type "UserControl1.cs" in Name and click Add.
+//14. Copy UserControl1 code to the code behind +UserControl1.cs.
+//15. Copy UserControl1.Designer code to +UserControl1.Designer.cs.
+//16.
To populate the GUID + attribute in SWEPDMAddin1.cs:
+//    a. Click Tools > Create GUID in the IDE.
+//    b. Select GUID Format 5.
+//    c. Click Copy.
+
//    d. Click Exit. +
+//    e. Populate
Guid("") +in the code with the copied string.
+//17. Copy a *.png file to the project folder.
+//18. Right-click the project and select Add > Existing item.
+//19. Select the *.png file and click Add.
+//20. Right-click the *.png file in Solution Explorer and select +Exclude from Project.
+//21. Replace the png_path in SWEPDMAddin1.cs with the full path +name of the *.png
+//    you just added to the project.

+//22. Click Build > Build Solution.
+//23. Ensure you have a vault, a vault view, and a file in the vault.

+//
// Postconditions: 
+// 1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
+//    and log in as Admin.
+// 2. Under vault_name, right-click Add-ins, and click New Add-in.
+//    a. Navigate to the bin\Debug +directory of your SWEPDMAddin1 project.
+//    b. Click SWEPDMAddin1.dll.
+//    c. Click Open.
+//    d. Click OK.
+// 3. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
+// 4. In the taskbar, click the Administration tool icon and click Log +Off > vault_name.

+// 5. Open File Explorer on a view of vault_name:
+//    a. Log in as Admin.

+//    b. Click UserTab1 in +the bottom panel of the vault view.
+//       One or more message boxes display. Click +OK in the message boxes.
+//    c. Select a file in the vault.
+//       The custom tab's text box is populated with the +name of the file.
+//    d. Right-click the file in the vault.
+//    e. Select Test menu item #1.
+//    f. Click OK in the message box.

+//---------------------------------------------------------------------------------------
 

+

+//SWEPDMADDin1

+

+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using EPDM.Interop.epdm;
+using System.Runtime.InteropServices;
+

+namespace SWEPDMAddin1
+{
+    [Guid(""), ComVisible(true)]
+    public class SWPDMAddin : IEdmAddIn5
+    {
+        Dictionary<stringUserControl1> ControlMaps = new Dictionary<stringUserControl1>();
+        static long Identifier = 1;
+        public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
+        {
+            //Add-in information
+            poInfo.mbsAddInName = "SWPDMAddin1";
+            poInfo.mbsCompany = "your_company_name";
+            poInfo.mbsDescription = "This add-in adds a tab to the bottom panel of the vault view before it is opened in File Explorer. +It also adds context-sensitive menu items to the right-click menus of files in +the vault.";
+            poInfo.mlAddInVersion = 1;

+            //Minimum Conisio version needed for .Net add-Ins is 6.4
+            poInfo.mlRequiredVersionMajor = 6;
+            poInfo.mlRequiredVersionMinor = 4;

+            //Adds context-sensitive menu items to the right-click menus of files in the vault
+            poCmdMgr.AddCmd(1, "Test menu item #1", (int)EdmMenuFlags.EdmMenu_Nothing, """", 0, 0);
+            poCmdMgr.AddCmd(1, "Test menu item #2", (int)EdmMenuFlags.EdmMenu_Nothing, """", 0, 0);

+            AddAllHooks(poCmdMgr);

+        }

+        public void OnCmd(ref EPDM.Interop.epdm.EdmCmd poCmd, ref EdmCmdData[] ppoData)
+        {
+            Debug.Print("Command Type: " + poCmd.meCmdType.ToString() + "\n  " + System.DateTime.Now.ToString());

+            IEdmVault5 edmVault = poCmd.mpoVault as IEdmVault5;

+            try
+            {
+                switch (poCmd.meCmdType)

+                {
+                    case EdmCmdType.EdmCmd_CardButton:
+                        break;
+                    case EdmCmdType.EdmCmd_CardInput:
+                        break;
+                    case EdmCmdType.EdmCmd_CardListSrc:
+                        break;
+                    case EdmCmdType.EdmCmd_InstallAddIn:
+                        break;
+                    case EdmCmdType.EdmCmd_Menu:
+                        //File's right-click menu item is selected
+                        edmVault.MsgBox(0, " Context-sensitive menu item selected"EdmMBoxType.EdmMbt_OKOnly, "PDM Pro add-in");
+                        break;
+                    case EdmCmdType.EdmCmd_PostAdd:
+                        break;
+                    case EdmCmdType.EdmCmd_PostAddFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PostCopy:
+                        break;
+                    case EdmCmdType.EdmCmd_PostCopyFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PostDelete:
+                        break;
+                    case EdmCmdType.EdmCmd_PostDeleteFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PostGet:
+                        break;
+                    case EdmCmdType.EdmCmd_PostLock:
+                        break;
+                    case EdmCmdType.EdmCmd_PostMove:
+                        break;
+                    case EdmCmdType.EdmCmd_PostMoveFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PostRename:
+                        break;
+                    case EdmCmdType.EdmCmd_PostRenameFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PostShare:
+                        break;
+                    case EdmCmdType.EdmCmd_PostState:
+                        break;
+                    case EdmCmdType.EdmCmd_PostUndoLock:
+                        break;
+                    case EdmCmdType.EdmCmd_PostUnlock:
+                        break;
+                    case EdmCmdType.EdmCmd_PreAdd:
+                        break;
+                    case EdmCmdType.EdmCmd_PreAddFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PreCopy:
+                        break;
+                    case EdmCmdType.EdmCmd_PreCopyFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PreDelete:
+                        break;
+                    case EdmCmdType.EdmCmd_PreDeleteFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PreGet:
+                        break;
+                    case EdmCmdType.EdmCmd_PreLock:
+                        break;
+                    case EdmCmdType.EdmCmd_PreMove:
+                        break;
+                    case EdmCmdType.EdmCmd_PreMoveFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PreRename:
+                        break;
+                    case EdmCmdType.EdmCmd_PreRenameFolder:
+                        break;
+                    case EdmCmdType.EdmCmd_PreShare:
+                        break;
+                    case EdmCmdType.EdmCmd_PreState:
+                        break;
+                    case EdmCmdType.EdmCmd_PreUndoLock:
+                        break;
+                    case EdmCmdType.EdmCmd_PreUnlock:
+                        break;
+                    case EdmCmdType.EdmCmd_SerialNo:
+                        break;
+                    case EdmCmdType.EdmCmd_UninstallAddIn:
+                        break;
+                    case EdmCmdType.EdmCmd_TaskDetails:
+                        break;
+                    case EdmCmdType.EdmCmd_PreExploreInit:
+                        {
+                            // File Explorer is about to be opened
+                            IEdmCmdMgr6 poCmdMgr6 = poCmd.mpoExtra as IEdmCmdMgr6;
+                            UserControl1 myControl1 = new UserControl1();
+                            // Add a custom tab to the bottom panel of the vault view
+                            poCmdMgr6.AddVaultViewTab(myControl1.Handle.ToInt64(), "UserTab1"@"png_path""UserTab1", Identifier.ToString());
+                            ControlMaps.Add(Identifier.ToString(), myControl1);
+                            Identifier++;

+                            break;
+                        }
+                    case EdmCmdType.EdmCmd_SelectItem:
+                        {
+                            // If a file is selected, populate the textBox1 control
+                            EdmCmdData poobject = (EdmCmdData)ppoData.GetValue(0);
+                            string Id = poobject.mbsStrData3;
+                            UserControl1 myControl;
+                            bool exist = ControlMaps.TryGetValue(Id, out myControl);
+                            if (exist)
+                            {
+                                if (poobject.mbsStrData1.Length != 0)
+                                    myControl.SetFileName(poobject.mbsStrData1);
+                                else
+                                    myControl.SetFileName(poobject.mbsStrData2);
+                            }
+                            break;
+                        }

+                    case EdmCmdType.EdmCmd_DeSelectItem:
+                        {
+                            // If a file is de-selected, empty the textBox1 control
+                            EdmCmdData poobject = (EdmCmdData)ppoData.GetValue(0);
+                            string Id = poobject.mbsStrData3;
+                            UserControl1 myControl;
+                            bool exist = ControlMaps.TryGetValue(Id, out myControl);
+                            if (exist)
+                            {
+                                myControl.SetFileName("");
+                            }
+                            break;
+                        }
+                    case EdmCmdType.EdmCmd_UserTabDelete:
+                        {
+                            // When +File Explorer is closed, this event is called; perform cleanup here
+                            EdmCmdData poobject = (EdmCmdData)ppoData.GetValue(0);
+                            string Id = poobject.mbsStrData3;
+                            ControlMaps.Remove(Id);
+                            break;
+                        }
+                    case EdmCmdType.EdmCmd_ActivateAPITab:
+                        {
+                            // UserTab1 is selected
+                            edmVault.MsgBox(0, " UserTab1 selected"EdmMBoxType.EdmMbt_OKOnly, "PDM Pro add-in");
+                            break;
+                        }
+                    default:
+                        break;
+                }
+            }
+            catch (COMException exp)
+            {
+                string errorName, errorDesc;
+                edmVault.GetErrorString(exp.ErrorCode, out errorName, out errorDesc);
+                edmVault.MsgBox(0, errorDesc, EdmMBoxType.EdmMbt_OKOnly, errorName);
+            }
+        }

+        void AddAllHooks(IEdmCmdMgr5 poCmdMgr)
+        {
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardButton, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardInput, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardListSrc, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_InstallAddIn, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_Menu, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAdd, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAddFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostCopy, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostCopyFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostDelete, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostDeleteFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostGet, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostLock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostMove, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostMoveFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostRename, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostRenameFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostShare, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostState, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostUndoLock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostUnlock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreAdd, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreAddFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreCopy, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreCopyFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreDeleteFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreGet, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreLock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreMove, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreMoveFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreRename, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreRenameFolder, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreShare, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreState, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreUndoLock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreUnlock, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_SerialNo, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreExploreInit, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_UninstallAddIn, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_SelectItem, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_DeSelectItem, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_ActivateAPITab, null);
+            poCmdMgr.AddHook(EdmCmdType.EdmCmd_UserTabDelete, null);

+        }
+    }


+}

+ +

+Back to top

+ +

+//UserControl1.Designer

+

+namespace SWEPDMAddin1
+{
+    partial class UserControl1
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;

+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }

+        #region Component Designer generated code

+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(128, 42);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(414, 20);
+            this.textBox1.TabIndex = 4;
+            // 
+            // label1
+            // 
+            this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(3, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(54, 13);
+            this.label1.TabIndex = 5;
+            this.label1.Text = "UserTab1";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(47, 45);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(75, 13);
+            this.label2.TabIndex = 6;
+            this.label2.Text = "Selected Item ";
+            // 
+            // UserControl1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.textBox1);
+            this.Name = "UserControl1";
+            this.Size = new System.Drawing.Size(559, 243);
+            this.ResumeLayout(false);
+            this.PerformLayout();

+        }

+        #endregion
+        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+    }
+}

+

+Back to top

+

+//UserControl1

+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;

+namespace SWEPDMAddin1
+{
+    public partial class UserControl1 : UserControl
+    {
+        public UserControl1()
+        {
+            InitializeComponent();
+        }

+        public void SetFileName(string strFileName)
+        {

+            textBox1.Text = strFileName;
+        }
+        
+    }
+}

+

+Back to top

+

 

+ + + + diff --git a/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_CSharp.htm b/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_CSharp.htm new file mode 100644 index 0000000..88ca43b --- /dev/null +++ b/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_CSharp.htm @@ -0,0 +1,716 @@ + + + +Create and Delete Dictionaries Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create and Delete Dictionaries Example (C#)

+

This example shows how to create and delete dictionaries +and their keys and values.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+// 1. Start Microsoft Visual Studio.
+//    a. Click File > New > Project > Visual C# > Windows Forms Application.
+//    b. Type AddDictionaryCSharp in Name.
+//    c. Click Browse and navigate to the folder where to create 
+//       the project.
+//    d. Click OK
+//    e. Click Show All Files in the Solution Explorer toolbar and expand 
+//       Form1.cs in the Solution Explorer.
+//    f. Replace the code in Form1.cs with this code.
+//    g. To create the form, replace the code in Form1.Designer.cs with this code.
+// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//    name in the Solution Explorer, click Add Reference, click 
+//    Assemblies > Framework in the left-side panel, browse to the top folder of 
+//    your SOLIDWORKS PDM Professional installation, locate and click 
+//    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+// 3. Right-click EPDM.Interop.epdm in References, cick Properties, and set 
+//    Embed Interop Types to False to handle methods that pass arrays of 
+//    structures.
+// 4. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+// 1. Displays a dialog.
+// 2. Select a vault.
+// 3. Select the MyProjects dictionary.
+//    a. Click Create.
+//    b. Click Add project items.
+//       The Key/Value list is populated with the 
+//       MyProjects dictionary's keys and values.
+//    c. Type a unique value in Key and any value in Value.
+//    d. Click Add Key/Value.
+//       The key and value are added to the Key/Value list.
+//    e. Select a key and value in the Key/Value list and
+//       click Remove selected Key/Value.
+//       The selected key and value are deleted from the
+//       dictionary.
+//    f. Type an existing key in Key and any value in Value.
+//    g. Click Add Key/Value.
+//       A message box is displayed informing you that the
+//       duplicate keys are prohibited. Neither the key
+//       nor value was added to the dictionary.
+//    h. Click OK to close the message box.
+// 4. Select the MyCounters dictionary. 
+//    a. Click Create.
+//    b. Click Add counter items.
+//       The Key/Value list is populated with the MyCounters 
+//       dictionary's keys and values.
+// 5. Experiment with creating your own dictionary and adding 
+//    and removing keys and values to and from that dictionary.
+// 6. Close the dialog.
+//----------------------------------------------------------------------------
+
+
//Form1.cs
+using System;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+using System.Runtime.InteropServices;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Diagnostics;
+ 
+namespace AddDictionaryCSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+ 
+        IEdmVault5 vault;
+        IEdmVault8 vault1;
+ 
+        void AddDictionary_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                vault = new EdmVault5();
+                vault1 = (IEdmVault8)vault;
+                EdmViewInfo[] Views = null;
+ 
+                vault1.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void AddProjectItemsButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+                IEdmDictionary5 ProjectDictionary = default(IEdmDictionary5);
+                ProjectDictionary = vault.GetDictionary("MyProjects"true);
+                //Create it if it doesn't exist
+ 
+                //Add the new dictionary name to the combo box
+                //if it doesn't exist
+                if (!DictionaryComboBox.Items.Contains("MyProjects"))
+                {
+                    DictionaryComboBox.Items.Add("MyProjects");
+                }
+ 
+                bool SuccessSet = false;
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1000""Mercedes Benz");
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1001""Lexus");
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1002""Porche");
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1003""Audi");
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1004""BMW");
+                SuccessSet = ProjectDictionary.StringTestAndSetAt("1005""Jaguar");
+ 
+                if (DictionaryComboBox.Text == "MyProjects")
+                {
+                    DisplayDictionaryItems("MyProjects", ProjectDictionary, KeyValueListBox);
+                }
+                else
+                {
+                    DictionaryComboBox.Text = "MyProjects";
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void DictionaryComboBox_SelectedIndexChanged(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                //Get the selected dictionary, if it exists
+                IEdmDictionary5 Dictionary = default(IEdmDictionary5);
+                Dictionary = vault.GetDictionary(DictionaryComboBox.Text, false);
+                //Display the dictionary contents
+                DisplayDictionaryItems(DictionaryComboBox.Text, Dictionary, KeyValueListBox);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void CreateButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                KeyValueListBox.Items.Clear();
+ 
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                //Get the selected dictionary, if it exists
+                IEdmDictionary5 Dictionary = default(IEdmDictionary5);
+                Dictionary = vault.GetDictionary(DictionaryComboBox.Text, false);
+                //If it doesn't exist, create it
+                if (Dictionary == null)
+                {
+                    //Create it, because it doesn't exist
+                    Dictionary = vault.GetDictionary(DictionaryComboBox.Text, true);
+                    KeyValueListBox.Items.Add(DictionaryComboBox.Text + " dictionary created.");
+                }
+                else
+                {
+                    //If it does exist, inform the user
+                    KeyValueListBox.Items.Add(DictionaryComboBox.Text + " dictionary already exists.");
+                }
+ 
+                //Add the new dictionary name to the combo box,
+                //if it doesn't exist
+                if (!DictionaryComboBox.Items.Contains(DictionaryComboBox.Text))
+                {
+                    DictionaryComboBox.Items.Add(DictionaryComboBox.Text);
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void DeleteButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                KeyValueListBox.Items.Clear();
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                //Get the selected dictionary, if it exists
+                IEdmDictionary5 Dictionary = default(IEdmDictionary5);
+                Dictionary = vault.GetDictionary(DictionaryComboBox.Text, false);
+                //If it doesn't exist, inform the user
+                if (Dictionary == null)
+                {
+                    KeyValueListBox.Items.Add(DictionaryComboBox.Text + " dictionary doesn't exist.");
+                    //If it does exist, delete it and inform the user
+                }
+                else
+                {
+                    Dictionary.RemoveDictionary();
+                    KeyValueListBox.Items.Add(DictionaryComboBox.Text + " dictionary deleted.");
+                }
+                //Remove the dictionary name from the list box
+                DictionaryComboBox.Items.Remove(DictionaryComboBox.Text);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void AddKeyValueButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                IEdmDictionary5 Dictionary = default(IEdmDictionary5);
+                Dictionary = vault.GetDictionary(DictionaryComboBox.Text, false);
+ 
+                //Make sure that the user has typed valid data
+                if (string.IsNullOrEmpty(KeyTextBox.Text) | string.IsNullOrEmpty(ValueTextBox.Text))
+                {
+                    MessageBox.Show("Please type a key and a value.");
+                    return;
+                }
+ 
+                //Add the data if it doesn't exist in the dictionary
+                bool SuccessSet = false;
+                SuccessSet = Dictionary.StringTestAndSetAt(KeyTextBox.Text, ValueTextBox.Text);
+                if (!SuccessSet)
+                {
+                    MessageBox.Show("The value you typed for Key already exists; duplicate keys are prohibited. Neither the key nor value was added to this dictionary. Try again.");
+                }
+                else
+                {
+                    DisplayDictionaryItems(DictionaryComboBox.Text, Dictionary, KeyValueListBox);
+                    KeyTextBox.Text = "";
+                    ValueTextBox.Text = "";
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void RemoveButton_Click(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                if (KeyValueListBox.SelectedIndex == -1)
+                {
+                    MessageBox.Show("No Key/Value selected.");
+                    return;
+                }
+ 
+                string KeyValue = null;
+                KeyValue = (string)KeyValueListBox.Items[KeyValueListBox.SelectedIndex];
+                string key = null;
+                string spaceSeparator = " ";
+                string[] splitValue = KeyValue.Split(spaceSeparator.ToCharArray());
+                key = (string)splitValue[0];
+ 
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                IEdmDictionary5 Dictionary = default(IEdmDictionary5);
+                Dictionary = vault.GetDictionary(DictionaryComboBox.Text, false);
+ 
+                Dictionary.StringRemoveAt(key);
+                KeyValueListBox.Items.Remove(KeyValue);
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void AddCounterItemsButton_Click(System.Object sender, System.EventArgs e)
+        {
+ 
+            try
+            {
+                if (!vault.IsLoggedIn)
+                {
+                    //Log into selected vault as the current user
+                    vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }
+ 
+                IEdmDictionary5 CounterDictionary = default(IEdmDictionary5);
+                CounterDictionary = vault.GetDictionary("MyCounters"true);
+                //Create it, if it doesn't exist
+ 
+                //Add the new dictionary name to the list box,
+                //if it doesn't exist
+                if (!DictionaryComboBox.Items.Contains("MyCounters"))
+                {
+                    DictionaryComboBox.Items.Add("MyCounters");
+                }
+ 
+                bool SuccessSet = false;
+                SuccessSet = CounterDictionary.StringTestAndSetAt("Electric""5");
+                SuccessSet = CounterDictionary.StringTestAndSetAt("Hybrid""10");
+                SuccessSet = CounterDictionary.StringTestAndSetAt("Gasoline""15");
+                SuccessSet = CounterDictionary.StringTestAndSetAt("Diesel""20");
+ 
+                if (DictionaryComboBox.Text == "MyCounters")
+                {
+                    DisplayDictionaryItems("MyCounters", CounterDictionary, KeyValueListBox);
+                }
+                else
+                {
+                    DictionaryComboBox.Text = "MyCounters";
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+ 
+ 
+        private void DisplayDictionaryItems(string DictionaryName, IEdmDictionary5 Dictionary, ListBox ListObject)
+        {
+            try
+            {
+ 
+                ListObject.Items.Clear();
+ 
+                if (Dictionary == null)
+                {
+                    ListObject.Items.Add(DictionaryComboBox.Text + " dictionary doesn't exist.");
+                }
+                else
+                {
+                    //Traverse and display the Key/Value pairs
+                    //in the dictionary
+                    string Key = "";
+                    string Value = "";
+                    IEdmPos5 Pos = default(IEdmPos5);
+                    Pos = Dictionary.StringGetFirstPosition();
+                    while (!Pos.IsNull)
+                    {
+                        Dictionary.StringGetNextAssoc(Pos, out Key, out Value);
+                        ListObject.Items.Add(Key + " " + Value);
+                    }
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }
+        
+    }
+}
+ +
+
//Form1.Designer.cs
+
+
+
namespace AddDictionaryCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.VaultsLabel = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.DictionaryLabel = new System.Windows.Forms.Label();
+            this.DictionaryComboBox = new System.Windows.Forms.ComboBox();
+            this.CreateButton = new System.Windows.Forms.Button();
+            this.DeleteButton = new System.Windows.Forms.Button();
+            this.KeyValueLabel = new System.Windows.Forms.Label();
+            this.KeyValueListBox = new System.Windows.Forms.ListBox();
+            this.RemoveButton = new System.Windows.Forms.Button();
+            this.KeyLabel = new System.Windows.Forms.Label();
+            this.KeyTextBox = new System.Windows.Forms.TextBox();
+            this.ValueLabel = new System.Windows.Forms.Label();
+            this.ValueTextBox = new System.Windows.Forms.TextBox();
+            this.AddKeyValueButton = new System.Windows.Forms.Button();
+            this.AddProjectItemsButton = new System.Windows.Forms.Button();
+            this.AddCounterItemsButton = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // VaultsLabel
+            // 
+            this.VaultsLabel.AutoSize = true;
+            this.VaultsLabel.Location = new System.Drawing.Point(13, 27);
+            this.VaultsLabel.Name = "VaultsLabel";
+            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
+            this.VaultsLabel.TabIndex = 0;
+            this.VaultsLabel.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(15, 43);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(213, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // DictionaryLabel
+            // 
+            this.DictionaryLabel.AutoSize = true;
+            this.DictionaryLabel.Location = new System.Drawing.Point(16, 78);
+            this.DictionaryLabel.Name = "DictionaryLabel";
+            this.DictionaryLabel.Size = new System.Drawing.Size(88, 13);
+            this.DictionaryLabel.TabIndex = 2;
+            this.DictionaryLabel.Text = "Select dictionary:";
+            // 
+            // DictionaryComboBox
+            // 
+            this.DictionaryComboBox.FormattingEnabled = true;
+            this.DictionaryComboBox.Items.AddRange(new object[] { "MyProjects""MyCounters" });
+            this.DictionaryComboBox.Location = new System.Drawing.Point(15, 94);
+            this.DictionaryComboBox.Name = "DictionaryComboBox";
+            this.DictionaryComboBox.Size = new System.Drawing.Size(210, 21);
+            this.DictionaryComboBox.TabIndex = 3;
+            // 
+            // CreateButton
+            // 
+            this.CreateButton.Location = new System.Drawing.Point(16, 121);
+            this.CreateButton.Name = "CreateButton";
+            this.CreateButton.Size = new System.Drawing.Size(75, 23);
+            this.CreateButton.TabIndex = 4;
+            this.CreateButton.Text = "Create";
+            this.CreateButton.UseVisualStyleBackColor = true;
+            this.CreateButton.Click += new System.EventHandler(this.CreateButton_Click);
+            // 
+            // DeleteButton
+            // 
+            this.DeleteButton.Location = new System.Drawing.Point(150, 121);
+            this.DeleteButton.Name = "DeleteButton";
+            this.DeleteButton.Size = new System.Drawing.Size(75, 23);
+            this.DeleteButton.TabIndex = 5;
+            this.DeleteButton.Text = "Delete";
+            this.DeleteButton.UseVisualStyleBackColor = true;
+            this.DeleteButton.Click += new System.EventHandler(this.DeleteButton_Click);
+            // 
+            // KeyValueLabel
+            // 
+            this.KeyValueLabel.AutoSize = true;
+            this.KeyValueLabel.Location = new System.Drawing.Point(19, 163);
+            this.KeyValueLabel.Name = "KeyValueLabel";
+            this.KeyValueLabel.Size = new System.Drawing.Size(57, 13);
+            this.KeyValueLabel.TabIndex = 6;
+            this.KeyValueLabel.Text = "Key/Value";
+            // 
+            // KeyValueListBox
+            // 
+            this.KeyValueListBox.FormattingEnabled = true;
+            this.KeyValueListBox.Location = new System.Drawing.Point(15, 190);
+            this.KeyValueListBox.Name = "KeyValueListBox";
+            this.KeyValueListBox.Size = new System.Drawing.Size(210, 95);
+            this.KeyValueListBox.TabIndex = 7;
+            // 
+            // RemoveButton
+            // 
+            this.RemoveButton.Location = new System.Drawing.Point(16, 301);
+            this.RemoveButton.Name = "RemoveButton";
+            this.RemoveButton.Size = new System.Drawing.Size(210, 23);
+            this.RemoveButton.TabIndex = 8;
+            this.RemoveButton.Text = "Remove selected Key/Value";
+            this.RemoveButton.UseVisualStyleBackColor = true;
+            this.RemoveButton.Click += new System.EventHandler(this.RemoveButton_Click);
+            // 
+            // KeyLabel
+            // 
+            this.KeyLabel.AutoSize = true;
+            this.KeyLabel.Location = new System.Drawing.Point(19, 340);
+            this.KeyLabel.Name = "KeyLabel";
+            this.KeyLabel.Size = new System.Drawing.Size(25, 13);
+            this.KeyLabel.TabIndex = 9;
+            this.KeyLabel.Text = "Key";
+            // 
+            // KeyTextBox
+            // 
+            this.KeyTextBox.Location = new System.Drawing.Point(19, 356);
+            this.KeyTextBox.Name = "KeyTextBox";
+            this.KeyTextBox.Size = new System.Drawing.Size(100, 20);
+            this.KeyTextBox.TabIndex = 10;
+            // 
+            // ValueLabel
+            // 
+            this.ValueLabel.AutoSize = true;
+            this.ValueLabel.Location = new System.Drawing.Point(144, 340);
+            this.ValueLabel.Name = "ValueLabel";
+            this.ValueLabel.Size = new System.Drawing.Size(34, 13);
+            this.ValueLabel.TabIndex = 11;
+            this.ValueLabel.Text = "Value";
+            // 
+            // ValueTextBox
+            // 
+            this.ValueTextBox.Location = new System.Drawing.Point(147, 356);
+            this.ValueTextBox.Name = "ValueTextBox";
+            this.ValueTextBox.Size = new System.Drawing.Size(100, 20);
+            this.ValueTextBox.TabIndex = 12;
+            // 
+            // AddKeyValueButton
+            // 
+            this.AddKeyValueButton.Location = new System.Drawing.Point(19, 397);
+            this.AddKeyValueButton.Name = "AddKeyValueButton";
+            this.AddKeyValueButton.Size = new System.Drawing.Size(228, 23);
+            this.AddKeyValueButton.TabIndex = 13;
+            this.AddKeyValueButton.Text = "Add Key/Value";
+            this.AddKeyValueButton.UseVisualStyleBackColor = true;
+            this.AddKeyValueButton.Click += new System.EventHandler(this.AddKeyValueButton_Click);
+            // 
+            // AddProjectItemsButton
+            // 
+            this.AddProjectItemsButton.Location = new System.Drawing.Point(19, 438);
+            this.AddProjectItemsButton.Name = "AddProjectItemsButton";
+            this.AddProjectItemsButton.Size = new System.Drawing.Size(100, 23);
+            this.AddProjectItemsButton.TabIndex = 14;
+            this.AddProjectItemsButton.Text = "Add project items";
+            this.AddProjectItemsButton.UseVisualStyleBackColor = true;
+            this.AddProjectItemsButton.Click += new System.EventHandler(this.AddProjectItemsButton_Click);
+            // 
+            // AddCounterItemsButton
+            // 
+            this.AddCounterItemsButton.Location = new System.Drawing.Point(136, 438);
+            this.AddCounterItemsButton.Name = "AddCounterItemsButton";
+            this.AddCounterItemsButton.Size = new System.Drawing.Size(110, 23);
+            this.AddCounterItemsButton.TabIndex = 15;
+            this.AddCounterItemsButton.Text = "Add counter items";
+            this.AddCounterItemsButton.UseVisualStyleBackColor = true;
+            this.AddCounterItemsButton.Click += new System.EventHandler(this.AddCounterItemsButton_Click);
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(284, 482);
+            this.Controls.Add(this.AddCounterItemsButton);
+            this.Controls.Add(this.AddProjectItemsButton);
+            this.Controls.Add(this.AddKeyValueButton);
+            this.Controls.Add(this.ValueTextBox);
+            this.Controls.Add(this.ValueLabel);
+            this.Controls.Add(this.KeyTextBox);
+            this.Controls.Add(this.KeyLabel);
+            this.Controls.Add(this.RemoveButton);
+            this.Controls.Add(this.KeyValueListBox);
+            this.Controls.Add(this.KeyValueLabel);
+            this.Controls.Add(this.DeleteButton);
+            this.Controls.Add(this.CreateButton);
+            this.Controls.Add(this.DictionaryComboBox);
+            this.Controls.Add(this.DictionaryLabel);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.VaultsLabel);
+            this.Name = "Form1";
+            this.Text = "Create a dictionary";
+            this.Load += new System.EventHandler(this.AddDictionary_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        #endregion
+ 
+        private System.Windows.Forms.Label VaultsLabel;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Label DictionaryLabel;
+        private System.Windows.Forms.ComboBox DictionaryComboBox;
+        private System.Windows.Forms.Button CreateButton;
+        private System.Windows.Forms.Button DeleteButton;
+        private System.Windows.Forms.Label KeyValueLabel;
+        private System.Windows.Forms.ListBox KeyValueListBox;
+        private System.Windows.Forms.Button RemoveButton;
+        private System.Windows.Forms.Label KeyLabel;
+        private System.Windows.Forms.TextBox KeyTextBox;
+        private System.Windows.Forms.Label ValueLabel;
+        private System.Windows.Forms.TextBox ValueTextBox;
+        private System.Windows.Forms.Button AddKeyValueButton;
+        private System.Windows.Forms.Button AddProjectItemsButton;
+        private System.Windows.Forms.Button AddCounterItemsButton;
+    }
+}
+
+
+ +
 
+
+ + + + diff --git a/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_VBNET.htm b/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_VBNET.htm new file mode 100644 index 0000000..8eb4c7c --- /dev/null +++ b/documentation/api_extracted/Create_and_Delete_Dictionaries_Example_VBNET.htm @@ -0,0 +1,698 @@ + + + +Create and Delete Dictionaries Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Create and Delete Dictionaries Example (VB.NET)

+

This example shows how to create and delete dictionaries and their keys and +values.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+' 1. Start Microsoft Visual Studio.
+'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'    b. Type AddDictionary in Name.
+'    c. Click Browse and navigate to the folder where to create 
+'       the project.
+'    d. Click OK
+'    e. Click Show All Files in the Solution Explorer toolbar and expand 
+'       Form1.vb in the Solution Explorer.
+'    f. Replace the code in Form1.vb with this code.
+'    g. To create the form, replace the code in Form1.Designer.vb with this code.
+' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'    name in the Solution Explorer, click Add Reference, click 
+'    Assemblies > Framework in the left-side panel, browse to the top folder of 
+'    your SOLIDWORKS PDM Professional installation, locate and click 
+'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'    Embed Interop Types to False to handle methods that pass arrays of 
+'    structures.
+' 4. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+' 1. Displays a dialog.
+' 2. Select a vault.
+' 3. Select the Projects dictionary.
+'    a. Click Create.
+'    b. Click Add project items.
+'       The Key/Value list is populated with the 
+'       Projects dictionary's keys and values.
+'    c. Type a unique value in Key and any value in Value.
+'    d. Click Add Key/Value.
+'       The key and value are added to the Key/Value list.
+'    e. Select a key and value in the Key/Value list and
+'       click Remove selected Key/Value.
+'       The selected key and value are deleted from the
+'       dictionary.
+'    f. Type an existing key in Key and any value in Value.
+'    g. Click Add Key/Value.
+'       A message box is displayed informing you that the
+'       duplicate keys are prohibited. Neither the key
+'       nor value was added to the dictionary.
+'    h. Click OK to close the message box.
+' 4. Select the Counters dictionary. 
+'    a. Click Create.
+'    b. Click Add counter items.
+'       The Key/Value list is populated with the Counters 
+'       dictionary's keys and values.
+' 5. Experiment with creating your own dictionary and adding 
+'    and removing keys and values to and from that dictionary.
+' 6. Close the dialog.
+'----------------------------------------------------------------------------
+ 
+'Form1.vb
+Imports EPDM.Interop.epdm
+ 
+Public Class AddDictionary
+ 
+    Private vault As IEdmVault5 = Nothing
+ 
+    Private Sub AddDictionary_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+        Try
+            vault = New EdmVault5
+ 
+            Dim Views() As EdmViewInfo = Nothing
+ 
+            DirectCast(vault, IEdmVault8).GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = VaultsComboBox.Items(0)
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+              ex.ErrorCode.ToString("X") + vbCrLf + _
+              ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub AddProjectItemsButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles AddProjectItemsButton.Click
+ 
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                  Me.Handle.ToInt32())
+            End If
+ 
+            Dim ProjectDictionary As IEdmDictionary5
+            ProjectDictionary = vault.GetDictionary( _
+              "Projects"True'Create it if it doesn't exist
+ 
+            'Add the new dictionary name to the combo box
+            'if it doesn't exist
+            If Not DictionaryComboBox.Items.Contains( _
+                "Projects"Then
+                DictionaryComboBox.Items.Add("Projects")
+            End If
+ 
+            Dim SuccessSet As Boolean = False
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1000""Mercedes Benz")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1001""Lexus")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1002""Porche")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1003""Audi")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1004""BMW")
+            SuccessSet = ProjectDictionary.StringTestAndSetAt _
+              ("1005""Jaguar")
+ 
+            If DictionaryComboBox.Text = "Projects" Then
+                DisplayDictionaryItems("Projects", _
+                  ProjectDictionary, KeyValueListBox)
+            Else
+                DictionaryComboBox.Text = "Projects"
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub DictionaryComboBox_SelectedIndexChanged( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles DictionaryComboBox.SelectedIndexChanged
+ 
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            'Get the selected dictionary, if it exists
+            Dim Dictionary As IEdmDictionary5
+            Dictionary = vault.GetDictionary( _
+              DictionaryComboBox.Text, False)
+            'Display the dictionary contents
+            DisplayDictionaryItems( _
+              DictionaryComboBox.Text, _
+              Dictionary, KeyValueListBox)
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub CreateButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles CreateButton.Click
+ 
+        Try
+            KeyValueListBox.Items.Clear()
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            'Get the selected dictionary, if it exists
+            Dim Dictionary As IEdmDictionary5
+            Dictionary = vault.GetDictionary( _
+              DictionaryComboBox.Text, False)
+            'If it doesn't exist, create it
+            If Dictionary Is Nothing Then
+                'Create it, because it doesn't exist
+                Dictionary = vault.GetDictionary( _
+                  DictionaryComboBox.Text, True)
+                KeyValueListBox.Items.Add( _
+                  DictionaryComboBox.Text + _
+                  " dictionary created.")
+            Else
+                'If it does exist, inform the user
+                KeyValueListBox.Items.Add( _
+                  DictionaryComboBox.Text + _
+                  " dictionary already exists.")
+            End If
+ 
+            'Add the new dictionary name to the combo box,
+            'if it doesn't exist
+            If Not DictionaryComboBox.Items.Contains( _
+                              DictionaryComboBox.Text) Then
+                DictionaryComboBox.Items.Add( _
+                  DictionaryComboBox.Text)
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub DeleteButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles DeleteButton.Click
+ 
+        Try
+            KeyValueListBox.Items.Clear()
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            'Get the selected dictionary, if it exists
+            Dim Dictionary As IEdmDictionary5
+            Dictionary = vault.GetDictionary( _
+              DictionaryComboBox.Text, False)
+            'If it doesn't exist, inform the user
+            If Dictionary Is Nothing Then
+                KeyValueListBox.Items.Add( _
+                  DictionaryComboBox.Text + _
+                  " dictionary doesn't exist.")
+                'If it does exist, delete it and inform the user
+            Else
+                Dictionary.RemoveDictionary()
+                KeyValueListBox.Items.Add( _
+                  DictionaryComboBox.Text + _
+                  " dictionary deleted.")
+            End If
+            'Remove the dictionary name from the list box
+            DictionaryComboBox.Items.Remove( _
+              DictionaryComboBox.Text)
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub AddKeyValueButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles AddKeyValueButton.Click
+ 
+        Try
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            Dim Dictionary As IEdmDictionary5
+            Dictionary = vault.GetDictionary( _
+              DictionaryComboBox.Text, False)
+ 
+            'Make sure that the user has typed valid data
+            If KeyTextBox.Text = "" _
+                Or ValueTextBox.Text = "" Then
+                MessageBox.Show("Please type a key and a value.")
+                Exit Sub
+            End If
+ 
+            'Add the data if it doesn't exist in the dictionary
+            Dim SuccessSet As Boolean = False
+            SuccessSet = Dictionary.StringTestAndSetAt( _
+              KeyTextBox.Text, ValueTextBox.Text)
+            If Not SuccessSet Then
+                MessageBox.Show("The value you typed for Key already exists; duplicate keys are prohibited. Neither the key or value was added to this dictionary. Try again.")
+            Else
+                DisplayDictionaryItems(DictionaryComboBox.Text, _
+                  Dictionary, KeyValueListBox)
+                KeyTextBox.Text = ""
+                ValueTextBox.Text = ""
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub RemoveButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles RemoveButton.Click
+ 
+        Try
+            If KeyValueListBox.SelectedIndex = -1 Then
+                MessageBox.Show("No Key/Value selected.")
+                Exit Sub
+            End If
+ 
+            Dim KeyValue As String
+            KeyValue = KeyValueListBox.Items( _
+              KeyValueListBox.SelectedIndex)
+            Dim key As String
+            key = Split(KeyValue, vbTab)(0)
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            Dim Dictionary As IEdmDictionary5
+            Dictionary = vault.GetDictionary( _
+              DictionaryComboBox.Text, False)
+ 
+            Dictionary.StringRemoveAt(key)
+            KeyValueListBox.Items.Remove(KeyValue)
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub AddCounterItemsButton_Click( _
+      ByVal sender As System.Object, _
+      ByVal e As System.EventArgs) _
+      Handles AddCounterItemsButton.Click
+ 
+        Try
+ 
+            If Not vault.IsLoggedIn Then
+                'Log into selected vault as the current user
+                vault.LoginAuto(VaultsComboBox.Text, _
+                   Me.Handle.ToInt32())
+            End If
+ 
+            Dim CounterDictionary As IEdmDictionary5
+            CounterDictionary = vault.GetDictionary _
+              ("Counters"True'Create it, if it doesn't exist
+ 
+            'Add the new dictionary name to the list box,
+            'if it doesn't exist
+            If Not DictionaryComboBox.Items.Contains( _
+                "Counters"Then
+                DictionaryComboBox.Items.Add("Counters")
+            End If
+ 
+            Dim SuccessSet As Boolean = False
+            SuccessSet = CounterDictionary.StringTestAndSetAt _
+              ("Electric""5")
+            SuccessSet = CounterDictionary.StringTestAndSetAt _
+              ("Hybrid""10")
+            SuccessSet = CounterDictionary.StringTestAndSetAt _
+              ("Gasoline""15")
+            SuccessSet = CounterDictionary.StringTestAndSetAt _
+              ("Diesel""20")
+ 
+            If DictionaryComboBox.Text = "Counters" Then
+                DisplayDictionaryItems("Counters", _
+                  CounterDictionary, KeyValueListBox)
+            Else
+                DictionaryComboBox.Text = "Counters"
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+    Private Sub DisplayDictionaryItems( _
+      ByVal DictionaryName As String, _
+      ByVal Dictionary As IEdmDictionary5, _
+      ByVal ListObject As Object)
+ 
+        Try
+            ListObject.Items.Clear()
+ 
+            If Dictionary Is Nothing Then
+                ListObject.Items.Add(DictionaryComboBox.Text + _
+                  " dictionary doesn't exist.")
+            Else
+                'Traverse and display the Key/Value pairs
+                'in the dictionary
+                Dim Key As String = ""
+                Dim Value As String = ""
+                Dim Pos As IEdmPos5
+                Pos = Dictionary.StringGetFirstPosition()
+                While Not Pos.IsNull
+                    Dictionary.StringGetNextAssoc(Pos, Key, Value)
+                    ListObject.Items.Add(Key + vbTab + Value)
+                End While
+            End If
+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + _
+            ex.ErrorCode.ToString("X") + vbCrLf + _
+            ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub
+ 
+End Class
+ +
+
'Form1.Designer.vb
+
+
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class AddDictionary
+   Inherits System.Windows.Forms.Form
+ 
+   'Form overrides dispose to clean up the component list.
+   <System.Diagnostics.DebuggerNonUserCode()> _
+   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+      Try
+         If disposing AndAlso components IsNot Nothing Then
+            components.Dispose()
+         End If
+      Finally
+         MyBase.Dispose(disposing)
+      End Try
+   End Sub
+ 
+   'Required by the Windows Form Designer
+   Private components As System.ComponentModel.IContainer
+ 
+   'NOTE: The following procedure is required by the Windows Form Designer
+   'It can be modified using the Windows Form Designer.  
+   'Do not modify it using the code editor.
+   <System.Diagnostics.DebuggerStepThrough()> _
+   Private Sub InitializeComponent()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.AddProjectItemsButton = New System.Windows.Forms.Button()
+        Me.DictionaryComboBox = New System.Windows.Forms.ComboBox()
+        Me.DictionaryLabel = New System.Windows.Forms.Label()
+        Me.KeyValueListBox = New System.Windows.Forms.ListBox()
+        Me.KeyValueLabel = New System.Windows.Forms.Label()
+        Me.CreateButton = New System.Windows.Forms.Button()
+        Me.DeleteButton = New System.Windows.Forms.Button()
+        Me.KeyTextBox = New System.Windows.Forms.TextBox()
+        Me.ValueTextBox = New System.Windows.Forms.TextBox()
+        Me.KeyLabel = New System.Windows.Forms.Label()
+        Me.ValueLabel = New System.Windows.Forms.Label()
+        Me.AddKeyValueButton = New System.Windows.Forms.Button()
+        Me.RemoveButton = New System.Windows.Forms.Button()
+        Me.AddCounterItemsButton = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(17, 35)
+        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(218, 21)
+        Me.VaultsComboBox.TabIndex = 14
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(17, 19)
+        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
+        Me.VaultsLabel.TabIndex = 15
+        Me.VaultsLabel.Text = "Select vault view:"
+        '
+        'AddProjectItemsButton
+        '
+        Me.AddProjectItemsButton.Location = New System.Drawing.Point(20, 451)
+        Me.AddProjectItemsButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.AddProjectItemsButton.Name = "AddProjectItemsButton"
+        Me.AddProjectItemsButton.Size = New System.Drawing.Size(98, 24)
+        Me.AddProjectItemsButton.TabIndex = 16
+        Me.AddProjectItemsButton.Text = "Add project items"
+        Me.AddProjectItemsButton.UseVisualStyleBackColor = True
+        '
+        'DictionaryComboBox
+        '
+        Me.DictionaryComboBox.FormattingEnabled = True
+        Me.DictionaryComboBox.Items.AddRange(New Object() {"Projects""Counters"})
+        Me.DictionaryComboBox.Location = New System.Drawing.Point(17, 86)
+        Me.DictionaryComboBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.DictionaryComboBox.Name = "DictionaryComboBox"
+        Me.DictionaryComboBox.Size = New System.Drawing.Size(218, 21)
+        Me.DictionaryComboBox.TabIndex = 17
+        '
+        'DictionaryLabel
+        '
+        Me.DictionaryLabel.AutoSize = True
+        Me.DictionaryLabel.Location = New System.Drawing.Point(17, 70)
+        Me.DictionaryLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.DictionaryLabel.Name = "DictionaryLabel"
+        Me.DictionaryLabel.Size = New System.Drawing.Size(88, 13)
+        Me.DictionaryLabel.TabIndex = 18
+        Me.DictionaryLabel.Text = "Select dictionary:"
+        '
+        'KeyValueListBox
+        '
+        Me.KeyValueListBox.FormattingEnabled = True
+        Me.KeyValueListBox.Location = New System.Drawing.Point(17, 194)
+        Me.KeyValueListBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.KeyValueListBox.Name = "KeyValueListBox"
+        Me.KeyValueListBox.Size = New System.Drawing.Size(218, 82)
+        Me.KeyValueListBox.TabIndex = 19
+        '
+        'KeyValueLabel
+        '
+        Me.KeyValueLabel.AutoSize = True
+        Me.KeyValueLabel.Location = New System.Drawing.Point(17, 176)
+        Me.KeyValueLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.KeyValueLabel.Name = "KeyValueLabel"
+        Me.KeyValueLabel.Size = New System.Drawing.Size(57, 13)
+        Me.KeyValueLabel.TabIndex = 20
+        Me.KeyValueLabel.Text = "Key/Value"
+        '
+        'CreateButton
+        '
+        Me.CreateButton.Location = New System.Drawing.Point(17, 118)
+        Me.CreateButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.CreateButton.Name = "CreateButton"
+        Me.CreateButton.Size = New System.Drawing.Size(101, 24)
+        Me.CreateButton.TabIndex = 21
+        Me.CreateButton.Text = "Create"
+        Me.CreateButton.UseVisualStyleBackColor = True
+        '
+        'DeleteButton
+        '
+        Me.DeleteButton.Location = New System.Drawing.Point(142, 118)
+        Me.DeleteButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.DeleteButton.Name = "DeleteButton"
+        Me.DeleteButton.Size = New System.Drawing.Size(93, 24)
+        Me.DeleteButton.TabIndex = 22
+        Me.DeleteButton.Text = "Delete"
+        Me.DeleteButton.UseVisualStyleBackColor = True
+        '
+        'KeyTextBox
+        '
+        Me.KeyTextBox.Location = New System.Drawing.Point(20, 364)
+        Me.KeyTextBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.KeyTextBox.Name = "KeyTextBox"
+        Me.KeyTextBox.Size = New System.Drawing.Size(76, 20)
+        Me.KeyTextBox.TabIndex = 23
+        '
+        'ValueTextBox
+        '
+        Me.ValueTextBox.Location = New System.Drawing.Point(159, 366)
+        Me.ValueTextBox.Margin = New System.Windows.Forms.Padding(2)
+        Me.ValueTextBox.Name = "ValueTextBox"
+        Me.ValueTextBox.Size = New System.Drawing.Size(76, 20)
+        Me.ValueTextBox.TabIndex = 24
+        '
+        'KeyLabel
+        '
+        Me.KeyLabel.AutoSize = True
+        Me.KeyLabel.Location = New System.Drawing.Point(17, 349)
+        Me.KeyLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.KeyLabel.Name = "KeyLabel"
+        Me.KeyLabel.Size = New System.Drawing.Size(25, 13)
+        Me.KeyLabel.TabIndex = 25
+        Me.KeyLabel.Text = "Key"
+        '
+        'ValueLabel
+        '
+        Me.ValueLabel.AutoSize = True
+        Me.ValueLabel.Location = New System.Drawing.Point(156, 349)
+        Me.ValueLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
+        Me.ValueLabel.Name = "ValueLabel"
+        Me.ValueLabel.Size = New System.Drawing.Size(34, 13)
+        Me.ValueLabel.TabIndex = 26
+        Me.ValueLabel.Text = "Value"
+        '
+        'AddKeyValueButton
+        '
+        Me.AddKeyValueButton.Location = New System.Drawing.Point(68, 399)
+        Me.AddKeyValueButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.AddKeyValueButton.Name = "AddKeyValueButton"
+        Me.AddKeyValueButton.Size = New System.Drawing.Size(110, 25)
+        Me.AddKeyValueButton.TabIndex = 27
+        Me.AddKeyValueButton.Text = "Add Key/Value"
+        Me.AddKeyValueButton.UseVisualStyleBackColor = True
+        '
+        'RemoveButton
+        '
+        Me.RemoveButton.Location = New System.Drawing.Point(20, 280)
+        Me.RemoveButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.RemoveButton.Name = "RemoveButton"
+        Me.RemoveButton.Size = New System.Drawing.Size(215, 41)
+        Me.RemoveButton.TabIndex = 28
+        Me.RemoveButton.Text = "Remove selected Key/Value"
+        Me.RemoveButton.UseVisualStyleBackColor = True
+        '
+        'AddCounterItemsButton
+        '
+        Me.AddCounterItemsButton.Location = New System.Drawing.Point(142, 451)
+        Me.AddCounterItemsButton.Margin = New System.Windows.Forms.Padding(2)
+        Me.AddCounterItemsButton.Name = "AddCounterItemsButton"
+        Me.AddCounterItemsButton.Size = New System.Drawing.Size(104, 24)
+        Me.AddCounterItemsButton.TabIndex = 29
+        Me.AddCounterItemsButton.Text = "Add counter items"
+        Me.AddCounterItemsButton.UseVisualStyleBackColor = True
+        '
+        'AddDictionary
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(257, 486)
+        Me.Controls.Add(Me.AddCounterItemsButton)
+        Me.Controls.Add(Me.RemoveButton)
+        Me.Controls.Add(Me.AddKeyValueButton)
+        Me.Controls.Add(Me.ValueLabel)
+        Me.Controls.Add(Me.KeyLabel)
+        Me.Controls.Add(Me.ValueTextBox)
+        Me.Controls.Add(Me.KeyTextBox)
+        Me.Controls.Add(Me.DeleteButton)
+        Me.Controls.Add(Me.CreateButton)
+        Me.Controls.Add(Me.KeyValueLabel)
+        Me.Controls.Add(Me.KeyValueListBox)
+        Me.Controls.Add(Me.DictionaryComboBox)
+        Me.Controls.Add(Me.DictionaryLabel)
+        Me.Controls.Add(Me.AddProjectItemsButton)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Margin = New System.Windows.Forms.Padding(2)
+        Me.Name = "AddDictionary"
+        Me.Text = "Create a dictionary"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+   Friend WithEvents AddProjectItemsButton As System.Windows.Forms.Button
+   Friend WithEvents DictionaryComboBox As System.Windows.Forms.ComboBox
+   Friend WithEvents DictionaryLabel As System.Windows.Forms.Label
+   Friend WithEvents KeyValueListBox As System.Windows.Forms.ListBox
+   Friend WithEvents KeyValueLabel As System.Windows.Forms.Label
+   Friend WithEvents CreateButton As System.Windows.Forms.Button
+   Friend WithEvents DeleteButton As System.Windows.Forms.Button
+   Friend WithEvents KeyTextBox As System.Windows.Forms.TextBox
+   Friend WithEvents ValueTextBox As System.Windows.Forms.TextBox
+   Friend WithEvents KeyLabel As System.Windows.Forms.Label
+   Friend WithEvents ValueLabel As System.Windows.Forms.Label
+   Friend WithEvents AddKeyValueButton As System.Windows.Forms.Button
+   Friend WithEvents RemoveButton As System.Windows.Forms.Button
+   Friend WithEvents AddCounterItemsButton As System.Windows.Forms.Button
+ 
+End Class
+
+
+
Back to top
+
+ +
+ + + + diff --git a/documentation/api_extracted/CustomCardView.gif b/documentation/api_extracted/CustomCardView.gif new file mode 100644 index 0000000000000000000000000000000000000000..71d03ee8ad76e7fae4835b99c51b4efa46b91b95 GIT binary patch literal 7570 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/DebugAddIn.gif b/documentation/api_extracted/DebugAddIn.gif new file mode 100644 index 0000000000000000000000000000000000000000..927243bf5b6c772dd9f82da3be460b259c63be20 GIT binary patch literal 9828 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 + + +Debugging Add-ins + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Debugging Add-ins

+ +
+ +

Add-ins +are stored in the file vault and are downloaded to +and COM-registered on the client computer when they are needed. This +presents a problem when developing a new add-in that you want to debug, because the add-in is re-registered in a folder +that is different than the +compiler’s output folder. Testing an add-in in a +production vault can also be a problem, because it affects all users of the +vault.

+ +

+SOLIDWORKS + PDM Professional provides a menu command that solves these two problems, Debug Add-ins.

+


+

+ +

 

+ +

+When an add-in is installed as a +debug add-in, it +is registered only on your machine. No other users are affected by it. The add-in +is also loaded from the location where it is registered.

+ +

+To +debug an add-in using File Explorer:

+
    +
  1. +

    + Open + the Windows Task Manager.

  2. +
  3. +

    + Kill the + explorer.exe process.

  4. +
  5. +

    + Right-click the project name in the + Solution Explorer of Visual Studio and click Properties.

  6. +
  7. +

    + Click the Debug tab.

  8. +
  9. +

    + Click Start external program and type + the File Explorer executable's path. For example:
    +
    +
    + C:\windows\explorer.exe

  10. + + +
  11. +Click Debug > Start +Debugging.

    +
+ +
+ + + + diff --git a/documentation/api_extracted/DestroyDeletedFiles.gif b/documentation/api_extracted/DestroyDeletedFiles.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c3818b5d9d67bb352e48e9321b3524c67195a8a GIT binary patch literal 8053 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 Dy~SRY literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_CSharp.htm b/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_CSharp.htm new file mode 100644 index 0000000..92db8fa --- /dev/null +++ b/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_CSharp.htm @@ -0,0 +1,1772 @@ + + + +Destroy Deleted Files in Vault Example (C#) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Destroy Deleted Files in Vault Example (C#)

+ +

This example shows how to create an application that displays a form +in which +a user can select the vault in whose root +folder and subfolders all deleted files will be permanently destroyed. The user must have permission to delete +files.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

IMPORTANT: Do not recreate and run this +example if you do not want to destroy all deleted files in the root folder and +subfolders in the selected vault. Instead, SOLIDWORKS PDM Professional suggests +that you review the code to understand how you can programmatically destroy +deleted files in the root folder and subfolders of a vault.

+

+//--------------------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//  2. Click File > New > Project > Visual C# > Windows Forms Application.
+//  3. Type DestroyDeletedItemsCSharp in Name.
+//  4. Click the Browse button and browse to the folder where to create +
+//     the project.
+//  5. Click OK
+//  6. Replace the code in Form1.cs with this code.
+//  7. Replace the code in Form1.Designer.cs with +this code.
+//  8.
Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add +Reference, click Framework
+//     in the left-side panel, browse to the top folder of +your SOLIDWORKS
+//     PDM Professional installation, locate and click +EPDM.Interop.epdm.dll,
+//     click Open, click Add, and click +Close).

+//  9. Right-click EPDM.Interop.epdm in References, click Properties, and +
+//     set Embed Interop Types +to False to handle methods that pass arrays
+//     of structures.
+// 10. Switch back to the Form1.cs code window.
+// 11. Ensure that the namespaces specified in all of the *.cs files match +
+//     the +project name.
// 12. Delete one or more checked-in files from the root folder +of your vault.
+// 13. Click Debug > Start Debugging or press F5.
+//
+// Postconditions:
+//  1. Displays the Destroy Deleted Files dialog.
+//  2. Select a vault.
+//  3. Optionally select the Include all subfolders check box.
+//  4. Click the Destroy deleted files button.
+//     A message box pops up informing you that:
+//     * No deleted files were found to destroy.
+//       - or -
+//     * The deleted files were destroyed.
+//  5. Click OK in the message box.
+//  6. Close the Destroy Deleted Files dialog.
+//--------------------------------------------------------------------------------------

+

 

+

+//Form1.cs

+

using System;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+ +namespace DestroyDeletedItems
+{
+    

+

+ +    +public +partial +class + + +Form1 +: Form

+

+ +    {

+

+ 

+

+ +        + +void DestroyDeletedItems_Load(object +sender, EventArgs e)

+

+ +        +{

+

+ +            + +try

+

+ +            +{

+

+ +                + + +//Declare and create an instance of IEdmVault5

+

+ +                +IEdmVault5 vault1 = + +new +EdmVault5();

+

+ 

+

+ +         +       //Cast IEdmVault5 to IEdmVault8

+

+ +                +IEdmVault8 vault = (IEdmVault8)vault1;

+

+ 

+

+ +                +EdmViewInfo[] Views = + +null;

+

+ 

+

+ +                + + +//Populate the form with the names of 

+

+ +                + + +//the vaults on the computer

+

+ +                +vault.GetVaultViews(out +Views, + +false);

+

+ +                +VaultsComboBox.Items.Clear();

+

+ +                + +foreach +(EdmViewInfo View +in +Views)

+

+ +                +{

+

+ +                    +VaultsComboBox.Items.Add(View.mbsVaultName);

+

+ +                +}

+

+ +                if +(VaultsComboBox.Items.Count > 0)

+

+ +                +{

+

+ +                    +VaultsComboBox.Text = (string)VaultsComboBox.Items[0];

+

+ +                +}

+

+ 

+

+ +            +}

+

+ +            + +catch +(System.Runtime.InteropServices.COMException ex)

+

+ +            +{

+

+ +                +MessageBox.Show("HRESULT = 0x" ++ ex.ErrorCode.ToString("X") + ex.Message);

+

+ +            +}

+

+ +            + +catch (Exception ex)

+

+ +            +{

+

+ +                +MessageBox.Show(ex.Message);

+

+ +            +}

+

+ +        +}

+

+ 

+

+ 

+

+ +        + +void +DestroyDeletedItemsButton_Click(object +sender, EventArgs e)

+

+ +        +{

+

+ +            + +try

+

+ +            +{

+

+ +                + + +//Declare and create an instance of IEdmVault5 

+

+ +                +IEdmVault5 vault = + +new +EdmVault5();

+

+ 

+

+ +                + + +//Log into selected vault as the current user

+

+ +                +vault.LoginAuto(VaultsComboBox.Text, +this.Handle.ToInt32());

+

+ 

+

+ +                + + +//Check to see if deleted files should be 

+

+ +                + + +//destroyed in all the subfolders

+

+ +                + +bool aRecursive = + +false;

+

+ +                if +(CheckBox_Recursive.Checked)

+

+ +                +{

+

+ +                    +aRecursive = + +true;

+

+ +                +}

+

+ 

+

+ +                +EdmDeletedItems[] poDeletedItems = +null;

+

+ +                +EdmFileInfo[] ppoDestroyedItems = + +null;

+

+ +                +EdmBatchDelErrInfo[] poErrors = + +null;

+

+ +               + IEdmFolder5 DeletedFolder1 = + +default(IEdmFolder5);

+

+ 

+

+ +                + + +//Get the root folder of the vault

+

+ +                +DeletedFolder1 = vault.RootFolder;

+

+ +                +IEdmFolder13 DeletedFolder = (IEdmFolder13)DeletedFolder1;

+

+ +                +DeletedFolder.GetDeletedItems(out +poDeletedItems, + +true);

+

+ 

+

+ +                + + +//Destroy all deleted files in the root folder and 

+

+ +                + + +//subfolders, if the check box is selected on the form

+

+ +                +DeletedFolder.DestroyDeletedItems2(poDeletedItems, + + +out +ppoDestroyedItems, +out poErrors);

+

+ 

+

+ +                + + +//If any deleted files found, display their names in a message box

+

+ +                + +string +msg = + +null;

+

+ +                + +int idx = 0;

+

+ +                + +foreach +(EdmFileInfo ppoDestroyedItem +in ppoDestroyedItems)

+

+ +                +{

+

+ +                    + + +string +row = + +null;

+

+ +                    +row = + +"\nDocumentID: " ++ Convert.ToString(ppoDestroyedItem.mlFileID) + +", FolderID: " ++ Convert.ToString(ppoDestroyedItem.mlFolderID) + +", File path: " ++ ppoDestroyedItem.mbsPath;

+

+ 

+

+ +                    + +if +(ppoDestroyedItem.mhResult == 0)

+

+ +                    +{

+

+ +                        +row = row + + +"\nStatus: OK\n";

+

+ +                    +}

+

+ +                    + + +else

+

+ +                    +{

+

+ +                        +EdmBatchDelErrInfo[] poError = +null;

+

+ +                        +row = row + + +" status: Failed=" ++ + +"HRESULT = 0x" ++ Convert.ToString(poError[idx].mlErrorCode);

+

+ +                        +idx += 1;

+

+ +                    +}

+

+ 

+

+ +                    +msg = msg + row;

+

+ +        +        }

+

+ 

+

+ +                + +if (msg == + +null)

+

+ +                +{

+

+ +                    +MessageBox.Show("No deleted files were found in the selected +vault's root folder or \n subfolders.");

+

+ +                +}

+

+ +                + +else

+

+ +                +{

+

+ +                    +MessageBox.Show("The status for each destroyed file is:\n" ++ msg);

+

+ +                +}

+

+ +            +}

+

+ 

+

+ +            + +catch +(System.Runtime.InteropServices.COMException ex)

+

+ +            +{

+

+ +                +MessageBox.Show("HRESULT = 0x" ++ ex.ErrorCode.ToString("X") ++ ex.Message);

+

+ +            +}

+

+ +            + +catch (Exception ex)

+

+ +            +{

+

+ +                +MessageBox.Show(ex.Message);

+

+ +            +}

+

+ +        +}

+

+ 

+

+ +        + +void +CheckBox_Recursive_CheckedChanged(object +sender, EventArgs e)

+

+ +        +{

+

+ 

+

+ +        }

+

+ 

+

+ +        + +private +void label1_Click(object +sender, EventArgs e)

+

+ +        +{

+

+ 

+

+ +        +}

+

+ 

+

+    +}

+


+}

+

Back to top

+

+//Form1.Designer.cs

+

namespace DestroyDeletedItems
+{
+    

+

+partial + + +class + + +Form1

+

+ +    {

+

+ +        + +/// +<summary>

+

+ +        + +///  +Required designer variable.

+

+ +        + +/// +</summary>

+

+ +        + +private +System.ComponentModel.IContainer components = +null;

+

+ 

+

+ +        + +/// +<summary>

+

+ +        + +///  +Clean up any resources being used.

+

+ +        + +/// +</summary>

+

+ +        + +/// +<param name="disposing">true +if managed resources should be disposed; otherwise, false.</param>

+

+ +        + +protected +override + + +void +Dispose(bool +disposing)

+

+ +        +{

+

+ +            + +if (disposing && (components != + + +null))

+

+ +            {

+

+ +                +components.Dispose();

+

+ +            +}

+

+ +            + +base.Dispose(disposing);

+

+ +        +}

+

+ 

+

+ +        + +#region Windows Form Designer +generated code

+

+ 

+

+ +        + +/// +<summary>

+

+ +        + +///  +Required method for Designer support - do not modify

+

+ +        + +///  +the contents of this method with the code editor.

+

+ +        + +/// +</summary>

+

+ +        + +private +void InitializeComponent()

+

+ +        +{

+

+ +            + +this.components = + +new +System.ComponentModel.Container();

+

+ +            + +this.AutoScaleMode = +System.Windows.Forms.AutoScaleMode.Font;

+

+ +            + +this.ClientSize = + +new +System.Drawing.Size(800, 450);

+

+ +            + +this.Text = +"Form1";

+

+ +            + +this.label1 = +new +System.Windows.Forms.Label();

+

+ +            + +this.VaultsLabel = + +new +System.Windows.Forms.Label();

+

+ +            + +this.VaultsComboBox = + +new +System.Windows.Forms.ComboBox();

+

+ +            + +this.DestroyDeletedItemsButton = + + +new +System.Windows.Forms.Button();

+

+ +            + +this.CheckBox_Recursive = + +new +System.Windows.Forms.CheckBox();

+

+ +            this.SuspendLayout();

+

+            // 

+

+            // label1

+

+            // 

+

+            this.label1.Location += + +new +System.Drawing.Point(32, 19);

+

+ +            + +this.label1.Name = + +"label1";

+

+ +            + +this.label1.Size = + +new +System.Drawing.Size(187, 79);

+

+ +            + +this.label1.TabIndex = 0;

+

+ +            + +this.label1.Text = + +"This application destroys all deleted files in the root folder of the selected va" ++

+

+ +            + + +"ult and also allows you to destroy all deleted files in all of the selected vaul" ++

+

+ +            + +"t\'s subfolders.";

+

+ +            + +this.label1.Click += + +new +System.EventHandler(this.label1_Click);

+

+            // 

+

+            // VaultsLabel

+

+            // 

+

+            this.VaultsLabel.AutoSize += + +true;

+

+ +            + +this.VaultsLabel.Location = + +new +System.Drawing.Point(35, 113);

+

+ +            + +this.VaultsLabel.Name = + +"VaultsLabel";

+

+ +            + +this.VaultsLabel.Size = + +new +System.Drawing.Size(75, 13);

+

+ +            + +this.VaultsLabel.TabIndex = 1;

+

+ +            + +this.VaultsLabel.Text = + +"Select a vault:";

+

+            // 

+

+            // VaultsComboBox

+

+            // 

+

+            this.VaultsComboBox.FormattingEnabled += + +true;

+

+ +            + +this.VaultsComboBox.Location = + + +new +System.Drawing.Point(35, 130);

+

+ +            + +this.VaultsComboBox.Name = + +"VaultsComboBox";

+

+ +            this.VaultsComboBox.Size = + +new +System.Drawing.Size(184, 21);

+

+ +            + +this.VaultsComboBox.TabIndex = 2;

+

+            // 

+

+            // DestroyDeletedItemsButton

+

+            // 

+

+            this.DestroyDeletedItemsButton.Location += + +new +System.Drawing.Point(35, 229);

+

+ +            + +this.DestroyDeletedItemsButton.Name += + +"DestroyDeletedItemsButton";

+

+ +            + +this.DestroyDeletedItemsButton.Size += + +new +System.Drawing.Size(184, 23);

+

+ +            + +this.DestroyDeletedItemsButton.TabIndex += 4;

+

+ +            this.DestroyDeletedItemsButton.Text += + +"Destroy deleted files";

+

+ +            + +this.DestroyDeletedItemsButton.UseVisualStyleBackColor += + +true;

+

+ +            + +this.DestroyDeletedItemsButton.Click ++= + +new +System.EventHandler(this.DestroyDeletedItemsButton_Click);

+

+            // 

+

+            // CheckBox_Recursive

+

+            // 

+

+            this.CheckBox_Recursive.AutoSize += + +true;

+

+ +            + +this.CheckBox_Recursive.Location = + + +new +System.Drawing.Point(38, 174);

+

+ +            + +this.CheckBox_Recursive.Name = + + +"CheckBox_Recursive";

+

+ +            + +this.CheckBox_Recursive.Size = + + +new +System.Drawing.Size(125, 17);

+

+ +            + +this.CheckBox_Recursive.TabIndex = +5;

+

+ +            + +this.CheckBox_Recursive.Text = + + +"Include all subfolders";

+

+ +            + +this.CheckBox_Recursive.UseVisualStyleBackColor += + +true;

+

+ +            + +this.CheckBox_Recursive.CheckedChanged ++= + +new +System.EventHandler(this.CheckBox_Recursive_CheckedChanged);

+

+            // 

+

+            // Form1

+

+            // 

+

+            this.AutoScaleDimensions += + +new +System.Drawing.SizeF(6F, 13F);

+

+ +            + +this.AutoScaleMode = +System.Windows.Forms.AutoScaleMode.Font;

+

+ +            + +this.ClientSize = + +new +System.Drawing.Size(254, 274);

+

+ +            + +this.Controls.Add(this.CheckBox_Recursive);

+

+ +            this.Controls.Add(this.DestroyDeletedItemsButton);

+

+ +            + +this.Controls.Add(this.VaultsComboBox);

+

+ +            + +this.Controls.Add(this.VaultsLabel);

+

+ +            + +this.Controls.Add(this.label1);

+

+ +            + +this.Name = +"Form1";

+

+ +            + +this.Text = + +"Destroy Deleted Files";

+

+ +            + +this.Load += +new System.EventHandler(this.DestroyDeletedItems_Load);

+

+ +            + +this.ResumeLayout(false);

+

+ +            + +this.PerformLayout();

+

+ +        +}

+

+ 

+

+ +        + +#endregion

+

+ +        + +private +System.Windows.Forms.Label label1;

+

+ +        + +private +System.Windows.Forms.Label VaultsLabel;

+

+ +        + +private +System.Windows.Forms.ComboBox VaultsComboBox;

+

+ +        + +private +System.Windows.Forms.Button DestroyDeletedItemsButton;

+

+ +        + +private +System.Windows.Forms.CheckBox CheckBox_Recursive;

+

+    +}

+


+}

+ + + + + diff --git a/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_VBNET.htm b/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_VBNET.htm new file mode 100644 index 0000000..d6e0145 --- /dev/null +++ b/documentation/api_extracted/Destroy_Deleted_Files_in_Vault_Example_VBNET.htm @@ -0,0 +1,301 @@ + + + +Destroy Deleted Files in Vault Example (VB.NET) + + + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Destroy Deleted Files in Vault Example (VB.NET)

+

This example shows how to create an application that displays a form in which +a user can select the vault in whose root +folder and subfolders all deleted files will be permanently destroyed. The user must have permission to delete +files.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+

IMPORTANT: Do not recreate and run this +example if you do not want to destroy all deleted files in the root folder and +subfolders in the selected vault. Instead, SOLIDWORKS PDM Professional suggests +that you review the code to understand how you can programmatically destroy +deleted files in the root folder and subfolders of a vault.

+ +

'----------------------------------------------------------------------------
' Preconditions:
'  1. Start Microsoft Visual Studio.
'  2. Click +File > New > Project > Visual Basic > Windows Forms Application.
'  3. Type the name of your project in Name.
'  4. Click the +Browse button and browse to the folder where to create the project.
'  +5. Click OK.  
'  6. Replace the code in Form1.vb with +this +code.
+'  7. Replace the code in Form1.Designer.vb with +this code.
'  +8. +Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add +Reference, click 
+'     Framework in the left-side panel, browse to the +top folder of your
+'     SOLIDWORKS PDM Professional installation, locate and +click
+'     EPDM.Interop.epdm.dll
, click Open, click +Add, and click Close).
+'  9. Right-click EPDM.Interop.epdm in References, click Properties, +and set +
+'     Embed Interop Types
to False to +handle methods that pass arrays of
+'     structures.
' 10. Switch back to +Form1.vb code window.
' 11. Delete one or more checked-in files in the +root folder of your vault.
' 12. Click +Debug > Start Debugging or press F5.
+'
+
' Postconditions:
+'  1. Displays the Destroy Deleted Files dialog.
+'  2. Select a vault.
+'  3. Optionally select the Include all subfolders check box.
+'  4. Click the Destroy deleted files button.
+'     A message box pops up informing you that:
+'     * No deleted files were found to destroy.
+'       - or -
+'     * The deleted files were destroyed.
+'  5. Click OK in the message box.
+'  6. Close the Destroy Deleted Files dialog.

+'----------------------------------------------------------------------------

+

'Form1.vb
+
 
+Imports EPDM.Interop.epdm

+Public Class Form1

+    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            'Declare and create an instance of IEdmVault5
+            'Cast IEdmVault5 to IEdmVault8
+            Dim vault As IEdmVault8 = New EdmVault5
+            Dim Views() As EdmViewInfo = Nothing

+            'Populate the form with the names of 
+            'the vaults on the computer
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = VaultsComboBox.Items(0)
+            End If

+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbCrLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub

+    Private Sub DestroyDeletedItemsButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles DestroyDeletedItemsButton.Click

+        Try
+            'Declare and create an instance of IEdmVault5
+            Dim vault As IEdmVault5 = New EdmVault5()

+            'Log into selected vault as the current user
+            vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())

+            'Check to see if deleted files should be
+            'destroyed in all subfolders
+            Dim aRecursive As Boolean = False
+            If CheckBox_Recursive.Checked Then
+                aRecursive = True
+            End If

            +Dim
poDeletedItems() +As EdmDeletedItems += Nothing
+            Dim ppoDestroyedItems() As EdmFileInfo = Nothing
+            Dim poErrors() As EdmBatchDelErrInfo = Nothing
+            Dim DeletedFolder As IEdmFolder13

+            'Get the root folder of the vault
+            DeletedFolder = vault.RootFolder

+            DeletedFolder.GetDeletedItems(poDeletedItems, +aRecursive)

+

             DeletedFolder.DestroyDeletedItems2(poDeletedItems, ppoDestroyedItems, poErrors)

+            'Destroy all deleted files in the root folder and
+            'subfolders, if the check box is selected on the form
+            Dim idx As Integer
+            idx = LBound(ppoDestroyedItems)
+            Dim msg As String = Nothing

+            'If any deleted files found, display their names in a message box
+            While idx <= UBound(ppoDestroyedItems)
+                Dim row As String
+                row = "DocumentID: " + CStr(ppoDestroyedItems(idx).mlFileID) + ", FolderID: " + _
+                    CStr(ppoDestroyedItems(idx).mlFolderID) + ", File path: " + ppoDestroyedItems(idx).mbsPath + vbCrLf
+                If ppoDestroyedItems(idx).mhResult = 0 Then
+                    row = row + "Status: OK" + vbCrLf
+                Else
+                    row = row + " status: Failed=" + "HRESULT = 0x" + CStr(poErrors(idx).mlErrorCode)
+                End If
+                idx = idx + 1
+                msg = msg + row + vbCrLf
+            End While

+            If msg Is Nothing Then
+                MessageBox.Show("No deleted files were found in the selected vault's +root folder or subfolders.")
+            Else
+                MessageBox.Show("The status for each destroyed file is: " + vbCrLf + vbCrLf + msg)
+            End If

+        Catch ex As Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbCrLf + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+    End Sub


+    Private Sub Label1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs)

+    End Sub

+    Private Sub VaultsLabel_Click(ByVal sender As System.ObjectByVal e As System.EventArgs)

+    End Sub

+    Private Sub CheckBox_Recursive_CheckedChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CheckBox_Recursive.CheckedChanged

+    End Sub

+End Class

+

Back +to top

+

'Form1.Designer.vb

+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.CheckBox_Recursive = New System.Windows.Forms.CheckBox()
+        Me.DestroyDeletedItemsButton = New System.Windows.Forms.Button()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.VaultsLabel = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(69, 133)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(139, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'CheckBox_Recursive
+        '
+        Me.CheckBox_Recursive.AutoSize = True
+        Me.CheckBox_Recursive.Location = New System.Drawing.Point(69, 181)
+        Me.CheckBox_Recursive.Name = "CheckBox_Recursive"
+        Me.CheckBox_Recursive.Size = New System.Drawing.Size(125, 17)
+        Me.CheckBox_Recursive.TabIndex = 3
+        Me.CheckBox_Recursive.Text = "Include all subfolders"
+        Me.CheckBox_Recursive.UseVisualStyleBackColor = True
+        '
+        'DestroyDeletedItemsButton
+        '
+        Me.DestroyDeletedItemsButton.Location = New System.Drawing.Point(69, 218)
+        Me.DestroyDeletedItemsButton.Name = "DestroyDeletedItemsButton"
+        Me.DestroyDeletedItemsButton.Size = New System.Drawing.Size(139, 23)
+        Me.DestroyDeletedItemsButton.TabIndex = 4
+        Me.DestroyDeletedItemsButton.Text = "Destroy deleted files"
+        Me.DestroyDeletedItemsButton.UseVisualStyleBackColor = True
+        '
+        'Label1
+        '
+        Me.Label1.Location = New System.Drawing.Point(66, 20)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(171, 68)
+        Me.Label1.TabIndex = 5
+        Me.Label1.Text = "This application destroys all deleted files in the root folder of the selected va" & _
+            "ult and also allows you to destroy all deleted files in all of the selected vaul" & _
+            "t's subfolders."
+        '
+        'VaultsLabel
+        '
+        Me.VaultsLabel.AutoSize = True
+        Me.VaultsLabel.Location = New System.Drawing.Point(66, 108)
+        Me.VaultsLabel.Name = "VaultsLabel"
+        Me.VaultsLabel.Size = New System.Drawing.Size(75, 13)
+        Me.VaultsLabel.TabIndex = 6
+        Me.VaultsLabel.Text = "Select a vault:"
+        '
+        'DestroyDeletedItems
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(284, 262)
+        Me.Controls.Add(Me.VaultsLabel)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.DestroyDeletedItemsButton)
+        Me.Controls.Add(Me.CheckBox_Recursive)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Name = "DestroyDeletedItems"
+        Me.Text = "Destroy Deleted Files"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents CheckBox_Recursive As System.Windows.Forms.CheckBox
+    Friend WithEvents DestroyDeletedItemsButton As System.Windows.Forms.Button
+    Friend WithEvents Label1 As System.Windows.Forms.Label
+    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
+ 
+End Class
+
+

 

+

Back +to top

+ + + + diff --git a/documentation/api_extracted/DictionaryTest.gif b/documentation/api_extracted/DictionaryTest.gif new file mode 100644 index 0000000000000000000000000000000000000000..23ed1f70235d937c616c6e6ba27f650ef9132caa GIT binary patch literal 11570 zcmV-2EzQzLNk%w1VIKjM0e1iZA^8LW00000EC2ui03QLA0f+wp{{R30001-q08an_ zUjP7q05miJG=l(1pa58$0AH#Adbbl685tfV8zLwqDls$w05kwJF#u9D09`dTUobFs zF)?#BHH0=`U^ZZ@F>AFvd#y2gx;BT0HHOVIng27a|2AW|L2$lI08~o>jXV_)OfV`> zNJmamR!&%AOooh0s^e1t09ODpQz;=-KRZ%aWLBEkSe)Be09Rf$09Q2i0AK($U;toYCmdik09r36U^a(fU;t%iW@d4IaBy&Q78h`%+H|G= zcB(yuh8(T@T;rv&aLqBwIvI+N--dhOj)U5qSKy_ z+uNMxoRsIRrRS}s)%^22~xr+4gmt>(^vmZ+%U>w(Z+qS)bj_J8awEz=I1P9{lf3+K!XAOS4$H zb9a!bp_@*bKyAEAF`Da+=<%=+0RuS+Ek;j;w|yDkPAK z;(Erez5b%?zQqm&1G4)j+f1+4KwBoY4rKZwH>{khg86ytU@F_oPAxFkvdqlOcw_U;ID1pbowv$<1Mc@DxilfoB8Xq2_$8$@&dcMFL+*v2?ZDtgC*kb2Cbse#fTjDqcAaWwA zY!^Qu3~$Q~cdbRipnM>EYxDfdb*DTy;Y|pW$oAZeGRpU(>>~d7yG%~27vzr*{`cH( z{|f}5ZzFob)|SpKE4KKvIzRig;ku`=`_wQHz>RR-PItKrV7Y)-iQy5?c*S$u^8!IR z#yC%T(VJd5Hpsya!r*$iFdX+3LBdO{FMZ{M0S8sMLCc|VeTpNY``~x5(bdmQ44cI) zEMW;&q@o}G{M&~<{AZ%q@$OUP7y%*%SU^-*4FP?)+98fe4i-F-8&p$)6$wbSt05wb zRy^C+YG=gWxnp(#z?wVA761ekqiicU6>T60K?zO|Ru`082IGb|7-Zv*fDGgZ2Uobm zA#M?j(_ASq_c%ZP(Q=N=1`HUf$ju$nbMc!W>9A!9d7NVotkA?hgs6`p{%?0?OyUv= zhzbIJ>VUAbhZbT-wFOWOYgHuU?rd2HtOal!t}LUc7Y8_Ja9YeKf4X1eVW%DbLQyLrv)apI*gjj2pu>P>58;-;A}g-&(ai=O)Qr$7yA zPdA^ZbVC>VykEA8cu_O9k{bjyD5w&;f`tOFp|n(}8gHk-BoYFd zpirD5`S8HmcFMx$hE}mcwqSE59hgF7R7t7ej zI`*-MjVv)-kjXH4sdP%)!WNux1Xfhxvr0fh!vKm=RH%`nXVY5PVyT7I)M4j$bWv`6DmTL!TT;EBw+M~E zwwh{151bRA0o}}1ftXB}4mFJA=YTisSk!pd7^+vj%#o&Q)363br&IN5P_z2d(<=3& zZ_Vpor%7#^j&-bOJ*QgR#@B4hwW*QK>^?8-x957bu%|6+V#mqY&u(^$NWE-rdwbN_ z4lcFFZS5Oj`_$h?k^COe?R4YXP3HzSNyklZ{gk^#@y4OMhbOvr?>ou)&NKw;O>leP zn@0Kmw~6`=pu)wj;|u6zCKPq+HQ+1+q=XdUcmPrKUJ4tBBIoa`4nJKN_@_qyA? z#BNVI+;M*QzWe>}ch5W4%?|j&8~*TA7yRCrj`+qq{_#Cm{F~zr`N~`V@;Q-w+2xM; z&U^mvny38dM^E~?ho0}HPrd5Du6cbEe)X`AJ=9x|dfD6l_CIeu4quP^-uwPQx@Y|F zhfjQ+DBb~Z=6&&(|NG-7pYzO*e(Zyvb?IB*_S9GY^|$^{`s_oW`{1{{_rp*A&X2$R z=!g9I)6f3HufP59_xt;IJ`V_3EeAT8#|4fdb^Y@{{>_JU3|BhZS7PX5fD?D1+@#4?JKsIKTw~Z~*@|4-t@nKxhVxP&PU6fD=doK+uCf7=#KK0c5a$ zHE0I$Kme6c4?b{(2#AFZSb~9ff~K~6D!76?D1-LU1wtr-7my5SsDNw81^9P>QAmRA zzz8mQ3JUOoYRG>RxQ94lhwXre`p1T8NQm(e0RBhlfnL~m8pw0;Z~(<%e^w&^Q5cD3 zLy3yWfrHqFFxZ15=!O*di8rx{GbnmQ`VkmT27zqqG ziXxbcHgSO*c!qO$fNA)NeJF}H0gO_(i(P0F@z4Q6fDA(52>1t!j0lF$=W}?-j0cbm zaHxP25D9OHe+x(n-6)5OXcMOp04~Ud?eK`mkcI6CiGGL^>F9!k*o_N#g*@Pbj9`V- zSdFDKfVIbSMHm47h=Zu;e+X%V2#JU|=#Qi5gn?K#KA4UHU;t`}3_Jjlz37ArnS(aS zg7_B?d3b~H_>XKyd%}m3EE#o27mz48{*Wy>lSKEDvlx>rNs~GmbT;WG0-2LL8I(NN zlj}BlGAWcuxge(plncTMHn0Iu8I@8wl~h@kR(X|JnUz|(m0a1CUip<;X#<>Kg8DXi zW0)MDkPC{omTcLUZuypQ8J9_s3y?sTuVI!v_X%>jmwefme)*S3QJ1nulz6#wdWjDo zkeG_On2gz&j`^6537C>OnSUvm)8`Ilxp>uQm_PxUp81)e`2mzUnxyHLmI-?{`F2KW zb7$!ohnbilfDeG6m^%;@gYW?$;0}nHn23N6H;|h`ahr)*2~?1nSr8P7S(?hZoK10> zt4Elci4U#W7_a#OSs)ABkeIdpc>}{a2)XGF+zFh&37(AEoA^+ixyhY~Fq_QTp6&@0 z&Z&CPxtd8gos3bPh(HChpq{h2n7O&0xM?Zl$(@Z!oVdB0S#X>0xuD7!pQ$&W4JVy> z*_j}ao$HyNjG3D|kevw%o)}u7#krx{nVk$;qLk^Nr3ax`XP-Lpnmcft8~UM&nVUKQ zp0ZG*<0%xyIh-MyogW~gCK{w{sZnJk6e!w#n0c4c$)Y*&n&t@L^>2lI(jO)a7>C5hgqSDxt;*(pWwLz?%) zQKVvOm(#MO6N(R8%BB9>*_~JF4peZc1j?8OilG3ir;wTy0Z_cw<)8CDil8Y0S0QF$SInU+Nw@bsTpXED;lVwS*y0ns;-)=lxl)k2dJBR ztHA1+x;m_VI+(I*rh!VV%F3XyYJSJcn#sDX(#o98ig}^;DVnNthdHg>TAI~*d8c=1 zXL=K9*{$X}nRLmkm}+R)I<7XM4a5?TWArTXhjib_Uz95^H=9`>zW-u^4M~70a&Tnz0yL101WH5PPv6+pr)D zup`^CC2O)F%l>c?yRr;>ve=rkx_PiLTY@rsXfzwJH;a@xE3y`=vO0H&R^x-t0fIn> zv{0wCJ#`)fBURXik4T4ZNP+kcilad?l}q~we486gb0dgiwp?Z4rL3947j;xQU1jPqEB5Q&8QN0JXbvH0M>VH>>xoE!tJ6H|MGJg|-U_>E|L4EZRM-l&gvdlU6& zk`4HX6!?xk48sfDg};l3?C8ULID`dU#Ce#vT`RC9>>L36vW>CAEUdlzw~%J=kVIU8 zryzq`oVk=6k!EX=p16M&iIK+;#=ZCe_Gh$aEWi9`k(3+1|L3=^o0L)fzbH(_jA6z8 zQLu{_JPEXB9H$+@h{($~sw`^vcN z7=R4S#V5=-0kT68x5g~X$h>^Yd=mgHdQ}X~(M){PY!eVVAgWAstndeEkOqIi3fbIu z+iZ01P#+BE&A&`^f3OMVU=ro934ic`k~od_`*o9yl<9nQ>`Zp<{LDpH&h20fo3IJS z&<^3;7{YkNUi-ud+|LLc(IxxO>r5Z*Odkb^6UY2>tgs2~unDYS491WxBW?c99VpQi zz0Z=|wufBHPMgv5vC;F<(Z-9-K=%jbkS)f53)xT(e^d_lOu#Lui-r5ROX!alxdC>o z)MpF^_lLek`-5sI)rg4HPQ15$8_6t*(E__4 zkA>ZUf*6Fz$lJV4yL^4UgiGF1$bdGSk4_wv$gSMW9T?8t+UD%P_t4OdQIJe+H5i$_ za6GvWx!dJUgXs(0zn#Hfyu~1Cwtl;l7+r12t=h}Y+B+@J^lZ;`XWBq#$Sv96)#lz3 z4s_u>&IYY^4T-owSII)j;j-r8?|ja`r{bW%;sovD!w2IsPS!O3;xcV~?!X^6{>Sm1 zP|rop7!)nH zFb&K^o-hX2=kRRK2(8czJ?Iwg(mq${Zky=$u;?Gob0MA5CXLe7z0#9j>4&b%m@Wx? zzUe#1(>{&XLoMmLNP$?rgG@MuR9)+bJA;thfFG&1xsJK7o47zg07GDe`iIrxIN-KU zjsMIIK0Z3AzS>s)b7qa!YR%S!{@12^46A#OeOj z?bqzjo-n8`Ym6>*j~&^|k?oyL!>5ReN!{<;JKEmc@1-5PNSMC+4vGZN>`K1O&fess zQ&ROFbgm8CJJB4p-GTf5yBU1J%jk=kJ={1^+*(ck!G0Lv%DCYTPt95$;}M_g)9!Pf z9^E?;+oA5Y`<~t*|Lrln+elr*!@b__d&KfsxZ}O<9KVQDp6M`8=R#-D^ljf7@7Wq@ zg<)*RTI`En48{pA#`_${ppEri&+u9P>~E&&G2hx09_SWcbQs=q8ZNcE`_(JY%`MMx zXz%nxXXhgxbR}-wj#$5ioP+Iq+;y+cW{(eTuIhPyd2%l8df)h;2k#Jn_H&Nol23Y+ zzvV^F_?iEBoA2^e4*8h>`Eh>uHSqA9Kl%}#_NEVcq0i+W{pPRVc(LF4u3!7MkNT=F z`eJ_hWUl*|cl)eA@xl-Lyr1}J-sQA^{DA&P{J&57!4J;jeCN*ZbkM*2vtQ6_FX;F@ z)uUc_mYy6%sLwcG>OwdEM3?=*pXNhn(2u^*QlAqKo%9);?O2Qc_iyO#z94bG?EulP z-MkCO1Rf-4@Zds*4H+hM7*XOxiuklqY*&LDD2|};J$Qgm)<{|IYE0CI593OKtTwgV z#LAd4R;*y!YzQ%;&YT5V{$$A$XitR>2^RAyQRq;FNtr%vXc42vjvhgZBxw?*N~jJ0 zl&fhBSGIE5$o_F?kBf(<29Htz5`aLZcBcXa*uW*gfnsp?A_a3d$3O^o4=6l(A#i}f z0_R0AGY~SPyNnaNEjX{RfXH?Ou>M6@n7||+a_I`BEcmkH3xMz9(0f>O0M3LBADhj2 z9^APD3)bTyd$Sov3Q&9S47%$$dOj-6n-D28Wb}gxCgWm1X?@>C8L?e&p~R5FESWAMBM2Gy;5$t%^%Pi&HKYiX zFg@Q0wC6zI@YByg1Y3iwDP($xEW;0rnV^#PCRs2=>;!6VqUSh@4y%#0vW}}4+tF^5 zY%V&;JMkuphcBO2gO3uu*h;9$){cAm9hcG}z4NNuq#7rscq)vz50z2%8rY|HF4%!2MsGQSN4me;8!Qv^6g;AEp0 zSnT?Y=+7FH9n_&h4gJF=V((!EQioFO%`*d9bMvrtKLZZaaiPSmg@~}M2Xx$9<=@ibC2KGOJblwqSha^T;(5(zT=#Ndx zVYHl0JmwlIJj+HqZHLZ&QD3#KZm0%#s+w5q9MkSNjWjY=8z`fX?mO_dO9Onlc+~A1 zZieKhJL?-OZs=mcC#Sq}%P)VJSU=}JHqghn#yoV!=KhduU) zPCqDh8Xaf-ZrOL|y?4uL7sz%%S69|zW_?FKdF7u1J|oU=_dNGym#4mZ>m6!d__{yW z{d(`e_dWaPho`u8@Xtq|bnzRHzWB(GPd|S717BbD^1GiufBg-uA9~^;XNctXH$Vac zrGMnJ+w}hM_6NQ3t$+{Y-2t~JJ>#X#Yhb&F*vOU>H#O!dl<}bGA_T$7Nf3AL3n2Wk z!#87WViU$_N5>-Ks)6uoB?(%P&%lJPTPmnQ*(R4Gx024DqD;mxa z}Ev^ z%g)x$9V77{C_tOSs4{S>qlK&ZP&+);YP7K!`x;R}I;P5mPC z6Jc+AsSCdPjRd^O4QtuHD3dUr1-eaHj7llxm%OMejeI1)5GqqgBi(VNifQSXMpGJL zwIel_fz^{1!{9sCCXXF94{zv_kcEL*kQPSHUAP+8(gx43;RP#N#rl-~Mv~=`LwZOr zF$Ky}(T6?_U1c#&Im}Vwi^mGN*Lp@cATt$%#~4~=ynuY7QzmFsqGY9te88gj*f4go zJuYqWE90`&QggUeFRk7?&T$#@mwDWzIbl{MaxRlh8Q#<;-HgmP8H|~BRugfcsi(5G z*m<+PuWdssRBS40THD;MO^G>aO{tTHY|b;w)LiFFKMA{;j_9dY)h#vSN}vo{$U6^` zs_+?FZiv1LjL+JRv_j>c(b6YX+p=pMwkyuKX=pp)=t^AzyIe}vw7mp|?4syPm!J06 zF%ov_VDIXiv|>=gD9SK1Sdy)-J}pTSEnem7x1)=CE(a?U01W=H%x1qPu}mT2nZ3X? zQzczhobc^4dIPP=P=YB%@kmp7L$oe91)S7Qw&E{?dphHeF|B6|m7!*^sIV1CQkP?0 z<$>A0u^zL;TiZZgTNbPEG#lco=W$s;eAczbc+9cqaB+iN(c_hQ&L_fhm%CNxKW_)m zZBFj|0^R7$q4~!{B5R)?J?27RddOk!^wB~cA4~@<)t{d9mJdDRQ`fp?t&Vldh8?zJ zm-@ubURku?yxeQwx*;F#^_Qz1?uQ+FZNF~!y9+k&ZZCS@tIl=s>b>rQKRe-LZTO}m z-mrfsI+-26*}QXP?~|vz;+Ni$%cCs~Q7}U2ML&Adm;T=Lr$>G2Rlj=Hx8C)mj{=Tg zS$R-&o@-(d4?c9id*1in_rC{z@P$8o;uqie$LBqd#1K!~+ul${cr>G=KYi*~-}=|b ze)hG$eeQSP`_yj-^rhMS!^iiuk&m0UW>ilZ5*FKc+~)pNIznIE0KdnH}1- zvVlPPG874vKe?;9kf=b*v%lxdzm@Pd5-c^Y8Ntdi!TzH_3(UIZ$iS)+rrhunJED~m zOQSuQlRW^9$3PIs*n{3WmozdX8jy<)Y(mv&{tXJC0RjjE6?=*sydtYxK~Ug^7DT`d zDu**f!!%UGYq)?|CE&NK^$(EJQiDhCx)rQ6xn#1R^l(h%vmt zp};>Jcm;Kw zfINVL7|4cDlml`EMmx9yazw{kdbYI zfP*y0iX6vngdi|n!EY=(9=r#O1j%QZ$ZWs{7B~P`n8$jYfIGMVPiRL^u*YhoM|&*E z18_-lvWC1^-ux@(Ve=` z4=qu$I#Ci$QU8uk}Jk`@Z<0_mDgCc9Oz5WfhE|2-M;Yi*CfSti&_) zLo4{hN1Q}iq{hLu#Z9zCJ>TSnYut#$Q$bFPvm6XS#tjv7G%WUXJcii5B zghYjm+{&C@f?UXk97u?qO421O)5TdAv`98|Ntu*Mm1Iex^xu~3-|XGVd-Tbh)Zds) zNt!fC&4kNqEa0AG%AhphlU!h<%-*D2%4u|9!ld7^vft2wUWDu=dL&7^yaN3V%ey2? zIauNG?KcE&Nx)=b6lTlleM`XXOSz=W7gk5Tv`HNX-oFG%yd|U%#+(u6%q3=Gv!MRW zCLYY%gkrNW;wwVp%MniN)Z*2A%?;S%)T~YFtYRR#;()z}FGk}uR^!tgV-hN3k&VtZ zmg6}_PVD^Pu6kq28BdAj<33)$_3Y1hRoI&qo%(dwLq_C8R=q$LWQ!%_a&2VhePl=u z*Fmm8=cQziwPaAhHXD^_M+erE5n*;JI~X||qf zer0S_gai zF1&44*@w;NfEMU`pjduhJb&g}0lZ^8{@AKm=HN`)pKD_`ZfJToV~L26lo zkxt^I6^h-+!blhnxm~c>0I`Kw+qNLW;V?phKtjhzTPAcuPI23TfLjh!YAfuEx{ZjR zCLo$d=;!TQ#dXA|MBG?>#8`M-SoB+4WZXVPT!Wn4Gfc!q{9MCTMnK$Lx)xo_1>Hat z-B%>*0W#}!wrNu2+~SR0v5Z}&gxzMu-Mz5gVZ3ay^hIDS2Vo>e{>?SUT^!;_bY0?= zYkQpRX^h2ET@`Yq)NO+F-U|-j1kgu*d;)*`?P*kB zgN$DHy#R*f-uRWu#Mb55W^AOj$dh)-lB@v%zF<7qVDAQBCtgY!hRH!3;6bd(4$jF4 z_DP^zN&qI{3{HS2e($E7?$_32ixp}te$0xbw;0gh6JE=HYXugVNFN@@7;fLQtl_oH zhD5~SsEo^&>|q<8ULfYn((d4Lq;6Zb?uYisDJF5teBu(XNGYD;56_>)7V&UAV>+(R zE|%jko=z5@9~UQS42*FZ_wgTZO&s^-5Z`fDjAI~2awNC@V{9dI%-Q3ChVniJWF`;l znywr}Cg&{Ia{OfENS5dR=4PPgZz~UT5U+CCF7x=&@iZ^%CTH{NKJ)8-b2WGKInVJr zw{tp=^B2$a-C692>+|aQ^CA!Q(i!wZZ)WQTbVN^{LuYjGar8&0W<@7-Nxz&(w{$_L z^i01VOy_jv@$^qeo=_L{-XZl;_w!9h^+s3qRrj4!clFnS^;kFbR;P8@ne|&2om|&- z%;EK3x13)GcFGaD*Y|zr_kMqOb_e)? z7x;lE_<~<|cTZ9{2(zkS_=b1*hlluxm-vaNc!&4Ri^uqk*Z7U+_>TAZk5|l!fB5Mj z`I0yJlSlcKSNWAMc{q3gB9Kv$m-(5e`G*Jjo5%T_*ZH0Q_?qtsmIwNv7y6)ghX*(T z0C)g6*an}kd7gLrr_cEgmHMft`l`43s)u@yXL^np`mXo-pyvjc2LJ#df(C$t(}MV{ zS9^`W`nGrb4uyocm;1S=`?|OLyT|*xfBU_kdXV4xpZ|K2r})6X5jbc76c~H52MIV3 zK7)7s$A|pLm;A}6{Kua@cgFlab@>NC{5ixQdl&$T&=-BtcYxA&fYC?&)K~r0XZ_ZH k0Mmzk(|7&Zr~TRoiP%4V+t>Zw=l$OIecnI%#19AnJDkNb7XSbN literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Display_Menu_of_Commands_Example_VBNET.htm b/documentation/api_extracted/Display_Menu_of_Commands_Example_VBNET.htm new file mode 100644 index 0000000..415136e --- /dev/null +++ b/documentation/api_extracted/Display_Menu_of_Commands_Example_VBNET.htm @@ -0,0 +1,174 @@ + + + +Display Menu of Add-ins Commands Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Display Menu of Commands Example (VB.NET)

+

This example shows how to display a menu of commands, including commands registered by any SOLIDWORKS PDM Professional add-ins and the Administrate Add-ins command.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +

'--------------------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Console Application.
+'     b. Type MenuVBNET in Name.
+'     c. Click Browse and navigate to the folder where to create the project. 
+'     d. Click OK.
+'     e. Replace the code in Module1.vb with this code.
+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, and click Add).
+'  3. Add System.Windows.Forms as a reference (click System.Windows.Forms
+
'     in the Name column, click Add, and click Close).

+'  4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  5. Replace ACME_LAB with the name of a valid vault view.

+'  6. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 

+'  1. Displays the command window.
+'     a. Click anywhere on the desktop.
+'     b. Displays the menu in the upper-left corner of the desktop.
+'     c. Click First Command in the menu.
+'     d. Click OK to close the message box.
+'     e. Click the command window and press any key.
+'     f. Closes the command window and exits the application.
+' 2. Click Debug > Start Debugging or press F5 again.
+'     a. Displays the command window.
+'     b. Click anywhere on the desktop.
+'     c. Displays the menu in the upper-left corner of the desktop.
+'     d. Click the Administrate Add-ins in the menu.
+'        1. Displays the Administrate Add-ins dialog box.
+'        2. Click Cancel to close the dialog box.
+'     e. Click the command window and press any key.
+'     f. Closes the command window and exits the application.
+'--------------------------------------------------------------------------------------

+

'Module1.vb
+Imports EPDM.Interop.epdm
+Imports System.Windows.Forms

+ +Module Module1

+    Dim vault As EdmVault5
+    Dim frmParent As Form


+    Sub Main()
+        Try
+            'Create a vault interface
+            vault = New EdmVault5()

+            'Log into vault
+            vault.LoginAuto("ACME_LAB", 0)

+            'Show menu
+            ShowMenu(vault)

+        Catch ex As System.Runtime.InteropServices.COMException
+            MsgBox("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MsgBox(ex.Message)
+        End Try

+        Console.WriteLine()
+        Console.WriteLine("Press any key to exit.")
+        Console.ReadKey()

+    End Sub

+    Private Sub ShowMenu(ByVal vault As IEdmVault12)
+        'Create a context-sensitive menu 
+        'using Windows InsertMenu function

+        Dim mnu As System.Windows.Forms.ContextMenu
+        mnu = New System.Windows.Forms.ContextMenu

+        InsertMenu(mnu.Handle, 0, 0, 100, "First Command")
+        InsertMenu(mnu.Handle, 0, 0, 101, "Second Command")
+        InsertMenu(mnu.Handle, 0, 0, 102, "Third Command")

+        'Create a selection list with all files in the root folder
+        Dim selList As IEdmSelectionList6
+        selList = New EdmSelectionList5

+        Dim folder As IEdmFolder6
+        folder = vault.RootFolder
+        Dim pos As IEdmPos5
+        pos = folder.GetFirstFilePosition()
+        While Not pos.IsNull
+            Dim file As IEdmFile8
+            file = folder.GetNextFile(pos)
+            Dim obj As EdmSelectionObject
+            obj.mbsPath = file.GetLocalPath(folder.ID)
+            obj.meType = file.ObjectType
+            obj.mlID = file.ID
+            obj.mlProjectID = folder.ID
+            selList.AddTail2(obj)
+        End While

+        'Add menu items for registered add-ins and add 
+        'the Administrate Add-ins command

+        Dim count As Integer
+        count = 0
+        Dim startID As Integer
+        startID = 200
+        Dim menuCallback As IEdmMenu7
+        menuCallback = vault.CreatePluginMenu2(mnu.Handle.ToInt32(), 3, startID, selList, CreateMenuFlags.Cmf_ContextMenu + CreateMenuFlags.Cmf_IncludeAdminReactors, count)

+        'Display the menu using Windows TrackPopupMenu function
+        Dim TPM_RETURNCMD As Integer
+        TPM_RETURNCMD = 256
+        Dim cmdID As Integer
+        frmParent = New Form
+        cmdID = TrackPopupMenu(mnu.Handle, TPM_RETURNCMD, frmParent.Left, frmParent.Top, 0, frmParent.Handle, 0)

+        'Run the selected command
+        Select Case cmdID
+            Case 100
+                MsgBox("First command")
+            Case 101
+                MsgBox("Second command")
+            Case 102
+                MsgBox("Third command")
+            Case Else
+                menuCallback.OnMenuItem2(cmdID, mnu.Handle.ToInt32(), vault.RootFolderID, selList)
+        End Select
+    End Sub

+    Private Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" _
+    (ByVal hMenu As System.IntPtr, _
+    ByVal uPosition As Integer, _
+    ByVal uFlags As Integer, _
+    ByVal uIDNewItem As System.IntPtr, _
+    ByVal lpNewItem As StringAs Boolean

+    Private Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" _
+    (ByVal hMenu As IntPtr, _
+    ByVal uFlags As Integer, _
+    ByVal x As Integer, _
+    ByVal y As Integer, _
+    ByVal nReserved As Integer, _
+    ByVal hWnd As IntPtr, _
+    ByVal prcRect As IntPtrAs Integer

+ +End Module

+ + + + diff --git a/documentation/api_extracted/DotNet.htm b/documentation/api_extracted/DotNet.htm new file mode 100644 index 0000000..def6c38 --- /dev/null +++ b/documentation/api_extracted/DotNet.htm @@ -0,0 +1,94 @@ + + + +Using VB.NET + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Using VB.NET

+ + + +
+ +

Versions of SOLIDWORKS PDM Professional before 2008 supported Visual Basic 6. +SOLIDWORKS PDM Professional 2008, and later, support VB.NET. Users who want to port +their Visual Basic 6 applications to VB.NET applications need to know how to:

+ +
    +
  • Create stand-alone and + add-in applications in VB.NET.
     
  • +
  • Import the SOLIDWORKS PDM Professional + primary interop assembly.

    In your open + project in Microsoft Visual Studio:

    +
      +
    1. Right-click the project + name in the Solution Explorer.
    2. +
    3. Select Add Reference.
    4. +
    5. Select Framework + in the left-side panel.
    6. +
    7. Browse to the top folder + of your SOLIDWORKS PDM Professional installation.
    8. +
    9. Locate and select + EPDM.Interop.epdm.dll.
    10. +
    11. Click Open
    12. +
    13. Click Add.
    14. +
    15. Click Close.
    16. +
    +
  • +
  • Obtain window handles. + +
      +
    • Visual Basic 6 syntax: +
    • +
    +
  • +
+
+
+

+ Me.hWnd

+
+
+ +
+
+
    +
  • + VB.NET + + syntax:
  • +
+
+
+ +
+
+

+ Me.Handle.ToInt32()

+
+
+ + +
+ + + + diff --git a/documentation/api_extracted/DotNetAddIns.htm b/documentation/api_extracted/DotNetAddIns.htm new file mode 100644 index 0000000..005ba76 --- /dev/null +++ b/documentation/api_extracted/DotNetAddIns.htm @@ -0,0 +1,508 @@ + + + +Creating Add-ins (VB.NET) + + + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Creating Add-ins (VB.NET)

+ + + +
+ +

This topic shows how to create a +debug add-in using VB.NET in Microsoft Visual Studio.

+ +

NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in VB.NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

+ +
    +
  1. + Start Microsoft Visual + Studio.
  2. +
  3. Click File > + New > Project > Visual Basic > Windows Desktop > + Class Library (.NET Framework).
  4. +
  5. + Type the name of your + project in Name.
  6. +
  7. Click + Browse and navigate to the folder where to create your project.
  8. +
  9. Click OK.
    +
    + Class1.vb containing an empty class called Class1 is created.
  10. +
  11. Right-click the name of your project in the Solution + Explorer to add the SOLIDWORKS PDM Professional type library and the + Systems.Windows.Forms assembly:
      +
    1. Select Add Reference.
    2. +
    3. Click Browse in the left-hand panel, navigate to and select + EPDM.Interop.epdm.dll, and click OK.
    4. +
    5. Select Add Reference.
    6. +
    7. Click Assemblies > Framework in the left-hand panel, select System.Windows.Forms, and click + OK.
    8. +
    9. Click Close.
    10. +
  12. +
  13. Type Imports System.Windows.Forms at the top of + the code window.
  14. +
  15. Type + Imports + + EPDM.Interop.epdm  and + Imports System.Runtime.InteropServices + below + Imports System.Windows.Forms.
  16. +
  17. Type before Public Class Class1:
    +
    <Guid("")> _
    + <ComVisible(True)> _

     
  18. +
  19. To populate the GUID + attribute above, click Tools > Create GUID in the IDE, select GUID + Format + 6, click Copy, and click Exit. Replace + <Guid("")> + with the copied string.
  20. +
  21. Type + below Public Class Class1:
    + Implements IEdmAddIn5
  22. +
  23. Implement + IEdmAddIn5::GetAddInInfo + by pasting the following code between Implements IEdmAddIn5 and + End Class:
  24. +
+
+
+

+ Public Sub GetAddInInfo(ByRef poInfo As + EdmAddInInfo, ByVal poVault As IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5) + Implements IEdmAddIn5.GetAddInInfo

+
+
+

+       + ' + + Specify add-in + information

+

+       + poInfo.mbsAddInName = "VB.NET Add-in"

+

+       + poInfo.mbsCompany = "My Company"

+

+       + poInfo.mbsDescription = "Menu add-in that shows a message box."

+

+       + poInfo.mlAddInVersion = 1

+

+ +  

+

+       + ' Specify minimum version of SOLIDWORKS PDM Professional

+

+       poInfo.mlRequiredVersionMajor + = 6

+

+       + poInfo.mlRequiredVersionMinor = 4

+

+ +  

+

+       + ' Register a menu command

+

+       + poCmdMgr.AddCmd(1, "VB.NET Add-in", EdmMenuFlags.EdmMenu_Nothing)

+
+

+  

+

+    + End Sub

+
+
    +
  1. Implement + IEdmAddIn5::OnCmd + by pasting the following code between End Sub and End Class:

    NOTE: + IEdmVault8::GetWin32Window +is used to convert the parent window handle to a window handle that .NET can + use
    .
  2. +
+
+
+

+ Public Sub OnCmd(ByRef poCmd As EdmCmd, + ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd

+

+ +  

+

+       + ' Handle the menu command

+

+       If + poCmd.meCmdType = EdmCmdType.EdmCmd_Menu Then

+

+          If + poCmd.mlCmdID = 1 Then

+

+             + Dim v8 as IEdmVault8

+

+             V8 = poCmd.mpoVault

+

+             + System.Windows.Forms.MessageBox.Show(v8.GetWin32Window(poCmd.mlParentWnd), + "VB.NET Add-in")

+

+          End + If

+

+       End If

+

+ +  

+

+    End Sub

+
+
+
    +
  1. Implement your own window handle wrapper + by right-clicking the name of your project in the Solution Explorer and + selecting Add > New Item > Class:
      +
    1. Type WindowHandle in Name.
    2. +
    3. Click Add.
    4. +
    5. Replace the code in the code window with the + following code.
    6. +
    +
  2. +
+
+
+

+ + Imports + System.Windows.Forms

+

+ ' Wrapper class to use SOLIDWORKS PDM Professional as a parent + window to VB forms

+

+ Public Class WindowHandle

+

+    Implements + IWin32Window

+

+    Private + mHwnd As IntPtr

+

+ +  

+

+    Public Sub + New(ByVal hWnd As Integer)

+

+       mHwnd = + New IntPtr(hWnd)

+

+    End Sub

+

+    Public ReadOnly + Property Handle() As IntPtr Implements + System.Windows.Forms.IWin32Window.Handle

+

+       Get

+

+          + Return mHwnd

+

+       End Get

+

+    End + Property

+

+ End + Class

+
+
+ +
+

Your add-in uses the new wrapper in the menu + command handler to + show the message box by calling + System.Windows.Forms.MessageBox.Show in Class1::OnCmd in Class1.vb.
 

+
+ + + +
+ +
    +
  1. Right-click the name of + your project in the Solution Explorer and select Properties.
      +
    1. On the Application tab, + click Assembly Information.
       
    2. +
    3. De-select Make assembly COM-Visible.
       
    4. +
    5. On the Compile tab, + select AnyCPU + for the target CPU, de-select Prefer 32-bit and select Register for COM interop.
       
    6. +
  2. +
  3. Change your add-in to + be a Debug Add-in:
     
      +
    1. Right-click the name of + your project in the Solution Explorer and select Properties.
       
    2. +
    3. Click the Debug tab.
       
    4. +
    5. Click + Start external program + and type + C:\Windows\System32\notepad.exe in the text field.

       
    6. +
  4. +
+ +
+
    +
  1. Right-click Epdm.Interop.epdm in the Solution Explorer, + select Properties, and set Embed Interop Types to False + to handle methods that pass arrays of structures.
  2. +
  3. If creating this add-in on a 64-bit computer, edit + + project_path\project_name\project_name\project_name.vbproj + in Notepad:
      +
    1. Insert the following line below <PropertyGroup + Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> and + below  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == + 'Release|AnyCPU' ">.
      +
      + <PlatformTarget>AnyCPU</PlatformTarget>
    2. +
    3. Save the file and exit Notepad.
    4. +
    + +
  4. +
  5. Right-click the name of + your project in the Solution Explorer and select Properties.
     
  6. +
  7. On the Application tab, keep the suggested target framework or select .NET Framework + 4.5 in the Target + framework dropdown.
  8. +
  9. Click Build > Build + Solution to build the add-in.
  10. +
  11. Install + the add-in as a Debug Add-in using the SOLIDWORKS PDM Professional + Administration tool:
      +
    1. Start up the SOLIDWORKS + PDM Professional Administration tool.
    2. +
    3. Expand the vault where + you want to install this add-in. Log in if prompted.
    4. +
    5. Right-click Add-ins and select Debug + Add-ins.
    6. +
    7. Click Add Add-in, browse to + project_path\project_name\project_name\bin\Debug, + select project_name.dll, and click Open.
      +
      + Your add-in's name, path, and class ID should appear in Add-ins installed + for debugging on this machine.
    8. +
    9. Click OK.
       
    10. +
    +
  12. +
  13. In Microsoft Visual Studio, click Debug > Start Debugging + or press F5.
  14. +
  15. Click File > Open in Notepad.
  16. +
  17. Click the name of the vault where you installed your add-in.
  18. +
  19. Right-click inside the vault in File Explorer and select VB.NET + Add-in.
    +
    + A message box is displayed with the message VB.NET Add-in.
  20. +
  21. Click OK to close the message box.
  22. +
+

+ + 

+ +

+ +Complete +Source Code

+ +
+

+ 'Class1.vb

+
Imports System.Windows.Forms
+Imports System.Runtime.InteropServices
+Imports EPDM.Interop.epdm
+ 
+
<Guid("")> _   ' See step 10 above to create the GUID
+<ComVisible(True)> _
+Public Class Class1
+    Implements IEdmAddIn5
+ 
+    Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfoByVal poVault As IEdmVault5ByVal poCmdMgr As IEdmCmdMgr5Implements IEdmAddIn5.GetAddInInfo
+        ' Fill in the add-in's description
+        poInfo.mbsAddInName = "VB.NET Add-in"
+        poInfo.mbsCompany = "My Company"
+        poInfo.mbsDescription = "Menu add-in that shows a message box."
+        poInfo.mlAddInVersion = 1
+ 
+        ' Minimum SOLIDWORKS PDM Professional version needed for VB.NET add-ins is 6.4
+        poInfo.mlRequiredVersionMajor = 6
+        poInfo.mlRequiredVersionMinor = 4
+ 
+        ' Register a menu command
+        poCmdMgr.AddCmd(1, "VB.NET Add-in"EdmMenuFlags.EdmMenu_Nothing)
+ 
+    End Sub
+ 
+    Public Sub OnCmd(ByRef poCmd As EdmCmdByRef ppoData As EdmCmdData[]Implements IEdmAddIn5.OnCmd
+ 
+        ' Handle the menu command
+        If poCmd.meCmdType = EdmCmdType.EdmCmd_Menu Then
+            If poCmd.mlCmdID = 1 Then
+                Dim v8 As IEdmVault8
+                v8 = poCmd.mpoVault
+                System.Windows.Forms.MessageBox.Show(v8.GetWin32Window(poCmd.mlParentWnd), "VB.NET Add-in")
+            End If
+        End If
+ 
+    End Sub
+ 
+End Class
+

+ 'WindowHandle.vb

+
Imports System.Windows.Forms
+ 
+Public Class WindowHandle
+    Implements IWin32Window
+    Private mHwnd As IntPtr
+ 
+    Public Sub New(ByVal hWnd As Integer)
+        mHwnd = New IntPtr(hWnd)
+    End Sub
+    Public ReadOnly Property Handle() As IntPtr Implements System.Windows.Forms.IWin32Window.Handle
+        Get
+            Return mHwnd
+        End Get
+    End Property
+End Class
+

 

+
+ +
+ + + + diff --git a/documentation/api_extracted/DotNetImport.gif b/documentation/api_extracted/DotNetImport.gif new file mode 100644 index 0000000000000000000000000000000000000000..5baef0b4b61fe5ef490560fe4c50840b2fed1872 GIT binary patch literal 14226 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/EPDM.Interop.EPDMResultCode.html b/documentation/api_extracted/EPDM.Interop.EPDMResultCode.html new file mode 100644 index 0000000..9861bbf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.EPDMResultCode.html @@ -0,0 +1,81 @@ + + + + + + Assembly Overview + + + + + + + + + + + + + + + + + + + + + + +

+ + +
+ +
+ + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EPDM.Interop.EPDMResultCode Assembly
+ + + + + + + +
+
+ +
+
+
+ + SOLIDWORKS PDM Professional API +

Namespaces

+ +
NamespaceDescription
EPDM.Interop.EPDMResultCode Success and error codes.
+ + + +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultErrorCodes_e.html b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultErrorCodes_e.html new file mode 100644 index 0000000..eb0a032 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultErrorCodes_e.html @@ -0,0 +1,403 @@ + + + + + + EdmResultErrorCodes_e Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmResultErrorCodes_e Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.EPDMResultCode Namespace + : EdmResultErrorCodes_e Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Error codes. See EdmResultSuccessCodes_e for the success codes. +

Syntax

Visual Basic 
Public Enum EdmResultErrorCodes_e 
+   Inherits System.Enum
+
C# 
public enum EdmResultErrorCodes_e : System.Enum 
+
C++/CLI 
public enum class EdmResultErrorCodes_e : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
E_EDM_ADDIN_CANT_ACCESS_REGISTRY

0x800402D8 = Cannot redirect registry to retrieve add-in class ID

E_EDM_ADDIN_CLSID_ALREADY_USED0x800402CE = There is already an add-in using the CLSID that you are trying to add; class IDs must be unique
E_EDM_ADDIN_CLSID_NOT_FOUND0x800402DA = The add-in registration succeeded, but the add-in's class ID could not be found in the registry
E_EDM_ADDIN_FILE_NOT_FOUND0x800402D6 = The add-in file was not found
E_EDM_ADDIN_LOAD_CONFLICT0x800402DB = The add-in could not be loaded; this can happen if an attempt is made to register a new version of a .NET add-in that is already loaded; the situation can usually be resolved by closing the application and reattempting the operation
E_EDM_ADDIN_LOADCONFLICT0x80040284 = An older version of the add-in is already loaded in memory; restart the program to load the new version of the add-in
E_EDM_ADDIN_NAME_ALREADY_USED0x800402D1 = There is already an add-in with the same name as the one you are trying to add; the name must be unique
E_EDM_ADDIN_NOT_COM_DLL0x800402D7 = The specified add-in file is not a COM DLL
E_EDM_ADDIN_NOT_FOUND0x800402CF = The add-in cannot be found in the vault
E_EDM_ADDIN_NOT_MULTITHREADED0x800402AF = An attempt was made to add an add-in that is not a multithreaded COM-server
E_EDM_ADDIN_UNSUPPORTED_OS0x800402DC = The add-in does not support the operating system; you cannot load an 64-bit add-in in 32-bit Windows
E_EDM_ALIAS_USED_IN_EXPORT_SCRIPT0x800402AC = The alias set cannot be deleted because it is used in a data export rule
E_EDM_ALIAS_USED_IN_IMPORT_SCRIPT0x800402AD = The alias set cannot be deleted because it is used in a data import rule
E_EDM_ALL_GROUPS_NOT_VALIDATED0x80040298 = All groups were not validated
E_EDM_ALL_USERS_NOT_VALIDATED0x80040289 = All users were not validated
E_EDM_ALREADY_INITIALIZED0x8004021B = An attempt was made to initialize an object twice; you can only initialize an object one time
E_EDM_ALREADY_LOGGED_IN0x80040205 = You tried to log in twice
E_EDM_ARCHIVE_LOGIN_FAILED0x80040243 = Login failed because of an invalid user name or password
E_EDM_ARCHIVE_ROOT_FOLDER_DOES_NOT_EXIST0x800402C7 = Specified archive server root folder does not exist
E_EDM_ARCHIVE_SERVER_NOT_FOUND0x8004023F = The archive server is not found; try starting the archive server
E_EDM_AUTO_LOGGED_OUT0x80040280 = You have been inactive for too long and have been logged out
E_EDM_BAD_LENGTH0x80040242 = The statement is out of bounds
E_EDM_BOM_NOT_FOUND0x800402A9 = The specified bill of materials could not be found
E_EDM_BOM_USED_IN_EXPORT_SCRIPT0x800402AB = The bill of materials cannot be deleted because it is used in a data export rule
E_EDM_CANCELLED_BY_USER0x80040226 = The operation was canceled by the user
E_EDM_CANT_MOVE_FOLDER_TO_SUBFOLDER0x8004029C = An attempt was made to move a folder to one of its subfolders
E_EDM_CANT_OPEN_DATABASE0x80040206 = Could not open database; this could happen if the network connection is broken or if the database has been removed
E_EDM_CANT_START_EDMSERVER0x8004025B = Could not start EdmServer.exe; please reinstall the program
E_EDM_CARD_NOT_FOUND0x8004027E = The specified card could not be found
E_EDM_CARDLIST_HAS_NO_NAME0x800402E1 =  Not the latest version, when latest version is required
E_EDM_CIRCULAR_XREF0x8004022F = Detected cyclic file reference
E_EDM_COLD_STORAGE_SCHEMA_NOT_FOUND0x80040275 = The cold storage schema with the specified name was not found
E_EDM_COLD_STORE_SCHEMA_EXISTS0x80040277 = Saving the cold storage schema failed because the name is already used by another schema
E_EDM_COLUMN_VIEW_NOT_FOUND0x80040290 = The column view cannot be found
E_EDM_COMMENT_NOT_ENTERED0x800402F4 = Comment not entered
E_EDM_CONDITIONS_NOT_MET0x80040233 = Conditions for transition were not met
E_EDM_COPYTREE_ZIP_FAILED0x800402FB = Failed to create ZIP file during the file copy operation
E_EDM_COULD_NOT_CREATE_LOCAL_FOLDER0x8004021E = Could not create the folder in the local cache; the folder name might contain invalid characters
E_EDM_COULD_NOT_LAUNCH_TASKS0x800402CB = Cannot launch tasks with user interface in silent mode
E_EDM_COULD_NOT_OPEN_CLIPBOARD0x8004027A = Could not open the clipboard
E_EDM_DATABASE_ACCESS0x80040207 = Could not access the item in the database
E_EDM_DATABASE_ALREADY_EXISTS0x800402D0 = A database with the same name already exists on the server
E_EDM_DATABASE_LINK_FAILURE0x80040267 = A communication link failure occurred when accessing the database server; the database service might have been restarted, or the network might be down; please try the operation again and contact your system administrator if the problem persists
E_EDM_DATASOURCE_NOT_FOUND0x80040222 = The ODBC data source was not found
E_EDM_DISABLED0x8004023D = The command is disabled
E_EDM_DISK_FULL0x80040239 = The disk is full
E_EDM_DOCTYPE_EXISTS0x80040259 = A category with the specified name already exists
E_EDM_DOCTYPE_IN_USE0x80040258 = The category is currently associated with one or more documents and cannot be deleted
E_EDM_DONTSETMODIFIED_FLAG0x800402E5 = Do not set the modified flag
E_EDM_DOTNET_REGISTRATION_MODULE_MISSING0x800402D9 = The .NET registration module is missing
E_EDM_DRAWING_IN_DETAILING_MODE0x80040306 = The drawing is in detailing mode
E_EDM_DUPLICATE_GROUP_NAME0x80040268 = Saving the user group failed because the group name is already used by another group
E_EDM_DUPLICATE_SEARCH_FAVORITE_NAME0x8004024B = Could not save the search favorite with the specified name because the name is already used by another favorite and the names must be unique; if the other favorite is not visible in the program, it is probably because you do not have permission to see it
E_EDM_EMPTY_VALUE_FIELD0x80040301 = The value of one or more transiiton conditions cannot be empty
E_EDM_END_OF_LIST0x80040208 = You tried to get an element from a list where the cursor is off right
E_EDM_END_OF_REV_GEN_LIST_CONTINUE0x80040232 = You have reached the end of the revision generator list; please contact your system administrator to add more revision-generator entries in the workflow editor
E_EDM_END_OF_REV_GEN_LIST_STOP0x80040231 = You have reached the end of the revision generator list; please contact your system administrator to add more revision-generator entries in the workflow editor
E_EDM_END_OF_SN_FILE0x8004023A = You have reached the end of the serial number file
E_EDM_ERPMGR_ALIAS_DOES_NOT_EXIST0x8004029D = The alias does not exist
E_EDM_ERPMGR_EXPORT_SCRIPT_NOT_FOUND0x800402A8 = The specified export rule could not be found
E_EDM_ERPMGR_IMPORTBATCH_DOES_NOT_EXIST0x8004029E = The data import batch does not exist
E_EDM_ERPMGR_IMPORTSCRIPT_NAME_ALREADY_EXISTS0x8004029F = The name of the data import rule is already used
E_EDM_ERPMGR_INVALID_DATE_FORMAT0x800402A0 = The date format is invalid
E_EDM_ERPMGR_INVALID_FILENAME0x800402A1 = The file name is invalid
E_EDM_ERPMGR_ITEM_NOT_FOUND0x800402A2 = The data import/export item was not found in the database
E_EDM_ERPMGR_VALUE_TOO_LONG0x800402A3 = The value is too long
E_EDM_ERPMGR_VARALIASSET_ALREADY_EXISTS0x800402A4 = The specified alias set already exists
E_EDM_ERPMGR_VARALIASSET_DOES_NOT_EXIST0x800402A5 = The specified variable alias set does not exist
E_EDM_ERPMGR_VARIABLE_DOES_NOT_EXIST0x800402A6 = The specified variable does not exist
E_EDM_ERPMGR_VARIABLENAME_NOT_UNIQUE0x800402A7 = The variable name is not unique
E_EDM_EXCLUDED_FROM_PREVIEW0x8004023C = The file type is excluded from preview
E_EDM_FILE_ALREADY_OPEN0x80040281 = The file is already open
E_EDM_FILE_DELETED0x8004026D = The file has been deleted
E_EDM_FILE_FORMAT_UNSUPPORTED_BY_CONISIO_VERSION0x8004026A = The file format is not supported by your SOLIDWORKS PDM Professional license
E_EDM_FILE_IN_COLDSTORAGE0x80040278 = The file that you are trying to access is currently placed in cold storage and cannot be retrieved
E_EDM_FILE_IS_LOCKED0x80040211 = The operation is not permitted because the file is checked out
E_EDM_FILE_IS_REFERENCED0x8004022D = The file is referenced by another file
E_EDM_FILE_NAME_NOT_GLOBALLY_UNIQUE0x80040286 = The file name, which needs to be unique in the file vault, has been used before
E_EDM_FILE_NOT_FOUND0x80040213 = The file could not be found
E_EDM_FILE_NOT_LOCKED_BY_YOU0x80040210 = The file is not checked out by you, which is required by the operation
E_EDM_FILE_NOT_OPEN0x80040282 = The file is not open
E_EDM_FILE_NOT_REGENERATED0x800402B3 = The file is not rebuilt
E_EDM_FILE_SHARE_ERROR0x8004020B = An attempt was made to access a file that is exclusively opened by another application
E_EDM_FILES_WERE_LOCKED0x80040257 = One or more documents have been checked out; these files have been deselected; click OK again if you still want to perform the operation on the remaining files
E_EDM_FOLDER_DESTROY_CONSTRAINT_FAILED 
E_EDM_FOLDER_NOT_EMPTY0x8004021F = The specified folder is not empty
E_EDM_FOLDER_NOT_FOUND0x80040214 = The folder could not be found
E_EDM_GET_EDMFORMATROUTER0x8004027D = The file format plug-in routes the call onto another plug-in; the file format manager will query the interface for the IEdmFormatRouter code to figure out which plug-in to use
E_EDM_GROUP_NAME_ALREADY_EXISTS0x80040297 = The group name already exists
E_EDM_GROUP_NAME_NOT_UNIQUE0x80040295 = The group name is not unique in the specified array of groups
E_EDM_GROUP_NOT_FOUND0x800402D4 = The group could not be found
E_EDM_HAS_NO_CARD0x80040227 = The file does not have a file data card
E_EDM_HAS_NO_PARENT0x80040202 = The folder does not have a parent
E_EDM_HAS_NO_PREVIEW0x80040223 = The file does not have a preview bitmap
E_EDM_INDEXER_NOT_STARTED0x8004027F = Indexing has not been set up for this file vault
E_EDM_INSUFFICIENT_SQL_PERMISSION0x80040283 = The SQL server user account associated with the vault has insufficient privileges; the administrator can solve this by running the following command in the SQL Server Query Analyzer: GRANT VIEW SERVER STATE TO user name
E_EDM_INVALID_BOM0x800402EA = Invalid BOM
E_EDM_INVALID_CATEGORY_ID0x80040263 = The specified category database ID is invalid
E_EDM_INVALID_COLUMN_VIEW0x80040291 = The column view is invalid
E_EDM_INVALID_COMPLETE_NAME0x8004028B = The complete name is invalid
E_EDM_INVALID_DATABASE_NAME0x800402C3 = The SQL database name is invalid
E_EDM_INVALID_DATE_FORMAT_CODE0x800402C5 = The SQL date format code is invalid
E_EDM_INVALID_EMAIL0x8004028C = The email is invalid
E_EDM_INVALID_FILE0x80040229 = The file format is not recognized
E_EDM_INVALID_FILE_ID0x80040264 = The specified file ID is invalid
E_EDM_INVALID_GROUP_DESCRIPTION0x80040296 = The group description is invalid
E_EDM_INVALID_GROUP_MEMBER_ID0x80040299 = A group member ID is invalid
E_EDM_INVALID_GROUP_NAME0x80040294 = The group name is invalid
E_EDM_INVALID_ID0x80040241 = The supplied object ID is not valid
E_EDM_INVALID_INITIALS0x8004028D = The initials are invalid
E_EDM_INVALID_NAME0x8004021D = The file/key name was invalid
E_EDM_INVALID_OUTLOOK_VERSION0x800402E2 = The specified version of Microsoft Outlook is invalid
E_EDM_INVALID_PASSWORD0x8004028F = The password is invalid
E_EDM_INVALID_QUERY0x80040230 = The search query is invalid
E_EDM_INVALID_REVISION_NUMBER0x80040224 = Specified revision number is invalid
E_EDM_INVALID_REVISION_NUMBER_COMPONENT_NAME0x8004029B = The revision number component name is invalid
E_EDM_INVALID_REVISION_NUMBER_GENERATOR_NAME0x8004029A = The revision number generator name is invalid
E_EDM_INVALID_SERIAL_NUMBER_NAME0x80040256 = Invalid serial number name
E_EDM_INVALID_TRANSITION_WEB0x80040274 = Could not change state because the transition would create a new document version, which is not supported by the web client
E_EDM_INVALID_TYPE0x80040225 = The object has an invalid type for the specified operation
E_EDM_INVALID_USER_DATA0x8004028E = The user data string is invalid
E_EDM_INVALID_USER_NAME0x80040287 = The user name is invalid
E_EDM_INVALID_VAULT_NAME0x800402C2 = The vault name is invalid
E_EDM_INVALID_WORKFLOW_ID0x80040260 = The specified workflow database ID is invalid
E_EDM_INVALID_WORKFLOW_STATE_ID0x80040262 = The specified workflow state database ID is invalid
E_EDM_INVALID_WORKFLOW_TRANSITION_ID0x80040261 = The specified workflow transition database ID is invalid
E_EDM_IO_ERROR0x80040228 = Error accessing the file
E_EDM_KEY_NOT_FOUND0x8004022B = The key you specified was not found in the collection
E_EDM_LABEL_ALREADY_EXIST0x80040302 = The label already exists
E_EDM_LOCAL_FILE_NOT_FOUND0x80040285 = The file is not present in the file vault cache folder on the client computer
E_EDM_LOCK_ERRORS0x80040266 = One or more documents could not be checked out
E_EDM_LOCKED0x800402B0 = The file is checked out
E_EDM_LOCKED_BY_ANOTHER_USER0x80040212 = The file is checked out by another user
E_EDM_LOCKED_IN_OTHER_FOLDER0x800402B0 = The file is checked out in another folder
E_EDM_LOCKED_ON_OTHER_COMPUTER0x80040215 = The file is checked out on another computer
E_EDM_LOGIN_FAILED0x80040200 = Login failed because of an invalid user name or password
E_EDM_LOGIN_LOCK0x8004024E = The system is locked due to maintenance
E_EDM_MAILSERVER_NOT_INSTALLED0x80040235 =  SOLIDWORKS PDM Professional Database Server is not installed on the database server; please contact your system administrator for assistance
E_EDM_MAPPING_FOUND0x8004020E = Could not remove the attribute class because it is used by a control in a file data card
E_EDM_MISSING_ATTRIBUTE0x8004020C = An attempt was made to access an attribute that is not present in the file
E_EDM_MISSING_CONISIO_MODULE0x80040272 = A required SOLIDWORKS PDM Professional module is not installed
E_EDM_MISSING_LOCAL_VIEW0x800402D5 = The vault must have a local view
E_EDM_MISSING_MANDATORY_VALUE0x80040236 = An attempt was made to save an empty value for a mandatory variable
E_EDM_MISSING_PLUGIN_COMPONENT0x80040245 = The file format plug-in cannot handle this file because a component is missing
E_EDM_MISSING_PTID0x8004025A = The registry variable PTID is missing; please reinstall the program
E_EDM_MISSING_SEARCH_PROC0x8004024F = The search card's stored procedure is missing in the database
E_EDM_MISSING_URL_PARAM0x8004026E = A required URL parameter is missing
E_EDM_MISSING_VIEW_INFO0x8004024C = Could not find registry information for this view; you might have to attach to this vault again to repair the registry
E_EDM_MOVE_FILE_PERMISSION_DENIED0x800402E4 = The user does not have permission to move the file.
E_EDM_NAME_ALREADY_EXISTS0x8004020F = An attempt was made to create a new file or folder with the same name as an existing one
E_EDM_NEED_MIGRATING0x80040249 = The file needs to be migrated for the operation to succeed
E_EDM_NO_ACTIVE_COLDSTORAGE_OPERATION0x80040276 = There are currently no active cold storage operations belonging to the calling archive server
E_EDM_NO_DOCTYPE0x8004025C = The document does not meet the conditions of any category
E_EDM_NO_MATCHING_PLUGIN0x8004022A = There is no matching plug-in
E_EDM_NO_REVISION_GENERATOR0x80040247 = The file is not connected to a revision generator
E_EDM_NO_REVISION_ON_REFERENCE0x80040237 = Cannot set revision because not all referenced files have revisions on the attached versions
E_EDM_NO_SECPKG_FOUND0x80040254 = Could not negotiate a security package to use between the server and the client
E_EDM_NO_WORKFLOW0x8004025D = The document does not meet the conditions of any workflow
E_EDM_NOT_A_COM_DLL0x800402CC = The DLL is not a COM module
E_EDM_NOT_AN_ADDIN_DLL0x800402CD = The DLL is not an SOLIDWORKS PDM Professional add-in; i.e., the IEdmAddIn5 interface is not implemented
E_EDM_NOT_INITIALIZED0x80040201 = The program used an object without properly initializing it
E_EDM_NOT_LATEST_VERSION0x800402E0 = Item must be checked out to perform this operation
E_EDM_NOT_LOGGED_IN0x80040204 = You have not logged into the file vault
E_EDM_NOT_POWER_USER0x80040246 = You are not logged in on Windows as a Power User or Administrator, which is required to run SOLIDWORKS PDM Professional
E_EDM_NULL_VALUE0x80040240 = A null value was returned where it was not expected
E_EDM_OPERATION_REFUSED_BY_PLUGIN0x8004021A = The operation was not permitted by one of the installed add-ins
E_EDM_OPERATION_UNSUPPORTED_BY_CONISIO_VERSION0x8004026B = The operation is not supported by your SOLIDWORKS PDM Professional license
E_EDM_PARENT_LOCKED_ELSEWHERE0x800402B1 = The file is referenced by a file that is checked out on another computer
E_EDM_PARENT_LOCKED_ELSEWHERE_WITHFILE0x80040300 = The file is referenced by a file, file_name, that is checked out on another computer
E_EDM_PASSWORD_NOT_EMPTY0x80040293 = The current login type does not allow passwords to be set
E_EDM_PATH_TOO_LONG0x80040271 = The path is too long
E_EDM_PERMISSION_DENIED0x80040203 = You do not have permission to perform this action
E_EDM_PICTURE_TOO_BIG0x800402E3 = The specified image is too big
E_EDM_PREVIEW_NOT_AVAILABLE0x800402BF = Preview is not available
E_EDM_PRODUCT_TIMEOUT0x800402D2 = Your version of SOLIDWORKS PDM Professional has expired; contact your SOLIDWORKS representative for a newer version
E_EDM_PROGRAM_VERSION_MISMATCH0x80040270 = The server and client are not of the same version
E_EDM_RCE_ERROR0x80040209 = Error accessing the revision management system; check your network connection
E_EDM_REFERENCE_EXISTS0x8004027B = The reference already exists
E_EDM_REVGEN_EXISTS0x8004025E = A revision number component with the specified name already exists
E_EDM_REVGENERATOR_IN_USE0x80040250 = The revision number component is currently being used by one or more revision numbers and cannot be deleted
E_EDM_REVISION_CHANGED0x80040253 = The revision number has been changed by another user
E_EDM_REVISION_NO_VERSION0x80040251 = An attempt was made to set a revision on a version newer than the documents latest version
E_EDM_REVISION_ON_OLD_VERSION0x80040238 = Cannot set revision on old version
E_EDM_REVNUM_EXISTS0x8004025F = A revision number with the specified name already exists
E_EDM_REVNUMBER_IN_USE0x80040255 = The revision number is currently associated with one or more states and cannot be deleted
E_EDM_ROLLBACK_ERRORS0x800402F7 = Rollback errors
E_EDM_ROLLBACK_FOLDER0x800402F8
E_EDM_ROLLBACK_PAST_COLDSTORED0x80040279 = The rollback operation cannot be performed because one of the versions that you are trying to remove is placed in cold storage
E_EDM_SERIAL_NUMBER_NAME_ALREADY_EXISTS0x800402AE = The serial number name is already in use
E_EDM_SERNO_USED_AS_ITEM_GEN0x800402C0 = The serial number cannot be deleted because it is used as an item number generator
E_EDM_SERVER_NOT_FOUND0x80040220 = The server was not found
E_EDM_SKIP_FILE0x80040273 = The user selected to skip processing of the current file and go on to the next one
E_EDM_SN_FILE_NOT_FOUND0x8004023B = Serial number file or add-in could not be found
E_EDM_SN_TYPE_OBSOLETE0x800402B2 = Serial numbers read from files are no longer supported; please open the serial number in the Administration tool and resave it as a list serial number
E_EDM_SQLSERVER_CANNOT_CONNECT0x800402C6 = Cannot connect to specified SQL server
E_EDM_SQLSERVER_LOGIN_FAILED0x800402C4 = Login failed because of an invalid SQL user name or password
E_EDM_SQLSERVER_UNSUPPORTED_VERSION0x8004027C = The SQL Server version is not supported by SOLIDWORKS PDM Professional; supported versions are SQL Server 2005 SP1 or later
E_EDM_STANDARD_APINOTSUPPORTED0x800402F2 = The API is not supported in SOLIDWORKS PDM standard version
E_EDM_STANDARD_FEATURENOTSUPPORTED0x800402ED = This feature is not supported in SOLIDWORKS PDM standard version
E_EDM_STANDARD_FEATURENOTSUPPORTED_REFERLOG0x800402F9 = This feature is not supported in SOLIDWORKS PDM standard version; refer to the log file for more information
E_EDM_STANDARD_PROFLOGINNOTSUPPORTED0x800402F3 = Login not supported
E_EDM_STANDARD_SQLEDITIONMISMATCH0x800402EC = Mismatch between SOLIDWORKS PDM standard version and Microsoft SQL
E_EDM_STATE_MULTIPLE_BLOCKING_WARNINGS_FOUND0x80040305 = Multiple blocking warnings found
E_EDM_STATE_MULTIPLE_WARNINGS_FOUND0x80040304 = Multiple warnings found
E_EDM_STATE_NOT_FOUND0x80040216 = The specified state does not exist
E_EDM_STATE_REFERRING_CRS_CONDITION0x80040303 = The workflow cannot be deleted since it is used in transition conditions
E_EDM_SWDRW_SETTO_USE_INDEPENDENT_REV_TABLE0x800402FF = Independent type revision setting is used in the drawing
E_EDM_SWFILE_MISSING_XMLSTREAM0x800402F5 = SOLIDWORKS file missing XML stream
E_EDM_SWSEC_LICENSE_CHECKIN_FAILED0x800402E7 = The check-in failed
E_EDM_SWSEC_LICENSE_CHECKIN_FAILED_PRO0x800402EF = Check-in failed in SOLIDWORKS PDM Professional
E_EDM_SWSEC_LICENSE_CHECKIN_FAILED_STD0x800402F1 = Check-in failed in SOLIDWORKS PDM standard version
E_EDM_SWSEC_LICENSE_CHECKOUT_FAILED0x800402E6 = Check-out failed
E_EDM_SWSEC_LICENSE_CHECKOUT_FAILED_PRO0x800402EE = Check-out failed in SOLIDWORKS PDM Professional
E_EDM_SWSEC_LICENSE_CHECKOUT_FAILED_STD0x800402F0 = Check-out failed in SOLIDWORKS PDM standard version
E_EDM_SWSEC_LICENSE_CONNECTION_LOST0x800402E9 = The connection was lost
E_EDM_SWSEC_LICENSE_SERVERQUERY_FAILED0x800402E8 = The server query failed
E_EDM_TEMPLATE_IMPORT_WITHOUT_LOCAL_VIEW0x800402F6 = Template imported iwthout local view
E_EDM_TOO_MANY_USERS0x80040248 = The licensed maximum number of simultaneously logged-in users would be exceeded by this log-in; this log-in was refused
E_EDM_TOOLBOX_FILE_LOCATED_IN_NONTOOLBOX_FOLDER0x800402FA = Toolbox file must be located in a Toolbox folder
E_EDM_TRANSITION_ACTION_FAILED0x80040234 = An error occurred when trying to execute a transition action
E_EDM_UNC_PATH_ADDIN_NOT_SUPPORTED0x800402DD =  Information cannot be retrieved from add-ins on a network drive; copy the file to the local hard disk and retry the operation
E_EDM_UNSUPPORTED_OS0x800402D3 = The version of the operating system is not supported
E_EDM_UNSUPPORTED_PROGRAM_VERSION0x8004023E = The program requires a higher version of SOLIDWORKS PDM Professional than the installed version
E_EDM_UNSUPPORTED_SN_TYPE0x8004026F = The serial number type is not supported
E_EDM_UPDATE_ATT_FAILED0x8004020D = Could not update attributes during check in
E_EDM_USER_BLOCKED0x80040265 = The administrator has blocked your login name in this file vault
E_EDM_USER_NAME_ALREADY_EXISTS0x8004028A = The user name already exists
E_EDM_USER_NAME_NOT_UNIQUE0x80040288 = The user name is not unique in the specified array of users
E_EDM_USER_NOT_FOUND_IN_ARCHIVE_SERVER0x80040292 = The user name does not exist in the archive server
E_EDM_VALUE_NOT_UNIQUE0x8004022C = An attempt was made to save a duplicate value when a unique value is required
E_EDM_VARIABLE_NOT_FOUND0x80040252 = The specified card variable is missing
E_EDM_VARIABLE_USED_IN_COLUMN0x80040244 = The variable cannot be deleted because it is used in a user-defined column
E_EDM_VARIABLE_USED_IN_EXPORT_SCRIPT0x800402AA = The variable cannot be deleted because it is used in a data export rule
E_EDM_VARIABLE_USED_IN_WORKFLOW_STATE0x800402EB = The variable cannot be deleted because it is used in a workflow state
E_EDM_VAULT_ALREADY_EXISTS0x8004024D = A vault with the same name already exists on the archive server
E_EDM_VERSION_MISMATCH0x8004022E = The versions of the program and the file vault are incompatible
E_EDM_WF_HAS_FILES0x8004024A = The workflow contains files and cannot be deleted
E_EDM_XREF_OUTSIDE_VAULT0x8004026C = One or more of the file's referenced files are outside the file vault
E_ITEM_CANNOT_COPY_ITEM0x800402BA = You have selected items to copy; the items cannot be copied because they must be unique within the system
E_ITEM_CYCLIC_REFERENCE0x800402CA =  Operation aborted because it would create a cyclic reference between items
E_ITEM_ILLEGAL_MOVE_REFERENCED_BY_EXTERNAL0x800402C8 = The object cannot be moved because the object or a sub-object is referenced by a locked item
E_ITEM_ILLEGAL_RENAME_REFERENCED_BY_EXTERNAL0x800402C9 = The object cannot be renamed because the object or a sub-object is referenced by a locked item
E_ITEM_INVALID_ITEM_TYPE0x800402BB = Invalid object type; only Item, ItemFolder, and files are supported by Item Explorer
E_ITEM_INVALID_LINK_OPERATION0x800402B8 = This operation cannot be performed on the selected items
E_ITEM_INVALID_LINK_TYPE0x800402B7 = Invalid link type; only two link types are supported by Item Explorer, static and auto-update
E_ITEM_INVALID_OBJECT0x800402BD = Item object contains corrupted data
E_ITEM_INVALID_SOURCE0x800402B5 = The selection contains items that are not valid for this operation
E_ITEM_INVALID_TARGET0x800402B4 = The destination object is invalid for this operation
E_ITEM_LINK_DUPLICATED0x800402B9 = The file is already added to this item
E_ITEM_LOCKED_ELSEWHERE0x800402DF = Item is locked on another computer
E_ITEM_MANY_DYN_LINKS0x800402B6 = This item already has an auto-update link attached to it; items can have only one auto-update link at a time
E_ITEM_NO_ITEM_GEN_DEFINED

0x800402BC = No serial number generator has been set up to generate item numbers. Please do the following:

+
    +
  1. Launch SOLIDWORKS PDM Professional Administration Tool. +
  2. Create a serial number. +
  3. Open the Items administration node and select the serial number.
E_ITEM_NOT_CONNECTED0x800402C1 = This item has no file linked or connected to it
E_ITEM_NOT_LOCKED0x800402DE = Item has to be checked out to perform this operation
E_ITEM_UP_TO_DATE0x800402BE = The item is up to date
+ +

Example

Client code can only access these return codes by handling the exception. For example, in C#: 

+
+

try
{
    // Some SOLIDWORKS PDM Professional call that results in an exception
}
catch (System.Runtime.InteropServices.ComException comEx)
{
    switch (comEx.ErrorCode)
    {
        case E_EDM_xxx:
            // respond to xxx
            break;
        case E_EDM_yyy:
            // respond to yyy
            break;
        default:
            // Unexpected or cannot be handled silently
            // Use IEdmVault5::GetErrorString or IEdmVault11::GetErrorMessage to prepare a message for the user or log
            break;
    }
}

+
+ +

Remarks

HRESULT return codes are supported by the SOLIDWORKS PDM Professional API. You can pass the HRESULT code to the method IEdmVault11::GetErrorMessage to get information about the code.

+

NOTES:

+
    +
  • Methods called from Visual Basic do not return the HRESULT code directly. Instead, the return codes are returned as an argument declared with the [retval] directive, if one exists. Visual Basic users can view the error codes returned by methods by implementing an error handler and checking the Number property of the Err object. The property is the HRESULT return code from the failing method. +
  • The values shown in this topic are written in C++ style hexadecimal notation. In VB.NET, the value 0x80040200 is written as &H80040200.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultSuccessCodes_e.html b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultSuccessCodes_e.html new file mode 100644 index 0000000..28480f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode.EdmResultSuccessCodes_e.html @@ -0,0 +1,154 @@ + + + + + + EdmResultSuccessCodes_e Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmResultSuccessCodes_e Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.EPDMResultCode Namespace + : EdmResultSuccessCodes_e Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Success codes. See EdmResultErrorCodes_e for error codes. +

Syntax

Visual Basic 
Public Enum EdmResultSuccessCodes_e 
+   Inherits System.Enum
+
C# 
public enum EdmResultSuccessCodes_e : System.Enum 
+
C++/CLI 
public enum class EdmResultSuccessCodes_e : public System.Enum 
+
+

Members

+ + + + + + + + + +
MemberDescription
S_EDM_32BIT_ADDIN

0x4023D = Retrieved information successfully from the 32-bit add-in

S_EDM_64BIT_ADDIN

0x4023E = Retrieved information successfully from the 64-bit add-in

S_EDM_FILES_NOT_UNIQUE_GLOBALLY

0x4023F = The vault has the Do not allow duplicate file names in the file vault or Do not allow duplicate file names with these extensions option selected, and a file with the same name or filename extension exists in the vault

S_EDM_INVALID_FILE

0x4023C = The file was handled, but the file format is not recognized

S_EDM_MENU_ITEM_NOT_APPLICABLE

0x40219 = Menu item not valid in this context due to flags set

S_EDM_REFRESH_LIST

0x40201 = Success; refresh the entire list

S_EDM_REFRESH_MENU

0x40218 = Administrated plug-ins successfully; you should now recreate the plug-in menu

S_EDM_REFRESH_TREE

0x40202 = Success; refresh the tree

S_EDM_TRY_AGAIN

0x40203 = Try the operation again

+ +

Example

Client code can only access these return codes by handling the exception. For example, in C#: 

+
+

try
{
    // Some SOLIDWORKS PDM Professional call that results in an exception
}
catch (System.Runtime.InteropServices.ComException comEx)
{
    switch (comEx.ErrorCode)
    {
        case S_EDM_xxx:
            // respond to xxx
            break;
        case S_EDM_yyy:
            // respond to yyy
            break;
        default:
            // Unexpected or cannot be handled silently
            // Use IEdmVault5::GetErrorString or IEdmVault11::GetErrorMessage to prepare a message for the user or log
            break;
    }
}

+
+ +

Remarks

HRESULT return codes are supported by the SOLIDWORKS PDM Professional API. You can pass the HRESULT code to the method IEdmVault11::GetErrorMessage to get information about the code. 

+

Client code can only access these success codes by handling the exception; i.e., via System.Runtime.InteropServices.ComException.  

+

NOTES:

+
    +
  • Methods called from Visual Basic do not return the HRESULT code directly. Instead, the return codes are returned as an argument declared with the [retval] directive, if one exists. Visual Basic users can view the error codes returned by methods by implementing an error handler and checking the Number property of the Err object. The property is the HRESULT return code from the failing method. +
  • The values shown in this topic are written in C++ style hexadecimal notation. In VB.NET, the value 0x80040200 is written as &H80040200.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace.html b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace.html new file mode 100644 index 0000000..cfa3fe7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace.html @@ -0,0 +1,94 @@ + + + + + + EPDM.Interop.EPDMResultCode Namespace + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EPDM.Interop.EPDMResultCode Namespace
+ See Also  + Inheritance Hierarchy
+ + + + + + + +
+
+ +
+
+
+ Success and error codes. + + + +

Enumerations

+ + +
EnumerationDescription
EdmResultErrorCodes_e Error codes. See EdmResultSuccessCodes_e for the success codes.
EdmResultSuccessCodes_e Success codes. See EdmResultErrorCodes_e for error codes.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace_hierarchy.html b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace_hierarchy.html new file mode 100644 index 0000000..9eecf5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.EPDMResultCode~EPDM.Interop.EPDMResultCode_namespace_hierarchy.html @@ -0,0 +1,103 @@ + + + + + + EPDM.Interop.EPDMResultCode Namespace Inheritance Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EPDM.Interop.EPDMResultCode Namespace Inheritance Hierarchy + +
+ See Also +
+ + + + +
+ + + + + +
+ +
+ +
+
+
+
+

Inheritance Hierarchy

System.Object
+ +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm.html b/documentation/api_extracted/EPDM.Interop.epdm.html new file mode 100644 index 0000000..d7316b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm.html @@ -0,0 +1,81 @@ + + + + + + Assembly Overview + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EPDM.Interop.epdm Assembly
+ + + + + + + +
+
+ +
+
+
+ + SOLIDWORKS PDM Professional API +

Namespaces

+ +
NamespaceDescription
EPDM.Interop.epdm SOLIDWORKS PDM Professional API
+ + + +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.CreateMenuFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.CreateMenuFlags.html new file mode 100644 index 0000000..4243a7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.CreateMenuFlags.html @@ -0,0 +1,148 @@ + + + + + + CreateMenuFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateMenuFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : CreateMenuFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of menu used in calls to IEdmVault5::CreatePluginMenu. Bitmask. +

Syntax

Visual Basic 
Public Enum CreateMenuFlags 
+   Inherits System.Enum
+
C# 
public enum CreateMenuFlags : System.Enum 
+
C++/CLI 
public enum class CreateMenuFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + +
MemberDescription
Cmf_AddMenuIcons32 = Adds toolbar button bitmaps to the menu
Cmf_AllItemsInSameFolder1 = All of the selected files and folders are located in the same parent folder
Cmf_ContextMenu8 = Context-sensitive menu; not a standard popup menu
Cmf_ContextMenuItem64 = Context-sensitive menu for an item
Cmf_ContextMenuItemFolder128 = Context-sensitive menu for an item folder
Cmf_DisableAddInReload16 = Prevent SOLIDWORKS PDM Professional from querying the database to check whether updates have been made to the number of installed add-ins; this can be used to optimize the execution when called several times in a row
Cmf_GrayOutInvalidItems4 = Disable menu items that are not currently applicable
Cmf_IncludeAdminReactors2 = Include the Administrate Add-ins command
Cmf_ItemToolsMenu256 = Tools > Item menu in the Item Explorer
Cmf_MenuBarAction512 = Actions menu in the File Explorer
Cmf_MenuBarDisplay2048 = Display menu in File Explorer
Cmf_MenuBarModify1024 = Modify menu in File Explorer
Cmf_MenuBarTools4096 = Tools menu in File Explorer
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddAddInFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddAddInFlags.html new file mode 100644 index 0000000..4a61cb5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddAddInFlags.html @@ -0,0 +1,138 @@ + + + + + + EdmAddAddInFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmAddAddInFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmAddAddInFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for adding add-ins. Used by IEdmAddInMgr5::AddAddIns. +

Syntax

Visual Basic 
Public Enum EdmAddAddInFlags 
+   Inherits System.Enum
+
C# 
public enum EdmAddAddInFlags : System.Enum 
+
C++/CLI 
public enum class EdmAddAddInFlags : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmAddin_AddAllFilesToOneAddIn1 = Add all of the files passed to IEdmAddInMgr5::AddAddIns to the same add-in; this is useful for creating an add-in that has both a 64-bit DLL and a 32-bit DLL
EdmAddin_Nothing0 = Attempt to create one add-in per file that is passed to IEdmAddInMgr5::AddAddIns
EdmAddin_ReplaceDuplicates2 = Replace an existing add-in that has the same COM class ID (CLSID) and package name; IEdmAddInMgr5::AddAddIns returns an error if the existing add-in has the same CLSID but a different package name
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddCallbackMsgID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddCallbackMsgID.html new file mode 100644 index 0000000..6c2662f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddCallbackMsgID.html @@ -0,0 +1,141 @@ + + + + + + EdmAddCallbackMsgID Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmAddCallbackMsgID Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmAddCallbackMsgID Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Message IDs used in the message box during an add operation. +

Syntax

Visual Basic 
Public Enum EdmAddCallbackMsgID 
+   Inherits System.Enum
+
C# 
public enum EdmAddCallbackMsgID : System.Enum 
+
C++/CLI 
public enum class EdmAddCallbackMsgID : public System.Enum 
+
+

Members

+ + + + + + +
MemberDescription
EdmAddMsg_ClearUnique2 = Copy over the existing file that has unique values?
EdmAddMsg_DeleteSource5 = Could not delete a source file during a move operation
EdmAddMsg_FileFmtReadError4 = File could not be read by the file format plugin
EdmAddMsg_GenericError0 = Generic error
EdmAddMsg_MissingPluginComponent3 = File format plugin component is missing
EdmAddMsg_ReplaceLocal1 = Replace the existing file with the same name?
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileDlgFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileDlgFlag.html new file mode 100644 index 0000000..5d2401c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileDlgFlag.html @@ -0,0 +1,136 @@ + + + + + + EdmAddFileDlgFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmAddFileDlgFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmAddFileDlgFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in IEdmBatchAdd2::ShowDlg to control the appearance of the dialog box. +

Syntax

Visual Basic 
Public Enum EdmAddFileDlgFlag 
+   Inherits System.Enum
+
C# 
public enum EdmAddFileDlgFlag : System.Enum 
+
C++/CLI 
public enum class EdmAddFileDlgFlag : public System.Enum 
+
+

Members

+ +
MemberDescription
Eafdf_Nothing0 = Default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo.html new file mode 100644 index 0000000..8fd5299 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmAddFileInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddFileInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddFileInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a file. + +

Syntax

Visual Basic 
Public Structure EdmAddFileInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmAddFileInfo : System.ValueType 
+
C++/CLI 
public value class EdmAddFileInfo : public System.ValueType 
+
+ + +

Example

struct EdmAddFileInfo{
  integer mlSrcDocumentID;
  integer mlSrcProjectID;
  string mbsPath;
  string mbsNewName;
  integer mlEdmAddFlags;
  integer mlFileID;
};

+ +
+

Example

+

Remarks

Returned by IEdmFolder6::AddFiles.
+ + + +

See Also

+

Availability

Version 6.0 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_fields.html new file mode 100644 index 0000000..3d0370c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmAddFileInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddFileInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAddFileInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsNewNameOptional new name of the added file.  
public FieldmbsPathFile system path to the source file.  
public FieldmlEdmAddFlagsFile add flags.  
public FieldmlFileIDID of the added file.  
public FieldmlSrcDocumentIDOptional source file ID.  
public FieldmlSrcProjectIDOptional ID of the source file's parent folder.   
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_members.html new file mode 100644 index 0000000..0f11b17 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmAddFileInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddFileInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAddFileInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsNewNameOptional new name of the added file.  
public FieldmbsPathFile system path to the source file.  
public FieldmlEdmAddFlagsFile add flags.  
public FieldmlFileIDID of the added file.  
public FieldmlSrcDocumentIDOptional source file ID.  
public FieldmlSrcProjectIDOptional ID of the source file's parent folder.   
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsNewName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsNewName.html new file mode 100644 index 0000000..4f38d35 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsNewName.html @@ -0,0 +1,150 @@ + + + + + + mbsNewName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsNewName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mbsNewName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Optional new name of the added file. +

Syntax

Visual Basic 
Public mbsNewName As System.String
+
C# 
public System.string mbsNewName
+
C++/CLI 
public:
+System.String^ mbsNewName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsPath.html new file mode 100644 index 0000000..95af055 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mbsPath.html @@ -0,0 +1,150 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File system path to the source file. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlEdmAddFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlEdmAddFlags.html new file mode 100644 index 0000000..11c4701 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlEdmAddFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmAddFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmAddFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mlEdmAddFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File add flags. +

Syntax

Visual Basic 
Public mlEdmAddFlags As System.Integer
+
C# 
public System.int mlEdmAddFlags
+
C++/CLI 
public:
+System.int mlEdmAddFlags
+ +

Field Value

Combination of EdmAddFlag bits.  IEdmFolder6::AddFiles returns the HRESULT code for the file add in this member. The code is S_OK (0) if the file add is successful.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlFileID.html new file mode 100644 index 0000000..713cdb0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the added file. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcDocumentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcDocumentID.html new file mode 100644 index 0000000..cb64d54 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcDocumentID.html @@ -0,0 +1,150 @@ + + + + + + mlSrcDocumentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlSrcDocumentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mlSrcDocumentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Optional source file ID. +

Syntax

Visual Basic 
Public mlSrcDocumentID As System.Integer
+
C# 
public System.int mlSrcDocumentID
+
C++/CLI 
public:
+System.int mlSrcDocumentID
+ +

Field Value

0, if the source file is a local file or located outside the file vault
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcProjectID.html new file mode 100644 index 0000000..1fdbae4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFileInfo~mlSrcProjectID.html @@ -0,0 +1,150 @@ + + + + + + mlSrcProjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlSrcProjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddFileInfo Structure + : mlSrcProjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Optional ID of the source file's parent folder.  +

Syntax

Visual Basic 
Public mlSrcProjectID As System.Integer
+
C# 
public System.int mlSrcProjectID
+
C++/CLI 
public:
+System.int mlSrcProjectID
+ +

Field Value

0, if the source file is located outside the file vault
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFlag.html new file mode 100644 index 0000000..685a9ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddFlag.html @@ -0,0 +1,145 @@ + + + + + + EdmAddFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmAddFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmAddFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for adding a file to a folder to the vault, copying a file or folder within the vault, or copying/moving a tree of files and folders. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmAddFlag 
+   Inherits System.Enum
+
C# 
public enum EdmAddFlag : System.Enum 
+
C++/CLI 
public enum class EdmAddFlag : public System.Enum 
+
+

Members

+ + + + + + + + + + +
MemberDescription
EdmAdd_DeleteSource64 = Delete the source file once it has been added to the vault
EdmAdd_DoNotCopy512 = Do not physically copy the file during the add operations because the file has already been copied
EdmAdd_DontAddCorrupt2 = Refuse to add corrupt files; IEdmFolder5::AddFile returns the error code E_EDM_INVALID_FILE
EdmAdd_ForceGenerateSerialNumbers128 = Force regeneration of serial numbers when values already exist; if this flag is not set, SOLIDWORKS PDM Professional will only generate values that are missing in the file
EdmAdd_GetInterface256 = Return the file interface; only works with IEdmBatchAdd
EdmAdd_KeepExistingSerialNumbers4 = Do not replace existing serial numbers with new ones; SOLIDWORKS PDM Professional still creates serial numbers for empty fields; if this flag is not set, SOLIDWORKS PDM Professional writes over existing serial numbers with new ones
EdmAdd_Refresh1 = Make all file listings in File Explorer and Open/Save As dialog boxes refresh so that the new file is displayed
EdmAdd_Simple0 = Add the file
EdmAdd_UniqueVarClearDuplicate16 = Clear duplicated unique constrained variables instead of failing
EdmAdd_UniqueVarDelayCheck32 = Delay the unique variable check until the next check-in
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo.html new file mode 100644 index 0000000..41f0ec4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmAddInFileInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInFileInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInFileInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a single file in an add-in package. + +

Syntax

Visual Basic 
Public Structure EdmAddInFileInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmAddInFileInfo : System.ValueType 
+
C++/CLI 
public value class EdmAddInFileInfo : public System.ValueType 
+
+ + +

Example

struct EdmAddInFileInfo{
  string  mbsFileName;
  integer mlEdmAddInFileInfoFlags;
};

+ +
+

Example

+

Remarks

Returned by IEdmAddInMgr8.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfoFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfoFlags.html new file mode 100644 index 0000000..48a6749 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfoFlags.html @@ -0,0 +1,140 @@ + + + + + + EdmAddInFileInfoFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmAddInFileInfoFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmAddInFileInfoFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of file in the add-in package used in EdmAddInFileInfo. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmAddInFileInfoFlags 
+   Inherits System.Enum
+
C# 
public enum EdmAddInFileInfoFlags : System.Enum 
+
C++/CLI 
public enum class EdmAddInFileInfoFlags : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
EdmAdfif_AddInObject322 = File contains the 32-bit IEdmAddIn5 implementation; the code is used only in combination with EdmAdfif_ComDLL32
EdmAdfif_AddInObject648 = File contains the 64-bit IEdmAddIn5 implementation; the code is used only in combination with EdmAdfif_ComDLL64
EdmAdfif_ComDll321 = File should be COM-registered in a 32-bit process
EdmAdfif_ComDll644 = File should be COM-registered in a 64-bit process
EdmAdfif_DataFile0 = Data file that is copied and maintained but not otherwise used by SOLIDWORKS PDM Professional
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_fields.html new file mode 100644 index 0000000..f3f08bb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmAddInFileInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInFileInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAddInFileInfo members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsFileNameContains the add-in file name.  
public FieldmlEdmAddInFileInfoFlagsAdd-in file information flags.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_members.html new file mode 100644 index 0000000..a42abec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo_members.html @@ -0,0 +1,162 @@ + + + + + + EdmAddInFileInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInFileInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAddInFileInfo.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsFileNameContains the add-in file name.  
public FieldmlEdmAddInFileInfoFlagsAdd-in file information flags.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mbsFileName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mbsFileName.html new file mode 100644 index 0000000..9b454a7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mbsFileName.html @@ -0,0 +1,150 @@ + + + + + + mbsFileName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsFileName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInFileInfo Structure + : mbsFileName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains the add-in file name. +

Syntax

Visual Basic 
Public mbsFileName As System.String
+
C# 
public System.string mbsFileName
+
C++/CLI 
public:
+System.String^ mbsFileName
+ +

Field Value

File name, if the bsExtractPath argument to IEdmAddInMgr8::ExtractInstalledAddIn is specified, or the complete path to the file, if an extract folder is not specified
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mlEdmAddInFileInfoFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mlEdmAddInFileInfoFlags.html new file mode 100644 index 0000000..1a9d863 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInFileInfo~mlEdmAddInFileInfoFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmAddInFileInfoFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmAddInFileInfoFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInFileInfo Structure + : mlEdmAddInFileInfoFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Add-in file information flags. +

Syntax

Visual Basic 
Public mlEdmAddInFileInfoFlags As System.Integer
+
C# 
public System.int mlEdmAddInFileInfoFlags
+
C++/CLI 
public:
+System.int mlEdmAddInFileInfoFlags
+ +

Field Value

Combination of EdmAddInFileInfoFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo.html new file mode 100644 index 0000000..97b8391 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo.html @@ -0,0 +1,164 @@ + + + + + + EdmAddInInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Provides SOLIDWORKS PDM Professional with information about your add-in.  + +

Syntax

Visual Basic 
Public Structure EdmAddInInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmAddInInfo : System.ValueType 
+
C++/CLI 
public value class EdmAddInInfo : public System.ValueType 
+
+ + +

Example

struct EdmAddInInfo{
  string mbsAddInName;
  string mbsCompany;
  string mbsDescription;
  integer mlAddInVersion;
  integer mlRequiredVersionMajor;
  integer mlRequiredVersionMinor;
};

+ +
+

Example

+

Remarks

Returned by IEdmAddIn5::GetAddInInfo.

+

The data is displayed in the Administrate Add-ins dialog box. If your add-in relies on features in a specific version of SOLIDWORKS PDM Professional, make it impossible to load the add-in in older versions of SOLIDWORKS PDM Professional by populating the mlRequiredVersionMajor and mlRequiredVersionMinor members.

+

C++ programmers must set string members to strings allocated with the Win32 function SysAllocString.

+ + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2.html new file mode 100644 index 0000000..0e52e7b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2.html @@ -0,0 +1,179 @@ + + + + + + EdmAddInInfo2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Provides SOLIDWORKS PDM Professional with information about your add-in. + +

Syntax

Visual Basic 
Public Structure EdmAddInInfo2 
+   Inherits System.ValueType
+
C# 
public struct EdmAddInInfo2 : System.ValueType 
+
C++/CLI 
public value class EdmAddInInfo2 : public System.ValueType 
+
+ + +

Example

struct EdmAddInInfo2{
  string mbsAddInName;
  string mbsCompany;
  string mbsDescription;
  integer mlAddInVersion;
  integer mlRequiredVersionMajor;
  integer mlRequiredVersionMinor;
  string mbsClassID;
  string mbsModulePath;
};

+ +
+

Example

+

Remarks

Extends EdmAddInInfo and is returned by IEdmAddInMgr6::GetAddInInfo2.

+

The data is displayed in the Administrate Add-ins dialog box. If your add-in relies on features in a specific version of SOLIDWORKS PDM Professional, make it impossible to load the add-in in older versions of SOLIDWORKS PDM Professional by populating the mlRequiredVersionMajor and mlRequiredVersionMinor members.

+

If your add-in relies on features in a specific version of SOLIDWORKS PDM Professional, make it impossible to load the add-in in other versions of SOLIDWORKS PDM Professional by populating the mlRequiredVersionMajor and mlRequiredVersionMinor members.

+ + + + + + + + + + + + + + + + + + +
To restrict your add-in to run only in PDM Pro version...Populate mlRequiredVersionMajor with...Populate mlRequiredVersionMinor with...
2019 SP05275
2020 SP03283
2021 SP0290
+

In general, you can find the major and minor versions for the PDM client version you are running in the Build number field of SOLIDWORKS PDM Administration Tool's Help > About.

+

C++ programmers must set string members to strings allocated with the Win32 function SysAllocString.

+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_fields.html new file mode 100644 index 0000000..26b45f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_fields.html @@ -0,0 +1,141 @@ + + + + + + EdmAddInInfo2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAddInInfo2 members.

+ + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsAddInNameName of add-in.  
public FieldmbsClassIDID of class that implements IEdmAddIn5.  
public FieldmbsCompanyCompany that wrote the add-in.  
public FieldmbsDescriptionDescription of add-in.  
public FieldmbsModulePathPath to the DLL that implements the add-in.  
public FieldmlAddInVersionAdd-in version number.  
public FieldmlRequiredVersionMajorRequired SOLIDWORKS PDM Professional major version.  
public FieldmlRequiredVersionMinorRequired SOLIDWORKS PDM Professional minor version.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_members.html new file mode 100644 index 0000000..c483b68 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2_members.html @@ -0,0 +1,168 @@ + + + + + + EdmAddInInfo2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAddInInfo2.

+ + + + + + + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsAddInNameName of add-in.  
public FieldmbsClassIDID of class that implements IEdmAddIn5.  
public FieldmbsCompanyCompany that wrote the add-in.  
public FieldmbsDescriptionDescription of add-in.  
public FieldmbsModulePathPath to the DLL that implements the add-in.  
public FieldmlAddInVersionAdd-in version number.  
public FieldmlRequiredVersionMajorRequired SOLIDWORKS PDM Professional major version.  
public FieldmlRequiredVersionMinorRequired SOLIDWORKS PDM Professional minor version.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsAddInName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsAddInName.html new file mode 100644 index 0000000..2ae0eb0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsAddInName.html @@ -0,0 +1,150 @@ + + + + + + mbsAddInName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsAddInName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mbsAddInName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of add-in. +

Syntax

Visual Basic 
Public mbsAddInName As System.String
+
C# 
public System.string mbsAddInName
+
C++/CLI 
public:
+System.String^ mbsAddInName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsClassID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsClassID.html new file mode 100644 index 0000000..58c1d71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsClassID.html @@ -0,0 +1,150 @@ + + + + + + mbsClassID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsClassID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mbsClassID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of class that implements IEdmAddIn5. +

Syntax

Visual Basic 
Public mbsClassID As System.String
+
C# 
public System.string mbsClassID
+
C++/CLI 
public:
+System.String^ mbsClassID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsCompany.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsCompany.html new file mode 100644 index 0000000..d651f6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsCompany.html @@ -0,0 +1,150 @@ + + + + + + mbsCompany Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCompany Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mbsCompany Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Company that wrote the add-in. +

Syntax

Visual Basic 
Public mbsCompany As System.String
+
C# 
public System.string mbsCompany
+
C++/CLI 
public:
+System.String^ mbsCompany
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsDescription.html new file mode 100644 index 0000000..88706fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsDescription.html @@ -0,0 +1,150 @@ + + + + + + mbsDescription Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsDescription Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mbsDescription Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Description of add-in. +

Syntax

Visual Basic 
Public mbsDescription As System.String
+
C# 
public System.string mbsDescription
+
C++/CLI 
public:
+System.String^ mbsDescription
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsModulePath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsModulePath.html new file mode 100644 index 0000000..e4249ea --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mbsModulePath.html @@ -0,0 +1,150 @@ + + + + + + mbsModulePath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsModulePath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mbsModulePath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the DLL that implements the add-in. +

Syntax

Visual Basic 
Public mbsModulePath As System.String
+
C# 
public System.string mbsModulePath
+
C++/CLI 
public:
+System.String^ mbsModulePath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlAddInVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlAddInVersion.html new file mode 100644 index 0000000..c03a752 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlAddInVersion.html @@ -0,0 +1,150 @@ + + + + + + mlAddInVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlAddInVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mlAddInVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Add-in version number. +

Syntax

Visual Basic 
Public mlAddInVersion As System.Integer
+
C# 
public System.int mlAddInVersion
+
C++/CLI 
public:
+System.int mlAddInVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMajor.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMajor.html new file mode 100644 index 0000000..ff3e718 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMajor.html @@ -0,0 +1,150 @@ + + + + + + mlRequiredVersionMajor Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRequiredVersionMajor Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mlRequiredVersionMajor Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Required SOLIDWORKS PDM Professional major version. +

Syntax

Visual Basic 
Public mlRequiredVersionMajor As System.Integer
+
C# 
public System.int mlRequiredVersionMajor
+
C++/CLI 
public:
+System.int mlRequiredVersionMajor
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMinor.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMinor.html new file mode 100644 index 0000000..0215624 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo2~mlRequiredVersionMinor.html @@ -0,0 +1,150 @@ + + + + + + mlRequiredVersionMinor Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRequiredVersionMinor Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo2 Structure + : mlRequiredVersionMinor Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Required SOLIDWORKS PDM Professional minor version. +

Syntax

Visual Basic 
Public mlRequiredVersionMinor As System.Integer
+
C# 
public System.int mlRequiredVersionMinor
+
C++/CLI 
public:
+System.int mlRequiredVersionMinor
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_fields.html new file mode 100644 index 0000000..d43a1fb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmAddInInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAddInInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsAddInNameName of your add-in.  
public FieldmbsCompanyName of your company.  
public FieldmbsDescriptionDescription, purpose, or use of your add-in.  
public FieldmlAddInVersionVersion of your add-in.  
public FieldmlRequiredVersionMajorRequired SOLIDWORKS PDM Professional major version.  
public FieldmlRequiredVersionMinorRequired SOLIDWORKS PDM Professional minor version.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_members.html new file mode 100644 index 0000000..2df67c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmAddInInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAddInInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsAddInNameName of your add-in.  
public FieldmbsCompanyName of your company.  
public FieldmbsDescriptionDescription, purpose, or use of your add-in.  
public FieldmlAddInVersionVersion of your add-in.  
public FieldmlRequiredVersionMajorRequired SOLIDWORKS PDM Professional major version.  
public FieldmlRequiredVersionMinorRequired SOLIDWORKS PDM Professional minor version.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsAddInName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsAddInName.html new file mode 100644 index 0000000..7ec051d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsAddInName.html @@ -0,0 +1,150 @@ + + + + + + mbsAddInName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsAddInName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mbsAddInName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of your add-in. +

Syntax

Visual Basic 
Public mbsAddInName As System.String
+
C# 
public System.string mbsAddInName
+
C++/CLI 
public:
+System.String^ mbsAddInName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsCompany.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsCompany.html new file mode 100644 index 0000000..9137495 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsCompany.html @@ -0,0 +1,150 @@ + + + + + + mbsCompany Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCompany Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mbsCompany Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of your company. +

Syntax

Visual Basic 
Public mbsCompany As System.String
+
C# 
public System.string mbsCompany
+
C++/CLI 
public:
+System.String^ mbsCompany
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsDescription.html new file mode 100644 index 0000000..c71ef9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mbsDescription.html @@ -0,0 +1,150 @@ + + + + + + mbsDescription Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsDescription Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mbsDescription Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Description, purpose, or use of your add-in. +

Syntax

Visual Basic 
Public mbsDescription As System.String
+
C# 
public System.string mbsDescription
+
C++/CLI 
public:
+System.String^ mbsDescription
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlAddInVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlAddInVersion.html new file mode 100644 index 0000000..1245d91 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlAddInVersion.html @@ -0,0 +1,150 @@ + + + + + + mlAddInVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlAddInVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mlAddInVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of your add-in. +

Syntax

Visual Basic 
Public mlAddInVersion As System.Integer
+
C# 
public System.int mlAddInVersion
+
C++/CLI 
public:
+System.int mlAddInVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMajor.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMajor.html new file mode 100644 index 0000000..4e0775d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMajor.html @@ -0,0 +1,150 @@ + + + + + + mlRequiredVersionMajor Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRequiredVersionMajor Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mlRequiredVersionMajor Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Required SOLIDWORKS PDM Professional major version. +

Syntax

Visual Basic 
Public mlRequiredVersionMajor As System.Integer
+
C# 
public System.int mlRequiredVersionMajor
+
C++/CLI 
public:
+System.int mlRequiredVersionMajor
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMinor.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMinor.html new file mode 100644 index 0000000..de02fc7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInInfo~mlRequiredVersionMinor.html @@ -0,0 +1,150 @@ + + + + + + mlRequiredVersionMinor Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRequiredVersionMinor Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInInfo Structure + : mlRequiredVersionMinor Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Required SOLIDWORKS PDM Professional minor version. +

Syntax

Visual Basic 
Public mlRequiredVersionMinor As System.Integer
+
C# 
public System.int mlRequiredVersionMinor
+
C++/CLI 
public:
+System.int mlRequiredVersionMinor
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo.html new file mode 100644 index 0000000..b0e86fd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmAddInMenuInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInMenuInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInMenuInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a menu command implemented by an add-in. + +

Syntax

Visual Basic 
Public Structure EdmAddInMenuInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmAddInMenuInfo : System.ValueType 
+
C++/CLI 
public value class EdmAddInMenuInfo : public System.ValueType 
+
+ + +

Example

struct EdmAddInMenuInfo{
  integer  mlCmdID;
  integer  mlEdmMenuFlags;
  integer  mlToolbarButtonIndex;
  integer  mlToolbarImageID;
  string  mbsMenuStr;
  string  mbsStatusBarHelp;
  string  mbsToolbarToolTip;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_fields.html new file mode 100644 index 0000000..71b0990 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_fields.html @@ -0,0 +1,140 @@ + + + + + + EdmAddInMenuInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInMenuInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInMenuInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAddInMenuInfo members.

+ + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsMenuStrString to display in menu.  
public FieldmbsStatusBarHelpStatus bar help for the command.  
public FieldmbsToolbarToolTipTooltip to show for the toolbar button.  
public FieldmlCmdIDID of the command.  
public FieldmlEdmMenuFlagsMenu flags.  
public FieldmlToolbarButtonIndexIndex of the toolbar image in a resource containing multiple images.  
public FieldmlToolbarImageIDID of an image added via IEdmCmdMgr5::AddToolbarImage.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_members.html new file mode 100644 index 0000000..a3ecc1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo_members.html @@ -0,0 +1,167 @@ + + + + + + EdmAddInMenuInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAddInMenuInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAddInMenuInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAddInMenuInfo.

+ + + + + + + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsMenuStrString to display in menu.  
public FieldmbsStatusBarHelpStatus bar help for the command.  
public FieldmbsToolbarToolTipTooltip to show for the toolbar button.  
public FieldmlCmdIDID of the command.  
public FieldmlEdmMenuFlagsMenu flags.  
public FieldmlToolbarButtonIndexIndex of the toolbar image in a resource containing multiple images.  
public FieldmlToolbarImageIDID of an image added via IEdmCmdMgr5::AddToolbarImage.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsMenuStr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsMenuStr.html new file mode 100644 index 0000000..f07a0a3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsMenuStr.html @@ -0,0 +1,150 @@ + + + + + + mbsMenuStr Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsMenuStr Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mbsMenuStr Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + String to display in menu. +

Syntax

Visual Basic 
Public mbsMenuStr As System.String
+
C# 
public System.string mbsMenuStr
+
C++/CLI 
public:
+System.String^ mbsMenuStr
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsStatusBarHelp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsStatusBarHelp.html new file mode 100644 index 0000000..90dd63a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsStatusBarHelp.html @@ -0,0 +1,150 @@ + + + + + + mbsStatusBarHelp Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStatusBarHelp Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mbsStatusBarHelp Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status bar help for the command. +

Syntax

Visual Basic 
Public mbsStatusBarHelp As System.String
+
C# 
public System.string mbsStatusBarHelp
+
C++/CLI 
public:
+System.String^ mbsStatusBarHelp
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsToolbarToolTip.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsToolbarToolTip.html new file mode 100644 index 0000000..b9490d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mbsToolbarToolTip.html @@ -0,0 +1,150 @@ + + + + + + mbsToolbarToolTip Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsToolbarToolTip Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mbsToolbarToolTip Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Tooltip to show for the toolbar button. +

Syntax

Visual Basic 
Public mbsToolbarToolTip As System.String
+
C# 
public System.string mbsToolbarToolTip
+
C++/CLI 
public:
+System.String^ mbsToolbarToolTip
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlCmdID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlCmdID.html new file mode 100644 index 0000000..79701be --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlCmdID.html @@ -0,0 +1,150 @@ + + + + + + mlCmdID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCmdID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mlCmdID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the command. +

Syntax

Visual Basic 
Public mlCmdID As System.Integer
+
C# 
public System.int mlCmdID
+
C++/CLI 
public:
+System.int mlCmdID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlEdmMenuFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlEdmMenuFlags.html new file mode 100644 index 0000000..57b1b06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlEdmMenuFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmMenuFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmMenuFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mlEdmMenuFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Menu flags. +

Syntax

Visual Basic 
Public mlEdmMenuFlags As System.Integer
+
C# 
public System.int mlEdmMenuFlags
+
C++/CLI 
public:
+System.int mlEdmMenuFlags
+ +

Field Value

 Combination of EdmMenuFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarButtonIndex.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarButtonIndex.html new file mode 100644 index 0000000..fc6aee1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarButtonIndex.html @@ -0,0 +1,150 @@ + + + + + + mlToolbarButtonIndex Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlToolbarButtonIndex Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mlToolbarButtonIndex Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Index of the toolbar image in a resource containing multiple images. +

Syntax

Visual Basic 
Public mlToolbarButtonIndex As System.Integer
+
C# 
public System.int mlToolbarButtonIndex
+
C++/CLI 
public:
+System.int mlToolbarButtonIndex
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarImageID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarImageID.html new file mode 100644 index 0000000..f8772ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAddInMenuInfo~mlToolbarImageID.html @@ -0,0 +1,150 @@ + + + + + + mlToolbarImageID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlToolbarImageID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAddInMenuInfo Structure + : mlToolbarImageID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of an image added via IEdmCmdMgr5::AddToolbarImage. +

Syntax

Visual Basic 
Public mlToolbarImageID As System.Integer
+
C# 
public System.int mlToolbarImageID
+
C++/CLI 
public:
+System.int mlToolbarImageID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData.html new file mode 100644 index 0000000..a85b2df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData.html @@ -0,0 +1,156 @@ + + + + + + EdmAttributeData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAttributeData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAttributeData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about an attribute mapping in a variable (EdmVariableData). + +

Syntax

Visual Basic 
Public Structure EdmAttributeData 
+   Inherits System.ValueType
+
C# 
public struct EdmAttributeData : System.ValueType 
+
C++/CLI 
public value class EdmAttributeData : public System.ValueType 
+
+ + +

Example

struct EdmAttributeData{
  string mbsAttribName;
  string mbsBlockName;
  string mbsExtensions;
};

+ +
+

Example

+

Remarks

 Used by IEdmVariableMgr6::AddVariables to create new variables.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_fields.html new file mode 100644 index 0000000..b65599e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmAttributeData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAttributeData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAttributeData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmAttributeData members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsAttribNameName of attribute in block.  
public FieldmbsBlockNameName of block that contains the attribute.  
public FieldmbsExtensionsComma-delimited list of file extensions of file types where to find this attribute, e.g., "sldasm, sldprt".  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_members.html new file mode 100644 index 0000000..4989309 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData_members.html @@ -0,0 +1,163 @@ + + + + + + EdmAttributeData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmAttributeData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmAttributeData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmAttributeData.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsAttribNameName of attribute in block.  
public FieldmbsBlockNameName of block that contains the attribute.  
public FieldmbsExtensionsComma-delimited list of file extensions of file types where to find this attribute, e.g., "sldasm, sldprt".  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsAttribName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsAttribName.html new file mode 100644 index 0000000..5a1cca2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsAttribName.html @@ -0,0 +1,150 @@ + + + + + + mbsAttribName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsAttribName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAttributeData Structure + : mbsAttribName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of attribute in block. +

Syntax

Visual Basic 
Public mbsAttribName As System.String
+
C# 
public System.string mbsAttribName
+
C++/CLI 
public:
+System.String^ mbsAttribName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsBlockName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsBlockName.html new file mode 100644 index 0000000..5a1b95e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsBlockName.html @@ -0,0 +1,150 @@ + + + + + + mbsBlockName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsBlockName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAttributeData Structure + : mbsBlockName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of block that contains the attribute. +

Syntax

Visual Basic 
Public mbsBlockName As System.String
+
C# 
public System.string mbsBlockName
+
C++/CLI 
public:
+System.String^ mbsBlockName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsExtensions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsExtensions.html new file mode 100644 index 0000000..745e472 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmAttributeData~mbsExtensions.html @@ -0,0 +1,150 @@ + + + + + + mbsExtensions Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsExtensions Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmAttributeData Structure + : mbsExtensions Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Comma-delimited list of file extensions of file types where to find this attribute, e.g., "sldasm, sldprt". +

Syntax

Visual Basic 
Public mbsExtensions As System.String
+
C# 
public System.string mbsExtensions
+
C++/CLI 
public:
+System.String^ mbsExtensions
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFlag.html new file mode 100644 index 0000000..3eade2d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmBatchAddFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBatchAddFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBatchAddFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used by IEdmBatchAdd::CommitAdd. +

Syntax

Visual Basic 
Public Enum EdmBatchAddFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBatchAddFlag : System.Enum 
+
C++/CLI 
public enum class EdmBatchAddFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmBaf_Nothing0 = Default behavior
EdmBaf_ReplaceDuplicateFiles1 = Replace existing files instead of skipping them
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFolderFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFolderFlag.html new file mode 100644 index 0000000..f6e237b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchAddFolderFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmBatchAddFolderFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBatchAddFolderFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBatchAddFolderFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used by IEdmBatchAddFolders::AddFolder to specify the behavior of the added folder. +

Syntax

Visual Basic 
Public Enum EdmBatchAddFolderFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBatchAddFolderFlag : System.Enum 
+
C++/CLI 
public enum class EdmBatchAddFolderFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Ebaff_DisableRefresh2 = Disable the automatic refresh of folder listings in File Explorer
Ebaff_GetInterface1 = Return IEdmFolder6 for the folder in the EdmFolderInfo structure that is returned by IEdmBatchAddFolders::Create
Ebaff_Nothing0 = Standard behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchCreateFolderFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchCreateFolderFlag.html new file mode 100644 index 0000000..91b4e9a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchCreateFolderFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmBatchCreateFolderFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBatchCreateFolderFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBatchCreateFolderFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used by IEdmBatchAddFolders::Create. +

Syntax

Visual Basic 
Public Enum EdmBatchCreateFolderFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBatchCreateFolderFlag : System.Enum 
+
C++/CLI 
public enum class EdmBatchCreateFolderFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
Ebcf_Nothing0 = Default behavior
Ebcf_RenameExistingRoots1 = If this flag is specified, and one of the folders added with IEdmBatchAddFolders::AddFolder already exists in the file vault, the folder is added and renamed to "Copy of Xxxx", where "Xxxx" is the original name. If this flag is not set, the original folder is returned.
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo.html new file mode 100644 index 0000000..afdcb68 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmBatchDelErrInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchDelErrInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchDelErrInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about an error that occurred during execution of IEdmBatchDelete::CommitDelete. + +

Syntax

Visual Basic 
Public Structure EdmBatchDelErrInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmBatchDelErrInfo : System.ValueType 
+
C++/CLI 
public value class EdmBatchDelErrInfo : public System.ValueType 
+
+ + +

Example

struct EdmBatchDelErrInfo{
  integer mlDocID;
  integer mlProjID;
  string mbsPathName;
  integer mlErrorCode;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

Version 12.0 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_fields.html new file mode 100644 index 0000000..22e1197 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmBatchDelErrInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchDelErrInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchDelErrInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBatchDelErrInfo members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsPathNameFile system path to the file or folder.  
public FieldmlDocIDID of the document.  
public FieldmlErrorCodeError code.  
public FieldmlProjIDID of the folder.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_members.html new file mode 100644 index 0000000..f5d5c29 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo_members.html @@ -0,0 +1,164 @@ + + + + + + EdmBatchDelErrInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchDelErrInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchDelErrInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBatchDelErrInfo.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsPathNameFile system path to the file or folder.  
public FieldmlDocIDID of the document.  
public FieldmlErrorCodeError code.  
public FieldmlProjIDID of the folder.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mbsPathName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mbsPathName.html new file mode 100644 index 0000000..402ca97 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mbsPathName.html @@ -0,0 +1,150 @@ + + + + + + mbsPathName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPathName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchDelErrInfo Structure + : mbsPathName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File system path to the file or folder. +

Syntax

Visual Basic 
Public mbsPathName As System.String
+
C# 
public System.string mbsPathName
+
C++/CLI 
public:
+System.String^ mbsPathName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlDocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlDocID.html new file mode 100644 index 0000000..7290480 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlDocID.html @@ -0,0 +1,150 @@ + + + + + + mlDocID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlDocID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchDelErrInfo Structure + : mlDocID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the document. +

Syntax

Visual Basic 
Public mlDocID As System.Integer
+
C# 
public System.int mlDocID
+
C++/CLI 
public:
+System.int mlDocID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlErrorCode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlErrorCode.html new file mode 100644 index 0000000..221b074 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlErrorCode.html @@ -0,0 +1,152 @@ + + + + + + mlErrorCode Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlErrorCode Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchDelErrInfo Structure + : mlErrorCode Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Error code. +

Syntax

Visual Basic 
Public mlErrorCode As System.Integer
+
C# 
public System.int mlErrorCode
+
C++/CLI 
public:
+System.int mlErrorCode
+ +
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlProjID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlProjID.html new file mode 100644 index 0000000..29dadb1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchDelErrInfo~mlProjID.html @@ -0,0 +1,150 @@ + + + + + + mlProjID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlProjID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchDelErrInfo Structure + : mlProjID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the folder. +

Syntax

Visual Basic 
Public mlProjID As System.Integer
+
C# 
public System.int mlProjID
+
C++/CLI 
public:
+System.int mlProjID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError.html new file mode 100644 index 0000000..88f22e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError.html @@ -0,0 +1,154 @@ + + + + + + EdmBatchError Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains error information. + +

Syntax

Visual Basic 
Public Structure EdmBatchError 
+   Inherits System.ValueType
+
C# 
public struct EdmBatchError : System.ValueType 
+
C++/CLI 
public value class EdmBatchError : public System.ValueType 
+
+ + +

Example

struct EdmBatchError{
  integer mlFileID;
  integer mlVariableID;
  integer mlErrorCode;
};

+ +
+ +

Remarks

+ + + +

See Also

+

Availability

Version 6.2 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2.html new file mode 100644 index 0000000..36e0111 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2.html @@ -0,0 +1,156 @@ + + + + + + EdmBatchError2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains error information. + +

Syntax

Visual Basic 
Public Structure EdmBatchError2 
+   Inherits System.ValueType
+
C# 
public struct EdmBatchError2 : System.ValueType 
+
C++/CLI 
public value class EdmBatchError2 : public System.ValueType 
+
+ + +

Example

struct EdmBatchError2{
  integer mlFileID;
  integer mlFolderID;
  integer mlVariableID;
  integer mlErrorCode;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_fields.html new file mode 100644 index 0000000..ce4123d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmBatchError2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBatchError2 members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmlErrorCodeError code.  
public FieldmlFileIDID of the file that caused the error.  
public FieldmlFolderIDID of folder that caused the error.  
public FieldmlVariableIDID of the variable affected by the error.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_members.html new file mode 100644 index 0000000..3d7b6f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2_members.html @@ -0,0 +1,164 @@ + + + + + + EdmBatchError2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBatchError2.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmlErrorCodeError code.  
public FieldmlFileIDID of the file that caused the error.  
public FieldmlFolderIDID of folder that caused the error.  
public FieldmlVariableIDID of the variable affected by the error.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlErrorCode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlErrorCode.html new file mode 100644 index 0000000..21cbf96 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlErrorCode.html @@ -0,0 +1,150 @@ + + + + + + mlErrorCode Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlErrorCode Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError2 Structure + : mlErrorCode Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Error code. +

Syntax

Visual Basic 
Public mlErrorCode As System.Integer
+
C# 
public System.int mlErrorCode
+
C++/CLI 
public:
+System.int mlErrorCode
+ +
+ + + + + +

Remarks

Call IEdmVault5::GetErrorString to get the name and description of the error.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFileID.html new file mode 100644 index 0000000..459b229 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError2 Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file that caused the error. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +

Field Value

0, if the error was caused by a folder or if the error is not file- or folder-specific.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFolderID.html new file mode 100644 index 0000000..3dcbdbf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError2 Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of folder that caused the error. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +

Field Value

0, if it was caused by a file or if the error is not file- or folder-specific.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlVariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlVariableID.html new file mode 100644 index 0000000..2997998 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError2~mlVariableID.html @@ -0,0 +1,150 @@ + + + + + + mlVariableID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError2 Structure + : mlVariableID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the variable affected by the error. +

Syntax

Visual Basic 
Public mlVariableID As System.Integer
+
C# 
public System.int mlVariableID
+
C++/CLI 
public:
+System.int mlVariableID
+ +

Field Value

0 if the error is not variable-specific.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_fields.html new file mode 100644 index 0000000..7efbe8b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmBatchError Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBatchError members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmlErrorCodeError code.  
public FieldmlFileIDID of the file that caused the error.  
public FieldmlVariableIDID of variable that caused the error.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_members.html new file mode 100644 index 0000000..00f1bbc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError_members.html @@ -0,0 +1,163 @@ + + + + + + EdmBatchError Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBatchError Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBatchError Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBatchError.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmlErrorCodeError code.  
public FieldmlFileIDID of the file that caused the error.  
public FieldmlVariableIDID of variable that caused the error.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlErrorCode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlErrorCode.html new file mode 100644 index 0000000..5b331b6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlErrorCode.html @@ -0,0 +1,150 @@ + + + + + + mlErrorCode Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlErrorCode Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError Structure + : mlErrorCode Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Error code. +

Syntax

Visual Basic 
Public mlErrorCode As System.Integer
+
C# 
public System.int mlErrorCode
+
C++/CLI 
public:
+System.int mlErrorCode
+ +
+ + + + + +

Remarks

Call IEdmVault5:GetErrorString to get the name and description of the error.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlFileID.html new file mode 100644 index 0000000..22a95cb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file that caused the error. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +

Field Value

 0, if the error is not file-specific.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlVariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlVariableID.html new file mode 100644 index 0000000..cd0c5e9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchError~mlVariableID.html @@ -0,0 +1,150 @@ + + + + + + mlVariableID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBatchError Structure + : mlVariableID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of variable that caused the error. +

Syntax

Visual Basic 
Public mlVariableID As System.Integer
+
C# 
public System.int mlVariableID
+
C++/CLI 
public:
+System.int mlVariableID
+ +

Field Value

0, if the error is not variable-specific.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchFlags.html new file mode 100644 index 0000000..f081c66 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBatchFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmBatchFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBatchFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBatchFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in IEdmBatchUpdate::SetVar and IEdmBatchUpdate2::SetFolderVar to control the behavior of IEdmBatchUpdate and IEdmBatchUpdate2Bitmask. +

Syntax

Visual Basic 
Public Enum EdmBatchFlags 
+   Inherits System.Enum
+
C# 
public enum EdmBatchFlags : System.Enum 
+
C++/CLI 
public enum class EdmBatchFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmBatch_AllConfigs1 = Ignore the configuration argument and update the variable value in all configurations
EdmBatch_Nothing0 = Normal operation
EdmBatch_RefreshPreview2 = Reload data card
EdmBatch_UpdateVarIfNotPartOfCard4 = Update all variables, even those that are not visible in this data card
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn.html new file mode 100644 index 0000000..48ed4a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn.html @@ -0,0 +1,156 @@ + + + + + + EdmBomColumn Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomColumn Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomColumn Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a single column in a Bill of Materials. + +

Syntax

Visual Basic 
Public Structure EdmBomColumn 
+   Inherits System.ValueType
+
C# 
public struct EdmBomColumn : System.ValueType 
+
C++/CLI 
public value class EdmBomColumn : public System.ValueType 
+
+ + +

Example

struct EdmBomColumn{
  integer mlColumnID;
  integer mlVariableID;
  enum EdmVariableType mlVariableType;
  integer mlFlags;
  enum EdmBomColumnType meType;
  string mbsCaption;
  integer mlWidth;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumnType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumnType.html new file mode 100644 index 0000000..923fc6c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumnType.html @@ -0,0 +1,160 @@ + + + + + + EdmBomColumnType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomColumnType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomColumnType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of Bill of Material (BOM) column content; specified in EdmBomColumn and in calls to IEdmBomCell:GetVar, and IEdmBomCell::SetVar. +

Syntax

Visual Basic 
Public Enum EdmBomColumnType 
+   Inherits System.Enum
+
C# 
public enum EdmBomColumnType : System.Enum 
+
C++/CLI 
public enum class EdmBomColumnType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmBomCol_Configuration21 = Name of the current configuration
EdmBomCol_Date3 = Modified date of file
EdmBomCol_DocType12 = Document
EdmBomCol_FileSize2 = File size in bytes
EdmBomCol_FileType10 = File type
EdmBomCol_FoundInVersion9 = Version where found
EdmBomCol_ID23 = File ID
EdmBomCol_LatestFileDate17 = File date of the latest version
EdmBomCol_LatestVersion4 = Latest version number of the file
EdmBomCol_LockDomain15 = Name of computer where file is checked out
EdmBomCol_LockedIn8 = Computer name and path of checked-out file
EdmBomCol_LockPath14 = File path of checked-out file
EdmBomCol_LockUser7 = Name of user who has checked out the file
EdmBomCol_LockUserID13 = ID of user who has checked out the file
EdmBomCol_LockViewID18 = ID of vault view where file is checked out
EdmBomCol_Name1 = File or folder name
EdmBomCol_PartNumber24 = Document name, configuration name, or user-specified name; used in BOM lists
EdmBomCol_Path5 = Path to file folder
EdmBomCol_RefCount11 = Reference count or BOM Quantity
EdmBomCol_RefCountNoBomQty25 = Reference count that is not multiplied by BOM quantity
EdmBomCol_RefVariable22 = Variable set on a reference to the file, e.g., position number, cut length, etc.
EdmBomCol_Shared19 = Number of folders in which the file is shared
EdmBomCol_State6 = File workflow state name + new line + file workflow state icon name
EdmBomCol_StateName16 = File workflow state name
EdmBomCol_Variable0 = This column is linked to a card variable
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_fields.html new file mode 100644 index 0000000..09373c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_fields.html @@ -0,0 +1,140 @@ + + + + + + EdmBomColumn Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomColumn Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomColumn Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBomColumn members.

+ + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsCaptionColumn caption.  
public FieldmeTypeType of data to show in this column.  
public FieldmlColumnIDUnique ID of the column.  
public FieldmlFlagsColumn flags.  
public FieldmlVariableIDID of the variable displayed in the column.  
public FieldmlVariableTypeType of variable displayed in the column.  
public FieldmlWidthDefault width of the column.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_members.html new file mode 100644 index 0000000..8e23a1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn_members.html @@ -0,0 +1,167 @@ + + + + + + EdmBomColumn Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomColumn Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomColumn Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBomColumn.

+ + + + + + + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsCaptionColumn caption.  
public FieldmeTypeType of data to show in this column.  
public FieldmlColumnIDUnique ID of the column.  
public FieldmlFlagsColumn flags.  
public FieldmlVariableIDID of the variable displayed in the column.  
public FieldmlVariableTypeType of variable displayed in the column.  
public FieldmlWidthDefault width of the column.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mbsCaption.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mbsCaption.html new file mode 100644 index 0000000..bb62269 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mbsCaption.html @@ -0,0 +1,150 @@ + + + + + + mbsCaption Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCaption Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mbsCaption Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column caption. +

Syntax

Visual Basic 
Public mbsCaption As System.String
+
C# 
public System.string mbsCaption
+
C++/CLI 
public:
+System.String^ mbsCaption
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~meType.html new file mode 100644 index 0000000..c89c9c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of data to show in this column. +

Syntax

Visual Basic 
Public meType As EdmBomColumnType
+
C# 
public EdmBomColumnType meType
+
C++/CLI 
public:
+EdmBomColumnType meType
+ +

Field Value

Type as defined in EdmBomColumnType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlColumnID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlColumnID.html new file mode 100644 index 0000000..027c42f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlColumnID.html @@ -0,0 +1,150 @@ + + + + + + mlColumnID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlColumnID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mlColumnID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the column. +

Syntax

Visual Basic 
Public mlColumnID As System.Integer
+
C# 
public System.int mlColumnID
+
C++/CLI 
public:
+System.int mlColumnID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlFlags.html new file mode 100644 index 0000000..b10c08a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column flags. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableID.html new file mode 100644 index 0000000..bca1027 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableID.html @@ -0,0 +1,150 @@ + + + + + + mlVariableID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mlVariableID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the variable displayed in the column. +

Syntax

Visual Basic 
Public mlVariableID As System.Integer
+
C# 
public System.int mlVariableID
+
C++/CLI 
public:
+System.int mlVariableID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableType.html new file mode 100644 index 0000000..86f7dff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlVariableType.html @@ -0,0 +1,150 @@ + + + + + + mlVariableType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mlVariableType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of variable displayed in the column. +

Syntax

Visual Basic 
Public mlVariableType As System.Integer
+
C# 
public System.int mlVariableType
+
C++/CLI 
public:
+System.int mlVariableType
+ +

Field Value

Type as defined in EdmVariableType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlWidth.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlWidth.html new file mode 100644 index 0000000..bba2fb6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomColumn~mlWidth.html @@ -0,0 +1,150 @@ + + + + + + mlWidth Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlWidth Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomColumn Structure + : mlWidth Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Default width of the column. +

Syntax

Visual Basic 
Public mlWidth As System.Integer
+
C# 
public System.int mlWidth
+
C++/CLI 
public:
+System.int mlWidth
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomFlag.html new file mode 100644 index 0000000..4b743dc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmBomFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Bill of Materials options used in calls to IEdmFile7::GetComputedBOM. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmBomFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBomFlag : System.Enum 
+
C++/CLI 
public enum class EdmBomFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmBf_AsBuilt1 = Include as-built referenced files, i.e., the versions which were present in the cache when the parent file was checked in
EdmBf_ShowSelected2 = Include the selected file in the Bill of Materials; if this flag is not set, only its children are included
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo.html new file mode 100644 index 0000000..5a39a10 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmBomInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a Bill of Materials. + +

Syntax

Visual Basic 
Public Structure EdmBomInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmBomInfo : System.ValueType 
+
C++/CLI 
public value class EdmBomInfo : public System.ValueType 
+
+ + +

Example

struct EdmBomInfo{
  integer mlBomID;
 
  enum EdmBomType meType;
  string mbsBomName;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_fields.html new file mode 100644 index 0000000..24490da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmBomInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBomInfo members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsBomNameBOM name.  
public FieldmeTypeBOM type as defined in EdmBomType.  
public FieldmlBomIDUnique ID of the BOM.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_members.html new file mode 100644 index 0000000..ed1acf0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo_members.html @@ -0,0 +1,163 @@ + + + + + + EdmBomInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBomInfo.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsBomNameBOM name.  
public FieldmeTypeBOM type as defined in EdmBomType.  
public FieldmlBomIDUnique ID of the BOM.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mbsBomName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mbsBomName.html new file mode 100644 index 0000000..8415515 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mbsBomName.html @@ -0,0 +1,150 @@ + + + + + + mbsBomName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsBomName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomInfo Structure + : mbsBomName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + BOM name. +

Syntax

Visual Basic 
Public mbsBomName As System.String
+
C# 
public System.string mbsBomName
+
C++/CLI 
public:
+System.String^ mbsBomName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~meType.html new file mode 100644 index 0000000..97acc51 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomInfo Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + BOM type as defined in EdmBomType. +

Syntax

Visual Basic 
Public meType As EdmBomType
+
C# 
public EdmBomType meType
+
C++/CLI 
public:
+EdmBomType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mlBomID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mlBomID.html new file mode 100644 index 0000000..5ce2d02 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInfo~mlBomID.html @@ -0,0 +1,150 @@ + + + + + + mlBomID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlBomID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomInfo Structure + : mlBomID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the BOM. +

Syntax

Visual Basic 
Public mlBomID As System.Integer
+
C# 
public System.int mlBomID
+
C++/CLI 
public:
+System.int mlBomID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInsertRowOption.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInsertRowOption.html new file mode 100644 index 0000000..b1c9016 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomInsertRowOption.html @@ -0,0 +1,138 @@ + + + + + + EdmBomInsertRowOption Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomInsertRowOption Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomInsertRowOption Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Bill of Materials row insertion options for IEdmBomView2::InsertRow. +

Syntax

Visual Basic 
Public Enum EdmBomInsertRowOption 
+   Inherits System.Enum
+
C# 
public enum EdmBomInsertRowOption : System.Enum 
+
C++/CLI 
public enum class EdmBomInsertRowOption : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmBomInsertRowOption_AboveRow0 = Insert the new row above the specified row
EdmBomInsertRowOption_AsChild2 = Insert the new row as a child of the specified row
EdmBomInsertRowOption_BelowRow1 = Insert the new row below the specified row
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout.html new file mode 100644 index 0000000..fa4e87e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout.html @@ -0,0 +1,156 @@ + + + + + + EdmBomLayout Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a Bill of Materials layout. + +

Syntax

Visual Basic 
Public Structure EdmBomLayout 
+   Inherits System.ValueType
+
C# 
public struct EdmBomLayout : System.ValueType 
+
C++/CLI 
public value class EdmBomLayout : public System.ValueType 
+
+ + +

Example

struct EdmBomLayout{
  integer mlLayoutID;
  string mbsLayoutName;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2.html new file mode 100644 index 0000000..0aee793 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2.html @@ -0,0 +1,157 @@ + + + + + + EdmBomLayout2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a Bill of Materials layout. + +

Syntax

Visual Basic 
Public Structure EdmBomLayout2 
+   Inherits System.ValueType
+
C# 
public struct EdmBomLayout2 : System.ValueType 
+
C++/CLI 
public value class EdmBomLayout2 : public System.ValueType 
+
+ + +

Example

struct EdmBomLayout2{
  integer mlLayoutID;
  
EdmBomType meType;
  string mbsLayoutName;
};

+ +
+ +

Remarks

This structure:

+
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_fields.html new file mode 100644 index 0000000..ccbb67b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmBomLayout2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBomLayout2 members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsLayoutNameLayout name.  
public FieldmeTypeBOM type as defined in EdmBomType.  
public FieldmlLayoutIDUnique ID of the BOM layout.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_members.html new file mode 100644 index 0000000..756b579 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2_members.html @@ -0,0 +1,163 @@ + + + + + + EdmBomLayout2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBomLayout2.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsLayoutNameLayout name.  
public FieldmeTypeBOM type as defined in EdmBomType.  
public FieldmlLayoutIDUnique ID of the BOM layout.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mbsLayoutName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mbsLayoutName.html new file mode 100644 index 0000000..a500bfe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mbsLayoutName.html @@ -0,0 +1,150 @@ + + + + + + mbsLayoutName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLayoutName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomLayout2 Structure + : mbsLayoutName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Layout name. +

Syntax

Visual Basic 
Public mbsLayoutName As System.String
+
C# 
public System.string mbsLayoutName
+
C++/CLI 
public:
+System.String^ mbsLayoutName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~meType.html new file mode 100644 index 0000000..03819b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomLayout2 Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + BOM type as defined in EdmBomType. +

Syntax

Visual Basic 
Public meType As EdmBomType
+
C# 
public EdmBomType meType
+
C++/CLI 
public:
+EdmBomType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mlLayoutID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mlLayoutID.html new file mode 100644 index 0000000..98ff7f4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout2~mlLayoutID.html @@ -0,0 +1,150 @@ + + + + + + mlLayoutID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLayoutID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomLayout2 Structure + : mlLayoutID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the BOM layout. +

Syntax

Visual Basic 
Public mlLayoutID As System.Integer
+
C# 
public System.int mlLayoutID
+
C++/CLI 
public:
+System.int mlLayoutID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_fields.html new file mode 100644 index 0000000..0ecc828 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmBomLayout Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBomLayout members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsLayoutNameLayout name.  
public FieldmlLayoutIDUnique ID of the BOM layout.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_members.html new file mode 100644 index 0000000..b497053 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout_members.html @@ -0,0 +1,162 @@ + + + + + + EdmBomLayout Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomLayout Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomLayout Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBomLayout.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsLayoutNameLayout name.  
public FieldmlLayoutIDUnique ID of the BOM layout.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mbsLayoutName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mbsLayoutName.html new file mode 100644 index 0000000..e7d4387 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mbsLayoutName.html @@ -0,0 +1,150 @@ + + + + + + mbsLayoutName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLayoutName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomLayout Structure + : mbsLayoutName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Layout name. +

Syntax

Visual Basic 
Public mbsLayoutName As System.String
+
C# 
public System.string mbsLayoutName
+
C++/CLI 
public:
+System.String^ mbsLayoutName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mlLayoutID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mlLayoutID.html new file mode 100644 index 0000000..cc5b1ce --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomLayout~mlLayoutID.html @@ -0,0 +1,150 @@ + + + + + + mlLayoutID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLayoutID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomLayout Structure + : mlLayoutID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the BOM layout. +

Syntax

Visual Basic 
Public mlLayoutID As System.Integer
+
C# 
public System.int mlLayoutID
+
C++/CLI 
public:
+System.int mlLayoutID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomSetVarOption.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomSetVarOption.html new file mode 100644 index 0000000..015f355 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomSetVarOption.html @@ -0,0 +1,138 @@ + + + + + + EdmBomSetVarOption Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomSetVarOption Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomSetVarOption Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of value passed in IEdmBomCell::SetVar. +

Syntax

Visual Basic 
Public Enum EdmBomSetVarOption 
+   Inherits System.Enum
+
C# 
public enum EdmBomSetVarOption : System.Enum 
+
C++/CLI 
public enum class EdmBomSetVarOption : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmBomSetVarOption_Both2 = Both computed and edited value
EdmBomSetVarOption_Computed0 = Computed value
EdmBomSetVarOption_Edited1 = Edited value
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomType.html new file mode 100644 index 0000000..e892447 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomType.html @@ -0,0 +1,145 @@ + + + + + + EdmBomType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of BOM passed in EdmBomInfo and EdmBomLayout2 structures. +

Syntax

Visual Basic 
Public Enum EdmBomType 
+   Inherits System.Enum
+
C# 
public enum EdmBomType : System.Enum 
+
C++/CLI 
public enum class EdmBomType : public System.Enum 
+
+

Members

+ + + + + + + + + + +
MemberDescription
Computed0 = The BOM is computed (check in/out and workflow are not supported)
ComputedActivated1 = The BOM is computed, and the Activated checkbox is checked so the BOM appears in File Explorer
ItemBOM8
Saved2 = The user has saved this BOM
SWBOM3 = SOLIDWORKS BOM
SWBOMActivated4 = SOLIDWORKS BOM, and the Activated checkbox is checked so the BOM appears in File Explorer
SWBOMSaved5 = The user has saved this SOLIDWORKS BOM
UndefinedBOM9 = BOM template
WeldmentBOM7 = Used as a weldment BOM in the preview
WeldmentCutlist6 = Used as a weldment cutlist in the preview
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion.html new file mode 100644 index 0000000..38d5fe3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion.html @@ -0,0 +1,156 @@ + + + + + + EdmBomVersion Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomVersion Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomVersion Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a Bill of Materials version, revision, or label. + +

Syntax

Visual Basic 
Public Structure EdmBomVersion 
+   Inherits System.ValueType
+
C# 
public struct EdmBomVersion : System.ValueType 
+
C++/CLI 
public value class EdmBomVersion : public System.ValueType 
+
+ + +

Example

struct EdmBomVersion{
  enum EdmBomVersionType meType;
  integer mlVersion;
  datetime moDate;
  string mbsTag;
  string mbsComment;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersionType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersionType.html new file mode 100644 index 0000000..6b0aa40 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersionType.html @@ -0,0 +1,138 @@ + + + + + + EdmBomVersionType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBomVersionType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBomVersionType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of content specified in EdmBomVersion.meType. +

Syntax

Visual Basic 
Public Enum EdmBomVersionType 
+   Inherits System.Enum
+
C# 
public enum EdmBomVersionType : System.Enum 
+
C++/CLI 
public enum class EdmBomVersionType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmBomVer_Label2 = Label created by the user
EdmBomVer_Revision1 = User-defined revision number
EdmBomVer_Version0 = Check-in version number
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_fields.html new file mode 100644 index 0000000..2eacb74 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmBomVersion Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomVersion Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomVersion Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBomVersion members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsCommentComment entered by the user.  
public FieldmbsTagLabel or revision name.  
public FieldmeTypeType of BOM version.  
public FieldmlVersionVersion number.  
public FieldmoDateTime when the version, revision, or label was created.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_members.html new file mode 100644 index 0000000..0e711b6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion_members.html @@ -0,0 +1,165 @@ + + + + + + EdmBomVersion Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBomVersion Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBomVersion Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBomVersion.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsCommentComment entered by the user.  
public FieldmbsTagLabel or revision name.  
public FieldmeTypeType of BOM version.  
public FieldmlVersionVersion number.  
public FieldmoDateTime when the version, revision, or label was created.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsComment.html new file mode 100644 index 0000000..a36c6c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsComment.html @@ -0,0 +1,150 @@ + + + + + + mbsComment Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComment Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomVersion Structure + : mbsComment Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Comment entered by the user. +

Syntax

Visual Basic 
Public mbsComment As System.String
+
C# 
public System.string mbsComment
+
C++/CLI 
public:
+System.String^ mbsComment
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsTag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsTag.html new file mode 100644 index 0000000..1e15bb1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mbsTag.html @@ -0,0 +1,150 @@ + + + + + + mbsTag Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsTag Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomVersion Structure + : mbsTag Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Label or revision name. +

Syntax

Visual Basic 
Public mbsTag As System.String
+
C# 
public System.string mbsTag
+
C++/CLI 
public:
+System.String^ mbsTag
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~meType.html new file mode 100644 index 0000000..559685d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomVersion Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of BOM version. +

Syntax

Visual Basic 
Public meType As EdmBomVersionType
+
C# 
public EdmBomVersionType meType
+
C++/CLI 
public:
+EdmBomVersionType meType
+ +

Field Value

Type as defined in EdmBomVersionType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mlVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mlVersion.html new file mode 100644 index 0000000..cc51735 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~mlVersion.html @@ -0,0 +1,150 @@ + + + + + + mlVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomVersion Structure + : mlVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version number. +

Syntax

Visual Basic 
Public mlVersion As System.Integer
+
C# 
public System.int mlVersion
+
C++/CLI 
public:
+System.int mlVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~moDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~moDate.html new file mode 100644 index 0000000..197d55c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBomVersion~moDate.html @@ -0,0 +1,150 @@ + + + + + + moDate Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moDate Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBomVersion Structure + : moDate Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Time when the version, revision, or label was created. +

Syntax

Visual Basic 
Public moDate As System.Date
+
C# 
public System.DateTime moDate
+
C++/CLI 
public:
+System.DateTime moDate
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo.html new file mode 100644 index 0000000..9fcf3c2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo.html @@ -0,0 +1,154 @@ + + + + + + EdmBrokenParentInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBrokenParentInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBrokenParentInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains broken parent information. + +

Syntax

Visual Basic 
Public Structure EdmBrokenParentInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmBrokenParentInfo : System.ValueType 
+
C++/CLI 
public value class EdmBrokenParentInfo : public System.ValueType 
+
+ + +

Example

struct EdmBrokenParentInfo{
  integer mlParentFileID;
  integer mlParentFolderID;
  string mbsParentName;
  integer mlChildFileID;
  integer mlChildFolderID;
  string mbsChildName;
};

+ +
+ + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_fields.html new file mode 100644 index 0000000..17b5dda --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmBrokenParentInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBrokenParentInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBrokenParentInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmBrokenParentInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsChildNameChild name.  
public FieldmbsParentNameParent name.  
public FieldmlChildFileIDFile ID of child.  
public FieldmlChildFolderIDFolder ID of child.  
public FieldmlParentFileIDFile ID of parent.  
public FieldmlParentFolderIDFolder ID of parent.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_members.html new file mode 100644 index 0000000..76e35ff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmBrokenParentInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmBrokenParentInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmBrokenParentInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmBrokenParentInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsChildNameChild name.  
public FieldmbsParentNameParent name.  
public FieldmlChildFileIDFile ID of child.  
public FieldmlChildFolderIDFolder ID of child.  
public FieldmlParentFileIDFile ID of parent.  
public FieldmlParentFolderIDFolder ID of parent.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsChildName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsChildName.html new file mode 100644 index 0000000..ede5fcb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsChildName.html @@ -0,0 +1,150 @@ + + + + + + mbsChildName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsChildName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mbsChildName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Child name. +

Syntax

Visual Basic 
Public mbsChildName As System.String
+
C# 
public System.string mbsChildName
+
C++/CLI 
public:
+System.String^ mbsChildName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsParentName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsParentName.html new file mode 100644 index 0000000..19188f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mbsParentName.html @@ -0,0 +1,150 @@ + + + + + + mbsParentName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsParentName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mbsParentName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Parent name. +

Syntax

Visual Basic 
Public mbsParentName As System.String
+
C# 
public System.string mbsParentName
+
C++/CLI 
public:
+System.String^ mbsParentName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFileID.html new file mode 100644 index 0000000..b810204 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFileID.html @@ -0,0 +1,150 @@ + + + + + + mlChildFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mlChildFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File ID of child. +

Syntax

Visual Basic 
Public mlChildFileID As System.Integer
+
C# 
public System.int mlChildFileID
+
C++/CLI 
public:
+System.int mlChildFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFolderID.html new file mode 100644 index 0000000..43276f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlChildFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlChildFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mlChildFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Folder ID of child. +

Syntax

Visual Basic 
Public mlChildFolderID As System.Integer
+
C# 
public System.int mlChildFolderID
+
C++/CLI 
public:
+System.int mlChildFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFileID.html new file mode 100644 index 0000000..93268f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFileID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mlParentFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File ID of parent. +

Syntax

Visual Basic 
Public mlParentFileID As System.Integer
+
C# 
public System.int mlParentFileID
+
C++/CLI 
public:
+System.int mlParentFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFolderID.html new file mode 100644 index 0000000..71c4da2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrokenParentInfo~mlParentFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmBrokenParentInfo Structure + : mlParentFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Folder ID of parent. +

Syntax

Visual Basic 
Public mlParentFolderID As System.Integer
+
C# 
public System.int mlParentFolderID
+
C++/CLI 
public:
+System.int mlParentFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseFlag.html new file mode 100644 index 0000000..5886763 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseFlag.html @@ -0,0 +1,142 @@ + + + + + + EdmBrowseFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBrowseFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBrowseFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Browse options used in calls to IEdmVault5::BrowseForFile. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmBrowseFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBrowseFlag : System.Enum 
+
C++/CLI 
public enum class EdmBrowseFlag : public System.Enum 
+
+

Members

+ + + + + + + +
MemberDescription
EdmBws_ForOpen0 = Display the Open dialog box
EdmBws_ForSave1 = Display a Save As dialog box
EdmBws_Help32 = Display Help in the dialog box
EdmBws_PermitExternalFiles16 = Permit the user to select files that are outside the file vault folder tree
EdmBws_PermitLocalFiles4 = Permit the user to select files that are inside the file vault folder tree, but not checked in to the vault
EdmBws_PermitMultipleSel2 = Permit the user to select more than one file
EdmBws_PermitVaultFiles8 = Permit the user to select files that are part of the file vault
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseForFolderFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseForFolderFlag.html new file mode 100644 index 0000000..cd8114b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmBrowseForFolderFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmBrowseForFolderFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmBrowseForFolderFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmBrowseForFolderFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Browse options used in calls to IEdmVault11::BrowseForFolder2. +

Syntax

Visual Basic 
Public Enum EdmBrowseForFolderFlag 
+   Inherits System.Enum
+
C# 
public enum EdmBrowseForFolderFlag : System.Enum 
+
C++/CLI 
public enum class EdmBrowseForFolderFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmBwsFld_ExclFileFolders1 = Do not permit browsing in file folders
EdmBwsFld_ExclItemFolders2 = Do not permit browsing in item folders
EdmBwsFld_None0 = Default behavior; permit browsing in both item and file folders
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmButtonState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmButtonState.html new file mode 100644 index 0000000..645f8cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmButtonState.html @@ -0,0 +1,138 @@ + + + + + + EdmButtonState Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmButtonState Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmButtonState Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ States of a toolbar button; used in calls to IEdmAddInDrawButton5:DrawToolbarButton, IEdmCmdMgr5::AddToolbarImage, and IEdmMenu5::GetButtonImages. +

Syntax

Visual Basic 
Public Enum EdmButtonState 
+   Inherits System.Enum
+
C# 
public enum EdmButtonState : System.Enum 
+
C++/CLI 
public enum class EdmButtonState : public System.Enum 
+
+

Members

+ + + +
MemberDescription
BState_Cold2 = Normal button display
BState_Disabled3 = Button is disabled
BState_Hot1 = Mouse cursor is hovering over the toolbar button; button should be highlighted
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardControlType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardControlType.html new file mode 100644 index 0000000..568ecf9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardControlType.html @@ -0,0 +1,152 @@ + + + + + + EdmCardControlType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCardControlType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCardControlType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ File or folder data card control types; used in calls to IEdmCardControl5::ControlType. +

Syntax

Visual Basic 
Public Enum EdmCardControlType 
+   Inherits System.Enum
+
C# 
public enum EdmCardControlType : System.Enum 
+
C++/CLI 
public enum class EdmCardControlType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + +
MemberDescription
EdmCtrl_Button5 = Push button
EdmCtrl_Checkbox13 = Check box
EdmCtrl_ComboboxDropdown8 = Combo box with a drop-down list and an edit box
EdmCtrl_ComboboxDroplist9 = Combo box with a drop-down list
EdmCtrl_ComboboxSimple7 = Combo box with a list that is always visible
EdmCtrl_CustomPropertySearch15 = Search tool control
EdmCtrl_CustomVariableTree16 = Search tool control
EdmCtrl_DatePicker14 = Date control
EdmCtrl_Editbox4 = Edit box
EdmCtrl_Frame3 = Static frame with optional text
EdmCtrl_Image1 = Static image
EdmCtrl_Invalid0 = Error
EdmCtrl_Listbox10 = List box
EdmCtrl_RadioColumn6 = Radio button
EdmCtrl_Tab11 = Tab control with one or more pages
EdmCtrl_Text2 = Static text
EdmCtrl_ViewerDO NOT USE
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardFlag.html new file mode 100644 index 0000000..05f37ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmCardFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCardFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCardFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for file data card behavior used in EdmCmdData; use these flags to tell SOLIDWORKS PDM Professional what to do when IEdmAddIn5::OnCmd returns. +

Syntax

Visual Basic 
Public Enum EdmCardFlag 
+   Inherits System.Enum
+
C# 
public enum EdmCardFlag : System.Enum 
+
C++/CLI 
public enum class EdmCardFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmCF_CloseDlgCancel2 = Close dialog and do not save changes
EdmCF_CloseDlgOK1 = Close dialog and save changes
EdmCF_Nothing0 = Do nothing
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardType.html new file mode 100644 index 0000000..d8abd4f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardType.html @@ -0,0 +1,139 @@ + + + + + + EdmCardType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCardType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCardType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of data card used in calls to IEdmVault6::GetCardID. +

Syntax

Visual Basic 
Public Enum EdmCardType 
+   Inherits System.Enum
+
C# 
public enum EdmCardType : System.Enum 
+
C++/CLI 
public enum class EdmCardType : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmCard_File0 = File data card
EdmCard_Folder1 = Folder data card
EdmCard_Search3 = Search card used by the search tool
EdmCard_Template2 = Template card used by the template manager
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewFlag.html new file mode 100644 index 0000000..1c5f6d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewFlag.html @@ -0,0 +1,150 @@ + + + + + + EdmCardViewFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCardViewFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCardViewFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for appearance and functionality of card views created with IEdmVault10::CreateCardViewEx2 and IEdmFolder10::CreateCardView2. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmCardViewFlag 
+   Inherits System.Enum
+
C# 
public enum EdmCardViewFlag : System.Enum 
+
C++/CLI 
public enum class EdmCardViewFlag : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + +
MemberDescription
EdmCvf_3StateCheckboxes2 = Permit three-state checkboxes
EdmCvf_CallSaveOnCtrlReturn512 = Save on CTRL-Enter
EdmCvf_ComputeDefaultValues8 = Compute default values in the card
EdmCvf_DisableButtons256 = Disable all buttons in the card
EdmCvf_Normal253 = Default (1+4+8+16+32+64+128)
EdmCvf_Nothing0 = Nothing
EdmCvf_PermitComputedValues64 = Permit controls to receive values from input formulas
EdmCvf_PermitControlledTabs1 = Permit controlling tab controls with variables
EdmCvf_PermitReadOnlyFields32 = Permit the card to have read-only fields
EdmCvf_RunFormulas4 = Evaluate input formulas in the card
EdmCvf_RunFormulasOnOpen1024 = Force execution of formulas on all controls when opened
EdmCvf_SearchMode130 = Search tool mode (2+128)
EdmCvf_SerNoMenu1048576 = Show shortcut menu for serial numbers
EdmCvf_TextureBackground128 = Fade the card background
EdmCvf_VerifyValues16 = Check mandatory and unique values during save
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams.html new file mode 100644 index 0000000..9fa36b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams.html @@ -0,0 +1,156 @@ + + + + + + EdmCardViewParams Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCardViewParams Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCardViewParams Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains card view parameters. + +

Syntax

Visual Basic 
Public Structure EdmCardViewParams 
+   Inherits System.ValueType
+
C# 
public struct EdmCardViewParams : System.ValueType 
+
C++/CLI 
public value class EdmCardViewParams : public System.ValueType 
+
+ + +

Example

struct EdmCardViewParams{
  integer mlFileID;
  integer mlFolderID;
  integer mlCardID;
  integer mlX;
  integer mlY;
  integer mhParentWindow;
  integer mlEdmCardViewFlags;
};

+ +
+

Example

+

Remarks

Used by IEdmVault10::CreateCardViewEx2 to create a card view.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_fields.html new file mode 100644 index 0000000..85215c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_fields.html @@ -0,0 +1,140 @@ + + + + + + EdmCardViewParams Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCardViewParams Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCardViewParams Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCardViewParams members.

+ + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmhParentWindowHandle of parent window for the card.  
public FieldmlCardIDID of this card.  
public FieldmlEdmCardViewFlagsCard view flags.  
public FieldmlFileIDID of the file for this card.  
public FieldmlFolderIDID of the folder for this card or ID of the file card's parent folder.  
public FieldmlXHorizontal position of card.  
public FieldmlYVertical position of card.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_members.html new file mode 100644 index 0000000..bbc5c08 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams_members.html @@ -0,0 +1,167 @@ + + + + + + EdmCardViewParams Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCardViewParams Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCardViewParams Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCardViewParams.

+ + + + + + + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmhParentWindowHandle of parent window for the card.  
public FieldmlCardIDID of this card.  
public FieldmlEdmCardViewFlagsCard view flags.  
public FieldmlFileIDID of the file for this card.  
public FieldmlFolderIDID of the folder for this card or ID of the file card's parent folder.  
public FieldmlXHorizontal position of card.  
public FieldmlYVertical position of card.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mhParentWindow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mhParentWindow.html new file mode 100644 index 0000000..7e685fe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mhParentWindow.html @@ -0,0 +1,150 @@ + + + + + + mhParentWindow Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhParentWindow Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mhParentWindow Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Handle of parent window for the card. +

Syntax

Visual Basic 
Public mhParentWindow As System.Integer
+
C# 
public System.int mhParentWindow
+
C++/CLI 
public:
+System.int mhParentWindow
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlCardID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlCardID.html new file mode 100644 index 0000000..f7a8f3e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlCardID.html @@ -0,0 +1,150 @@ + + + + + + mlCardID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCardID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlCardID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of this card. +

Syntax

Visual Basic 
Public mlCardID As System.Integer
+
C# 
public System.int mlCardID
+
C++/CLI 
public:
+System.int mlCardID
+ +

Field Value

0, if mlFileID and mlFolderID are valid.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlEdmCardViewFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlEdmCardViewFlags.html new file mode 100644 index 0000000..5036d5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlEdmCardViewFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmCardViewFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmCardViewFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlEdmCardViewFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Card view flags. +

Syntax

Visual Basic 
Public mlEdmCardViewFlags As System.Integer
+
C# 
public System.int mlEdmCardViewFlags
+
C++/CLI 
public:
+System.int mlEdmCardViewFlags
+ +

Field Value

Combination of EdmCardViewFlag bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFileID.html new file mode 100644 index 0000000..8f29241 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file for this card. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +

Field Value

0, if this card is a folder card or mlCardID is not 0.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFolderID.html new file mode 100644 index 0000000..b738e64 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the folder for this card or ID of the file card's parent folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +

Field Value

0, if mlCardID is not 0.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlX.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlX.html new file mode 100644 index 0000000..867d821 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlX.html @@ -0,0 +1,150 @@ + + + + + + mlX Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlX Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlX Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Horizontal position of card. +

Syntax

Visual Basic 
Public mlX As System.Integer
+
C# 
public System.int mlX
+
C++/CLI 
public:
+System.int mlX
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlY.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlY.html new file mode 100644 index 0000000..edbb1ee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewParams~mlY.html @@ -0,0 +1,150 @@ + + + + + + mlY Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlY Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCardViewParams Structure + : mlY Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Vertical position of card. +

Syntax

Visual Basic 
Public mlY As System.Integer
+
C# 
public System.int mlY
+
C++/CLI 
public:
+System.int mlY
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewUpdateType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewUpdateType.html new file mode 100644 index 0000000..0c950cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCardViewUpdateType.html @@ -0,0 +1,137 @@ + + + + + + EdmCardViewUpdateType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCardViewUpdateType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCardViewUpdateType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Card control update types; used in calls to IEdmCardView63::Update. +

Syntax

Visual Basic 
Public Enum EdmCardViewUpdateType 
+   Inherits System.Enum
+
C# 
public enum EdmCardViewUpdateType : System.Enum 
+
C++/CLI 
public enum class EdmCardViewUpdateType : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmCvut_DisableCtrl2 = Disable the control
EdmCvut_EnableCtrl1 = Enable the control
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateFileListFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateFileListFlag.html new file mode 100644 index 0000000..98f221b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateFileListFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmChangeStateFileListFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmChangeStateFileListFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmChangeStateFileListFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for returning files when making calls to IEdmBatchChangeState::GetFileList. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmChangeStateFileListFlag 
+   Inherits System.Enum
+
C# 
public enum EdmChangeStateFileListFlag : System.Enum 
+
C++/CLI 
public enum class EdmChangeStateFileListFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Ecsflf_GetActionUpdated4 = Return files that were updated by an action that set a variable value
Ecsflf_GetChanged1 = Return files that had their state changed
Ecsflf_GetUnprocessed2 = Return files that did not have their state changed
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo.html new file mode 100644 index 0000000..a1e42df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmChangeStateTransitionInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmChangeStateTransitionInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmChangeStateTransitionInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Workflow state transition information. + +

Syntax

Visual Basic 
Public Structure EdmChangeStateTransitionInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmChangeStateTransitionInfo : System.ValueType 
+
C++/CLI 
public value class EdmChangeStateTransitionInfo : public System.ValueType 
+
+ + +

Example

struct EdmChangeStateTransitionInfo

{
  short mbIsRevoke;
  integer mlCommitsNum;
  integer mlRequiredNum;
  string moDescription;
  string moIcon;
  string moName;
 };
+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_fields.html new file mode 100644 index 0000000..9f87cfe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmChangeStateTransitionInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmChangeStateTransitionInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmChangeStateTransitionInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmChangeStateTransitionInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbIsRevokeThe revoke state of this state transition.  
public FieldmlCommitsNumNumber of commits for this state transition.  
public FieldmlRequiredNumID of this state transition.  
public FieldmoDescriptionDescription of this state transition.  
public FieldmoIconFile name of the icon for this state transition.  
public FieldmoNameName of this state transition.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_members.html new file mode 100644 index 0000000..0b7346c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmChangeStateTransitionInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmChangeStateTransitionInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmChangeStateTransitionInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmChangeStateTransitionInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbIsRevokeThe revoke state of this state transition.  
public FieldmlCommitsNumNumber of commits for this state transition.  
public FieldmlRequiredNumID of this state transition.  
public FieldmoDescriptionDescription of this state transition.  
public FieldmoIconFile name of the icon for this state transition.  
public FieldmoNameName of this state transition.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mbIsRevoke.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mbIsRevoke.html new file mode 100644 index 0000000..e441466 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mbIsRevoke.html @@ -0,0 +1,150 @@ + + + + + + mbIsRevoke Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbIsRevoke Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : mbIsRevoke Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + The revoke state of this state transition. +

Syntax

Visual Basic 
Public mbIsRevoke As System.Short
+
C# 
public System.short mbIsRevoke
+
C++/CLI 
public:
+System.short mbIsRevoke
+ +

Field Value

1 if revoked, 0 if not
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlCommitsNum.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlCommitsNum.html new file mode 100644 index 0000000..b44b75a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlCommitsNum.html @@ -0,0 +1,150 @@ + + + + + + mlCommitsNum Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCommitsNum Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : mlCommitsNum Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Number of commits for this state transition. +

Syntax

Visual Basic 
Public mlCommitsNum As System.Integer
+
C# 
public System.int mlCommitsNum
+
C++/CLI 
public:
+System.int mlCommitsNum
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlRequiredNum.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlRequiredNum.html new file mode 100644 index 0000000..4ce2e77 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~mlRequiredNum.html @@ -0,0 +1,150 @@ + + + + + + mlRequiredNum Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRequiredNum Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : mlRequiredNum Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of this state transition. +

Syntax

Visual Basic 
Public mlRequiredNum As System.Integer
+
C# 
public System.int mlRequiredNum
+
C++/CLI 
public:
+System.int mlRequiredNum
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moDescription.html new file mode 100644 index 0000000..3d181b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moDescription.html @@ -0,0 +1,150 @@ + + + + + + moDescription Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moDescription Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : moDescription Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Description of this state transition. +

Syntax

Visual Basic 
Public moDescription As System.String
+
C# 
public System.string moDescription
+
C++/CLI 
public:
+System.String^ moDescription
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moIcon.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moIcon.html new file mode 100644 index 0000000..3c1534d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moIcon.html @@ -0,0 +1,150 @@ + + + + + + moIcon Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moIcon Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : moIcon Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File name of the icon for this state transition. +

Syntax

Visual Basic 
Public moIcon As System.String
+
C# 
public System.string moIcon
+
C++/CLI 
public:
+System.String^ moIcon
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moName.html new file mode 100644 index 0000000..50b35df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmChangeStateTransitionInfo~moName.html @@ -0,0 +1,150 @@ + + + + + + moName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmChangeStateTransitionInfo Structure + : moName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of this state transition. +

Syntax

Visual Basic 
Public moName As System.String
+
C# 
public System.string moName
+
C++/CLI 
public:
+System.String^ moName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef.html new file mode 100644 index 0000000..ccf40b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef.html @@ -0,0 +1,154 @@ + + + + + + EdmCheckRef Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCheckRef Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCheckRef Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a file reference. + +

Syntax

Visual Basic 
Public Structure EdmCheckRef 
+   Inherits System.ValueType
+
C# 
public struct EdmCheckRef : System.ValueType 
+
C++/CLI 
public value class EdmCheckRef : public System.ValueType 
+
+ + +

Example

struct EdmCheckRef{
  integer mlParentFileID;
  integer mlRefFileID;
  string mbsParentPath;
  string mbsRefPath;
  integer mlRefVersion;
  integer mlRefLatestVersion;
  integer mlRefFolderID;
};

+ +
+ +

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_fields.html new file mode 100644 index 0000000..19da15f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_fields.html @@ -0,0 +1,140 @@ + + + + + + EdmCheckRef Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCheckRef Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCheckRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCheckRef members.

+ + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsParentPathFile system path to the referencing file.  
public FieldmbsRefPathFile system path to the referenced file.  
public FieldmlParentFileIDID of the referencing file.  
public FieldmlRefFileIDID of the referenced file.  
public FieldmlRefFolderIDID of the referenced file's parent folder.  
public FieldmlRefLatestVersionLatest version of the referenced file.  
public FieldmlRefVersionVersion of the referenced file.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_members.html new file mode 100644 index 0000000..4ab79db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef_members.html @@ -0,0 +1,167 @@ + + + + + + EdmCheckRef Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCheckRef Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCheckRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCheckRef.

+ + + + + + + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsParentPathFile system path to the referencing file.  
public FieldmbsRefPathFile system path to the referenced file.  
public FieldmlParentFileIDID of the referencing file.  
public FieldmlRefFileIDID of the referenced file.  
public FieldmlRefFolderIDID of the referenced file's parent folder.  
public FieldmlRefLatestVersionLatest version of the referenced file.  
public FieldmlRefVersionVersion of the referenced file.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsParentPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsParentPath.html new file mode 100644 index 0000000..031b0a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsParentPath.html @@ -0,0 +1,150 @@ + + + + + + mbsParentPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsParentPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mbsParentPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File system path to the referencing file. +

Syntax

Visual Basic 
Public mbsParentPath As System.String
+
C# 
public System.string mbsParentPath
+
C++/CLI 
public:
+System.String^ mbsParentPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsRefPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsRefPath.html new file mode 100644 index 0000000..7238090 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mbsRefPath.html @@ -0,0 +1,150 @@ + + + + + + mbsRefPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRefPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mbsRefPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File system path to the referenced file. +

Syntax

Visual Basic 
Public mbsRefPath As System.String
+
C# 
public System.string mbsRefPath
+
C++/CLI 
public:
+System.String^ mbsRefPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlParentFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlParentFileID.html new file mode 100644 index 0000000..1463d80 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlParentFileID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mlParentFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the referencing file. +

Syntax

Visual Basic 
Public mlParentFileID As System.Integer
+
C# 
public System.int mlParentFileID
+
C++/CLI 
public:
+System.int mlParentFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFileID.html new file mode 100644 index 0000000..33a47b2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFileID.html @@ -0,0 +1,150 @@ + + + + + + mlRefFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRefFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mlRefFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the referenced file. +

Syntax

Visual Basic 
Public mlRefFileID As System.Integer
+
C# 
public System.int mlRefFileID
+
C++/CLI 
public:
+System.int mlRefFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFolderID.html new file mode 100644 index 0000000..460fce5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlRefFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRefFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mlRefFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the referenced file's parent folder. +

Syntax

Visual Basic 
Public mlRefFolderID As System.Integer
+
C# 
public System.int mlRefFolderID
+
C++/CLI 
public:
+System.int mlRefFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefLatestVersion.html new file mode 100644 index 0000000..e236422 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mlRefLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRefLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mlRefLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Latest version of the referenced file. +

Syntax

Visual Basic 
Public mlRefLatestVersion As System.Integer
+
C# 
public System.int mlRefLatestVersion
+
C++/CLI 
public:
+System.int mlRefLatestVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefVersion.html new file mode 100644 index 0000000..d5f7b18 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCheckRef~mlRefVersion.html @@ -0,0 +1,150 @@ + + + + + + mlRefVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRefVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCheckRef Structure + : mlRefVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of the referenced file. +

Syntax

Visual Basic 
Public mlRefVersion As System.Integer
+
C# 
public System.int mlRefVersion
+
C++/CLI 
public:
+System.int mlRefVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmClientType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmClientType.html new file mode 100644 index 0000000..769e9e9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmClientType.html @@ -0,0 +1,142 @@ + + + + + + EdmClientType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmClientType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmClientType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of SOLIDWORKS PDM Professional client; used in calls to IEdmVault8::ClientType. +

Syntax

Visual Basic 
Public Enum EdmClientType 
+   Inherits System.Enum
+
C# 
public enum EdmClientType : System.Enum 
+
C++/CLI 
public enum class EdmClientType : public System.Enum 
+
+

Members

+ + + + + + + +
MemberDescription
Edmct_ConisioLight2 = SOLIDWORKS PDM Professional Viewer
Edmct_ConisioLT4 = LT (Version 5.3 and older)
Edmct_ConisioProf0 = SOLIDWORKS PDM Professional Editor
Edmct_ConisioStd1 = SOLIDWORKS PDM Professional Contributor
Edmct_ConisioWeb3 = SOLIDWORKS PDM Professional Web
Edmct_None-1 = No SOLIDWORKS PDM Professional client is installed
Edmct_ReservedDo not use
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd.html new file mode 100644 index 0000000..33e9e90 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd.html @@ -0,0 +1,162 @@ + + + + + + EdmCmd Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmd Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmd Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains the kind of command issued and information common to all files and folders affected by the command. + +

Syntax

Visual Basic 
Public Structure EdmCmd 
+   Inherits System.ValueType
+
C# 
public struct EdmCmd : System.ValueType 
+
C++/CLI 
public value class EdmCmd : public System.ValueType 
+
+ + +

Example

struct EdmCmd{
   enum EdmCmdType meCmdType;
   integer mlParentWnd;
   integer mlCurrentFolderID;
   integer mlCmdID;
   IEdmVault5 *mpoVault;
   string mbsComment;
   integer mlEdmRefreshFlags;
   object *mpoExtra;
   boolean mbSilentMode;
   boolean mbCancel;
};

+ +
+

Example

+

Remarks

Returned by reference when an add-in's IEdmAddIn5::OnCmd is called by SOLIDWORKS PDM Professional.
+ + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData.html new file mode 100644 index 0000000..3eed3ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData.html @@ -0,0 +1,1649 @@ + + + + + + EdmCmdData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains command data. + +

Syntax

Visual Basic 
Public Structure EdmCmdData 
+   Inherits System.ValueType
+
C# 
public struct EdmCmdData : System.ValueType 
+
C++/CLI 
public value class EdmCmdData : public System.ValueType 
+
+ + +

Example

struct EdmCmdData{
   integer mlObjectID1;
   integer mlObjectID2;
   integer mlObjectID3;
   integer mlObjectID4;
   string mbsStrData1;
   string mbsStrData2;
   string mbsStrData3;
   integer mlLongData1;
   integer mlLongData2;
   integer mlLongData3;
   object* mpoExtra;
};

+ +
+

Example

+

Remarks

SOLIDWORKS PDM Professional passes an array of 0 or more EdmCmdData structures when it calls to IEdmAddIn5::OnCmd.

+

Typically there is one structure for each file affected by the command. For instance, if the user has selected five files and two folders and launches an add-in-implemented menu command, the add-in receives seven structures, one for each of the selected files and folders. If the reason for calling IEdmAddIn5::OnCmd is a hook on a command like Check out, Check in, Get, Change state, etc., the add-in receives one structure per file. The actual meaning of each structure member varies with the reason for calling IEdmAddIn5::OnCmd. The reason for a call can be determined by examining the meCmdType member of the EdmCmd structure that is passed in the first argument of IEdmAddIn5::OnCmd.

+

The following tables contain all members for each EdmCmdType. Members that are not listed for a certain type of command do not use EdmCmdData.

+

EdmCmdType.EdmCmd_ActivateAPITab

+

When a custom vault view tab is selected in a vault view in File Explorer, sends only to the add-in that adds the custom vault view tab to File Explorer.

+ + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mbsStrData3

+

string

+

Unique ID of this control

+

EdmCmdType.EdmCmd_PreExploreInit

+

When a new instance of File Explorer to about to be created, this event is sent to allow you to create custom tabs in the vault view in File Explorer. This event does not provide any EdmCmdData information. But you will receive a pointer to the IEdmCmdMgr6 interface in the EdmCmd::mpoExtra member. In the event handler, call IEdmCmdMgr6::AddValtViewTab for each tab you want to add to the vault view in File Explorer.

+

EdmCmdType.EdmCmd_Menu

+

The user has activated a menu item or toolbar button that your add-in has added. This command returns a combination of refresh flags in the mlEdmRefreshFlags member of the EdmCmd structure.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file; 0 if a folder is selected

+

mlObjectID2

+

integer

+

ID of folder; 0 if a file is selected

+

mlObjectID3

+

integer

+

ID of parent folder of the selected file or folder

+

mbsStrData1

+

string

+

Name of file or folder, not the full path

+

mbsStrData2

+

string

+

Full path to file or folder

+

+

EdmCmdType.EdmCmd_CardButton

+

The user clicked a button in a file or folder data card, and the button is connected to an add-in. This notification is also sent when the user clicks OK or Apply in the card.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file for which the card is displayed; 0 for folder cards

+

mlObjectID2

+

integer

+

ID of folder; parent folder ID for file data cards

+

mlObjectID3

+

integer

+

ID of file data card

+

mbsStrData1

+

string

+

Name of active configuration; can be changed to switch to a new configuration

+

mbsStrData2

+

string

+

Path to file

+

mlLongData1

+

integer

+

Optionally return a EdmCardFlag return code here

+

mlLongData2

+

integer

+

Optionally return the ID of a card control to set focus to here

+

mpoExtra

+

object*

+

Pointer to an IEdmStrLst5 interface with the names of all configurations

+

+

Note: You will also receive pointers to the IEdmEnumeratorVariable5 and IEdmCard5 interfaces in the EdmCmd::mpoExtra member. The content of the EdmCmd::mbsComment member is the button command string entered in the Card Editor.

+

EdmCmdType.EdmCmd_CardInput

+

The user has modified some data in a file or folder data card.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the modified card control

+

mlObjectID2

+

integer

+

ID of the file; 0 for folder cards

+

mlObjectID3

+

integer

+

ID of the folder

+

mlObjectID4

+

integer

+

ID of the card

+

mbsStrData1

+

string

+

Name of the active configuration

+

mbsStrData2

+

string

+

Full path to the file

+

mlLongData1

+

integer

+

ID of the updated variable

+

mpoExtra

+

object*

+

Pointer to an IEdmStrLst5 interface with all configuration names

+

+

Note: You will also receive pointers to the IEdmEnumeratorVariable5 and IEdmCard5 interfaces in the EdmCmd::mpoExtra member. The content of the EdmCmd::mbsComment member is the name of the modified variable.

+

EdmCmdType.EdmCmd_CardListSrc

+

A file or folder data card containing a list box or combo box is displayed. The add-in’s IEdmAddIn5::OnCmd method is given the opportunity to fill in the rows in the list instead of using the list contents defined in the card editor.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the card control

+

mlObjectID2

+

integer

+

ID of the file; 0 for folder cards

+

mlObjectID3

+

integer

+

ID of the folder

+

mlObjectID4

+

integer

+

ID of the card

+

mbsStrData1

+

string

+

Name of the active configuration

+

mbsStrData2

+

string

+

Full path to the file

+

mbsStrData3

+

string

+

Name of the control’s variable

+

mlLongData1

+

integer

+

ID of the control’s variable

+

mpoExtra

+

object*

+

Pointer to an IEdmStrLst5 interface with all configuration names

+

+

Note: You will also receive a pointer to the IEdmEnumeratorVariable5 and IEdmCard5 interfaces via the EdmCmd::mpoExtra member. The content of the EdmCmd::mbsComment member is the return value from your add-in's IEdmAddIn5::OnCmd implementation. This variable should be set to a newline delimited list of strings to be inserted into the list box or combo box. Leave this variable untouched to use the standard values from the card editor.

+

EdmCmdType.EdmCmd_DeSelectItem

+

When an item is deselected in a vault view in File Explorer, sends only to the add-in that adds a vault view tab to File Explorer.

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mbsStrData1

+

string

+

File name

+

mbsStrData2

+

string

+

Folder name

+

mbsStrData3

+

string

+

Unique ID of this control

+

EdmCmdType.EdmCmd_PreAdd

+

A file is about to be added.

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of parent folder

+

mbsStrData1

+

string

+

Local file path

+

mlLongData1

+

integer

+

0 for normal files; 1 for network sharing links

+

+

EdmCmdType.EdmCmd_PostAdd

+

A file has been added.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of parent folder

+

mlObjectID2

+

integer

+

ID of file

+

mbsStrData1

+

string

+

Full path to file

+

mlLongData1

+

integer

+

0 for normal files; 1 for network sharing links

+

+

EdmCmdType.EdmCmd_PreAddFolder

+

A folder is about to be added.

+

+ + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID3

+

integer

+

ID of parent folder

+

mbsStrData1

+

string

+

Path to new folder

+

+

EdmCmdType.EdmCmd_PostAddFolder

+

A folder has been added.

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of new folder

+

mlObjectID3

+

integer

+

ID of parent folder

+

mbsStrData1

+

string

+

Path to the new folder

+

+

EdmCmdType.EdmCmd_PreBrowseFolder and EdmCmdType.EdmCmd_PostBrowseFolder

+

A folder is being browsed.

+ + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of browsed folder

+

EdmCmdType.EdmCmd_PreCopy and EdmCmdType.EdmCmd_PostCopy

+

A file is copied.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of destination folder

+

mlObjectID2

+

integer

+

ID of file

+

mlObjectID3

+

integer

+

ID of source folder

+

mbsStrData1

+

string

+

Source file path

+

mbsStrData2

+

string

+

Destination file path

+

+

EdmCmdType.EdmCmd_PreCopyFolder

+

A folder is about to be copied.

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID2

+

integer

+

Source folder ID

+

mlObjectID3

+

integer

+

Destination parent folder ID

+

mbsStrData1

+

string

+

Path of new folder

+

+

EdmCmdType.EdmCmd_PostCopyFolder

+

A folder has been copied.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of new folder

+

mlObjectID2

+

integer

+

Source folder ID

+

mlObjectID3

+

integer

+

Destination parent folder ID

+

mbsStrData1

+

string

+

Path of new folder

+

+

EdmCmdType.EdmCmd_PreDelete

+

A file is about to be deleted.

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to delete

+

mlObjectID2

+

integer

+

ID of folder to delete file in

+

mbsStrData1

+

string

+

Path to file to delete

+

+

EdmCmdType.EdmCmd_PostDelete

+

A file has been deleted.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file that was deleted

+

mlObjectID2

+

integer

+

ID of folder in which the file was deleted

+

mbsStrData1

+

string

+

Path to file that was deleted

+

mlLongData1

+

integer

+

Number of folders to which the file is shared

+

+

EdmCmdType.EdmCmd_PreDeleteFolder and EdmCmdType.EdmCmd_PostDeleteFolder

+

A folder is deleted.

+

+ + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of folder to delete

+

mbsStrData1

+

string

+

Path to folder to delete

+

+

EdmCmdType.EdmCmd_PreGet and EdmCmdType.EdmCmd_PostGet

+

A file is retrieved from the archive to the local hard disk.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to get

+

mlObjectID2

+

integer

+

ID of folder to get file to; 0 to retrieve a file to a temporary folder

+

mbsStrData1

+

string

+

Destination file path

+

mlLongData1

+

integer

+

Version number of file to get

+

+

EdmCmdType.EdmCmd_PreLabel and EdmCmdType.EdmCmd_PostLabel

+

A label is being created on files and/or folders.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to set label on; 0 for folders

+

mlObjectID2

+

integer

+

ID of folder to set label on; parent folder ID for files; note that this ID is zero when creating a file label via the API, since that does not happen within the context of a folder

+

mlObjectID3

+

integer

+

0 for EdmCmd_PreLabel; ID of the created label for EdmCmd_PostLabel

+

mbsStrData1

+

string

+

Label

+

mbsStrData2

+

string

+

Path to file or folder to create label for; note that this member will only contain the file name without path when file labels are created via the API, since that is not done within the context of a folder

+

mlLongData1

+

integer

+

Non 0 if label is created recursively for this folder, 0 otherwise

+

+

EdmCmdType.EdmCmd_PreLabelDelete, EdmCmdType.EdmCmd_PostLabelDelete, EdmCmdType.EdmCmd_PreLabelModify, and EdmCmdType.EdmCmd_PostLabelModify

+

A label is being deleted or modified.

+

+ + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the label

+

mbsStrData1

+

string

+

Label

+

+

EdmCmdType.EdmCmd_PreLabelAddItem and EdmCmdType.EdmCmd_PostLabelAddItem

+

A file or folder is being added to an existing label.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID the label

+

mlObjectID2

+

integer

+

ID of the file to add; 0 for folders

+

mlObjectID3

+

integer

+

ID of the folder to add; 0 for files

+

mbsStrData1

+

string

+

Label

+

mlLongData1

+

integer

+

Non 0 if a folder is added recursively, 0 otherwise

+

EdmCmdType.EdmCmd_PreLock and EdmCmdType.EdmCmd_PostLock

+

A file is checked out.

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to check out

+

mlObjectID2

+

integer

+

ID of folder where put checked-out file

+

mbsStrData1

+

string

+

Path to file

+

+

EdmCmdType.EdmCmd_PreMove and EdmCmdType.EdmCmd_PostMove

+

A file is moved from one folder to another one.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to move

+

mlObjectID2

+

integer

+

ID of source folder

+

mlObjectID3

+

integer

+

ID of destination folder

+

mbsStrData1

+

string

+

Source file path

+

mbsStrData2

+

string

+

Destination file path

+

+

EdmCmdType.EdmCmd_PreMoveFolder and EdmCmdType.EdmCmd_PostMoveFolder

+

A folder is moved from one parent folder to another one.   

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of folder to move

+

mlObjectID2

+

integer

+

ID of source parent folder

+

mlObjectID3

+

integer

+

ID of destination parent folder

+

mbsStrData1

+

string

+

Source folder path

+

mbsStrData2

+

string

+

Destination folder path

+

+

EdmCmdType.EdmCmd_PreRename and EdmCmdType.EdmCmd_PostRename

+

A file is renamed.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to rename

+

mlObjectID2

+

integer

+

ID of the file's parent folder

+

mbsStrData1

+

string

+

Old file name

+

mbsStrData2

+

string

+

New file name

+

+

EdmCmdType.EdmCmd_PreRenameFolder and EdmCmdType.EdmCmd_PostRenameFolder

+

A folder is renamed.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of folder to rename

+

mlObjectID2

+

integer

+

ID of the folder's parent folder

+

mbsStrData1

+

string

+

Old folder name

+

mbsStrData2

+

string

+

New folder name

+

+

EdmCmdType.EdmCmd_PreShare and EdmCmdType.EdmCmd_PostShare

+

A file is shared from one folder to another one.

+

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to share

+

mlObjectID2

+

integer

+

ID of folder to share file from

+

mlObjectID3

+

integer

+

ID of folder to share file to

+

mbsStrData1

+

string

+

Source file path

+

+

EdmCmdType.EdmCmd_PreState and EdmCmdType.EdmCmd_PostState

+

The user changes the workflow state of a file.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to change state on

+

mlObjectID2

+

integer

+

ID of the file's parent folder

+

mlObjectID3

+

integer

+

ID of the transition (state change) to perform

+

mlObjectID4

+

integer

+

ID of user that performs the state change

+

mbsStrData1

+

string

+

Path to file

+

mbsStrData2

+

string

+

Name of the destination state

+

mlLongData1

+

integer

+

Source state ID

+

mlLongData2

+

integer

+

Destination state ID

+

+

You will receive an IEdmCmdNode interface in the mpoExtra member of the struct as of version 2011 during the change state operation.

+

CmdType.EdmCmd_PreUndoLock and EdmCmdType.EdmCmd_PostUndoLock

+

The user runs the command Undo check-out on a file. (This is the same as check-in of an unmodified file.)

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to perform undo check-out on

+

mlObjectID2

+

integer

+

ID of the file's parent folder

+

mbsStrData1

+

string

+

Path to file

+

+

EdmCmdType.EdmCmd_PreUnlock and EdmCmdType.EdmCmd_PostUnlock

+

The user runs a check-in on a modified file. (Checking in unmodified files results in an Undo check-out operation.)

+

+ + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to check in

+

mlObjectID2

+

integer

+

ID of the file's parent folder

+

mbsStrData1

+

string

+

Path to the file

+

+

EdmCmdType.EdmCmd_SelectItem

+

When an item is selected in a vault view in File Explorer, sends only to the add-in that adds a vault view tab to File Explorer.

+ + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the item

+

mbsStrData1

+

string

+

File name

+

mbsStrData2

+

string

+

Folder name

+

mbsStrData3

+

string

+

Unique ID of this control

+

EdmCmdType.EdmCmd_SerialNo

+

New serial number(s) should be generated by your add-in.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of file to generate serial number for; 0 if not generated for a file

+

mlObjectID2

+

integer

+

ID of the file's parent folder

+

mlObjectID3

+

integer

+

ID of the file data card

+

mlObjectID4

+

integer

+

ID of the control in the file data card

+

mbsStrData1

+

string

+

Return the generated serial number here (C++ users must allocate the string with the Win32 function SysAllocString)

+

mbsStrData2

+

string

+

Path to file; folder path if the serial number is created for the template manager as part of the folder name

+

mbsStrData3

+

string

+

Name of configuration

+

mlLongData1

+

integer

+

Serial number counter value

+

+

EdmCmdType.EdmCmd_TaskSetup

+

This call is made to your add-in when the task definition property dialog box is called. The call makes it possible for you to add your own custom pages to the wizard. The EdmCmd::mpoExtra pointer points to IEdmTaskProperties, the interface of the task definition.

+

You typically do the following in this call:

+ +

None of the members in the EdmCmdData structure are used.

+

EdmCmdType.EdmCmd_TaskSetupButton

+

This call is made to your add-in when the task definition property dialog box is closed. The EdmCmd::mbsComment string is either "OK" or "Cancel", depending on how the dialog box closed. (The string is the same in all localized versions of the program.) The call makes it possible for you to save your own properties when OK is clicked. You can prevent the dialog box from closing by setting the EdmCmd::mbCancel member to true. You can return the name of an add-in page to set focus to in the EdmCmd::mbsComment string if EdmCmd::mbCancel is set to true. EdmCmd::mpoExtra points to IEdmTaskProperties, the interface of the task definition.

+

None of the members in the EdmCmdData structure are used.

+

EdmCmdType.EdmCmd_TaskDetails

+

This call is made to your add-in when the task details dialog box is displayed from the task list in the administration tool. You must specify the flag EdmTaskFlag.EdmTask_SupportsDetails in the IEdmTaskProperties::TaskFlags property in order to get the EdmCmd_TaskDetails call. You can set the flag when you get the EdmCmdType.EdmCmd_TaskSetup call. EdmCmd::mpoExtra points to IEdmTaskInstance, the interface of the task instance.

+

The EdmCmd::mpoExtra pointer should be set to your implementation of the extra page. The framework keeps this pointer referenced until the dialog box is closed. You return the window handle of the extra page in the member EdmCmd::mlParentWnd. The property dialog box calls ShowWindow when the page is displayed or hidden.

+

None of the members in the EdmCmdData structure are used.

+

EdmCmdType.EdmCmd_TaskRun

+

This is the callback that is called when the actual work of the task is supposed to be executed. The task is usually executed on a remote server so you must not display any user interface during this call. See the OnTaskRun function in the task sample code for an example of how to return status information and errors to the user.

+

The EdmCmd::mlCurrentFolderID argument is the ID of the current folder when the task was launched. It is zero if the task was launched from the administration tool.

+

EdmCmd::mpoExtra points to the IEdmTaskInstance interface of the task instance.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the selected object (IEdmObject5::ID)

+

mlObjectID2

+

integer

+

Parent folder ID if the selected object is a file

+

mbsStrData1

+

string

+

Complete file system path to the object

+

mbsStrData2

+

string

+

Configuration name if the object is a file

+

mlLongData1

+

integer

+

EdmObjectType constant telling what kind of object this is

+

+

EdmCmdType.EdmCmd_TaskLaunch

+

You need to specify the EdmTask_SupportsInitExec in the IEdmTaskProperties::TaskFlags property in order to get this call. The launch call makes it possible for you to display a user interface where the user selects files or enters data in a custom dialog box. As an alternative, you can create a card with the card editor and use that instead. EdmCmd::mpoExtra points to IEdmTaskInstance, the interface of the task instance in this call.

+

You can return a dialog box implementation (user control) in the EdmCmd::mpoExtra argument. In this case you must also return the window of the control in EdmCmd::mlParentWnd. The form is then put in the same parent dialog box as the card, if you are using one.

+

You can set EdmCmd::mbCancel to true to halt further execution of the task.

+

The call can update the selection of objects to execute the task on by altering the content of the EdmCmdData structure.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Type

+

Description

+

mlObjectID1

+

integer

+

ID of the selected object (IEdmObject5::ID)

+

mlObjectID2

+

integer

+

Parent folder ID if the selected object is a file

+

mbsStrData1

+

string

+

Complete file system path to the object

+

mbsStrData2

+

string

+

Configuration name if the object is a file

+

mlLongData1

+

integer

+

EdmObjectType constant telling what kind of object this is

+

mlLongData2

+

integer

Local version number of the file
+

+

EdmCmdType.EdmCmd_TaskLaunchButton

+

This callback is made if the framework displays its own dialog box during the launching of a task. The framework displays its own dialog box if a card has been selected for the task or if you returned a user control from the EdmCmdType.EdmCmd_TaskLaunch hook. EdmCmd::mbsComment contains the string "OK" or "Cancel", depending on which button was clicked. The strings are the same on all localized versions of the program. EdmCmd::mpoExtra points to IEdmTaskInstance, the interface of the task. You can set EdmCmd::mbCancel to true to halt further execution of the task.

+

None of the members in the EdmCmdData structure are used.

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_fields.html new file mode 100644 index 0000000..94ca9ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_fields.html @@ -0,0 +1,144 @@ + + + + + + EdmCmdData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCmdData members.

+ + +

Public Fields

+ + + + + + + + + + + +
 NameDescription
public FieldmbsStrData1Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmbsStrData2Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmbsStrData3Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmlLongData1ID, constant, return code, serial number, or boolean value, depending on the type of command.  
public FieldmlLongData2ID, constant, return code, serial number, or boolean value, depending on the type of command.  
public FieldmlLongData3ID, constant, return code, serial number, version number, or boolean value, depending on the type of command.  
public FieldmlObjectID1ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID2ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID3ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID4ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmpoExtraNames of all the configurations for the specified command type.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_members.html new file mode 100644 index 0000000..3243d16 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData_members.html @@ -0,0 +1,171 @@ + + + + + + EdmCmdData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCmdData.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + +
 NameDescription
public FieldmbsStrData1Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmbsStrData2Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmbsStrData3Name of a variable, configuration, label, or path, depending on the type of command.  
public FieldmlLongData1ID, constant, return code, serial number, or boolean value, depending on the type of command.  
public FieldmlLongData2ID, constant, return code, serial number, or boolean value, depending on the type of command.  
public FieldmlLongData3ID, constant, return code, serial number, version number, or boolean value, depending on the type of command.  
public FieldmlObjectID1ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID2ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID3ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmlObjectID4ID of a file, folder, data card, or control, depending on the type of command.  
public FieldmpoExtraNames of all the configurations for the specified command type.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData1.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData1.html new file mode 100644 index 0000000..7b2a5f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData1.html @@ -0,0 +1,150 @@ + + + + + + mbsStrData1 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStrData1 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mbsStrData1 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of a variable, configuration, label, or path, depending on the type of command. +

Syntax

Visual Basic 
Public mbsStrData1 As System.String
+
C# 
public System.string mbsStrData1
+
C++/CLI 
public:
+System.String^ mbsStrData1
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData2.html new file mode 100644 index 0000000..842d90d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData2.html @@ -0,0 +1,150 @@ + + + + + + mbsStrData2 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStrData2 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mbsStrData2 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of a variable, configuration, label, or path, depending on the type of command. +

Syntax

Visual Basic 
Public mbsStrData2 As System.String
+
C# 
public System.string mbsStrData2
+
C++/CLI 
public:
+System.String^ mbsStrData2
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData3.html new file mode 100644 index 0000000..a2cac5b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mbsStrData3.html @@ -0,0 +1,150 @@ + + + + + + mbsStrData3 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStrData3 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mbsStrData3 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of a variable, configuration, label, or path, depending on the type of command. +

Syntax

Visual Basic 
Public mbsStrData3 As System.String
+
C# 
public System.string mbsStrData3
+
C++/CLI 
public:
+System.String^ mbsStrData3
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData1.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData1.html new file mode 100644 index 0000000..b696abc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData1.html @@ -0,0 +1,150 @@ + + + + + + mlLongData1 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLongData1 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlLongData1 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID, constant, return code, serial number, or boolean value, depending on the type of command. +

Syntax

Visual Basic 
Public mlLongData1 As System.Integer
+
C# 
public System.int mlLongData1
+
C++/CLI 
public:
+System.int mlLongData1
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData2.html new file mode 100644 index 0000000..5dee66e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData2.html @@ -0,0 +1,150 @@ + + + + + + mlLongData2 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLongData2 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlLongData2 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID, constant, return code, serial number, or boolean value, depending on the type of command. +

Syntax

Visual Basic 
Public mlLongData2 As System.Integer
+
C# 
public System.int mlLongData2
+
C++/CLI 
public:
+System.int mlLongData2
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData3.html new file mode 100644 index 0000000..3c4900d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlLongData3.html @@ -0,0 +1,150 @@ + + + + + + mlLongData3 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLongData3 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlLongData3 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID, constant, return code, serial number, version number, or boolean value, depending on the type of command. +

Syntax

Visual Basic 
Public mlLongData3 As System.Integer
+
C# 
public System.int mlLongData3
+
C++/CLI 
public:
+System.int mlLongData3
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID1.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID1.html new file mode 100644 index 0000000..8857b1a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID1.html @@ -0,0 +1,150 @@ + + + + + + mlObjectID1 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlObjectID1 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlObjectID1 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of a file, folder, data card, or control, depending on the type of command. +

Syntax

Visual Basic 
Public mlObjectID1 As System.Integer
+
C# 
public System.int mlObjectID1
+
C++/CLI 
public:
+System.int mlObjectID1
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID2.html new file mode 100644 index 0000000..04d4c3b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID2.html @@ -0,0 +1,150 @@ + + + + + + mlObjectID2 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlObjectID2 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlObjectID2 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of a file, folder, data card, or control, depending on the type of command. +

Syntax

Visual Basic 
Public mlObjectID2 As System.Integer
+
C# 
public System.int mlObjectID2
+
C++/CLI 
public:
+System.int mlObjectID2
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID3.html new file mode 100644 index 0000000..8ef308f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID3.html @@ -0,0 +1,150 @@ + + + + + + mlObjectID3 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlObjectID3 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlObjectID3 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of a file, folder, data card, or control, depending on the type of command. +

Syntax

Visual Basic 
Public mlObjectID3 As System.Integer
+
C# 
public System.int mlObjectID3
+
C++/CLI 
public:
+System.int mlObjectID3
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID4.html new file mode 100644 index 0000000..2e3db5c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mlObjectID4.html @@ -0,0 +1,150 @@ + + + + + + mlObjectID4 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlObjectID4 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mlObjectID4 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of a file, folder, data card, or control, depending on the type of command. +

Syntax

Visual Basic 
Public mlObjectID4 As System.Integer
+
C# 
public System.int mlObjectID4
+
C++/CLI 
public:
+System.int mlObjectID4
+ +
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mpoExtra.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mpoExtra.html new file mode 100644 index 0000000..07e4909 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdData~mpoExtra.html @@ -0,0 +1,150 @@ + + + + + + mpoExtra Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoExtra Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdData Structure + : mpoExtra Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Names of all the configurations for the specified command type. +

Syntax

Visual Basic 
Public mpoExtra As System.Object
+
C# 
public System.object mpoExtra
+
C++/CLI 
public:
+System.Object^ mpoExtra
+ +

Field Value

IEdmStrLst5; contains the names of all configurations for the specified command type
+ + + + + +

Remarks

See EdmCmdData Remarks.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo.html new file mode 100644 index 0000000..d72418b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmCmdInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about menu command items. + +

Syntax

Visual Basic 
Public Structure EdmCmdInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmCmdInfo : System.ValueType 
+
C++/CLI 
public value class EdmCmdInfo : public System.ValueType 
+
+ + +

Example

struct EdmCmdInfo{
  integer mlCmdID;
  string mbsCmdStr;
  string mbsTooltip;
  string mbsStatusBarHelp;
  integer mlEdmMenuFlags;
  object moData;
};

+ +
+

Example

+

Remarks

Used in IEdmMenu6.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_fields.html new file mode 100644 index 0000000..ec1635f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmCmdInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCmdInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsCmdStrUser interface command string.  
public FieldmbsStatusBarHelpStatus bar help.  
public FieldmbsTooltipCommand tooltip.  
public FieldmlCmdIDID of the command.  
public FieldmlEdmMenuFlagsCommand flags.  
public FieldmoDataReserved.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_members.html new file mode 100644 index 0000000..ff86076 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmCmdInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmdInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmdInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCmdInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsCmdStrUser interface command string.  
public FieldmbsStatusBarHelpStatus bar help.  
public FieldmbsTooltipCommand tooltip.  
public FieldmlCmdIDID of the command.  
public FieldmlEdmMenuFlagsCommand flags.  
public FieldmoDataReserved.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsCmdStr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsCmdStr.html new file mode 100644 index 0000000..5334739 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsCmdStr.html @@ -0,0 +1,150 @@ + + + + + + mbsCmdStr Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCmdStr Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : mbsCmdStr Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User interface command string. +

Syntax

Visual Basic 
Public mbsCmdStr As System.String
+
C# 
public System.string mbsCmdStr
+
C++/CLI 
public:
+System.String^ mbsCmdStr
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsStatusBarHelp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsStatusBarHelp.html new file mode 100644 index 0000000..66c9e5b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsStatusBarHelp.html @@ -0,0 +1,150 @@ + + + + + + mbsStatusBarHelp Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStatusBarHelp Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : mbsStatusBarHelp Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status bar help. +

Syntax

Visual Basic 
Public mbsStatusBarHelp As System.String
+
C# 
public System.string mbsStatusBarHelp
+
C++/CLI 
public:
+System.String^ mbsStatusBarHelp
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsTooltip.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsTooltip.html new file mode 100644 index 0000000..3ad4406 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mbsTooltip.html @@ -0,0 +1,150 @@ + + + + + + mbsTooltip Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsTooltip Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : mbsTooltip Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Command tooltip. +

Syntax

Visual Basic 
Public mbsTooltip As System.String
+
C# 
public System.string mbsTooltip
+
C++/CLI 
public:
+System.String^ mbsTooltip
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlCmdID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlCmdID.html new file mode 100644 index 0000000..b19033a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlCmdID.html @@ -0,0 +1,150 @@ + + + + + + mlCmdID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCmdID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : mlCmdID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the command. +

Syntax

Visual Basic 
Public mlCmdID As System.Integer
+
C# 
public System.int mlCmdID
+
C++/CLI 
public:
+System.int mlCmdID
+ +
+ + + + + +

Remarks

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlEdmMenuFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlEdmMenuFlags.html new file mode 100644 index 0000000..8612c55 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~mlEdmMenuFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmMenuFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmMenuFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : mlEdmMenuFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Command flags. +

Syntax

Visual Basic 
Public mlEdmMenuFlags As System.Integer
+
C# 
public System.int mlEdmMenuFlags
+
C++/CLI 
public:
+System.int mlEdmMenuFlags
+ +

Field Value

Command flags as defined in EdmMenuFlags.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~moData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~moData.html new file mode 100644 index 0000000..8abbfab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdInfo~moData.html @@ -0,0 +1,150 @@ + + + + + + moData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmdInfo Structure + : moData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Reserved. +

Syntax

Visual Basic 
Public moData As System.Object
+
C# 
public System.object moData
+
C++/CLI 
public:
+System.Object^ moData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdNodeProp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdNodeProp.html new file mode 100644 index 0000000..102e4c4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdNodeProp.html @@ -0,0 +1,138 @@ + + + + + + EdmCmdNodeProp Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCmdNodeProp Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCmdNodeProp Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of command node property; used in calls to IEdmCmdNode::GetProperty. +

Syntax

Visual Basic 
Public Enum EdmCmdNodeProp 
+   Inherits System.Enum
+
C# 
public enum EdmCmdNodeProp : System.Enum 
+
C++/CLI 
public enum class EdmCmdNodeProp : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmCmdNode_ChildDocIDs2 = File IDs of child files
EdmCmdNode_IsTopNode1 = True if a top node, false if not
EdmCmdNode_ParentDocIDs3 = File IDs of parent files
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdType.html new file mode 100644 index 0000000..03e19b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmdType.html @@ -0,0 +1,198 @@ + + + + + + EdmCmdType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCmdType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCmdType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Reasons for SOLIDWORKS PDM Professional to call IEdmAddIn5::OnCmd. +

Syntax

Visual Basic 
Public Enum EdmCmdType 
+   Inherits System.Enum
+
C# 
public enum EdmCmdType : System.Enum 
+
C++/CLI 
public enum class EdmCmdType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmCmd_ActivateAPITab57 = Custom vault view tab is selected in File Explorer; sent only to add-ins that created a vault view tab in File Explorer
EdmCmd_CardButton37 = The user clicked either OK or a button whose command is enclosed in brackets ("<...>") in the file data card
EdmCmd_CardInput38 = The user modified a value in a file or folder data card
EdmCmd_CardListSrc39 = The add-in should provide a list that is used in a card
EdmCmd_DeSelectItem56 = Item is deselected File Explorer; sent only to add-ins that created a vault view tab in File Explorer
EdmCmd_InstallAddIn23 = The add-in is being installed
EdmCmd_Menu1 = User clicked a menu command or a toolbar button that was created by the add-in
EdmCmd_PostAdd12 = One or more files were added to the file vault
EdmCmd_PostAddFolder28 = One or more folders were added to the file vault
EdmCmd_PostBrowseFolder60 = A folder was browsed
EdmCmd_PostCopy20 = One or more files were copied to a new folder
EdmCmd_PostCopyFolder36 = One or more folders were copied to a new parent folder
EdmCmd_PostDelete14 = One or more files have been deleted
EdmCmd_PostDeleteFolder30 = One or more folders were deleted from the file vault
EdmCmd_PostGet26 = One or more files were copied from the archive to the local hard disk
EdmCmd_PostLabel47 = A label has been created
EdmCmd_PostLabelAddItem53 = A label has gotten a file or folder added to it
EdmCmd_PostLabelDelete49 = A label has been deleted
EdmCmd_PostLabelModify51 = A label has been renamed or gotten its comment updated
EdmCmd_PostLock4 = One or more files have been checked out
EdmCmd_PostMove22 = One or more files were moved to a new folder
EdmCmd_PostMoveFolder34 = One or more folders were moved to a new parent folder
EdmCmd_PostRename16 = One or more files were renamed
EdmCmd_PostRenameFolder32 = One or more folders were renamed
EdmCmd_PostShare18 = One or more files were shared to a new folder
EdmCmd_PostState10 = One or more files had their states changed
EdmCmd_PostUndoLock8 = One or more files had their locks removed without any changes sent to the file vault
EdmCmd_PostUnlock6 = One or more files have been checked in
EdmCmd_PreAdd11 = One or more files are about to be added to the file vault
EdmCmd_PreAddFolder27 = One or more folders are about to be added to the file vault
EdmCmd_PreBrowseFolder59 = A folder is about to be browsed
EdmCmd_PreCopy19 = One or more files are about to be copied to a new folder
EdmCmd_PreCopyFolder35 = One or more folders are about to be copied to a new parent folder
EdmCmd_PreDelete13 = One or more files are about to be deleted
EdmCmd_PreDeleteFolder29 = One or more folders are about to be deleted from the file vault
EdmCmd_PreExploreInit54 = A new instance of File Explorer is opening; handle this command in your add-in by calling IEdmCmdMgf6::AddVaultViewTab for each custom tab you want to add to the vault view in File Explorer
EdmCmd_PreGet25 = One or more files are about to be copied from the archive to the local hard disk
EdmCmd_PreLabel46 = A label is about to be created
EdmCmd_PreLabelAddItem52 = A label is about to get a file or folder added to it
EdmCmd_PreLabelDelete48 = A label is about to be deleted
EdmCmd_PreLabelModify50 = A label is about to be renamed or get its comment updated
EdmCmd_PreLock3 = One or more files are about to be checked out
EdmCmd_PreMove21 = One or more files are about to be moved to a new folder
EdmCmd_PreMoveFolder33 = One or more folders are about to be moved to a new parent folder
EdmCmd_PreRename15 = One or more files are about to be renamed
EdmCmd_PreRenameFolder31 = One or more folders are about to be renamed
EdmCmd_PreShare17 = One or more files are about to be shared to a new folder
EdmCmd_PreState9 = One or more files are about to have their states changed
EdmCmd_PreUndoLock7 = One or more files are about to get their locks removed without any changes sent to the file vault
EdmCmd_PreUnlock5 = One or more files are about to be checked in
EdmCmd_SelectItem55 = Item is selected in File Explorer; sent only to add-ins that created a vault view tab in File Explorer
EdmCmd_SerialNo2 = The add-in should generate a new serial number
EdmCmd_TaskDetails42 = Use this hook to add your own custom page to the task details dialog box in the task list
EdmCmd_TaskLaunch44 = The task is being launched; add your own user interface to permit user input
EdmCmd_TaskLaunchButton45 = OK or Cancel was clicked in the task launch dialog box
EdmCmd_TaskRun43 = This hook is called on the task server; you should perform the actual work there
EdmCmd_TaskSetup40 = Use this hook to add a task setup page to a task properties dialog box wizard
EdmCmd_TaskSetupButton41 = OK or Cancel was clicked in the task properties dialog box wizard
EdmCmd_UninstallAddIn24 = The add-in is about to be uninstalled
EdmCmd_UserTabDelete58 = Sent only to add-ins that created a vault view tab in File Explorer; called when File Explorer closes; opportunity for add-in to clean up tab-related items
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_fields.html new file mode 100644 index 0000000..c847cc3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_fields.html @@ -0,0 +1,143 @@ + + + + + + EdmCmd Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmd Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmd Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCmd members.

+ + +

Public Fields

+ + + + + + + + + + +
 NameDescription
public FieldmbCancelCommand cancel status.  
public FieldmbsCommentContains name specific to EdmCmd.meCmdType.  
public FieldmbSilentModeSilent mode status for the command.  
public FieldmeCmdTypeType of command.  
public FieldmlCmdIDCommand ID.  
public FieldmlCurrentFolderIDID of the active folder.  
public FieldmlEdmRefreshFlagsControls how SOLIDWORKS PDM Professional refreshes File Explorer after a call to IEdmAddIn5::OnCmd.  
public FieldmlParentWndWindow handle of the parent window.  
public FieldmpoExtraPointer to an object containing command-specific information.  
public FieldmpoVaultPointer to the file vault's interface.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_members.html new file mode 100644 index 0000000..162622d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd_members.html @@ -0,0 +1,170 @@ + + + + + + EdmCmd Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCmd Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCmd Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCmd.

+ + + + + + + +

Public Fields

+ + + + + + + + + + +
 NameDescription
public FieldmbCancelCommand cancel status.  
public FieldmbsCommentContains name specific to EdmCmd.meCmdType.  
public FieldmbSilentModeSilent mode status for the command.  
public FieldmeCmdTypeType of command.  
public FieldmlCmdIDCommand ID.  
public FieldmlCurrentFolderIDID of the active folder.  
public FieldmlEdmRefreshFlagsControls how SOLIDWORKS PDM Professional refreshes File Explorer after a call to IEdmAddIn5::OnCmd.  
public FieldmlParentWndWindow handle of the parent window.  
public FieldmpoExtraPointer to an object containing command-specific information.  
public FieldmpoVaultPointer to the file vault's interface.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbCancel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbCancel.html new file mode 100644 index 0000000..ecc1428 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbCancel.html @@ -0,0 +1,150 @@ + + + + + + mbCancel Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbCancel Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mbCancel Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Command cancel status. +

Syntax

Visual Basic 
Public mbCancel As System.Short
+
C# 
public System.short mbCancel
+
C++/CLI 
public:
+System.short mbCancel
+ +

Field Value

True to prevent a command from running using EdmCmd_PreXxxx hooks, false to disallow canceling the command
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbSilentMode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbSilentMode.html new file mode 100644 index 0000000..b17499d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbSilentMode.html @@ -0,0 +1,150 @@ + + + + + + mbSilentMode Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbSilentMode Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mbSilentMode Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Silent mode status for the command. +

Syntax

Visual Basic 
Public mbSilentMode As System.Short
+
C# 
public System.short mbSilentMode
+
C++/CLI 
public:
+System.short mbSilentMode
+ +

Field Value

True to execute asynchronously in the background, false to run interactively from the user interface
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbsComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbsComment.html new file mode 100644 index 0000000..2c427c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mbsComment.html @@ -0,0 +1,150 @@ + + + + + + mbsComment Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComment Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mbsComment Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains name specific to EdmCmd.meCmdType. +

Syntax

Visual Basic 
Public mbsComment As System.String
+
C# 
public System.string mbsComment
+
C++/CLI 
public:
+System.String^ mbsComment
+ +

Field Value

Information specific to the type of command or hook
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~meCmdType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~meCmdType.html new file mode 100644 index 0000000..c7fcb0d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~meCmdType.html @@ -0,0 +1,150 @@ + + + + + + meCmdType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meCmdType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : meCmdType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of command. +

Syntax

Visual Basic 
Public meCmdType As EdmCmdType
+
C# 
public EdmCmdType meCmdType
+
C++/CLI 
public:
+EdmCmdType meCmdType
+ +

Field Value

Type of command as defined in EdmCmdType
+ + + + + +

Remarks

To use this command in your add-in, you must subscribe to it using IEdmCmdMgr5::AddCmd and IEdmCmdMgr5::AddHook.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCmdID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCmdID.html new file mode 100644 index 0000000..58902d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCmdID.html @@ -0,0 +1,150 @@ + + + + + + mlCmdID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCmdID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mlCmdID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Command ID. +

Syntax

Visual Basic 
Public mlCmdID As System.Integer
+
C# 
public System.int mlCmdID
+
C++/CLI 
public:
+System.int mlCmdID
+ +
+ + + + + +

Remarks

For menu commands, this ID is specified by the ICmdID argument to IEdmCmdMgr5::AddCmd.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCurrentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCurrentFolderID.html new file mode 100644 index 0000000..5627c38 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlCurrentFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlCurrentFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCurrentFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mlCurrentFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the active folder. +

Syntax

Visual Basic 
Public mlCurrentFolderID As System.Integer
+
C# 
public System.int mlCurrentFolderID
+
C++/CLI 
public:
+System.int mlCurrentFolderID
+ +
+ + + + + +

Remarks

Used for menu commands (meCmdType = EdmCmdType.EdmCmd_Menu).
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlEdmRefreshFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlEdmRefreshFlags.html new file mode 100644 index 0000000..e681ca8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlEdmRefreshFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRefreshFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRefreshFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mlEdmRefreshFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Controls how SOLIDWORKS PDM Professional refreshes File Explorer after a call to IEdmAddIn5::OnCmd. +

Syntax

Visual Basic 
Public mlEdmRefreshFlags As System.Integer
+
C# 
public System.int mlEdmRefreshFlags
+
C++/CLI 
public:
+System.int mlEdmRefreshFlags
+ +

Field Value

Combination of EdmRefreshFlag bits
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlParentWnd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlParentWnd.html new file mode 100644 index 0000000..9e81417 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mlParentWnd.html @@ -0,0 +1,150 @@ + + + + + + mlParentWnd Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentWnd Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mlParentWnd Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Window handle of the parent window. +

Syntax

Visual Basic 
Public mlParentWnd As System.Integer
+
C# 
public System.int mlParentWnd
+
C++/CLI 
public:
+System.int mlParentWnd
+ +

Field Value

0, if no parent window
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoExtra.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoExtra.html new file mode 100644 index 0000000..2c24467 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoExtra.html @@ -0,0 +1,150 @@ + + + + + + mpoExtra Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoExtra Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mpoExtra Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Pointer to an object containing command-specific information. +

Syntax

Visual Basic 
Public mpoExtra As System.Object
+
C# 
public System.object mpoExtra
+
C++/CLI 
public:
+System.Object^ mpoExtra
+ +

Field Value

Interface to a data object that contains command-specific information
+ + + + + +

Remarks

The type of interface returned depends on the type of command or hook. See EdmCmdData for more information.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoVault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoVault.html new file mode 100644 index 0000000..b74b6a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCmd~mpoVault.html @@ -0,0 +1,150 @@ + + + + + + mpoVault Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoVault Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCmd Structure + : mpoVault Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Pointer to the file vault's interface. +

Syntax

Visual Basic 
Public mpoVault As System.Object
+
C# 
public System.object mpoVault
+
C++/CLI 
public:
+System.Object^ mpoVault
+ +

Field Value

IEdmVault5
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColType.html new file mode 100644 index 0000000..dca8634 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColType.html @@ -0,0 +1,162 @@ + + + + + + EdmColType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmColType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmColType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of file listing column content; specified in the EdmListCol structure. +

Syntax

Visual Basic 
Public Enum EdmColType 
+   Inherits System.Enum
+
C# 
public enum EdmColType : System.Enum 
+
C++/CLI 
public enum class EdmColType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmCol_AttachedVersion10000 = As-built version
EdmCol_Category12 = File category
EdmCol_Configuration21 = Configuration name
EdmCol_Date3 = File last modified date
EdmCol_DaysInState32 = Number of days file in workflow state
EdmCol_EdmListRetFileFlag30 = Combination of EdmListRetFileFlag flags
EdmCol_FileSize2 = File size
EdmCol_FileType10 = File type
EdmCol_FoundInVersion9 = Version in which the search tool found the file
EdmCol_LatestFileDate17 = File latest version date
EdmCol_LatestVersion4 = File latest version number
EdmCol_LockComputer15 = Name of computer where the file is checked out
EdmCol_LockedIn8 = Name of computer and folder path where the file is checked out
EdmCol_LockPath14 = Path to folder where the file is checked out
EdmCol_LockUser7 = Name of user who has the file checked out
EdmCol_LockUserID13 = ID of user who has the file checked out
EdmCol_LockViewID18 = ID of the file vault view where the file is checked out
EdmCol_Name1 = File name
EdmCol_ParentFileConfiguration29 = Name of the configuration referencing this file
EdmCol_ParentFileID28 = ID of file referencing this file
EdmCol_Path5 = File path
EdmCol_RefCount11 = Reference count
EdmCol_Shared19 = File share count
EdmCol_State6 = File workflow state name + newline + file workflow state icon name
EdmCol_StateName16 = File workflow state name
EdmCol_Variable0 = The column is linked to a card variable
EdmCol_VersionNumber31 = File version number
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet.html new file mode 100644 index 0000000..7c8a556 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet.html @@ -0,0 +1,154 @@ + + + + + + EdmColumnSet Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmColumnSet Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmColumnSet Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a column set's name and ID. + +

Syntax

Visual Basic 
Public Structure EdmColumnSet 
+   Inherits System.ValueType
+
C# 
public struct EdmColumnSet : System.ValueType 
+
C++/CLI 
public value class EdmColumnSet : public System.ValueType 
+
+ + +

Example

struct EdmColumnSet

{
  string mbsColumnSetName;
  integer mlColumnSetID;
};
+ +
+ + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_fields.html new file mode 100644 index 0000000..5139711 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmColumnSet Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmColumnSet Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmColumnSet Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmColumnSet members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsColumnSetNameColumn set name.  
public FieldmlColumnSetIDUnique ID for the column set.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_members.html new file mode 100644 index 0000000..359bea7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet_members.html @@ -0,0 +1,162 @@ + + + + + + EdmColumnSet Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmColumnSet Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmColumnSet Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmColumnSet.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsColumnSetNameColumn set name.  
public FieldmlColumnSetIDUnique ID for the column set.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mbsColumnSetName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mbsColumnSetName.html new file mode 100644 index 0000000..5c4b896 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mbsColumnSetName.html @@ -0,0 +1,150 @@ + + + + + + mbsColumnSetName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsColumnSetName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmColumnSet Structure + : mbsColumnSetName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column set name. +

Syntax

Visual Basic 
Public mbsColumnSetName As System.String
+
C# 
public System.string mbsColumnSetName
+
C++/CLI 
public:
+System.String^ mbsColumnSetName
+ +

Field Value

Name
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mlColumnSetID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mlColumnSetID.html new file mode 100644 index 0000000..eb3058f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmColumnSet~mlColumnSetID.html @@ -0,0 +1,150 @@ + + + + + + mlColumnSetID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlColumnSetID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmColumnSet Structure + : mlColumnSetID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID for the column set. +

Syntax

Visual Basic 
Public mlColumnSetID As System.Integer
+
C# 
public System.int mlColumnSetID
+
C++/CLI 
public:
+System.int mlColumnSetID
+ +

Field Value

Unique ID
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyFlag.html new file mode 100644 index 0000000..2603ac5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmCopyFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCopyFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCopyFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for copying files when making calls to IEdmFolder5::CopyFile. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmCopyFlag 
+   Inherits System.Enum
+
C# 
public enum EdmCopyFlag : System.Enum 
+
C++/CLI 
public enum class EdmCopyFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmCpy_NewSerialNumbers1 = Generate missing serial numbers; regenerate existing serial numbers
EdmCpy_Simple0 = Copy the file
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions.html new file mode 100644 index 0000000..ed255a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions.html @@ -0,0 +1,156 @@ + + + + + + EdmCopyTreeOptions Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCopyTreeOptions Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCopyTreeOptions Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains options for copying an assembly tree of files to a destination folder. + +

Syntax

Visual Basic 
Public Structure EdmCopyTreeOptions 
+   Inherits System.ValueType
+
C# 
public struct EdmCopyTreeOptions : System.ValueType 
+
C++/CLI 
public value class EdmCopyTreeOptions : public System.ValueType 
+
+ + +

Example

struct EdmCopyTreeOptions

{
  string mbsPrefix;
  string mbsSuffix;
  VARIANT_BOOL mbIncludeDrawings;
  VARIANT_BOOL mbUseLatestVersion;
};
+ +
+

Example

+ + + + +

See Also

+ +
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_fields.html new file mode 100644 index 0000000..0e537e8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmCopyTreeOptions Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCopyTreeOptions Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCopyTreeOptions Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmCopyTreeOptions members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmbIncludeDrawingsWhether to include drawings in the copy.  
public FieldmbsPrefixPrefix to append to copied file names.  
public FieldmbsSuffixSuffix to append to copied file names.  
public FieldmbUseLatestVersionWhether to copy the latest versions of files.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_members.html new file mode 100644 index 0000000..fdb583e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions_members.html @@ -0,0 +1,164 @@ + + + + + + EdmCopyTreeOptions Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmCopyTreeOptions Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmCopyTreeOptions Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmCopyTreeOptions.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmbIncludeDrawingsWhether to include drawings in the copy.  
public FieldmbsPrefixPrefix to append to copied file names.  
public FieldmbsSuffixSuffix to append to copied file names.  
public FieldmbUseLatestVersionWhether to copy the latest versions of files.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbIncludeDrawings.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbIncludeDrawings.html new file mode 100644 index 0000000..1f29fdf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbIncludeDrawings.html @@ -0,0 +1,150 @@ + + + + + + mbIncludeDrawings Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbIncludeDrawings Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCopyTreeOptions Structure + : mbIncludeDrawings Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Whether to include drawings in the copy. +

Syntax

Visual Basic 
Public mbIncludeDrawings As System.Short
+
C# 
public System.short mbIncludeDrawings
+
C++/CLI 
public:
+System.short mbIncludeDrawings
+ +

Field Value

-1 or VARIANT_TRUE to include drawings, 0 or VARIANT_FALSE to not
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbUseLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbUseLatestVersion.html new file mode 100644 index 0000000..25b1de3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbUseLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mbUseLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbUseLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCopyTreeOptions Structure + : mbUseLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Whether to copy the latest versions of files. +

Syntax

Visual Basic 
Public mbUseLatestVersion As System.Short
+
C# 
public System.short mbUseLatestVersion
+
C++/CLI 
public:
+System.short mbUseLatestVersion
+ +

Field Value

-1 or VARIANT_TRUE to copy the latest versions of files, 0 or VARIANT_FALSE to copy referenced versions
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsPrefix.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsPrefix.html new file mode 100644 index 0000000..236d3b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsPrefix.html @@ -0,0 +1,150 @@ + + + + + + mbsPrefix Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPrefix Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCopyTreeOptions Structure + : mbsPrefix Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Prefix to append to copied file names. +

Syntax

Visual Basic 
Public mbsPrefix As System.String
+
C# 
public System.string mbsPrefix
+
C++/CLI 
public:
+System.String^ mbsPrefix
+ +

Field Value

File name prefix
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsSuffix.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsSuffix.html new file mode 100644 index 0000000..2814237 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyTreeOptions~mbsSuffix.html @@ -0,0 +1,150 @@ + + + + + + mbsSuffix Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsSuffix Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmCopyTreeOptions Structure + : mbsSuffix Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Suffix to append to copied file names. +

Syntax

Visual Basic 
Public mbsSuffix As System.String
+
C# 
public System.string mbsSuffix
+
C++/CLI 
public:
+System.String^ mbsSuffix
+ +

Field Value

File name suffix
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyType.html new file mode 100644 index 0000000..30fb4c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCopyType.html @@ -0,0 +1,137 @@ + + + + + + EdmCopyType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCopyType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCopyType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of file copy operations. +

Syntax

Visual Basic 
Public Enum EdmCopyType 
+   Inherits System.Enum
+
C# 
public enum EdmCopyType : System.Enum 
+
C++/CLI 
public enum class EdmCopyType : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmCopy_CopyTree1
EdmCopy_Normal0
+ + + + +

Remarks

This enumerator is used by EdmCmdData.mlLongData1 to store the type of copy operation for PreCopy and PostCopy events.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateListExFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateListExFlags.html new file mode 100644 index 0000000..9af4d5d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateListExFlags.html @@ -0,0 +1,143 @@ + + + + + + EdmCreateListExFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCreateListExFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCreateListExFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for creating lists used in calls to IEdmBatchListing2::CreateListEx. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmCreateListExFlags 
+   Inherits System.Enum
+
C# 
public enum EdmCreateListExFlags : System.Enum 
+
C++/CLI 
public enum class EdmCreateListExFlags : public System.Enum 
+
+

Members

+ + + + + + + + +
MemberDescription
Edmclef_AllConfigurations2 = Return separate nodes for configurations
Edmclef_AsBuilt16 = Use as-built reference versions instead of the latest version
Edmclef_DontGetLatest64 = Do not get the latest version
Edmclef_GetDrawings8 = Return drawings of added files
Edmclef_GetReferences4 = Return references of added files
Edmclef_MayReadFiles1 = Permit the API to read variables from the cached files; if this flag is not set, values are read from the database
Edmclef_Nothing0 = Default behavior
Edmclef_ReturnReferences32 = Return file references for every node that is passed in
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateReferenceFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateReferenceFlags.html new file mode 100644 index 0000000..adb6863 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateReferenceFlags.html @@ -0,0 +1,136 @@ + + + + + + EdmCreateReferenceFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCreateReferenceFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCreateReferenceFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for creating custom references used in calls to IEdmAddCustomRefs::CreateTree. +

Syntax

Visual Basic 
Public Enum EdmCreateReferenceFlags 
+   Inherits System.Enum
+
C# 
public enum EdmCreateReferenceFlags : System.Enum 
+
C++/CLI 
public enum class EdmCreateReferenceFlags : public System.Enum 
+
+

Members

+ +
MemberDescription
Ecrf_Nothing0 = Default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultFlag.html new file mode 100644 index 0000000..b3d0f8c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmCreateVaultFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCreateVaultFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCreateVaultFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for creating new vaults used in calls to IEdmVault11::CreateNewVault. +

Syntax

Visual Basic 
Public Enum EdmCreateVaultFlag 
+   Inherits System.Enum
+
C# 
public enum EdmCreateVaultFlag : System.Enum 
+
C++/CLI 
public enum class EdmCreateVaultFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmCreateVault_Nothing0 = Default behavior; specify a password for the Admin user
EdmCreateVault_UseDefaultAdminPassword1 = Use the default Admin password that is stored on the archive server
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultViewFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultViewFlag.html new file mode 100644 index 0000000..b9f624a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmCreateVaultViewFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmCreateVaultViewFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmCreateVaultViewFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmCreateVaultViewFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for creating vault views used in calls to IEdmVault11::CreateNewVaultView. +

Syntax

Visual Basic 
Public Enum EdmCreateVaultViewFlag 
+   Inherits System.Enum
+
C# 
public enum EdmCreateVaultViewFlag : System.Enum 
+
C++/CLI 
public enum class EdmCreateVaultViewFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmCreateVaultView_Nothing0 = Default behavior; the view is created only for the currently logged in Windows user
EdmCreateVaultView_SharedView1 = The view is accessible to all Windows users on this computer
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataPropertyType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataPropertyType.html new file mode 100644 index 0000000..932ba8b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataPropertyType.html @@ -0,0 +1,144 @@ + + + + + + EdmDataPropertyType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmDataPropertyType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmDataPropertyType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Property types; used in calls to IEdmData::Get and IEdmData::Set. +

Syntax

Visual Basic 
Public Enum EdmDataPropertyType 
+   Inherits System.Enum
+
C# 
public enum EdmDataPropertyType : System.Enum 
+
C++/CLI 
public enum class EdmDataPropertyType : public System.Enum 
+
+

Members

+ + + + + + + + + +
MemberDescription
EdmProp_ID1 = Database ID
EdmProp_LinkPath8 = Path to linked file
EdmProp_Name4 = Name of a file, folder, variable, etc.
EdmProp_Nothing0 = Invalid property
EdmProp_Object3 = IEdmObject5
EdmProp_ObjectType2 = EdmObjectType
EdmProp_Path5 = File or folder path
EdmProp_Value6 = Variable value
EdmProp_Vault7 = IEdmVault5
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataType.html new file mode 100644 index 0000000..f27101c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDataType.html @@ -0,0 +1,142 @@ + + + + + + EdmDataType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmDataType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmDataType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Data types; used in calls to IEdmData::Type. +

Syntax

Visual Basic 
Public Enum EdmDataType 
+   Inherits System.Enum
+
C# 
public enum EdmDataType : System.Enum 
+
C++/CLI 
public enum class EdmDataType : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
EdmData_File1 = File
EdmData_Folder2 = Folder
EdmData_Link4 = Link
EdmData_Nothing0 = No data
EdmData_Variable3 = Variable
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefValComp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefValComp.html new file mode 100644 index 0000000..2e24ad1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefValComp.html @@ -0,0 +1,138 @@ + + + + + + EdmDefValComp Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmDefValComp Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmDefValComp Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Return options when calling IEdmCardViewCallback6::GetDefaultValueComponent. +

Syntax

Visual Basic 
Public Enum EdmDefValComp 
+   Inherits System.Enum
+
C# 
public enum EdmDefValComp : System.Enum 
+
C++/CLI 
public enum class EdmDefValComp : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmDvc_FileID1 = Return the ID of the file
EdmDvc_FilePath3 = Return the file's complete path
EdmDvc_FolderID2 = Return the ID of the file's parent folder
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefaultValueType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefaultValueType.html new file mode 100644 index 0000000..5ab4f37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDefaultValueType.html @@ -0,0 +1,256 @@ + + + + + + EdmDefaultValueType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmDefaultValueType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmDefaultValueType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Default value types in SOLIDWORKS PDM Professional; used in calls to IEdmCardViewCallback6::GetCtrlData. +

Syntax

Visual Basic 
Public Enum EdmDefaultValueType 
+   Inherits System.Enum
+
C# 
public enum EdmDefaultValueType : System.Enum 
+
C++/CLI 
public enum class EdmDefaultValueType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
Edmdef_CreatedByUser8 = ID of created-by user
Edmdef_CreatedByUserAddress48 = Address of created-by user
Edmdef_CreatedByUserCity50 = City of created-by user
Edmdef_CreatedByUserCompany44 = Company of created-by user
Edmdef_CreatedByUserCountry52 = Country of created-by user
Edmdef_CreatedByUserData21 = User data of created-by user
Edmdef_CreatedByUserData239 = User data of created-by user
Edmdef_CreatedByUserData340 = User data of created-by user
Edmdef_CreatedByUserDepartment45 = Company department of created-by user
Edmdef_CreatedByUserEmail36 = Email of created-by user
Edmdef_CreatedByUserEmail237 = Email of created-by user
Edmdef_CreatedByUserEmail338 = Email of created-by user
Edmdef_CreatedByUserFirstName31 = First name of created-by user
Edmdef_CreatedByUserFullName22 = Full name of created-by user
Edmdef_CreatedByUserHomePhone42 = Home phone of created-by user
Edmdef_CreatedByUserInitials20 = Initials of created-by user
Edmdef_CreatedByUserJobTitle46 = Job title of created-by user
Edmdef_CreatedByUserLastName32 = Last name of created-by user
Edmdef_CreatedByUserMiddleName33 = Middle name of created-by user
Edmdef_CreatedByUserMobilePhone43 = Mobile phone of created-by user
Edmdef_CreatedByUserOffice47 = Office of created-by user
Edmdef_CreatedByUserPrefix34 = Prefix of created-by user
Edmdef_CreatedByUserState51 = State of created-by user
Edmdef_CreatedByUserSuffix35 = Suffix of created-by user
Edmdef_CreatedByUserWorkPhone41 = Work phone of created-by user
Edmdef_CreatedByUserZipCode49 = Zip code of created-by user
Edmdef_CurrentStatus12 = Name of the document's current status
Edmdef_CurrentStatusDescription15 = Description of the document's current status
Edmdef_CurrentTime2 = Show current time
Edmdef_DocumentPath6 = File path of the document
Edmdef_FileCardVariable1005 = The control gets a default value from the file card
Edmdef_Filename18 = Name of the document file
Edmdef_FileNameNoExt28 = File name without the extension.
Edmdef_FolderCardVariable1004 = The control gets a default value from the folder card
Edmdef_LastLabel7 = Last label placed on the document
Edmdef_LastRevComment4 = Last revision comment for the document
Edmdef_LastTransComment5 = Last transition comment for the document
Edmdef_LastTransitionXByUser11 = ID of the last user to perform a certain transition on the document
Edmdef_LastVersion10 = Current version number
Edmdef_LastVersionInStatusX13 = Version of document the last time it was in a certain workflow state
Edmdef_LastVersionInTransitionX14 = Version of document the last time it was subject to a certain workflow transition
Edmdef_LatestTransition16 = Name of the latest transition
Edmdef_LatestTransitionDesc17 = Description of the latest transition
Edmdef_LockedByUser9 = ID of the locked-by user
Edmdef_LockedByUserAddress92 = Address of the locked-by user
Edmdef_LockedByUserCity94 = City of the locked-by user
Edmdef_LockedByUserCompany88 = Company of the locked-by user
Edmdef_LockedByUserCountry96 = Country of the locked-by user
Edmdef_LockedByUserData24 = User data of the locked-by user
Edmdef_LockedByUserData283 = User data of the locked-by user
Edmdef_LockedByUserData384 = User data of the locked-by user
Edmdef_LockedByUserDepartment89 = Department of the locked-by user
Edmdef_LockedByUserEmail80 = Email of the locked-by user
Edmdef_LockedByUserEmail281 = Email of the locked-by user
Edmdef_LockedByUserEmail382 = Email of the locked-by user
Edmdef_LockedByUserFirstName75 = First name of the locked-by user
Edmdef_LockedByUserFullName22 = Full name of the locked-by user
Edmdef_LockedByUserHomePhone86 = Home phone of the locked-by user
Edmdef_LockedByUserInitials23 = Initials of the locked-by user
Edmdef_LockedByUserJobTitle90 = Job title of the locked-by user
Edmdef_LockedByUserLastName76 = Last name of the locked-by user
Edmdef_LockedByUserMiddleName77 = Middle name of the locked-by user
Edmdef_LockedByUserMobilePhone87 = Mobile phone of the locked-by user
Edmdef_LockedByUserOffice91 = Office of the locked-by user
Edmdef_LockedByUserPrefix78 = Prefix of the locked-by user
Edmdef_LockedByUserState95 = State of the locked-by user
Edmdef_LockedByUserSuffix79 = Suffix of the locked-by user
Edmdef_LockedByUserWorkPhone85 = Work phone of the locked-by user
Edmdef_LockedByUserZipCode93 = Zip code of the locked-by user
Edmdef_LoggedInUserAddress70 = Address of the logged-in user
Edmdef_LoggedInUserCity72 = City of the logged-in user
Edmdef_LoggedInUserCompany66 = Company of the logged-in user
Edmdef_LoggedInUserCountry74 = Country of the logged-in user
Edmdef_LoggedInUserData27 = User data of the logged-in user
Edmdef_LoggedInUserData261 = User data of the logged-in user
Edmdef_LoggedInUserData362 = User data of the logged-in user
Edmdef_LoggedInUserDepartment67 = Department of the logged-in user
Edmdef_LoggedInUserEmail58 = Email of the logged-in user
Edmdef_LoggedInUserEmail259 = Email of the logged-in user
Edmdef_LoggedInUserEmail360 = Email of the logged-in user
Edmdef_LoggedInUserFirstName53 = First name of the logged-in user
Edmdef_LoggedInUserFullName3 = ID of the current logged-in user
Edmdef_LoggedInUserHomePhone64 = Home phone of the logged-in user
Edmdef_LoggedInUserInitials26 = Initials of the logged-in user
Edmdef_LoggedInUserJobTitle68 = Job title of the logged-in user
Edmdef_LoggedInUserLastName54 = Last name of the logged-in user
Edmdef_LoggedInUserMiddleName55 = Middle name of the logged-in user
Edmdef_LoggedInUserMobilePhone65 = Mobile phone of the logged-in user
Edmdef_LoggedInUserName3 = ID of the current logged-in user
Edmdef_LoggedInUserOffice69 = Office of the logged-in user
Edmdef_LoggedInUserPrefix56 = Prefix of the logged-in user
Edmdef_LoggedInUserState73 = State of the logged-in user
Edmdef_LoggedInUserSuffix57 = Suffix of the logged-in user
Edmdef_LoggedInUserWorkPhone63 = Work phone of the logged-in user
Edmdef_LoggedInUserZipCode71 = Zip code of the logged-in user
Edmdef_NoDefaultValue0 = No default value
Edmdef_SerialNumber1003 = The control is connected to a serial number
Edmdef_String1001 = The control has a fixed string as a default value
Edmdef_TodaysDate1 = Show today's date
Edmdef_UserListAddress128 = Addresses of all users
Edmdef_UserListCity130 = Cities of all users
Edmdef_UserListCompany124 = Companies of all users
Edmdef_UserListCountry132 = Countries of all users
Edmdef_UserListData2119 = User data of all users
Edmdef_UserListData3120 = User data of all users
Edmdef_UserListDepartment125 = Departments of all users
Edmdef_UserListEmail116 = Emails of all users
Edmdef_UserListEmail2117 = Emails of all users
Edmdef_UserListEmail3118 = Emails of all users
Edmdef_UserListFirstName111 = First names of all users
Edmdef_UserListHomePhone122 = Home phones of all users
Edmdef_UserListJobTitle126 = Job titles of all users
Edmdef_UserListLastName112 = Last names of all users
Edmdef_UserListMiddleName113 = Middle names of all users
Edmdef_UserListMobilePhone123 = Mobile phones of all users
Edmdef_UserListOffice127 = Offices of all users
Edmdef_UserListPrefix114 = Prefixes of all users
Edmdef_UserListState131 = States of all users
Edmdef_UserListSuffix115 = Suffixes of all users
Edmdef_UserListWorkPhone121 = Work phones of all users
Edmdef_UserListZipCode129 = Zip codes of all users
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems.html new file mode 100644 index 0000000..174ed2a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems.html @@ -0,0 +1,154 @@ + + + + + + EdmDeletedItems Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDeletedItems Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDeletedItems Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about deleted items. + +

Syntax

Visual Basic 
Public Structure EdmDeletedItems 
+   Inherits System.ValueType
+
C# 
public struct EdmDeletedItems : System.ValueType 
+
C++/CLI 
public value class EdmDeletedItems : public System.ValueType 
+
+ + +

Example

struct EdmDeletedItems

{
  integer mlFileID;
  integer mlObjectType;
  integer mlProjectID;
  string moName;
};
+ +
+ + + + + +

See Also

+

Availability

SOLIDWORKS PDM Pro 2018
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_fields.html new file mode 100644 index 0000000..f789527 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmDeletedItems Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDeletedItems Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDeletedItems Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmDeletedItems members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmlFileIDID of the deleted item.  
public FieldmlObjectTypeObject type of the deleted item.  
public FieldmlProjectIDParent folder ID of the deleted item.  
public FieldmoNameName of the deleted item.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_members.html new file mode 100644 index 0000000..59f56b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems_members.html @@ -0,0 +1,164 @@ + + + + + + EdmDeletedItems Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDeletedItems Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDeletedItems Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmDeletedItems.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmlFileIDID of the deleted item.  
public FieldmlObjectTypeObject type of the deleted item.  
public FieldmlProjectIDParent folder ID of the deleted item.  
public FieldmoNameName of the deleted item.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlFileID.html new file mode 100644 index 0000000..382c449 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDeletedItems Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the deleted item. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlObjectType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlObjectType.html new file mode 100644 index 0000000..a394eda --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlObjectType.html @@ -0,0 +1,150 @@ + + + + + + mlObjectType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlObjectType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDeletedItems Structure + : mlObjectType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object type of the deleted item. +

Syntax

Visual Basic 
Public mlObjectType As System.Integer
+
C# 
public System.int mlObjectType
+
C++/CLI 
public:
+System.int mlObjectType
+ +

Field Value

Object type of the deleted item as defined in EdmObjectType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlProjectID.html new file mode 100644 index 0000000..3df5acb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~mlProjectID.html @@ -0,0 +1,150 @@ + + + + + + mlProjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlProjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDeletedItems Structure + : mlProjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Parent folder ID of the deleted item. +

Syntax

Visual Basic 
Public mlProjectID As System.Integer
+
C# 
public System.int mlProjectID
+
C++/CLI 
public:
+System.int mlProjectID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~moName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~moName.html new file mode 100644 index 0000000..926c013 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDeletedItems~moName.html @@ -0,0 +1,150 @@ + + + + + + moName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDeletedItems Structure + : moName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the deleted item. +

Syntax

Visual Basic 
Public moName As System.String
+
C# 
public System.string moName
+
C++/CLI 
public:
+System.String^ moName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs.html new file mode 100644 index 0000000..1c2d6a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs.html @@ -0,0 +1,154 @@ + + + + + + EdmDocIDs Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDocIDs Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDocIDs Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about one document in the vault; used in IEdmVault20::GetFiles. + +

Syntax

Visual Basic 
Public Structure EdmDocIDs 
+   Inherits System.ValueType
+
C# 
public struct EdmDocIDs : System.ValueType 
+
C++/CLI 
public value class EdmDocIDs : public System.ValueType 
+
+ + +

Example

struct EdmDocIDs

{
  integer mlDocID;
  integer mlProjID;
};
+ +
+ + + + + +

See Also

+ +
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_fields.html new file mode 100644 index 0000000..1f3ceed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmDocIDs Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDocIDs Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDocIDs Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmDocIDs members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmlDocIDUnique ID of the vault document.  
public FieldmlProjIDUnique ID of the document's parent folder in the vault.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_members.html new file mode 100644 index 0000000..747998f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs_members.html @@ -0,0 +1,162 @@ + + + + + + EdmDocIDs Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmDocIDs Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmDocIDs Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmDocIDs.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmlDocIDUnique ID of the vault document.  
public FieldmlProjIDUnique ID of the document's parent folder in the vault.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlDocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlDocID.html new file mode 100644 index 0000000..4e92fd9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlDocID.html @@ -0,0 +1,150 @@ + + + + + + mlDocID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlDocID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDocIDs Structure + : mlDocID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the vault document. +

Syntax

Visual Basic 
Public mlDocID As System.Integer
+
C# 
public System.int mlDocID
+
C++/CLI 
public:
+System.int mlDocID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlProjID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlProjID.html new file mode 100644 index 0000000..8c68ded --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmDocIDs~mlProjID.html @@ -0,0 +1,150 @@ + + + + + + mlProjID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlProjID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmDocIDs Structure + : mlProjID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the document's parent folder in the vault. +

Syntax

Visual Basic 
Public mlProjID As System.Integer
+
C# 
public System.int mlProjID
+
C++/CLI 
public:
+System.int mlProjID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo.html new file mode 100644 index 0000000..fd2fc98 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmFileInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFileInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFileInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Information about a file or folder that is added to or removed from the vault. + +

Syntax

Visual Basic 
Public Structure EdmFileInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmFileInfo : System.ValueType 
+
C++/CLI 
public value class EdmFileInfo : public System.ValueType 
+
+ + +

Example

struct EdmFileInfo{
  integer mlArg;
  integer mlFileID;
  integer mlFolderID;
  integer mhResult;
  string mbsPath;
  IEdmObject5* mpoObject;
};

+ +
+

Example

+

Remarks

Returned by IEdmBatchAdd::CommitAdd. One structure is returned for each file or folder added to the batch using one of the IEdmBatchAdd::AddXxxxx methods.
+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_fields.html new file mode 100644 index 0000000..ee7ffc0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmFileInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFileInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmFileInfo members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsPathFile system path to the file or folder.  
public FieldmhResultResult code for the add operation.  
public FieldmlArgCaller-defined argument passed to one of the add methods.  
public FieldmlFileIDID of the created file.  
public FieldmlFolderIDID of the created file's parent folder.  
public FieldmpoObjectInterface for the file or folder that was added to the batch using one of the IEdmBatchAdd::AddXxxxx methods.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_members.html new file mode 100644 index 0000000..6d1f53f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo_members.html @@ -0,0 +1,166 @@ + + + + + + EdmFileInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFileInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFileInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmFileInfo.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsPathFile system path to the file or folder.  
public FieldmhResultResult code for the add operation.  
public FieldmlArgCaller-defined argument passed to one of the add methods.  
public FieldmlFileIDID of the created file.  
public FieldmlFolderIDID of the created file's parent folder.  
public FieldmpoObjectInterface for the file or folder that was added to the batch using one of the IEdmBatchAdd::AddXxxxx methods.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mbsPath.html new file mode 100644 index 0000000..c53148f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mbsPath.html @@ -0,0 +1,152 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File system path to the file or folder. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mhResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mhResult.html new file mode 100644 index 0000000..0b8f769 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mhResult.html @@ -0,0 +1,152 @@ + + + + + + mhResult Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhResult Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mhResult Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Result code for the add operation. +

Syntax

Visual Basic 
Public mhResult As System.Integer
+
C# 
public System.int mhResult
+
C++/CLI 
public:
+System.int mhResult
+ +
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlArg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlArg.html new file mode 100644 index 0000000..851234b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlArg.html @@ -0,0 +1,150 @@ + + + + + + mlArg Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlArg Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mlArg Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Caller-defined argument passed to one of the add methods. +

Syntax

Visual Basic 
Public mlArg As System.Integer
+
C# 
public System.int mlArg
+
C++/CLI 
public:
+System.int mlArg
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFileID.html new file mode 100644 index 0000000..7c60dc2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFileID.html @@ -0,0 +1,152 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the created file. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +

Field Value

0, if a folder
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFolderID.html new file mode 100644 index 0000000..6fe2704 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mlFolderID.html @@ -0,0 +1,152 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the created file's parent folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mpoObject.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mpoObject.html new file mode 100644 index 0000000..fe61287 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileInfo~mpoObject.html @@ -0,0 +1,150 @@ + + + + + + mpoObject Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoObject Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFileInfo Structure + : mpoObject Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Interface for the file or folder that was added to the batch using one of the IEdmBatchAdd::AddXxxxx methods. +

Syntax

Visual Basic 
Public mpoObject As IEdmObject5
+
C# 
public IEdmObject5 mpoObject
+
C++/CLI 
public:
+IEdmObject5^ mpoObject
+ +

Field Value

IEdmFile6, if a file, or IEdmFolder6, if a folder
+ + + + + +

Remarks

This member is valid only if you specify EdmBatchAddFolderFlag.Ebaff_GetInterface or EdmAddFlag.EdmAdd_GetInterface in the method that adds the file or folder to the batch.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileType.html new file mode 100644 index 0000000..891b0e6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFileType.html @@ -0,0 +1,140 @@ + + + + + + EdmFileType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmFileType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmFileType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of SOLIDWORKS PDM Professional file; used in calls to IEdmFile8::FileType. +

Syntax

Visual Basic 
Public Enum EdmFileType 
+   Inherits System.Enum
+
C# 
public enum EdmFileType : System.Enum 
+
C++/CLI 
public enum class EdmFileType : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
Edmft_CutListItem5 = SOLIDWORKS cut list item
Edmft_InternalComponent2 = A SOLIDWORKS internal part or assembly
Edmft_Item4 = IEdmItem
Edmft_Normal1 = File system file
Edmft_Nothing0 = Error
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFindUserProp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFindUserProp.html new file mode 100644 index 0000000..3973bcf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFindUserProp.html @@ -0,0 +1,140 @@ + + + + + + EdmFindUserProp Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmFindUserProp Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmFindUserProp Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Properties to get or set when calling IEdmFindUser::GetPropt and IEdmFindUser::SetPropt. +

Syntax

Visual Basic 
Public Enum EdmFindUserProp 
+   Inherits System.Enum
+
C# 
public enum EdmFindUserProp : System.Enum 
+
C++/CLI 
public enum class EdmFindUserProp : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
Edmfup_Email3 = User's email address
Edmfup_FullName1 = User's full name
Edmfup_Initials2 = User's initials
Edmfup_LoginName0 = User's login name
Edmfup_UserData4 = User's custom data
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderHistoryFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderHistoryFlag.html new file mode 100644 index 0000000..1027245 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderHistoryFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmFolderHistoryFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmFolderHistoryFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmFolderHistoryFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for adding folders when calling IEdmHistory::AddFolder. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmFolderHistoryFlag 
+   Inherits System.Enum
+
C# 
public enum EdmFolderHistoryFlag : System.Enum 
+
C++/CLI 
public enum class EdmFolderHistoryFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Edmfhf_IncludeFiles2 = Add all files in the folder and subfolders
Edmfhf_Nothing0 = Add the folder
Edmfhf_Recursive1 = Add subfolders
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo.html new file mode 100644 index 0000000..e4a8e8f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmFolderInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Information about a folder that is added to the vault. + +

Syntax

Visual Basic 
Public Structure EdmFolderInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmFolderInfo : System.ValueType 
+
C++/CLI 
public value class EdmFolderInfo : public System.ValueType 
+
+ + +

Example

struct EdmFolderInfo{
  integer mlFolderID;
  string mbsPath;
  integer mlParam;
  integer mlEdmFolderInfoFlags;
  IEdmFolder6* mpoFolder;
};

+ +
+

Example

+

Remarks

Returned by IEdmBatchAddFolders::Create. One structure is returned for each folder added to the batch using IEdmBatchAddFolders::AddFolder.
+ + + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfoFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfoFlag.html new file mode 100644 index 0000000..f168489 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfoFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmFolderInfoFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmFolderInfoFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmFolderInfoFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Return codes in EdmFolderInfo which is returned from IEdmBatchAddFolders::Create. +

Syntax

Visual Basic 
Public Enum EdmFolderInfoFlag 
+   Inherits System.Enum
+
C# 
public enum EdmFolderInfoFlag : System.Enum 
+
C++/CLI 
public enum class EdmFolderInfoFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Eff_AlreadyExisted1 = Folder already existed in the vault; EdmFolderInfo structure contains information about the existing folder
Eff_Nothing0 = Folder was successfully added
Eff_PermissionDenied2 = Folder could not be added due to lack of permissions
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_fields.html new file mode 100644 index 0000000..1f2fa05 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmFolderInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmFolderInfo members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsPathComplete path to the folder.  
public FieldmlEdmFolderInfoFlagsNon-critical errors about this folder.  
public FieldmlFolderIDID of the folder.  
public FieldmlParamUser-defined lParam argument passed to IEdmBatchAddFolders::AddFolder.  
public FieldmpoFolderInterface for the folder that was added to the batch using IEdmBatchAddFolders::AddFolder.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_members.html new file mode 100644 index 0000000..df9d490 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo_members.html @@ -0,0 +1,165 @@ + + + + + + EdmFolderInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmFolderInfo.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsPathComplete path to the folder.  
public FieldmlEdmFolderInfoFlagsNon-critical errors about this folder.  
public FieldmlFolderIDID of the folder.  
public FieldmlParamUser-defined lParam argument passed to IEdmBatchAddFolders::AddFolder.  
public FieldmpoFolderInterface for the folder that was added to the batch using IEdmBatchAddFolders::AddFolder.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mbsPath.html new file mode 100644 index 0000000..8568844 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mbsPath.html @@ -0,0 +1,150 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderInfo Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Complete path to the folder. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlEdmFolderInfoFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlEdmFolderInfoFlags.html new file mode 100644 index 0000000..751cb1b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlEdmFolderInfoFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmFolderInfoFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmFolderInfoFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderInfo Structure + : mlEdmFolderInfoFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Non-critical errors about this folder. +

Syntax

Visual Basic 
Public mlEdmFolderInfoFlags As System.Integer
+
C# 
public System.int mlEdmFolderInfoFlags
+
C++/CLI 
public:
+System.int mlEdmFolderInfoFlags
+ +

Field Value

Combination of EdmFolderInfoFlag bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlFolderID.html new file mode 100644 index 0000000..e8e854e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderInfo Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlParam.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlParam.html new file mode 100644 index 0000000..ff874e6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mlParam.html @@ -0,0 +1,150 @@ + + + + + + mlParam Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParam Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderInfo Structure + : mlParam Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User-defined lParam argument passed to IEdmBatchAddFolders::AddFolder. +

Syntax

Visual Basic 
Public mlParam As System.Integer
+
C# 
public System.int mlParam
+
C++/CLI 
public:
+System.int mlParam
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mpoFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mpoFolder.html new file mode 100644 index 0000000..8d5b343 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderInfo~mpoFolder.html @@ -0,0 +1,150 @@ + + + + + + mpoFolder Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoFolder Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderInfo Structure + : mpoFolder Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Interface for the folder that was added to the batch using IEdmBatchAddFolders::AddFolder. +

Syntax

Visual Basic 
Public mpoFolder As IEdmFolder6
+
C# 
public IEdmFolder6 mpoFolder
+
C++/CLI 
public:
+IEdmFolder6^ mpoFolder
+ +
+ + + + + +

Remarks

This member is valid only if you specify EdmBatchAddFolderFlag.Ebaff_GetInterface in IEdmBatchAddFolders::AddFolder.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission.html new file mode 100644 index 0000000..8d6b14f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission.html @@ -0,0 +1,156 @@ + + + + + + EdmFolderPermission Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderPermission Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderPermission Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains permission settings. + +

Syntax

Visual Basic 
Public Structure EdmFolderPermission 
+   Inherits System.ValueType
+
C# 
public struct EdmFolderPermission : System.ValueType 
+
C++/CLI 
public value class EdmFolderPermission : public System.ValueType 
+
+ + +

Example

struct EdmFolderPermission
{
  integer mlEdmRightFlag;
  integer mlFolderID;
  integer mlOwnerID;
  enum EdmObjectType meOwnerType;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_fields.html new file mode 100644 index 0000000..f89e7e8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmFolderPermission Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderPermission Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderPermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmFolderPermission members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeFolder owner type.  
public FieldmlEdmRightFlagFolder rights.  
public FieldmlFolderIDID of folder to which to assign permissions.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_members.html new file mode 100644 index 0000000..b046541 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission_members.html @@ -0,0 +1,164 @@ + + + + + + EdmFolderPermission Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmFolderPermission Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmFolderPermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmFolderPermission.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeFolder owner type.  
public FieldmlEdmRightFlagFolder rights.  
public FieldmlFolderIDID of folder to which to assign permissions.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~meOwnerType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~meOwnerType.html new file mode 100644 index 0000000..aba8c35 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~meOwnerType.html @@ -0,0 +1,150 @@ + + + + + + meOwnerType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meOwnerType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderPermission Structure + : meOwnerType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Folder owner type. +

Syntax

Visual Basic 
Public meOwnerType As EdmObjectType
+
C# 
public EdmObjectType meOwnerType
+
C++/CLI 
public:
+EdmObjectType meOwnerType
+ +

Field Value

EdmObjectType.EdmObject_User or EdmObjectType.EdmObject_UserGroup
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlEdmRightFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlEdmRightFlag.html new file mode 100644 index 0000000..6fa969d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlEdmRightFlag.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRightFlag Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRightFlag Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderPermission Structure + : mlEdmRightFlag Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Folder rights. +

Syntax

Visual Basic 
Public mlEdmRightFlag As System.Integer
+
C# 
public System.int mlEdmRightFlag
+
C++/CLI 
public:
+System.int mlEdmRightFlag
+ +

Field Value

Combination of EdmRightFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlFolderID.html new file mode 100644 index 0000000..b9228a3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderPermission Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of folder to which to assign permissions. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlOwnerID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlOwnerID.html new file mode 100644 index 0000000..a3fbd65 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmFolderPermission~mlOwnerID.html @@ -0,0 +1,150 @@ + + + + + + mlOwnerID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlOwnerID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmFolderPermission Structure + : mlOwnerID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of meOwnerType for whom to assign permissions. +

Syntax

Visual Basic 
Public mlOwnerID As System.Integer
+
C# 
public System.int mlOwnerID
+
C++/CLI 
public:
+System.int mlOwnerID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo.html new file mode 100644 index 0000000..41123ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmGenItemInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGenItemInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGenItemInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about generated items. + +

Syntax

Visual Basic 
Public Structure EdmGenItemInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmGenItemInfo : System.ValueType 
+
C++/CLI 
public value class EdmGenItemInfo : public System.ValueType 
+
+ + +

Example

struct EdmGenItemInfo{
  integer mlFileID;
  integer mlFileParentFolderID;
  string mbsConfiguration;
  integer mlFileVersion;
  string mbsFileFolderPath;
  string mbsFileName;
  integer mlItemID;
  integer mlItemParentFolderID;
  enum EdmItemLinkType meLinkType;
  string mbsItemFolderPath;
  string mbsItemName;
  string mbsItemAlternativeName;
  integer mhResult;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_fields.html new file mode 100644 index 0000000..1e0df21 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_fields.html @@ -0,0 +1,146 @@ + + + + + + EdmGenItemInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGenItemInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGenItemInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmGenItemInfo members.

+ + +

Public Fields

+ + + + + + + + + + + + + +
 NameDescription
public FieldmbsConfigurationName of the configuration to which the item is linked.  
public FieldmbsFileFolderPathPath to the file's parent folder.  
public FieldmbsFileNameFile's name.  
public FieldmbsItemAlternativeNameItem's descriptive name.  
public FieldmbsItemFolderPathPath to the item's parent folder.  
public FieldmbsItemNameItem ID.  
public FieldmeLinkTypeType of link between the file and the item.  
public FieldmhResultResult code of the item generation operation.  
public FieldmlFileIDID of the file to which the item is linked.  
public FieldmlFileParentFolderIDID of the file's parent folder.  
public FieldmlFileVersionFile version number for which to create the item.  
public FieldmlItemIDID of the item.  
public FieldmlItemParentFolderIDID of the item's parent folder.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_members.html new file mode 100644 index 0000000..13371a7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo_members.html @@ -0,0 +1,173 @@ + + + + + + EdmGenItemInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGenItemInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGenItemInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmGenItemInfo.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + + + +
 NameDescription
public FieldmbsConfigurationName of the configuration to which the item is linked.  
public FieldmbsFileFolderPathPath to the file's parent folder.  
public FieldmbsFileNameFile's name.  
public FieldmbsItemAlternativeNameItem's descriptive name.  
public FieldmbsItemFolderPathPath to the item's parent folder.  
public FieldmbsItemNameItem ID.  
public FieldmeLinkTypeType of link between the file and the item.  
public FieldmhResultResult code of the item generation operation.  
public FieldmlFileIDID of the file to which the item is linked.  
public FieldmlFileParentFolderIDID of the file's parent folder.  
public FieldmlFileVersionFile version number for which to create the item.  
public FieldmlItemIDID of the item.  
public FieldmlItemParentFolderIDID of the item's parent folder.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsConfiguration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsConfiguration.html new file mode 100644 index 0000000..4d86ed3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsConfiguration.html @@ -0,0 +1,150 @@ + + + + + + mbsConfiguration Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsConfiguration Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsConfiguration Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the configuration to which the item is linked. +

Syntax

Visual Basic 
Public mbsConfiguration As System.String
+
C# 
public System.string mbsConfiguration
+
C++/CLI 
public:
+System.String^ mbsConfiguration
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileFolderPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileFolderPath.html new file mode 100644 index 0000000..930138e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileFolderPath.html @@ -0,0 +1,150 @@ + + + + + + mbsFileFolderPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsFileFolderPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsFileFolderPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the file's parent folder. +

Syntax

Visual Basic 
Public mbsFileFolderPath As System.String
+
C# 
public System.string mbsFileFolderPath
+
C++/CLI 
public:
+System.String^ mbsFileFolderPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileName.html new file mode 100644 index 0000000..2de87c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsFileName.html @@ -0,0 +1,150 @@ + + + + + + mbsFileName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsFileName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsFileName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File's name. +

Syntax

Visual Basic 
Public mbsFileName As System.String
+
C# 
public System.string mbsFileName
+
C++/CLI 
public:
+System.String^ mbsFileName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemAlternativeName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemAlternativeName.html new file mode 100644 index 0000000..150043f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemAlternativeName.html @@ -0,0 +1,150 @@ + + + + + + mbsItemAlternativeName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsItemAlternativeName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsItemAlternativeName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Item's descriptive name. +

Syntax

Visual Basic 
Public mbsItemAlternativeName As System.String
+
C# 
public System.string mbsItemAlternativeName
+
C++/CLI 
public:
+System.String^ mbsItemAlternativeName
+ +
+ + + + + +

Remarks

This member is based on a variable value in the item card.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemFolderPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemFolderPath.html new file mode 100644 index 0000000..ae66032 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemFolderPath.html @@ -0,0 +1,150 @@ + + + + + + mbsItemFolderPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsItemFolderPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsItemFolderPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the item's parent folder. +

Syntax

Visual Basic 
Public mbsItemFolderPath As System.String
+
C# 
public System.string mbsItemFolderPath
+
C++/CLI 
public:
+System.String^ mbsItemFolderPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemName.html new file mode 100644 index 0000000..d32c190 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mbsItemName.html @@ -0,0 +1,150 @@ + + + + + + mbsItemName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsItemName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mbsItemName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Item ID. +

Syntax

Visual Basic 
Public mbsItemName As System.String
+
C# 
public System.string mbsItemName
+
C++/CLI 
public:
+System.String^ mbsItemName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~meLinkType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~meLinkType.html new file mode 100644 index 0000000..2aa27de --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~meLinkType.html @@ -0,0 +1,150 @@ + + + + + + meLinkType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meLinkType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : meLinkType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of link between the file and the item. +

Syntax

Visual Basic 
Public meLinkType As EdmItemLinkType
+
C# 
public EdmItemLinkType meLinkType
+
C++/CLI 
public:
+EdmItemLinkType meLinkType
+ +

Field Value

Type of link as define din EdmItemLinkType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mhResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mhResult.html new file mode 100644 index 0000000..ce107e3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mhResult.html @@ -0,0 +1,150 @@ + + + + + + mhResult Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhResult Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mhResult Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Result code of the item generation operation. +

Syntax

Visual Basic 
Public mhResult As System.Integer
+
C# 
public System.int mhResult
+
C++/CLI 
public:
+System.int mhResult
+ +
+ + + + + +

Remarks

Call IEdmVault5::GetErrorString to get a meaningful description of the error.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileID.html new file mode 100644 index 0000000..6c45dbe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file to which the item is linked. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileParentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileParentFolderID.html new file mode 100644 index 0000000..40af799 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileParentFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFileParentFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileParentFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mlFileParentFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file's parent folder. +

Syntax

Visual Basic 
Public mlFileParentFolderID As System.Integer
+
C# 
public System.int mlFileParentFolderID
+
C++/CLI 
public:
+System.int mlFileParentFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileVersion.html new file mode 100644 index 0000000..c8706a6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlFileVersion.html @@ -0,0 +1,150 @@ + + + + + + mlFileVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mlFileVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File version number for which to create the item. +

Syntax

Visual Basic 
Public mlFileVersion As System.Integer
+
C# 
public System.int mlFileVersion
+
C++/CLI 
public:
+System.int mlFileVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemID.html new file mode 100644 index 0000000..1aadf46 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemID.html @@ -0,0 +1,150 @@ + + + + + + mlItemID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlItemID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mlItemID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the item. +

Syntax

Visual Basic 
Public mlItemID As System.Integer
+
C# 
public System.int mlItemID
+
C++/CLI 
public:
+System.int mlItemID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemParentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemParentFolderID.html new file mode 100644 index 0000000..9f045c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGenItemInfo~mlItemParentFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlItemParentFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlItemParentFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGenItemInfo Structure + : mlItemParentFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the item's parent folder. +

Syntax

Visual Basic 
Public mlItemParentFolderID As System.Integer
+
C# 
public System.int mlItemParentFolderID
+
C++/CLI 
public:
+System.int mlItemParentFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetCmdFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetCmdFlags.html new file mode 100644 index 0000000..a442ac4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetCmdFlags.html @@ -0,0 +1,152 @@ + + + + + + EdmGetCmdFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetCmdFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetCmdFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for retrieving files from the vault used in calls to IEdmBatchGet::CreateTree. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmGetCmdFlags 
+   Inherits System.Enum
+
C# 
public enum EdmGetCmdFlags : System.Enum 
+
C++/CLI 
public enum class EdmGetCmdFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + +
MemberDescription
Egcf_AsBuilt1 = Use the same versions of referenced files that were used when the referencing file was checked in; if this bit is not set, the latest versions of referenced files are used
Egcf_AsBuiltNotDefault128 = Use the as-built versions when creating the tree
Egcf_ForPreview16 = Only retrieve referenced files that are needed by the preview when retrieving the referencing file; skip caching referenced files
Egcf_ForViewer8192 = Only retrieve referenced files that are needed by the viewer when retrieving the referencing file; skip caching referenced files
Egcf_IncludeAutoCacheFiles2048 = Selects the Check Out dialog box Get checkbox for the latest version if the referenced file is not in the local cache
Egcf_Lock2 = Check out the files instead of just retrieving them
Egcf_LockNoLclCopyFiles1024 = Locks the local referenced files if a local cache is not present
Egcf_LockReferencedFilesToo64 = Check out files referenced by the checked-out file
Egcf_Nothing0 = No options
Egcf_RefreshFileListing32 = Refresh file listing in File Explorer after files have been checked out
Egcf_RollbackTree4096 = Provide the ability to roll back files in the dialog
Egcf_SingleFileRollback16384 = Roll back one file
Egcf_SkipExisting8 = Do not retrieve files that already exist in the local cache
Egcf_SkipLockRefFiles512 = Skips checking of lock file references
Egcf_SkipOpenFileChecks256 = Skips checking whether the file is open in another application
Egcf_SkipUnlockedWritable4 = Do not retrieve files that are writable and not checked out
Egcf_XrefsOpenCheck32768 = Check whether cross-reference files are open in another application
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetConfirmReason.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetConfirmReason.html new file mode 100644 index 0000000..af60f23 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetConfirmReason.html @@ -0,0 +1,137 @@ + + + + + + EdmGetConfirmReason Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetConfirmReason Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetConfirmReason Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of confirmation to specify when calling IEdmGetOpCallback::ConfirmReplace. +

Syntax

Visual Basic 
Public Enum EdmGetConfirmReason 
+   Inherits System.Enum
+
C# 
public enum EdmGetConfirmReason : System.Enum 
+
C++/CLI 
public enum class EdmGetConfirmReason : public System.Enum 
+
+

Members

+ + +
MemberDescription
Egcr_Locked1 = File is checked out
Egcr_UnlockedWritable2 = File is checkd in but writable
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFileListFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFileListFlag.html new file mode 100644 index 0000000..7df3a76 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFileListFlag.html @@ -0,0 +1,139 @@ + + + + + + EdmGetFileListFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetFileListFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetFileListFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Files to return by IEdmBatchGet::GetFileList. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmGetFileListFlag 
+   Inherits System.Enum
+
C# 
public enum EdmGetFileListFlag : System.Enum 
+
C++/CLI 
public enum class EdmGetFileListFlag : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
Egflf_GetFailed8 = Operation failed
Egflf_GetLocked2 = Return files checked out by the operation
Egflf_GetRetrieved1 = Return files retrieved by the operation
Egflf_GetUnprocessed4 = Return files not processed by the operation
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFlag.html new file mode 100644 index 0000000..638b325 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetFlag.html @@ -0,0 +1,143 @@ + + + + + + EdmGetFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for retrieving files used in calls to IEdmFile5::GetFileCopy, IEdmEnumeratorVersion5::GetFileCopy, IEdmVersion5::GetFileCopy, and IEdmRevision5::GetFileCopy. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmGetFlag 
+   Inherits System.Enum
+
C# 
public enum EdmGetFlag : System.Enum 
+
C++/CLI 
public enum class EdmGetFlag : public System.Enum 
+
+

Members

+ + + + + + + + +
MemberDescription
EdmGet_DisableRefresh2 = Do not refresh File Explorer when a file is retrieved
EdmGet_ForPreview64 = Only retrieve referenced files that are needed by SOLIDWORKS PDM Professional's preview when retrieving the referencing file
EdmGet_MakeReadOnly1 = Mark the retrieved file as read-only
EdmGet_Refs4 = Get referenced files
EdmGet_RefsOnlyMissing8 = Only get referenced files that are not present on the local hard disk; only valid in combination with EdmGet_Refs
EdmGet_RefsOverwriteLocked32 = Retrieve checked out referenced files and their references; only valid in combination with EdmGet_Refs; Warning: Setting this flag means that any previous modifications to checked out files will be lost.
EdmGet_RefsVerLatest16 = Retrieve the latest versions of referenced files that you have permission to see instead of attached versions that were used when the file was checked in; only valid in combination with EdmGet_Refs
EdmGet_Simple0 = Retrieve the file
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMenuInfoFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMenuInfoFlags.html new file mode 100644 index 0000000..cee5128 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMenuInfoFlags.html @@ -0,0 +1,137 @@ + + + + + + EdmGetMenuInfoFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetMenuInfoFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetMenuInfoFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags returned from IEdmSearch7::GetMenuInfo. +

Syntax

Visual Basic 
Public Enum EdmGetMenuInfoFlags 
+   Inherits System.Enum
+
C# 
public enum EdmGetMenuInfoFlags : System.Enum 
+
C++/CLI 
public enum class EdmGetMenuInfoFlags : public System.Enum 
+
+

Members

+ + +
MemberDescription
Egmif_HasAddins1 = The file vault contains add-ins
Egmif_Nothing0 = No flags are set
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMsgFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMsgFlag.html new file mode 100644 index 0000000..396c6d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetMsgFlag.html @@ -0,0 +1,139 @@ + + + + + + EdmGetMsgFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetMsgFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetMsgFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of message returned used in calls to IEdmInbox5::GetFirstMessagePosition. +

Syntax

Visual Basic 
Public Enum EdmGetMsgFlag 
+   Inherits System.Enum
+
C# 
public enum EdmGetMsgFlag : System.Enum 
+
C++/CLI 
public enum class EdmGetMsgFlag : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmGetMsg_Notifications4 = Return only file or folder notifications
EdmGetMsg_OnlyNew1 = Return only messages that have not been processed before
EdmGetMsg_OnlyUnread8 = Return only messages having the IEdmMessage5::IsRead flag set to true
EdmGetMsg_UserMessages2 = Return only messages sent from users
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpError.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpError.html new file mode 100644 index 0000000..2798f81 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpError.html @@ -0,0 +1,139 @@ + + + + + + EdmGetOpError Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetOpError Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetOpError Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Cold storage file retrieval error codes; used in calls to IEdmGetOpCallback2::ReportFailureEx. +

Syntax

Visual Basic 
Public Enum EdmGetOpError 
+   Inherits System.Enum
+
C# 
public enum EdmGetOpError : System.Enum 
+
C++/CLI 
public enum class EdmGetOpError : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmGetErr_InColdStorageAvailable1 = The version you are attempting to retrieve is in cold storage and needs to be retrieved from the backup media
EdmGetErr_InColdStorageDeleted2 = The version you are attempting to retrieve was sent to cold storage and deleted
EdmGetErr_InColdStoragePermissionDenied3 = The version you are attempting to retrieve is in cold storage, and you lack permission to restore it
EdmGetErr_InColdStorageRestoreFailed4 = Could not retrieve the file from cold storage
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpMsg.html new file mode 100644 index 0000000..9c2e2f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpMsg.html @@ -0,0 +1,139 @@ + + + + + + EdmGetOpMsg Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetOpMsg Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetOpMsg Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Log error messages; used in calls to IEdmGetOpCallback::LogMessage. +

Syntax

Visual Basic 
Public Enum EdmGetOpMsg 
+   Inherits System.Enum
+
C# 
public enum EdmGetOpMsg : System.Enum 
+
C++/CLI 
public enum class EdmGetOpMsg : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
Egom_ErrorRunningPostAddins3 = An error occurred running add-ins that implement hooks on EdmCmd_PostGet or EdmCmd_PostLock commands
Egom_LockNotificationsError1 = Error sending check-out notifications
Egom_Undefined0 = Undefined message
Egom_UndoLockAfterErrorFailed2 = The attempt to unlock a file after its check-out failed has failed
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpReply.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpReply.html new file mode 100644 index 0000000..8eb302a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetOpReply.html @@ -0,0 +1,139 @@ + + + + + + EdmGetOpReply Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetOpReply Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetOpReply Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for continuing with a command; returned from IEdmGetOpCallback2::ReportFailureEx. +

Syntax

Visual Basic 
Public Enum EdmGetOpReply 
+   Inherits System.Enum
+
C# 
public enum EdmGetOpReply : System.Enum 
+
C++/CLI 
public enum class EdmGetOpReply : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmGetRep_CallReportFailure0 = Call IEdmGetOpCallback::ReportFailure
EdmGetRep_Cancel1 = Cancel the operation
EdmGetRep_Process3 = Proceed to process the file
EdmGetRep_Skip2 = Skip the file but proceed with the operation
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetPermFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetPermFlag.html new file mode 100644 index 0000000..026dbd1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetPermFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmGetPermFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetPermFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetPermFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options for returning folder permissions used in calls to IEdmUserMgr7::GetFolderPermissions. +

Syntax

Visual Basic 
Public Enum EdmGetPermFlag 
+   Inherits System.Enum
+
C# 
public enum EdmGetPermFlag : System.Enum 
+
C++/CLI 
public enum class EdmGetPermFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmGetPerm_Nothing0 = Default behavior; return all inherited permissions, not just those explicitly set on a folder
EdmGetPerm_OnlyExplicitlySet1 = Return only permissions explicitly set on folders
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData.html new file mode 100644 index 0000000..2600274 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData.html @@ -0,0 +1,156 @@ + + + + + + EdmGetVarData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGetVarData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGetVarData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains extra file information. + +

Syntax

Visual Basic 
Public Structure EdmGetVarData 
+   Inherits System.ValueType
+
C# 
public struct EdmGetVarData : System.ValueType 
+
C++/CLI 
public value class EdmGetVarData : public System.ValueType 
+
+ + +

Example

struct EdmGetVarData{
  integer mlVersion;
  integer mlLatestVersion;
  string mbsRevision;
  string mbsState;
  string mbsWorkflow;
  string mbsCategory;
  integer mlDateFmt;
  integer mlEdmGetVarDataFlags;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarDataFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarDataFlag.html new file mode 100644 index 0000000..89414fe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarDataFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmGetVarDataFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGetVarDataFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGetVarDataFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options specified in EdmGetVarData to describe a file. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmGetVarDataFlag 
+   Inherits System.Enum
+
C# 
public enum EdmGetVarDataFlag : System.Enum 
+
C++/CLI 
public enum class EdmGetVarDataFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
Edmgvdf_MayUpdate1 = The file's card may be updated by the logged-in user
Edmgvdf_Nothing0 = No updates
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_fields.html new file mode 100644 index 0000000..1d7b907 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_fields.html @@ -0,0 +1,141 @@ + + + + + + EdmGetVarData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGetVarData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGetVarData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmGetVarData members.

+ + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsCategoryName of the file's category.  
public FieldmbsRevisionName of the current revision.  
public FieldmbsStateName of the current workflow state.  
public FieldmbsWorkflowName of the current workflow.  
public FieldmlDateFmtSQL-server date format of the date used in the vault.  
public FieldmlEdmGetVarDataFlagsDate flags.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlVersionLocal version of the file.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_members.html new file mode 100644 index 0000000..ec02e5e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData_members.html @@ -0,0 +1,168 @@ + + + + + + EdmGetVarData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGetVarData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGetVarData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmGetVarData.

+ + + + + + + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsCategoryName of the file's category.  
public FieldmbsRevisionName of the current revision.  
public FieldmbsStateName of the current workflow state.  
public FieldmbsWorkflowName of the current workflow.  
public FieldmlDateFmtSQL-server date format of the date used in the vault.  
public FieldmlEdmGetVarDataFlagsDate flags.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlVersionLocal version of the file.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsCategory.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsCategory.html new file mode 100644 index 0000000..c46de81 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsCategory.html @@ -0,0 +1,150 @@ + + + + + + mbsCategory Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCategory Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mbsCategory Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the file's category. +

Syntax

Visual Basic 
Public mbsCategory As System.String
+
C# 
public System.string mbsCategory
+
C++/CLI 
public:
+System.String^ mbsCategory
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsRevision.html new file mode 100644 index 0000000..a988e34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsRevision.html @@ -0,0 +1,150 @@ + + + + + + mbsRevision Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRevision Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mbsRevision Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the current revision. +

Syntax

Visual Basic 
Public mbsRevision As System.String
+
C# 
public System.string mbsRevision
+
C++/CLI 
public:
+System.String^ mbsRevision
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsState.html new file mode 100644 index 0000000..2deefa8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsState.html @@ -0,0 +1,150 @@ + + + + + + mbsState Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsState Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mbsState Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the current workflow state. +

Syntax

Visual Basic 
Public mbsState As System.String
+
C# 
public System.string mbsState
+
C++/CLI 
public:
+System.String^ mbsState
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsWorkflow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsWorkflow.html new file mode 100644 index 0000000..faacc34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mbsWorkflow.html @@ -0,0 +1,150 @@ + + + + + + mbsWorkflow Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWorkflow Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mbsWorkflow Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the current workflow. +

Syntax

Visual Basic 
Public mbsWorkflow As System.String
+
C# 
public System.string mbsWorkflow
+
C++/CLI 
public:
+System.String^ mbsWorkflow
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlDateFmt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlDateFmt.html new file mode 100644 index 0000000..b3587e5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlDateFmt.html @@ -0,0 +1,150 @@ + + + + + + mlDateFmt Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlDateFmt Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mlDateFmt Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + SQL-server date format of the date used in the vault. +

Syntax

Visual Basic 
Public mlDateFmt As System.Integer
+
C# 
public System.int mlDateFmt
+
C++/CLI 
public:
+System.int mlDateFmt
+ +
+ + + + + +

Remarks

See the CAST and CONVERT commands in the Microsoft SQL Server online help for more details about date codes.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlEdmGetVarDataFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlEdmGetVarDataFlags.html new file mode 100644 index 0000000..996fff0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlEdmGetVarDataFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmGetVarDataFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmGetVarDataFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mlEdmGetVarDataFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Date flags. +

Syntax

Visual Basic 
Public mlEdmGetVarDataFlags As System.Integer
+
C# 
public System.int mlEdmGetVarDataFlags
+
C++/CLI 
public:
+System.int mlEdmGetVarDataFlags
+ +

Field Value

Combination of EdmGetVarDataFlag bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlLatestVersion.html new file mode 100644 index 0000000..685fbfa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mlLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Latest version of the file. +

Syntax

Visual Basic 
Public mlLatestVersion As System.Integer
+
C# 
public System.int mlLatestVersion
+
C++/CLI 
public:
+System.int mlLatestVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlVersion.html new file mode 100644 index 0000000..5f2e823 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGetVarData~mlVersion.html @@ -0,0 +1,150 @@ + + + + + + mlVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGetVarData Structure + : mlVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Local version of the file. +

Syntax

Visual Basic 
Public mlVersion As System.Integer
+
C# 
public System.int mlVersion
+
C++/CLI 
public:
+System.int mlVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData.html new file mode 100644 index 0000000..8d17516 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData.html @@ -0,0 +1,162 @@ + + + + + + EdmGroupData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a user group. + +

Syntax

Visual Basic 
Public Structure EdmGroupData 
+   Inherits System.ValueType
+
C# 
public struct EdmGroupData : System.ValueType 
+
C++/CLI 
public value class EdmGroupData : public System.ValueType 
+
+ + +

Example

struct EdmGroupData

+

{
  string mbsName;

+

  string mbsDescription;

+

integer mlFlags;

+

integer mlSysRights;

+

short mbAutoAdd;

+

array moMembers;

+

integer mlGroupID;

+

integer mhStatus;

  IEdmUserGroup5 *mpoGroup;
};
+ +
+ +

Remarks

Used in IEdmUserMgr6::AddGroups. This structure is extended by EdmGroupData2, which should be used instead of this structure in version 2010 and later.

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2.html new file mode 100644 index 0000000..baf9a2d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2.html @@ -0,0 +1,156 @@ + + + + + + EdmGroupData2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a user group. + +

Syntax

Visual Basic 
Public Structure EdmGroupData2 
+   Inherits System.ValueType
+
C# 
public struct EdmGroupData2 : System.ValueType 
+
C++/CLI 
public value class EdmGroupData2 : public System.ValueType 
+
+ + +

Example

struct EdmGroupData2{
  string mbsName;
  string mbsDescription;
  integer mlFlags;
  array(enum EdmSysPerm) moSysPerms;
  short mbAutoAdd;
  array(integer) moMembers;
  integer mlGroupID;
  integer mhStatus;
  IEdmUserGroup5 *mpoGroup;
};

+ +
+

Example

+

Remarks

This structure extends EdmGroupData and is used in IEdmUserMgr7::AddGroups2 to add user groups to the vault.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_fields.html new file mode 100644 index 0000000..b52c8c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_fields.html @@ -0,0 +1,142 @@ + + + + + + EdmGroupData2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmGroupData2 members.

+ + +

Public Fields

+ + + + + + + + + +
 NameDescription
public FieldmbAutoAddWhether to automatically add new users to this group.  
public FieldmbsDescriptionGroup description.  
public FieldmbsNameName of the group.  
public FieldmhStatusStatus of the group creation.  
public FieldmlFlagsGroup creation flags.  
public FieldmlGroupIDID of the group.  
public FieldmoMembersArray of IDS of users to add to this group.  
public FieldmoSysPermsGroup system permissions.  
public FieldmpoGroupGroup interface.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_members.html new file mode 100644 index 0000000..6b17ff7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2_members.html @@ -0,0 +1,169 @@ + + + + + + EdmGroupData2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmGroupData2.

+ + + + + + + +

Public Fields

+ + + + + + + + + +
 NameDescription
public FieldmbAutoAddWhether to automatically add new users to this group.  
public FieldmbsDescriptionGroup description.  
public FieldmbsNameName of the group.  
public FieldmhStatusStatus of the group creation.  
public FieldmlFlagsGroup creation flags.  
public FieldmlGroupIDID of the group.  
public FieldmoMembersArray of IDS of users to add to this group.  
public FieldmoSysPermsGroup system permissions.  
public FieldmpoGroupGroup interface.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbAutoAdd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbAutoAdd.html new file mode 100644 index 0000000..36e8e62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbAutoAdd.html @@ -0,0 +1,150 @@ + + + + + + mbAutoAdd Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbAutoAdd Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mbAutoAdd Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Whether to automatically add new users to this group. +

Syntax

Visual Basic 
Public mbAutoAdd As System.Short
+
C# 
public System.short mbAutoAdd
+
C++/CLI 
public:
+System.short mbAutoAdd
+ +

Field Value

1 to automatically add users, 0 to not
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsDescription.html new file mode 100644 index 0000000..2c0e34b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsDescription.html @@ -0,0 +1,150 @@ + + + + + + mbsDescription Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsDescription Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mbsDescription Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group description. +

Syntax

Visual Basic 
Public mbsDescription As System.String
+
C# 
public System.string mbsDescription
+
C++/CLI 
public:
+System.String^ mbsDescription
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsName.html new file mode 100644 index 0000000..3536ff2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mbsName.html @@ -0,0 +1,150 @@ + + + + + + mbsName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mbsName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the group. +

Syntax

Visual Basic 
Public mbsName As System.String
+
C# 
public System.string mbsName
+
C++/CLI 
public:
+System.String^ mbsName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mhStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mhStatus.html new file mode 100644 index 0000000..24dba38 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mhStatus.html @@ -0,0 +1,150 @@ + + + + + + mhStatus Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhStatus Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mhStatus Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status of the group creation. +

Syntax

Visual Basic 
Public mhStatus As System.Integer
+
C# 
public System.int mhStatus
+
C++/CLI 
public:
+System.int mhStatus
+ +

Field Value

0 if successful, 1 if not
+ + + + + +

Remarks

Call IEdmVault5::GetErrorString to obtain a readable description of the error.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlFlags.html new file mode 100644 index 0000000..d615097 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group creation flags. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +

Field Value

Combination of EdmGroupDataFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlGroupID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlGroupID.html new file mode 100644 index 0000000..e9e7ebd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mlGroupID.html @@ -0,0 +1,150 @@ + + + + + + mlGroupID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlGroupID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mlGroupID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the group. +

Syntax

Visual Basic 
Public mlGroupID As System.Integer
+
C# 
public System.int mlGroupID
+
C++/CLI 
public:
+System.int mlGroupID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moMembers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moMembers.html new file mode 100644 index 0000000..f2eaf5d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moMembers.html @@ -0,0 +1,150 @@ + + + + + + moMembers Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moMembers Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : moMembers Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Array of IDS of users to add to this group. +

Syntax

Visual Basic 
Public moMembers As System.Integer()
+
C# 
public System.int[] moMembers
+
C++/CLI 
public:
+System.array<int>^ moMembers
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moSysPerms.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moSysPerms.html new file mode 100644 index 0000000..4e42f29 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~moSysPerms.html @@ -0,0 +1,150 @@ + + + + + + moSysPerms Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moSysPerms Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : moSysPerms Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group system permissions. +

Syntax

Visual Basic 
Public moSysPerms As EdmSysPerm()
+
C# 
public EdmSysPerm[] moSysPerms
+
C++/CLI 
public:
+array<EdmSysPerm>^ moSysPerms
+ +

Field Value

Array of EdmSysPerm numbers
+ + + + + +

Remarks

EdmSysPerm numbers replace the older EdmSysRightFlags bits that were used in EdmGroupData.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mpoGroup.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mpoGroup.html new file mode 100644 index 0000000..71e4c13 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData2~mpoGroup.html @@ -0,0 +1,150 @@ + + + + + + mpoGroup Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoGroup Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData2 Structure + : mpoGroup Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group interface. +

Syntax

Visual Basic 
Public mpoGroup As IEdmUserGroup5
+
C# 
public IEdmUserGroup5 mpoGroup
+
C++/CLI 
public:
+IEdmUserGroup5^ mpoGroup
+ +

Field Value

IEdmUserGroup5
+ + + + + +

Remarks

This member is valid only if EdmGroupData2::mlFlags sets the EdmGroupDataFlags.Edmgdf_GetInterface bit and EdmGroupData2::mhStatus is S_OK (0).
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupDataFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupDataFlags.html new file mode 100644 index 0000000..aa93ad3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupDataFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmGroupDataFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGroupDataFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGroupDataFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Options specified in EdmGroupData used by IEdmUserMgr6::AddGroups to create new groups. +

Syntax

Visual Basic 
Public Enum EdmGroupDataFlags 
+   Inherits System.Enum
+
C# 
public enum EdmGroupDataFlags : System.Enum 
+
C++/CLI 
public enum class EdmGroupDataFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
Edmgdf_ForceAdd4 = Add this group even if validation of the other groups in the array failed
Edmgdf_GetInterface1 = Retrieve the interface of the group and return it in EdmGroupData::mpoGroup
Edmgdf_Nothing0 = No options
Edmgdf_Replace2 = Replace the existing group
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_fields.html new file mode 100644 index 0000000..a65342c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_fields.html @@ -0,0 +1,142 @@ + + + + + + EdmGroupData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmGroupData members.

+ + +

Public Fields

+ + + + + + + + + +
 NameDescription
public FieldmbAutoAddStatus of automatically adding users to groups.  
public FieldmbsDescriptionDescription of group.  
public FieldmbsNameName of the group.  
public FieldmhStatusStatus of adding group.  
public FieldmlFlagsGroup adding flags.  
public FieldmlGroupIDID of the group.  
public FieldmlSysRightsSystem rights for the group.  
public FieldmoMembersID array of users that are members of this group.  
public FieldmpoGroupGroup interface.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_members.html new file mode 100644 index 0000000..72f46d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData_members.html @@ -0,0 +1,169 @@ + + + + + + EdmGroupData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmGroupData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmGroupData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmGroupData.

+ + + + + + + +

Public Fields

+ + + + + + + + + +
 NameDescription
public FieldmbAutoAddStatus of automatically adding users to groups.  
public FieldmbsDescriptionDescription of group.  
public FieldmbsNameName of the group.  
public FieldmhStatusStatus of adding group.  
public FieldmlFlagsGroup adding flags.  
public FieldmlGroupIDID of the group.  
public FieldmlSysRightsSystem rights for the group.  
public FieldmoMembersID array of users that are members of this group.  
public FieldmpoGroupGroup interface.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbAutoAdd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbAutoAdd.html new file mode 100644 index 0000000..3c85282 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbAutoAdd.html @@ -0,0 +1,150 @@ + + + + + + mbAutoAdd Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbAutoAdd Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mbAutoAdd Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status of automatically adding users to groups. +

Syntax

Visual Basic 
Public mbAutoAdd As System.Short
+
C# 
public System.short mbAutoAdd
+
C++/CLI 
public:
+System.short mbAutoAdd
+ +

Field Value

0 to not automatically add users to groups; 1 otherwise
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsDescription.html new file mode 100644 index 0000000..10394f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsDescription.html @@ -0,0 +1,150 @@ + + + + + + mbsDescription Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsDescription Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mbsDescription Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Description of group. +

Syntax

Visual Basic 
Public mbsDescription As System.String
+
C# 
public System.string mbsDescription
+
C++/CLI 
public:
+System.String^ mbsDescription
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsName.html new file mode 100644 index 0000000..d1675c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mbsName.html @@ -0,0 +1,150 @@ + + + + + + mbsName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mbsName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the group. +

Syntax

Visual Basic 
Public mbsName As System.String
+
C# 
public System.string mbsName
+
C++/CLI 
public:
+System.String^ mbsName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mhStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mhStatus.html new file mode 100644 index 0000000..b8416bb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mhStatus.html @@ -0,0 +1,150 @@ + + + + + + mhStatus Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhStatus Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mhStatus Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status of adding group. +

Syntax

Visual Basic 
Public mhStatus As System.Integer
+
C# 
public System.int mhStatus
+
C++/CLI 
public:
+System.int mhStatus
+ +

Field Value

0 if successful, 1 if not
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlFlags.html new file mode 100644 index 0000000..368b795 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group adding flags. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +

Field Value

Combination of EdmGroupDataFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlGroupID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlGroupID.html new file mode 100644 index 0000000..5ecfce8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlGroupID.html @@ -0,0 +1,150 @@ + + + + + + mlGroupID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlGroupID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mlGroupID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the group. +

Syntax

Visual Basic 
Public mlGroupID As System.Integer
+
C# 
public System.int mlGroupID
+
C++/CLI 
public:
+System.int mlGroupID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlSysRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlSysRights.html new file mode 100644 index 0000000..96303ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mlSysRights.html @@ -0,0 +1,150 @@ + + + + + + mlSysRights Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlSysRights Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mlSysRights Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + System rights for the group. +

Syntax

Visual Basic 
Public mlSysRights As System.Integer
+
C# 
public System.int mlSysRights
+
C++/CLI 
public:
+System.int mlSysRights
+ +

Field Value

Combination of EdmSysRightFlags bits.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~moMembers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~moMembers.html new file mode 100644 index 0000000..8fd2087 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~moMembers.html @@ -0,0 +1,150 @@ + + + + + + moMembers Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moMembers Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : moMembers Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID array of users that are members of this group. +

Syntax

Visual Basic 
Public moMembers As System.Integer()
+
C# 
public System.int[] moMembers
+
C++/CLI 
public:
+System.array<int>^ moMembers
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mpoGroup.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mpoGroup.html new file mode 100644 index 0000000..e9f804f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupData~mpoGroup.html @@ -0,0 +1,150 @@ + + + + + + mpoGroup Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoGroup Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmGroupData Structure + : mpoGroup Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Group interface. +

Syntax

Visual Basic 
Public mpoGroup As IEdmUserGroup5
+
C# 
public IEdmUserGroup5 mpoGroup
+
C++/CLI 
public:
+IEdmUserGroup5^ mpoGroup
+ +

Field Value

IEdmUserGroup5
+ + + + + +

Remarks

This member is valid only if EdmGroupData::mlFlags sets the EdmGroupDataFlags.Edmgdf_GetInterface bit.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupSetting.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupSetting.html new file mode 100644 index 0000000..3584c7a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmGroupSetting.html @@ -0,0 +1,138 @@ + + + + + + EdmGroupSetting Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmGroupSetting Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmGroupSetting Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ User group settings used by IEdmUserGroup9::SetSettingsVar. +

Syntax

Visual Basic 
Public Enum EdmGroupSetting 
+   Inherits System.Enum
+
C# 
public enum EdmGroupSetting : System.Enum 
+
C++/CLI 
public enum class EdmGroupSetting : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmGSv_AutoDelete9 = Whether to automatically delete local read-only files that are not part of the vault; 1 = true, 0 = false; this setting corresonds to the "Automatically delete local read-only files that are not part of the file vault" checkbox on the Explorer tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a group in the Admin Tool
EdmGSv_AutoGetLatest11 = Whether to always work with the latest version of files; 1 = true, 0 = false; this setting corresponds to the "Always work with latest version of files" checkbox on the Reference Dialog tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a group in the Admin Tool
EdmGSv_AutoGetLatestRefs43 = Whether to auto-select reference files to get latest when checking out; 1 = true, 0 = false; this setting corresponds to the "Auto select reference files to get latest when checking out" checkbox on the Reference Dialog tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a group in the Admin Tool
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem.html new file mode 100644 index 0000000..efefc5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem.html @@ -0,0 +1,156 @@ + + + + + + EdmHistoryItem Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmHistoryItem Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmHistoryItem Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains a history item. + +

Syntax

Visual Basic 
Public Structure EdmHistoryItem 
+   Inherits System.ValueType
+
C# 
public struct EdmHistoryItem : System.ValueType 
+
C++/CLI 
public value class EdmHistoryItem : public System.ValueType 
+
+ + +

Example

struct EdmHistoryItem{
  enum EdmHistoryType meType;
  datetime moDate;
  integer mlVersion;
  integer mlUserID;
  integer mlFileID;
  integer mlFolderID;
  string mbsItemName;
  string mbsUserName;
  string mbsComment;
  struct EdmCmdData moData;
};

+ +
+

Example

+

Remarks

Returned by IEdmHistory.

+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_fields.html new file mode 100644 index 0000000..281d7b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_fields.html @@ -0,0 +1,143 @@ + + + + + + EdmHistoryItem Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmHistoryItem Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmHistoryItem Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmHistoryItem members.

+ + +

Public Fields

+ + + + + + + + + + +
 NameDescription
public FieldmbsCommentComment entered by the user when the record is created.  
public FieldmbsItemNameName of file or folder.  
public FieldmbsUserNameName of user who created the history record.  
public FieldmeTypeType of history record.  
public FieldmlFileIDID of the file for this record  
public FieldmlFolderIDID of the folder for this record.  
public FieldmlUserIDID of the user who created the history record.  
public FieldmlVersionVersion of the file when the item was created.  
public FieldmoDataExtra data.  
public FieldmoDateDate and time when the history record was created.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_members.html new file mode 100644 index 0000000..30a205e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem_members.html @@ -0,0 +1,170 @@ + + + + + + EdmHistoryItem Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmHistoryItem Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmHistoryItem Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmHistoryItem.

+ + + + + + + +

Public Fields

+ + + + + + + + + + +
 NameDescription
public FieldmbsCommentComment entered by the user when the record is created.  
public FieldmbsItemNameName of file or folder.  
public FieldmbsUserNameName of user who created the history record.  
public FieldmeTypeType of history record.  
public FieldmlFileIDID of the file for this record  
public FieldmlFolderIDID of the folder for this record.  
public FieldmlUserIDID of the user who created the history record.  
public FieldmlVersionVersion of the file when the item was created.  
public FieldmoDataExtra data.  
public FieldmoDateDate and time when the history record was created.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsComment.html new file mode 100644 index 0000000..bdeb2d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsComment.html @@ -0,0 +1,150 @@ + + + + + + mbsComment Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComment Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mbsComment Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Comment entered by the user when the record is created. +

Syntax

Visual Basic 
Public mbsComment As System.String
+
C# 
public System.string mbsComment
+
C++/CLI 
public:
+System.String^ mbsComment
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsItemName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsItemName.html new file mode 100644 index 0000000..4f97a88 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsItemName.html @@ -0,0 +1,150 @@ + + + + + + mbsItemName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsItemName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mbsItemName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of file or folder. +

Syntax

Visual Basic 
Public mbsItemName As System.String
+
C# 
public System.string mbsItemName
+
C++/CLI 
public:
+System.String^ mbsItemName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsUserName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsUserName.html new file mode 100644 index 0000000..664240b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mbsUserName.html @@ -0,0 +1,150 @@ + + + + + + mbsUserName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mbsUserName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of user who created the history record. +

Syntax

Visual Basic 
Public mbsUserName As System.String
+
C# 
public System.string mbsUserName
+
C++/CLI 
public:
+System.String^ mbsUserName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~meType.html new file mode 100644 index 0000000..b253704 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of history record. +

Syntax

Visual Basic 
Public meType As EdmHistoryType
+
C# 
public EdmHistoryType meType
+
C++/CLI 
public:
+EdmHistoryType meType
+ +

Field Value

Type of record as defined in EdmHistoryType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFileID.html new file mode 100644 index 0000000..7ebc647 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file for this record +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +

Field Value

0 for folder items
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFolderID.html new file mode 100644 index 0000000..05e8632 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the folder for this record. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +

Field Value

0 for file items
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlUserID.html new file mode 100644 index 0000000..cfd9cf5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlUserID.html @@ -0,0 +1,150 @@ + + + + + + mlUserID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mlUserID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the user who created the history record. +

Syntax

Visual Basic 
Public mlUserID As System.Integer
+
C# 
public System.int mlUserID
+
C++/CLI 
public:
+System.int mlUserID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlVersion.html new file mode 100644 index 0000000..5596684 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~mlVersion.html @@ -0,0 +1,150 @@ + + + + + + mlVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : mlVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of the file when the item was created. +

Syntax

Visual Basic 
Public mlVersion As System.Integer
+
C# 
public System.int mlVersion
+
C++/CLI 
public:
+System.int mlVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moData.html new file mode 100644 index 0000000..53fb452 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moData.html @@ -0,0 +1,481 @@ + + + + + + moData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : moData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Extra data. +

Syntax

Visual Basic 
Public moData As EdmCmdData
+
C# 
public EdmCmdData moData
+
C++/CLI 
public:
+EdmCmdData moData
+ +

Field Value

EdmCmdData structure whose content depends on EdmHistoryItem::meType (see Remarks)
+ + + + + +

Remarks

The members of the structure stored in this member have different values, depending on the value of EdmHistoryItem::meType. The tables below contain the moData structure member values for each EdmHistoryItem::meType. Any members not listed in the tables are undefined for that data type.

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileShare

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Destination folder path

+

mlObjectID1

+

Destination folder ID

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileRename

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Old file name

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileMove

+

+ + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Source folder path

+

mbsStrData2

+

Destination folder path

+

mlObjectID1

+

Source folder ID

+

mlObjectID2

+

Destination folder ID

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileRollback

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mlLongData1

+

From version

+

mlLongData2

+

To version

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileDelete

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mlObjectID1

+

Parent folder ID

+

mbsStrData1

+

Parent folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileUndelete

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mlObjectID1

+

Parent folder ID

+

mbsStrData1

+

Parent folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileLabel

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Label name

+

mlObjectID1

+

Label ID

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileState

+

+ + + + + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Source workflow name + <newline> + source state name

+

mbsStrData2

+

Destination workflow name + <newline> + destination state name

+

mlLongData1

+

Transition number

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileRevision

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Revision name

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FileColdStore

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Media name

+

mlLongData1

+

Storage type

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderDelete

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderUndelete

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderCreate

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderCardData

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Folder path

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderRename

+

+ + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Old folder name

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderMove

+

+ + + + + + + + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

From folder path

+

mbsStrData2

+

To folder path

+

mlObjectID1

+

From folder ID

+

mlObjectID2

+

To folder ID

+

+

EdmHistoryItem::meType = EdmHistoryType.Edmhist_FolderLabel

+

+ + + + + + + + + + +
+

EdmCmdData Members

+

Description

+

mbsStrData1

+

Label name

+

mlObjectID1

+

Label ID

+

+

 

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moDate.html new file mode 100644 index 0000000..b24c884 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryItem~moDate.html @@ -0,0 +1,150 @@ + + + + + + moDate Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moDate Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmHistoryItem Structure + : moDate Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Date and time when the history record was created. +

Syntax

Visual Basic 
Public moDate As System.Date
+
C# 
public System.DateTime moDate
+
C++/CLI 
public:
+System.DateTime moDate
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryType.html new file mode 100644 index 0000000..607cee5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmHistoryType.html @@ -0,0 +1,164 @@ + + + + + + EdmHistoryType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmHistoryType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmHistoryType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of history record; used by the IEdmHistory interface. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmHistoryType 
+   Inherits System.Enum
+
C# 
public enum EdmHistoryType : System.Enum 
+
C++/CLI 
public enum class EdmHistoryType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
Edmhist_ColdStoreRestore262144 = A file was restored from cold storage
Edmhist_FileBranch4194304
Edmhist_FileBranchMerge8388608
Edmhist_FileColdStore1024 = A file was moved to the cold storage
Edmhist_FileDelete16 = A file was deleted to the bit bucket
Edmhist_FileLabel128 = A label was applied to a file
Edmhist_FileLock134217728 = A file was locked
Edmhist_FileMove4 = A file was moved
Edmhist_FileParallelState61708864
Edmhist_FilePendingState33554432
Edmhist_FileRename2 = A file was renamed
Edmhist_FileRevision512 = A revision was set on the file
Edmhist_FileRollback8 = A file was rolled back
Edmhist_FileShare1 = A file was shared
Edmhist_FileState256 = The file’s workflow state was changed
Edmhist_FileUndelete32 = A file was recovered from the bit bucket
Edmhist_FileUndoLock2097152 = A file checked out by somebody other than the logged-in user was unlocked
Edmhist_FileUndoLock2268435456 = A file checked out by the logged-in user was unlocked
Edmhist_FileVerFreeVar524288 = File version-free variables were updated
Edmhist_FileVersion64 = A file was checked in, producing a new version
Edmhist_FileVersionOverwrite16777216
Edmhist_FolderCardData131072 = A folder’s properties were edited
Edmhist_FolderCreate8192 = A folder was created
Edmhist_FolderDelete2048 = A folder was deleted to the bit bucket
Edmhist_FolderLabel65536 = A label was applied to a folder
Edmhist_FolderMove32768 = A folder was moved
Edmhist_FolderRename16384 = A folder was renamed
Edmhist_FolderUndelete4096 = A folder was recovered from the bit bucket
Edmhist_FolderVerFreeVar1048576 = Folder version-free variables were updated
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmIncRevFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmIncRevFlags.html new file mode 100644 index 0000000..f67b881 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmIncRevFlags.html @@ -0,0 +1,136 @@ + + + + + + EdmIncRevFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmIncRevFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmIncRevFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Increment revisions used in IEdmFile5::IncrementRevision. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmIncRevFlags 
+   Inherits System.Enum
+
C# 
public enum EdmIncRevFlags : System.Enum 
+
C++/CLI 
public enum class EdmIncRevFlags : public System.Enum 
+
+

Members

+ +
MemberDescription
EdmIncRev_Simple0 = Increment revision using default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmInstallFileFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmInstallFileFlags.html new file mode 100644 index 0000000..f8623ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmInstallFileFlags.html @@ -0,0 +1,137 @@ + + + + + + EdmInstallFileFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmInstallFileFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmInstallFileFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Operations used in calls to IEdmVault12::InstallFile to control the installation of data. +

Syntax

Visual Basic 
Public Enum EdmInstallFileFlags 
+   Inherits System.Enum
+
C# 
public enum EdmInstallFileFlags : System.Enum 
+
C++/CLI 
public enum class EdmInstallFileFlags : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmIff_Nothing0 = Default operation
EdmIff_ReplaceDuplicates1 = This flag is used for CEX-files when you want to replace duplicate objects in the vault; i.e., if you are importing a group named "ABC" and if there is already a different group named "ABC" in the vault, it will be silently replaced; the default behavior is not to replace duplicates
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemGenerationFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemGenerationFlags.html new file mode 100644 index 0000000..e6e1667 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemGenerationFlags.html @@ -0,0 +1,137 @@ + + + + + + EdmItemGenerationFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmItemGenerationFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmItemGenerationFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags that control the behavior of IEdmBatchItemGeneration::CreateTree.  +

Syntax

Visual Basic 
Public Enum EdmItemGenerationFlags 
+   Inherits System.Enum
+
C# 
public enum EdmItemGenerationFlags : System.Enum 
+
C++/CLI 
public enum class EdmItemGenerationFlags : public System.Enum 
+
+

Members

+ + +
MemberDescription
Eigcf_Nothing0 = Default behavior
Eigcf_OpenItemsCheckbox1 = This flag does not change the behavior of the IEdmBatchItemGeneration::CreateTree method itself, but it does affect a subsequent call to IEdmBatchItemGeneration::ShowDlg; the dialog box displayed by IEdmBatchItemGeneration::ShowDlg will contain a checkbox to open items after the completion of the item-creation command if this flag is specified
+ + + + +

Remarks

See also the general note about items in the API.

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemLinkType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemLinkType.html new file mode 100644 index 0000000..dc7b86e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemLinkType.html @@ -0,0 +1,138 @@ + + + + + + EdmItemLinkType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmItemLinkType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmItemLinkType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of linked files to items. +

Syntax

Visual Basic 
Public Enum EdmItemLinkType 
+   Inherits System.Enum
+
C# 
public enum EdmItemLinkType : System.Enum 
+
C++/CLI 
public enum class EdmItemLinkType : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmItemLnk_Attachment1 = Attachment links are referred to as static links in the user interface; a statically linked file does not drive the associated item; it is just an attachment
EdmItemLnk_Dynamic0 = Dynamic links are referred to as auto-update links in the user interface in SOLIDWORKS PDM Professional 2010 and later; this means that some changes in the linked file automatically propagates to the item
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef.html new file mode 100644 index 0000000..b65bb84 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef.html @@ -0,0 +1,158 @@ + + + + + + EdmItemRef Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmItemRef Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmItemRef Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about an item reference. + +

Syntax

Visual Basic 
Public Structure EdmItemRef 
+   Inherits System.ValueType
+
C# 
public struct EdmItemRef : System.ValueType 
+
C++/CLI 
public value class EdmItemRef : public System.ValueType 
+
+ + +

Example

struct EdmItemRef

{
  integer mlEdmRefFlags;
  string mbsConfiguration;
  object moNamePathOrID;
  object moParentNamePathOrItemID;
  integer mhResult;
};
+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_fields.html new file mode 100644 index 0000000..2547105 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmItemRef Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmItemRef Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmItemRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmItemRef members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsConfigurationName of the configuration to which the item is linked.  
public FieldmhResultResult code containing the status of the operation.  
public FieldmlEdmRefFlagsItem reference flags.  
public FieldmoNamePathOrIDID of the referenced file or item.  
public FieldmoParentNamePathOrItemIDID of the parent item to which to add the reference.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_members.html new file mode 100644 index 0000000..db5b7c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef_members.html @@ -0,0 +1,165 @@ + + + + + + EdmItemRef Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmItemRef Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmItemRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmItemRef.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsConfigurationName of the configuration to which the item is linked.  
public FieldmhResultResult code containing the status of the operation.  
public FieldmlEdmRefFlagsItem reference flags.  
public FieldmoNamePathOrIDID of the referenced file or item.  
public FieldmoParentNamePathOrItemIDID of the parent item to which to add the reference.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mbsConfiguration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mbsConfiguration.html new file mode 100644 index 0000000..fab1a64 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mbsConfiguration.html @@ -0,0 +1,150 @@ + + + + + + mbsConfiguration Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsConfiguration Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmItemRef Structure + : mbsConfiguration Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the configuration to which the item is linked. +

Syntax

Visual Basic 
Public mbsConfiguration As System.String
+
C# 
public System.string mbsConfiguration
+
C++/CLI 
public:
+System.String^ mbsConfiguration
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mhResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mhResult.html new file mode 100644 index 0000000..4bd39b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mhResult.html @@ -0,0 +1,150 @@ + + + + + + mhResult Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhResult Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmItemRef Structure + : mhResult Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Result code containing the status of the operation. +

Syntax

Visual Basic 
Public mhResult As System.Integer
+
C# 
public System.int mhResult
+
C++/CLI 
public:
+System.int mhResult
+ +

Field Value

S_OK or 0 if successful
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mlEdmRefFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mlEdmRefFlags.html new file mode 100644 index 0000000..7a8b0e0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~mlEdmRefFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRefFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRefFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmItemRef Structure + : mlEdmRefFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Item reference flags. +

Syntax

Visual Basic 
Public mlEdmRefFlags As System.Integer
+
C# 
public System.int mlEdmRefFlags
+
C++/CLI 
public:
+System.int mlEdmRefFlags
+ +

Field Value

Combination of EdmRefFlags bits
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moNamePathOrID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moNamePathOrID.html new file mode 100644 index 0000000..1cddea0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moNamePathOrID.html @@ -0,0 +1,150 @@ + + + + + + moNamePathOrID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moNamePathOrID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmItemRef Structure + : moNamePathOrID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the referenced file or item. +

Syntax

Visual Basic 
Public moNamePathOrID As System.Object
+
C# 
public System.object moNamePathOrID
+
C++/CLI 
public:
+System.Object^ moNamePathOrID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moParentNamePathOrItemID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moParentNamePathOrItemID.html new file mode 100644 index 0000000..b613c7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmItemRef~moParentNamePathOrItemID.html @@ -0,0 +1,150 @@ + + + + + + moParentNamePathOrItemID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moParentNamePathOrItemID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmItemRef Structure + : moParentNamePathOrItemID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the parent item to which to add the reference. +

Syntax

Visual Basic 
Public moParentNamePathOrItemID As System.Object
+
C# 
public System.object moParentNamePathOrItemID
+
C++/CLI 
public:
+System.Object^ moParentNamePathOrItemID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLangCode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLangCode.html new file mode 100644 index 0000000..acf79b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLangCode.html @@ -0,0 +1,149 @@ + + + + + + EdmLangCode Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLangCode Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLangCode Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Localization language used in IEdmHistory3::GetEventDescription. +

Syntax

Visual Basic 
Public Enum EdmLangCode 
+   Inherits System.Enum
+
C# 
public enum EdmLangCode : System.Enum 
+
C++/CLI 
public enum class EdmLangCode : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + +
MemberDescription
LanChinSimplified13
LanChinTraditional12
LanCzech1
LanEng0
LanFrench4
LanGerman2
LanItalian5
LanJapanese6
LanKorean7
LanPolish8
LanPortuguese9
LanRussian10
LanSpanish3
LanTurkish11
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLanguage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLanguage.html new file mode 100644 index 0000000..e6522e2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLanguage.html @@ -0,0 +1,205 @@ + + + + + + EdmLanguage Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLanguage Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLanguage Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of languages; used by IEdmVault5::Language. +

Syntax

Visual Basic 
Public Enum EdmLanguage 
+   Inherits System.Enum
+
C# 
public enum EdmLanguage : System.Enum 
+
C++/CLI 
public enum class EdmLanguage : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmLang_Afrikaans0x36 = Afrikaans
EdmLang_Albanian0x1c = Albanian
EdmLang_Arabic0x1 = Arabic
EdmLang_Armenian0x2b = Armenian
EdmLang_Assamese0x4d = Assamese
EdmLang_Azeri0x2c = Azeri
EdmLang_Basque0x2d = Basque
EdmLang_Belarusian0x23 = Belarusian
EdmLang_Bengali0x45 = Bengali
EdmLang_Bulgarian0x2 = Bulgarian
EdmLang_Canada0x4b = Canadian
EdmLang_Catalan0x3 = Catalan
EdmLang_Chinese0x4 = Chinese
EdmLang_Croatian0x1a = Croatian
EdmLang_Czech0x5 = Czech
EdmLang_Danish0x6 = Danish
EdmLang_Dutch0x13 = Dutch
EdmLang_English0x9 = English
EdmLang_Estonian0x25 = Estonian
EdmLang_Faeroese0x38 = Faeroese
EdmLang_Farsi0x29 = Farsi
EdmLang_Finnish0xb = Finnish
EdmLang_French0xc = French
EdmLang_Georgian0x37 = Georgian
EdmLang_German0x7 = German
EdmLang_Greek0x8 = Greek
EdmLang_Gujarati0x47 = Gujarati
EdmLang_Hebrew0xd = Hebrew
EdmLang_Hindi0x39 = Hindi
EdmLang_Hungarian0xe = Hungarian
EdmLang_Icelandic0xf = Icelandic
EdmLang_Indonesian0x21 = 0x21
EdmLang_Italian0x10 = Italian
EdmLang_Japanese0x11 = Japanese
EdmLang_Kashmiri0x60 = Kashmiri
EdmLang_Kazak0x3f = Kazak
EdmLang_Konkani0x57 = Konkani
EdmLang_Korean0x12 = Korean
EdmLang_Latvian0x26 = Latvian
EdmLang_Lithuanian0x27 = Lithuanian
EdmLang_Macedonian0x2f = Macedonian
EdmLang_Malay0x3e = Malay
EdmLang_Malayalam0x4c = Malayalam
EdmLang_Manipuri0x58 = Manipuri
EdmLang_Marathi0x4e = Marathi
EdmLang_Nepali0x61 = Nepali
EdmLang_Norwegian0x14 = Norwegian
EdmLang_Oriya0x48 = Oriya
EdmLang_Polish0x15 = Polish
EdmLang_Portuguese0x16 = Portuguese
EdmLang_Punjabi0x46 = Punjabi
EdmLang_Romanian0x18 = Romanian
EdmLang_Russian0x19 = Russian
EdmLang_Sanskrit0x4f = Sanskrit
EdmLang_Serbian0x1a = Serbian
EdmLang_Sindhi0x59 = Sindhi
EdmLang_Slovak0x1b = Slovak
EdmLang_Slovenian0x24 = Slovenian
EdmLang_Spanish0xa = Spanish
EdmLang_Swahili0x41 = Swahili
EdmLang_Swedish0x1d = Swedish
EdmLang_Tamil0x49 = Tamil
EdmLang_Tatar0x44 = Tatar
EdmLang_Telugu0x4a = Telugu
EdmLang_Thai0x1e = Thai
EdmLang_Turkish0x1f = Turkish
EdmLang_Ukrainian0x22 = Ukrainian
EdmLang_Urdu0x20 = Urdu
EdmLang_Uzbek0x43 = Uzbek
EdmLang_Vietnamese0x2a = Vietnamese
+ + + + +

Remarks

These enumerators indicate which language the user is currently running in SOLIDWORKS PDM Professional. The values of the language enumerators correspond to the Win32 macros LANG_XXXXX in Visual C++. 
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLaunchSearchFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLaunchSearchFlags.html new file mode 100644 index 0000000..23e8d4a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLaunchSearchFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmLaunchSearchFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLaunchSearchFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLaunchSearchFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags which control the behavior of IEdmSearch7::LaunchApp. +

Syntax

Visual Basic 
Public Enum EdmLaunchSearchFlags 
+   Inherits System.Enum
+
C# 
public enum EdmLaunchSearchFlags : System.Enum 
+
C++/CLI 
public enum class EdmLaunchSearchFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
Elsf_DefaultIsAFavorite4 = The bsDefault argument to IEdmSearch7::LaunchApp is the name of a favorite, not a form
Elsf_HidePreview2 = Hides the preview area under the result listing in the search tool
Elsf_HideTree1 = Hides the tree pane in the search tool
Elsf_Nothing0 = Default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLibVer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLibVer.html new file mode 100644 index 0000000..db1be29 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLibVer.html @@ -0,0 +1,232 @@ + + + + + + EdmLibVer Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLibVer Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLibVer Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Type library and SOLIDWORKS PDM version numbers. +

Syntax

Visual Basic 
Public Enum EdmLibVer 
+   Inherits System.Enum
+
C# 
public enum EdmLibVer : System.Enum 
+
C++/CLI 
public enum class EdmLibVer : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmLibVer_Major5; For SOLIDWORKS PDM 2024
EdmLibVer_Minor27; For SOLIDWORKS PDM 2024
+ + + + +

Remarks

The type library version is not the same as the SOLIDWORKS PDM version number that you see in the user interface.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Type Library

+

SOLIDWORKS PDM

+

5.9

+

2006

+

5.10

+

2007

+

5.11

+

2007 SP03 (64-bit)

+

5.12

+

2008

+

5.13

+

2009

+

5.14

+

2010

+

5.15

+

2011

+

5.15

+

2012

+

5.16

+

2013

+

5.17

+

2014

+

5.18

2015
+

5.19

2016
+

5.20

2017
+

5.21

2018
+

5.22

2019
+

5.23

2020
+

5.24

2021
5.25 +

2022

5.26 +

2023

+

 

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense.html new file mode 100644 index 0000000..0686ca4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense.html @@ -0,0 +1,156 @@ + + + + + + EdmLicense Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmLicense Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmLicense Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a license type and is returned by IEdmVault11::GetLicense. + +

Syntax

Visual Basic 
Public Structure EdmLicense 
+   Inherits System.ValueType
+
C# 
public struct EdmLicense : System.ValueType 
+
C++/CLI 
public value class EdmLicense : public System.ValueType 
+
+ + +

Example

struct EdmLicense

{
  enum EdmLicenseType meType;
  integer mlUserCount;
};
+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicenseType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicenseType.html new file mode 100644 index 0000000..f8fa5ff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicenseType.html @@ -0,0 +1,139 @@ + + + + + + EdmLicenseType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLicenseType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLicenseType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of license types, which are used in struct EdmLicense. +

Syntax

Visual Basic 
Public Enum EdmLicenseType 
+   Inherits System.Enum
+
C# 
public enum EdmLicenseType : System.Enum 
+
C++/CLI 
public enum class EdmLicenseType : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmLic_Contributor2 = Contributor and web client license
EdmLic_Editor1 = Editor license
EdmLic_Processor4 = Processor license
EdmLic_Viewer3 = Viewer (read-only) license
+ + + + +

Remarks

See the SOLIDWORKS PDM Professional client Help file for more information about what you can or cannot do with respective license type.

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_fields.html new file mode 100644 index 0000000..61f7a31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmLicense Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmLicense Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmLicense Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmLicense members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmeTypeType of license.  
public FieldmlUserCountMaximum number of users for this license type.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_members.html new file mode 100644 index 0000000..9b50b01 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense_members.html @@ -0,0 +1,162 @@ + + + + + + EdmLicense Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmLicense Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmLicense Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmLicense.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmeTypeType of license.  
public FieldmlUserCountMaximum number of users for this license type.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~meType.html new file mode 100644 index 0000000..cb87681 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmLicense Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of license. +

Syntax

Visual Basic 
Public meType As EdmLicenseType
+
C# 
public EdmLicenseType meType
+
C++/CLI 
public:
+EdmLicenseType meType
+ +

Field Value

Type of license as defined in EdmLicenseType
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~mlUserCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~mlUserCount.html new file mode 100644 index 0000000..81ac5ba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLicense~mlUserCount.html @@ -0,0 +1,150 @@ + + + + + + mlUserCount Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserCount Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmLicense Structure + : mlUserCount Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Maximum number of users for this license type. +

Syntax

Visual Basic 
Public mlUserCount As System.Integer
+
C# 
public System.int mlUserCount
+
C++/CLI 
public:
+System.int mlUserCount
+ +

Field Value

Maximum number of users for this license type.
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol.html new file mode 100644 index 0000000..9455843 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol.html @@ -0,0 +1,157 @@ + + + + + + EdmListCol Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListCol Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListCol Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a column in a file listing. + +

Syntax

Visual Basic 
Public Structure EdmListCol 
+   Inherits System.ValueType
+
C# 
public struct EdmListCol : System.ValueType 
+
C++/CLI 
public value class EdmListCol : public System.ValueType 
+
+ + +

Example

struct EdmListCol{
  string mbsCaption;
  integer mlEdmListColFlags;
  enum EdmColType meColType;
  integer mlVariableID;
  enum EdmVariableType meVarType;
  integer mlWidth;
}

+ +
+

Example

+

Remarks

Also see the IEdmSearch10 examples.

+

This structure is returned by IEdmSearchResult6::GetCustomColumnsInfo.

+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional

+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_fields.html new file mode 100644 index 0000000..3432c0e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmListCol Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListCol Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListCol Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmListCol members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsCaptionColumn caption.  
public FieldmeColTypeType of column.  
public FieldmeVarTypeType of variable to which the column is connected.  
public FieldmlEdmListColFlagsBit flags specifying alignment, etc., of the column. (See LVCFMT_LEFT in the Win32 Help.)  
public FieldmlVariableIDID of variable to which the column is connected, or 0 if not connected to a variable.  
public FieldmlWidthDefault column width.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_members.html new file mode 100644 index 0000000..75e319f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol_members.html @@ -0,0 +1,166 @@ + + + + + + EdmListCol Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListCol Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListCol Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmListCol.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsCaptionColumn caption.  
public FieldmeColTypeType of column.  
public FieldmeVarTypeType of variable to which the column is connected.  
public FieldmlEdmListColFlagsBit flags specifying alignment, etc., of the column. (See LVCFMT_LEFT in the Win32 Help.)  
public FieldmlVariableIDID of variable to which the column is connected, or 0 if not connected to a variable.  
public FieldmlWidthDefault column width.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mbsCaption.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mbsCaption.html new file mode 100644 index 0000000..0fc763b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mbsCaption.html @@ -0,0 +1,150 @@ + + + + + + mbsCaption Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCaption Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : mbsCaption Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column caption. +

Syntax

Visual Basic 
Public mbsCaption As System.String
+
C# 
public System.string mbsCaption
+
C++/CLI 
public:
+System.String^ mbsCaption
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meColType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meColType.html new file mode 100644 index 0000000..4fe5641 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meColType.html @@ -0,0 +1,150 @@ + + + + + + meColType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meColType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : meColType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of column. +

Syntax

Visual Basic 
Public meColType As EdmColType
+
C# 
public EdmColType meColType
+
C++/CLI 
public:
+EdmColType meColType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meVarType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meVarType.html new file mode 100644 index 0000000..11a3818 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~meVarType.html @@ -0,0 +1,150 @@ + + + + + + meVarType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meVarType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : meVarType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of variable to which the column is connected. +

Syntax

Visual Basic 
Public meVarType As EdmVariableType
+
C# 
public EdmVariableType meVarType
+
C++/CLI 
public:
+EdmVariableType meVarType
+ +
+ + + + + +

Remarks

EdmVariableType.EdmVarType_None if not connected to a variable.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlEdmListColFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlEdmListColFlags.html new file mode 100644 index 0000000..c8c7064 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlEdmListColFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmListColFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmListColFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : mlEdmListColFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Bit flags specifying alignment, etc., of the column. (See LVCFMT_LEFT in the Win32 Help.) +

Syntax

Visual Basic 
Public mlEdmListColFlags As System.Integer
+
C# 
public System.int mlEdmListColFlags
+
C++/CLI 
public:
+System.int mlEdmListColFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlVariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlVariableID.html new file mode 100644 index 0000000..888eb28 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlVariableID.html @@ -0,0 +1,150 @@ + + + + + + mlVariableID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : mlVariableID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of variable to which the column is connected, or 0 if not connected to a variable. +

Syntax

Visual Basic 
Public mlVariableID As System.Integer
+
C# 
public System.int mlVariableID
+
C++/CLI 
public:
+System.int mlVariableID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlWidth.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlWidth.html new file mode 100644 index 0000000..e7c2069 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListCol~mlWidth.html @@ -0,0 +1,150 @@ + + + + + + mlWidth Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlWidth Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListCol Structure + : mlWidth Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Default column width. +

Syntax

Visual Basic 
Public mlWidth As System.Integer
+
C# 
public System.int mlWidth
+
C++/CLI 
public:
+System.int mlWidth
+ +
+ + + + + +

Remarks

This field  is -1 if you specified a list of explicit variables to retrieve.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile.html new file mode 100644 index 0000000..741b309 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile.html @@ -0,0 +1,154 @@ + + + + + + EdmListFile Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a file returned by the IEdmBatchListing::GetFiles method. + +

Syntax

Visual Basic 
Public Structure EdmListFile 
+   Inherits System.ValueType
+
C# 
public struct EdmListFile : System.ValueType 
+
C++/CLI 
public value class EdmListFile : public System.ValueType 
+
+ + +

Example

struct EdmListFile

{
  integer mlFileID;
  integer mlFolderID;
  integer mlParam;
  integer mlLatestVersion;
  integer mlLocalVersion;
  string mbsLockUser;
  string mbsLockComputer;
  string mbsLockPath;
  string mbsRevisionName;
  struct EdmWorkflowInfo moCurrentState;
  object moColumnData;
};
+ +
+ +

Remarks

This struct is extended by EdmListFile2, which is returned by the IEdmBatchListing4::GetFiles2 method.
+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2.html new file mode 100644 index 0000000..9e6994a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2.html @@ -0,0 +1,157 @@ + + + + + + EdmListFile2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a file returned by the IEdmBatchListing4::GetFiles2 method. + +

Syntax

Visual Basic 
Public Structure EdmListFile2 
+   Inherits System.ValueType
+
C# 
public struct EdmListFile2 : System.ValueType 
+
C++/CLI 
public value class EdmListFile2 : public System.ValueType 
+
+ + +

Example

struct EdmListFile

+

{
  short mbHasLockRights;
  short mbLocalOverwrittenVersionObsolete;
  string mbsLockComputer;
  string mbsLockPath;
  string mbsLockUser;
  string mbsLockViewID;

  string mbsRevisionName;
  integer mlFileID;
  integer mlFolderID;
  integer mlLatestVersion;
  integer mlLocalVersion;
  integer mlLockProjectID;
  integer mlParam;
  object moColumnData;
  struct EdmWorkflowInfo moCurrentState;
};

+ +
+

Example

+

Remarks

This struct is an extended version of the EdmListFile struct, which is returned by the IEdmBatchListing::GetFiles method.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_fields.html new file mode 100644 index 0000000..04eb2df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_fields.html @@ -0,0 +1,148 @@ + + + + + + EdmListFile2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmListFile2 members.

+ + +

Public Fields

+ + + + + + + + + + + + + + + +
 NameDescription
public FieldmbHasLockRightsGets whether a file in a user's local cache can be checked out.  
public FieldmbLocalOverwrittenVersionObsoleteGets whether a file in a user's local cache is valid or obsolete because the file was overwritten by another user who checked out the file, modified the file, and checked in the file.  
public FieldmbsLockComputerName of computer on which the file is checked out.  
public FieldmbsLockPathPath to the folder where the file is checked out.  
public FieldmbsLockUserName of user to whom this file is checked out.  
public FieldmbsLockViewIDGUID of the vault view where this file is checked out.  
public FieldmbsRevisionNameName of the file’s current revision.  
public FieldmlFileIDID of the file.  
public FieldmlFolderIDID of the file’s parent folder.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlLocalVersionVersion of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method.  
public FieldmlLockProjectIDID of the project where this file is checked out.  
public FieldmlParamCaller-defined parameter that was passed to the IEdmBatchListing::AddFile method.  
public FieldmoColumnDataColumn data for the selected column set.  
public FieldmoCurrentStateFile’s current workflow state.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_members.html new file mode 100644 index 0000000..0ca7824 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2_members.html @@ -0,0 +1,175 @@ + + + + + + EdmListFile2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmListFile2.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + + + + + +
 NameDescription
public FieldmbHasLockRightsGets whether a file in a user's local cache can be checked out.  
public FieldmbLocalOverwrittenVersionObsoleteGets whether a file in a user's local cache is valid or obsolete because the file was overwritten by another user who checked out the file, modified the file, and checked in the file.  
public FieldmbsLockComputerName of computer on which the file is checked out.  
public FieldmbsLockPathPath to the folder where the file is checked out.  
public FieldmbsLockUserName of user to whom this file is checked out.  
public FieldmbsLockViewIDGUID of the vault view where this file is checked out.  
public FieldmbsRevisionNameName of the file’s current revision.  
public FieldmlFileIDID of the file.  
public FieldmlFolderIDID of the file’s parent folder.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlLocalVersionVersion of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method.  
public FieldmlLockProjectIDID of the project where this file is checked out.  
public FieldmlParamCaller-defined parameter that was passed to the IEdmBatchListing::AddFile method.  
public FieldmoColumnDataColumn data for the selected column set.  
public FieldmoCurrentStateFile’s current workflow state.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbHasLockRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbHasLockRights.html new file mode 100644 index 0000000..d060adb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbHasLockRights.html @@ -0,0 +1,153 @@ + + + + + + mbHasLockRights Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbHasLockRights Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbHasLockRights Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Gets whether a file in a user's local cache can be checked out. +

Syntax

Visual Basic 
Public mbHasLockRights As System.Short
+
C# 
public System.short mbHasLockRights
+
C++/CLI 
public:
+System.short mbHasLockRights
+ +

Field Value

    +
  • 0 = file in the user’s local cache can be checked out
+
    +
  • 1 = file in the user’s local cache cannot be checked out
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbLocalOverwrittenVersionObsolete.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbLocalOverwrittenVersionObsolete.html new file mode 100644 index 0000000..5b74952 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbLocalOverwrittenVersionObsolete.html @@ -0,0 +1,153 @@ + + + + + + mbLocalOverwrittenVersionObsolete Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbLocalOverwrittenVersionObsolete Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbLocalOverwrittenVersionObsolete Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Gets whether a file in a user's local cache is valid or obsolete because the file was overwritten by another user who checked out the file, modified the file, and checked in the file. +

Syntax

Visual Basic 
Public mbLocalOverwrittenVersionObsolete As System.Short
+
C# 
public System.short mbLocalOverwrittenVersionObsolete
+
C++/CLI 
public:
+System.short mbLocalOverwrittenVersionObsolete
+ +

Field Value

    +
  • 0 = file in the user’s local cache is valid
+
    +
  • 1 = file in the user’s local cache is obsolete
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockComputer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockComputer.html new file mode 100644 index 0000000..f6d0272 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockComputer.html @@ -0,0 +1,150 @@ + + + + + + mbsLockComputer Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockComputer Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbsLockComputer Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of computer on which the file is checked out. +

Syntax

Visual Basic 
Public mbsLockComputer As System.String
+
C# 
public System.string mbsLockComputer
+
C++/CLI 
public:
+System.String^ mbsLockComputer
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockPath.html new file mode 100644 index 0000000..85fa1af --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockPath.html @@ -0,0 +1,150 @@ + + + + + + mbsLockPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbsLockPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the folder where the file is checked out. +

Syntax

Visual Basic 
Public mbsLockPath As System.String
+
C# 
public System.string mbsLockPath
+
C++/CLI 
public:
+System.String^ mbsLockPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockUser.html new file mode 100644 index 0000000..db4524d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockUser.html @@ -0,0 +1,150 @@ + + + + + + mbsLockUser Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockUser Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbsLockUser Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of user to whom this file is checked out. +

Syntax

Visual Basic 
Public mbsLockUser As System.String
+
C# 
public System.string mbsLockUser
+
C++/CLI 
public:
+System.String^ mbsLockUser
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockViewID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockViewID.html new file mode 100644 index 0000000..716778a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsLockViewID.html @@ -0,0 +1,150 @@ + + + + + + mbsLockViewID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockViewID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbsLockViewID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + GUID of the vault view where this file is checked out. +

Syntax

Visual Basic 
Public mbsLockViewID As System.String
+
C# 
public System.string mbsLockViewID
+
C++/CLI 
public:
+System.String^ mbsLockViewID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsRevisionName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsRevisionName.html new file mode 100644 index 0000000..b601b13 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mbsRevisionName.html @@ -0,0 +1,150 @@ + + + + + + mbsRevisionName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRevisionName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mbsRevisionName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the file’s current revision. +

Syntax

Visual Basic 
Public mbsRevisionName As System.String
+
C# 
public System.string mbsRevisionName
+
C++/CLI 
public:
+System.String^ mbsRevisionName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFileID.html new file mode 100644 index 0000000..65b1592 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFolderID.html new file mode 100644 index 0000000..fc009f6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file’s parent folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLatestVersion.html new file mode 100644 index 0000000..799d5e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Latest version of the file. +

Syntax

Visual Basic 
Public mlLatestVersion As System.Integer
+
C# 
public System.int mlLatestVersion
+
C++/CLI 
public:
+System.int mlLatestVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLocalVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLocalVersion.html new file mode 100644 index 0000000..9e8321b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLocalVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLocalVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLocalVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlLocalVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method. +

Syntax

Visual Basic 
Public mlLocalVersion As System.Integer
+
C# 
public System.int mlLocalVersion
+
C++/CLI 
public:
+System.int mlLocalVersion
+ +

Field Value

Version of the file in the local cache or 0 if the date of the version of the file in local cache passed to IEdmBatchListing::AddFile doesn’t match any version of the file in the vault
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLockProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLockProjectID.html new file mode 100644 index 0000000..7659a46 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlLockProjectID.html @@ -0,0 +1,150 @@ + + + + + + mlLockProjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLockProjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlLockProjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the project where this file is checked out. +

Syntax

Visual Basic 
Public mlLockProjectID As System.Integer
+
C# 
public System.int mlLockProjectID
+
C++/CLI 
public:
+System.int mlLockProjectID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlParam.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlParam.html new file mode 100644 index 0000000..05bebcd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~mlParam.html @@ -0,0 +1,150 @@ + + + + + + mlParam Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParam Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : mlParam Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Caller-defined parameter that was passed to the IEdmBatchListing::AddFile method. +

Syntax

Visual Basic 
Public mlParam As System.Integer
+
C# 
public System.int mlParam
+
C++/CLI 
public:
+System.int mlParam
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moColumnData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moColumnData.html new file mode 100644 index 0000000..6d8868c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moColumnData.html @@ -0,0 +1,150 @@ + + + + + + moColumnData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moColumnData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : moColumnData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column data for the selected column set. +

Syntax

Visual Basic 
Public moColumnData As System.Object
+
C# 
public System.object moColumnData
+
C++/CLI 
public:
+System.Object^ moColumnData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moCurrentState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moCurrentState.html new file mode 100644 index 0000000..04a2db2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile2~moCurrentState.html @@ -0,0 +1,150 @@ + + + + + + moCurrentState Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moCurrentState Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile2 Structure + : moCurrentState Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File’s current workflow state. +

Syntax

Visual Basic 
Public moCurrentState As EdmWorkflowInfo
+
C# 
public EdmWorkflowInfo moCurrentState
+
C++/CLI 
public:
+EdmWorkflowInfo moCurrentState
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFileFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFileFlags.html new file mode 100644 index 0000000..d15b73e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFileFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmListFileFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmListFileFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmListFileFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags passed to IEdmBatchListing::AddFile. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmListFileFlags 
+   Inherits System.Enum
+
C# 
public enum EdmListFileFlags : System.Enum 
+
C++/CLI 
public enum class EdmListFileFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmList_IsCutListItem2 = The file is a cut list item in another file
EdmList_IsInternalComponent4 = The file is a virtual component in another file
EdmList_MayNotReadFile1 = The file must not be accessed, even if it is checked out and modified
EdmList_Nothing0 = Default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_fields.html new file mode 100644 index 0000000..4e114d1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_fields.html @@ -0,0 +1,144 @@ + + + + + + EdmListFile Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmListFile members.

+ + +

Public Fields

+ + + + + + + + + + + +
 NameDescription
public FieldmbsLockComputerName of computer on which the file is checked out.  
public FieldmbsLockPathPath to the folder where the file is checked out.  
public FieldmbsLockUserName of user who has the file checked out.  
public FieldmbsRevisionNameName of the file’s current revision.  
public FieldmlFileIDID of the file.  
public FieldmlFolderIDID of the file’s parent folder.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlLocalVersionVersion of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method.  
public FieldmlParamCaller-defined parameter that was passed to the IEdmBatchListing::AddFile method.  
public FieldmoColumnDataColumn data for the selected column set.  
public FieldmoCurrentStateFile’s current workflow state.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_members.html new file mode 100644 index 0000000..f74f094 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile_members.html @@ -0,0 +1,171 @@ + + + + + + EdmListFile Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFile Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFile Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmListFile.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + +
 NameDescription
public FieldmbsLockComputerName of computer on which the file is checked out.  
public FieldmbsLockPathPath to the folder where the file is checked out.  
public FieldmbsLockUserName of user who has the file checked out.  
public FieldmbsRevisionNameName of the file’s current revision.  
public FieldmlFileIDID of the file.  
public FieldmlFolderIDID of the file’s parent folder.  
public FieldmlLatestVersionLatest version of the file.  
public FieldmlLocalVersionVersion of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method.  
public FieldmlParamCaller-defined parameter that was passed to the IEdmBatchListing::AddFile method.  
public FieldmoColumnDataColumn data for the selected column set.  
public FieldmoCurrentStateFile’s current workflow state.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockComputer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockComputer.html new file mode 100644 index 0000000..d05dba3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockComputer.html @@ -0,0 +1,150 @@ + + + + + + mbsLockComputer Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockComputer Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mbsLockComputer Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of computer on which the file is checked out. +

Syntax

Visual Basic 
Public mbsLockComputer As System.String
+
C# 
public System.string mbsLockComputer
+
C++/CLI 
public:
+System.String^ mbsLockComputer
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockPath.html new file mode 100644 index 0000000..a1178b3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockPath.html @@ -0,0 +1,150 @@ + + + + + + mbsLockPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mbsLockPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the folder where the file is checked out. +

Syntax

Visual Basic 
Public mbsLockPath As System.String
+
C# 
public System.string mbsLockPath
+
C++/CLI 
public:
+System.String^ mbsLockPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockUser.html new file mode 100644 index 0000000..17c0972 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsLockUser.html @@ -0,0 +1,150 @@ + + + + + + mbsLockUser Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsLockUser Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mbsLockUser Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of user who has the file checked out. +

Syntax

Visual Basic 
Public mbsLockUser As System.String
+
C# 
public System.string mbsLockUser
+
C++/CLI 
public:
+System.String^ mbsLockUser
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsRevisionName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsRevisionName.html new file mode 100644 index 0000000..e942a5e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mbsRevisionName.html @@ -0,0 +1,150 @@ + + + + + + mbsRevisionName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRevisionName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mbsRevisionName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the file’s current revision. +

Syntax

Visual Basic 
Public mbsRevisionName As System.String
+
C# 
public System.string mbsRevisionName
+
C++/CLI 
public:
+System.String^ mbsRevisionName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFileID.html new file mode 100644 index 0000000..9ebb39b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFolderID.html new file mode 100644 index 0000000..fda0e30 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the file’s parent folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLatestVersion.html new file mode 100644 index 0000000..8dbf7c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mlLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Latest version of the file. +

Syntax

Visual Basic 
Public mlLatestVersion As System.Integer
+
C# 
public System.int mlLatestVersion
+
C++/CLI 
public:
+System.int mlLatestVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLocalVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLocalVersion.html new file mode 100644 index 0000000..f802159 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlLocalVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLocalVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLocalVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mlLocalVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of the file in the local cache, based on the date of the file passed to the IEdmBatchListing::AddFile method. +

Syntax

Visual Basic 
Public mlLocalVersion As System.Integer
+
C# 
public System.int mlLocalVersion
+
C++/CLI 
public:
+System.int mlLocalVersion
+ +

Field Value

Version of the file in the local cache or 0 if the date of the version of the file in local cache passed to IEdmBatchListing::AddFile doesn’t match any version of the file in the vault
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlParam.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlParam.html new file mode 100644 index 0000000..99e588b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~mlParam.html @@ -0,0 +1,150 @@ + + + + + + mlParam Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParam Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : mlParam Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Caller-defined parameter that was passed to the IEdmBatchListing::AddFile method. +

Syntax

Visual Basic 
Public mlParam As System.Integer
+
C# 
public System.int mlParam
+
C++/CLI 
public:
+System.int mlParam
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moColumnData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moColumnData.html new file mode 100644 index 0000000..030e8b2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moColumnData.html @@ -0,0 +1,150 @@ + + + + + + moColumnData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moColumnData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : moColumnData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column data for the selected column set. +

Syntax

Visual Basic 
Public moColumnData As System.Object
+
C# 
public System.object moColumnData
+
C++/CLI 
public:
+System.Object^ moColumnData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moCurrentState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moCurrentState.html new file mode 100644 index 0000000..bada834 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFile~moCurrentState.html @@ -0,0 +1,150 @@ + + + + + + moCurrentState Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moCurrentState Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFile Structure + : moCurrentState Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File’s current workflow state. +

Syntax

Visual Basic 
Public moCurrentState As EdmWorkflowInfo
+
C# 
public EdmWorkflowInfo moCurrentState
+
C++/CLI 
public:
+EdmWorkflowInfo moCurrentState
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder.html new file mode 100644 index 0000000..c46dcb0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder.html @@ -0,0 +1,154 @@ + + + + + + EdmListFolder Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFolder Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFolder Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a folder returned from IEdmBatchListing::GetFolders. + +

Syntax

Visual Basic 
Public Structure EdmListFolder 
+   Inherits System.ValueType
+
C# 
public struct EdmListFolder : System.ValueType 
+
C++/CLI 
public value class EdmListFolder : public System.ValueType 
+
+ + +

Example

struct EdmListFolder{
  integer mlFolderID;
  integer mlParam;
  string mbsPath;
  object moColumnData;
};

+ +
+ + + + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolderFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolderFlags.html new file mode 100644 index 0000000..8a34823 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolderFlags.html @@ -0,0 +1,137 @@ + + + + + + EdmListFolderFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmListFolderFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmListFolderFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in calls to IEdmBatchListing::AddFolder to tell how to add the folder to the list. +

Syntax

Visual Basic 
Public Enum EdmListFolderFlags 
+   Inherits System.Enum
+
C# 
public enum EdmListFolderFlags : System.Enum 
+
C++/CLI 
public enum class EdmListFolderFlags : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmListFolder_Nothing0 = None of the other values
EdmListFolder_Recursive1 = Add the files inside the folder instead of adding the folder itself to the list; the files in any subfolders are added recursively
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_fields.html new file mode 100644 index 0000000..d20296c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmListFolder Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFolder Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFolder Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmListFolder members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsPathPath to the folder.  
public FieldmlFolderIDID of the folder.  
public FieldmlParamCaller-defined parameter passed to IEdmBatchListing::AddFolder.  
public FieldmoColumnDataColumn data for the selected column set.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_members.html new file mode 100644 index 0000000..986a839 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder_members.html @@ -0,0 +1,164 @@ + + + + + + EdmListFolder Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListFolder Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListFolder Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmListFolder.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsPathPath to the folder.  
public FieldmlFolderIDID of the folder.  
public FieldmlParamCaller-defined parameter passed to IEdmBatchListing::AddFolder.  
public FieldmoColumnDataColumn data for the selected column set.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mbsPath.html new file mode 100644 index 0000000..46682c0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mbsPath.html @@ -0,0 +1,150 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFolder Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the folder. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlFolderID.html new file mode 100644 index 0000000..66c09d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFolder Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the folder. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlParam.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlParam.html new file mode 100644 index 0000000..a0f67f0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~mlParam.html @@ -0,0 +1,150 @@ + + + + + + mlParam Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParam Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFolder Structure + : mlParam Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Caller-defined parameter passed to IEdmBatchListing::AddFolder. +

Syntax

Visual Basic 
Public mlParam As System.Integer
+
C# 
public System.int mlParam
+
C++/CLI 
public:
+System.int mlParam
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~moColumnData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~moColumnData.html new file mode 100644 index 0000000..78fcb48 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListFolder~moColumnData.html @@ -0,0 +1,150 @@ + + + + + + moColumnData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moColumnData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListFolder Structure + : moColumnData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Column data for the selected column set. +

Syntax

Visual Basic 
Public moColumnData As System.Object
+
C# 
public System.object moColumnData
+
C++/CLI 
public:
+System.Object^ moColumnData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef.html new file mode 100644 index 0000000..557ac3e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef.html @@ -0,0 +1,155 @@ + + + + + + EdmListRef Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListRef Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListRef Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about file references. + +

Syntax

Visual Basic 
Public Structure EdmListRef 
+   Inherits System.ValueType
+
C# 
public struct EdmListRef : System.ValueType 
+
C++/CLI 
public value class EdmListRef : public System.ValueType 
+
+ + +

Example


struct EdmListRef
{
integer mlChildID;
integer mlChildFolderID;
integer mlChildRefVersion;
integer mlParentFileID;
integer mlParentFolderID;}; +
+ +
+ +

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2014
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_fields.html new file mode 100644 index 0000000..1f13cf9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmListRef Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListRef Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmListRef members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmlChildFileIDID of referenced part or subassembly.  
public FieldmlChildFolderIDID of the referenced file's parent folder.  
public FieldmlChildRefVersionReferenced version of the child.  
public FieldmlParentFileIDID of referencing assembly or drawing.  
public FieldmlParentFolderIDID of teh referencing file's parent folder.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_members.html new file mode 100644 index 0000000..08b99c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef_members.html @@ -0,0 +1,165 @@ + + + + + + EdmListRef Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmListRef Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmListRef Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmListRef.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmlChildFileIDID of referenced part or subassembly.  
public FieldmlChildFolderIDID of the referenced file's parent folder.  
public FieldmlChildRefVersionReferenced version of the child.  
public FieldmlParentFileIDID of referencing assembly or drawing.  
public FieldmlParentFolderIDID of teh referencing file's parent folder.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFileID.html new file mode 100644 index 0000000..8222542 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFileID.html @@ -0,0 +1,150 @@ + + + + + + mlChildFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListRef Structure + : mlChildFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of referenced part or subassembly. +

Syntax

Visual Basic 
Public mlChildFileID As System.Integer
+
C# 
public System.int mlChildFileID
+
C++/CLI 
public:
+System.int mlChildFileID
+ +
+ + +

Example

  +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFolderID.html new file mode 100644 index 0000000..ffb1970 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlChildFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListRef Structure + : mlChildFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the referenced file's parent folder. +

Syntax

Visual Basic 
Public mlChildFolderID As System.Integer
+
C# 
public System.int mlChildFolderID
+
C++/CLI 
public:
+System.int mlChildFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildRefVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildRefVersion.html new file mode 100644 index 0000000..8c24702 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlChildRefVersion.html @@ -0,0 +1,150 @@ + + + + + + mlChildRefVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildRefVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListRef Structure + : mlChildRefVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Referenced version of the child. +

Syntax

Visual Basic 
Public mlChildRefVersion As System.Integer
+
C# 
public System.int mlChildRefVersion
+
C++/CLI 
public:
+System.int mlChildRefVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFileID.html new file mode 100644 index 0000000..9aae09d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFileID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListRef Structure + : mlParentFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of referencing assembly or drawing. +

Syntax

Visual Basic 
Public mlParentFileID As System.Integer
+
C# 
public System.int mlParentFileID
+
C++/CLI 
public:
+System.int mlParentFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFolderID.html new file mode 100644 index 0000000..5ce0cae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRef~mlParentFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmListRef Structure + : mlParentFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of teh referencing file's parent folder. +

Syntax

Visual Basic 
Public mlParentFolderID As System.Integer
+
C# 
public System.int mlParentFolderID
+
C++/CLI 
public:
+System.int mlParentFolderID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRetFileFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRetFileFlag.html new file mode 100644 index 0000000..cc836a3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmListRetFileFlag.html @@ -0,0 +1,140 @@ + + + + + + EdmListRetFileFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmListRetFileFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmListRetFileFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags returned in an IEdmBatchListing column if you specify column type EdmCol_EdmListRetFileFlag. +

Syntax

Visual Basic 
Public Enum EdmListRetFileFlag 
+   Inherits System.Enum
+
C# 
public enum EdmListRetFileFlag : System.Enum 
+
C++/CLI 
public enum class EdmListRetFileFlag : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmLstRet_Drawing1 = It is a backwards drawing reference (i.e., it displayed as blue links in Enterprise's command dialog boxes)
EdmLstRet_InternalComponent2 = Internal SOLIDWORKS part, cut list, etc.; i.e., it is not a physical file
EdmLstRet_Nothing0 = It is an ordinary system file
EdmLstRet_ToolboxPart4 = This is a part file from the Toolbox library
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLockFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLockFlag.html new file mode 100644 index 0000000..32a96fe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmLockFlag.html @@ -0,0 +1,136 @@ + + + + + + EdmLockFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmLockFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmLockFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in IEdmFile5::LockFile. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmLockFlag 
+   Inherits System.Enum
+
C# 
public enum EdmLockFlag : System.Enum 
+
C++/CLI 
public enum class EdmLockFlag : public System.Enum 
+
+

Members

+ +
MemberDescription
EdmLock_Simple0 = Check out the file using default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxResult.html new file mode 100644 index 0000000..2ccf987 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxResult.html @@ -0,0 +1,145 @@ + + + + + + EdmMBoxResult Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmMBoxResult Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmMBoxResult Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of clicked button returned by IEdmVault5::MsgBox. +

Syntax

Visual Basic 
Public Enum EdmMBoxResult 
+   Inherits System.Enum
+
C# 
public enum EdmMBoxResult : System.Enum 
+
C++/CLI 
public enum class EdmMBoxResult : public System.Enum 
+
+

Members

+ + + + + + + + + + +
MemberDescription
EdmMbr_Abort3 = User clicked Abort
EdmMbr_Cancel2 = User clicked Cancel or Close in the caption
EdmMbr_Ignore5 = User clicked Ignore
EdmMbr_No7 = User clicked No
EdmMbr_NoAll10 = User clicked No to All
EdmMbr_OK1 = User clicked OK
EdmMbr_OkAll8 = User clicked OK to All
EdmMbr_Retry4 = User clicked Retry
EdmMbr_Yes6 = User clicked Yes
EdmMbr_YesAll9 = User clicked Yes to All
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxType.html new file mode 100644 index 0000000..3e84a20 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMBoxType.html @@ -0,0 +1,144 @@ + + + + + + EdmMBoxType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmMBoxType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmMBoxType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of widget to insert or display in IEdmVault5::MsgBox. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmMBoxType 
+   Inherits System.Enum
+
C# 
public enum EdmMBoxType : System.Enum 
+
C++/CLI 
public enum class EdmMBoxType : public System.Enum 
+
+

Members

+ + + + + + + + + +
MemberDescription
EdmMbt_AbortRetryIgnore2 = Insert Abort, Retry, and Ignore
EdmMbt_Icon_Information64 = Display the information icon
EdmMbt_Icon_Question32 = Display the question icon
EdmMbt_Icon_Warning48 = Display the warning icon
EdmMbt_OKCancel1 = Insert OK and Cancel
EdmMbt_OKOnly0 = Insert OK
EdmMbt_RetryCancel5 = Insert Retry and Cancel
EdmMbt_YesNo4 = Insert Yes and No
EdmMbt_YesNoCancel3 = Insert Yes, No, and Cancel
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder.html new file mode 100644 index 0000000..4a4811c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder.html @@ -0,0 +1,156 @@ + + + + + + EdmMemberFolder Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmMemberFolder Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmMemberFolder Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Adds a user as a member of a group to a specific folder. + +

Syntax

Visual Basic 
Public Structure EdmMemberFolder 
+   Inherits System.ValueType
+
C# 
public struct EdmMemberFolder : System.ValueType 
+
C++/CLI 
public value class EdmMemberFolder : public System.ValueType 
+
+ + +

Example

struct EdmMemberFolder{
  integer mlUserID;
  integer mlFolderID;
};

+ +
+

Example

+

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_fields.html new file mode 100644 index 0000000..0d158e9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmMemberFolder Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmMemberFolder Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmMemberFolder Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmMemberFolder members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmlFolderIDID of user to add as a member.  
public FieldmlUserIDID of folder to which to add the user as a member.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_members.html new file mode 100644 index 0000000..bef6c8c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder_members.html @@ -0,0 +1,162 @@ + + + + + + EdmMemberFolder Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmMemberFolder Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmMemberFolder Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmMemberFolder.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmlFolderIDID of user to add as a member.  
public FieldmlUserIDID of folder to which to add the user as a member.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlFolderID.html new file mode 100644 index 0000000..844a1c3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlFolderID.html @@ -0,0 +1,150 @@ + + + + + + mlFolderID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFolderID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmMemberFolder Structure + : mlFolderID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of user to add as a member. +

Syntax

Visual Basic 
Public mlFolderID As System.Integer
+
C# 
public System.int mlFolderID
+
C++/CLI 
public:
+System.int mlFolderID
+ +
+ + +

Example

See the EdmMemberFolder examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlUserID.html new file mode 100644 index 0000000..338c1e9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMemberFolder~mlUserID.html @@ -0,0 +1,150 @@ + + + + + + mlUserID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmMemberFolder Structure + : mlUserID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of folder to which to add the user as a member. +

Syntax

Visual Basic 
Public mlUserID As System.Integer
+
C# 
public System.int mlUserID
+
C++/CLI 
public:
+System.int mlUserID
+ +
+ + +

Example

See the EdmMemberFolder examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuFlags.html new file mode 100644 index 0000000..218f38d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuFlags.html @@ -0,0 +1,154 @@ + + + + + + EdmMenuFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmMenuFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmMenuFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used by IEdmCmdMgr5::AddCmd when writing an add-in that supports menu commands. Bitmask.  +

Syntax

Visual Basic 
Public Enum EdmMenuFlags 
+   Inherits System.Enum
+
C# 
public enum EdmMenuFlags : System.Enum 
+
C++/CLI 
public enum class EdmMenuFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmMenu_Administration512 = The command is displayed in SOLIDWORKS PDM Professional Administration tool instead of the File Explorer
EdmMenu_ContextMenuItem1024 = The command is displayed in the file's context menu
EdmMenu_ContextMenuItemFolder2048 = The command is displayed in the folder's context menu
EdmMenu_HastItemToolbarButton8192 = The command has a button in the Item Explorer toolbar
EdmMenu_HasToolbarButton128 = The command has a button in the File Explorer toolbar; see IEdmCmdMgr5::AddToolbarImage
EdmMenu_ItemToolsMenu4096 = The command is displayed in the Item Explorer tools menu
EdmMenu_MustHaveSelection1 = The command is only available when the user has selected files or folders in the File Explorer file list
EdmMenu_NeverInContextMenu64 = The command should not be present in the right-click, context menu, only in the File Explorer Tools menu
EdmMenu_Nothing0 = Default behavior; no restrictions and no toolbar
EdmMenu_OnlyFiles2 = The command is not available for selections containing folders, only for files
EdmMenu_OnlyFolders4 = The command is not available for selections containing files, only for folders
EdmMenu_OnlyInContextMenu32 = The command should only be present in the right-click, context menu, not in the File Explorer Tools menu
EdmMenu_OnlyMultipleSelection16 = The command is only available for multiple selections, not for single files or folders
EdmMenu_OnlySingleSelection8 = The command is only available if only one file or folder has been selected, not for multiple selections
EdmMenu_OwnerDrawToolbarButton256 = The command uses custom drawing of its toolbar button by implementing IEdmAddInDrawButton5
EdmMenu_ShowInMenuBarAction16384 = The command is displayed in the Action menu in the File Explorer toolbar
EdmMenu_ShowInMenuBarDisplay65536 = The command is displayed in the Display menu in the File Explorer toolbar
EdmMenu_ShowInMenuBarModify32768 = The command is displayed in the Modify menu in the File Explorer toolbar
EdmMenu_ShowInMenuBarTools131072 = The command is displayed in the Tools menu in the File Explorer toolbar
+ + + + +

Remarks

The flags specify various properties for your command.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuStrType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuStrType.html new file mode 100644 index 0000000..6d4d118 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMenuStrType.html @@ -0,0 +1,138 @@ + + + + + + EdmMenuStrType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmMenuStrType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmMenuStrType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of arguments sent to IEdmMenu5::GetString to specify which string to return. +

Syntax

Visual Basic 
Public Enum EdmMenuStrType 
+   Inherits System.Enum
+
C# 
public enum EdmMenuStrType : System.Enum 
+
C++/CLI 
public enum class EdmMenuStrType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
MenuStr_MenuStr1 = The menu item string
MenuStr_StatusBar2 = The help string to show in the status bar
MenuStr_Tooltip3 = The ToolTip help string to show when the mouse cursor is over the command's toolbar button
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMsgType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMsgType.html new file mode 100644 index 0000000..4d2a241 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmMsgType.html @@ -0,0 +1,141 @@ + + + + + + EdmMsgType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmMsgType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmMsgType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of messages sent to a user. +

Syntax

Visual Basic 
Public Enum EdmMsgType 
+   Inherits System.Enum
+
C# 
public enum EdmMsgType : System.Enum 
+
C++/CLI 
public enum class EdmMsgType : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
EdmMsgType_ExternalNotification4 = The message is an external notification
EdmMsgType_FileNotification2 = The message is a file notification
EdmMsgType_FolderNotification3 = The message is a folder notification
EdmMsgType_Invalid0 = Invalid message (internal error code)
EdmMsgType_UserMessage1 = The message is a file notification
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo.html new file mode 100644 index 0000000..5f0a308 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmObjectInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmObjectInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmObjectInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Use in calls to IEdmVault9::GetObjects. + +

Syntax

Visual Basic 
Public Structure EdmObjectInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmObjectInfo : System.ValueType 
+
C++/CLI 
public value class EdmObjectInfo : public System.ValueType 
+
+ + +

Example

struct EdmObjectInfo

{
  EdmObjectType meType;
  object moObjectID;
  IEdmObject5*  mpoObject;
  integer mhResult;
};
+ +
+

Example

+

Remarks

The structure contains both input and output.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_fields.html new file mode 100644 index 0000000..7fe7740 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmObjectInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmObjectInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmObjectInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmObjectInfo members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmeTypeType of object to return in mpoObject as defined in EdmObjectType.  
public FieldmhResultCan be passed to IEdmVault5::GetErrorString to get a human-readable error message.  
public FieldmoObjectIDID of object to return in mpoObject.  
public FieldmpoObjectType of object to return in mpoObject.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_members.html new file mode 100644 index 0000000..08ed101 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo_members.html @@ -0,0 +1,164 @@ + + + + + + EdmObjectInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmObjectInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmObjectInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmObjectInfo.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmeTypeType of object to return in mpoObject as defined in EdmObjectType.  
public FieldmhResultCan be passed to IEdmVault5::GetErrorString to get a human-readable error message.  
public FieldmoObjectIDID of object to return in mpoObject.  
public FieldmpoObjectType of object to return in mpoObject.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~meType.html new file mode 100644 index 0000000..2ba3a05 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmObjectInfo Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of object to return in mpoObject as defined in EdmObjectType. +

Syntax

Visual Basic 
Public meType As EdmObjectType
+
C# 
public EdmObjectType meType
+
C++/CLI 
public:
+EdmObjectType meType
+ +
+ + +

Example

See the EdmObjectInfo examples. +
+ + +

Requirements


+ +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mhResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mhResult.html new file mode 100644 index 0000000..66ac8aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mhResult.html @@ -0,0 +1,150 @@ + + + + + + mhResult Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhResult Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmObjectInfo Structure + : mhResult Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Can be passed to IEdmVault5::GetErrorString to get a human-readable error message. +

Syntax

Visual Basic 
Public mhResult As System.Integer
+
C# 
public System.int mhResult
+
C++/CLI 
public:
+System.int mhResult
+ +
+ + + + + +

Remarks

HRESULT result code.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~moObjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~moObjectID.html new file mode 100644 index 0000000..749bbc1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~moObjectID.html @@ -0,0 +1,150 @@ + + + + + + moObjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moObjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmObjectInfo Structure + : moObjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of object to return in mpoObject. +

Syntax

Visual Basic 
Public moObjectID As System.Object
+
C# 
public System.object moObjectID
+
C++/CLI 
public:
+System.Object^ moObjectID
+ +
+ + +

Example

See the EdmObjectInfo examples. +
+ + +

Requirements


+ +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mpoObject.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mpoObject.html new file mode 100644 index 0000000..483b0ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectInfo~mpoObject.html @@ -0,0 +1,150 @@ + + + + + + mpoObject Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoObject Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmObjectInfo Structure + : mpoObject Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of object to return in mpoObject. +

Syntax

Visual Basic 
Public mpoObject As IEdmObject5
+
C# 
public IEdmObject5 mpoObject
+
C++/CLI 
public:
+IEdmObject5^ mpoObject
+ +
+ + +

Example

See the EdmObjectInfo examples. +
+ + +

Requirements


+ +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectType.html new file mode 100644 index 0000000..2b53889 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmObjectType.html @@ -0,0 +1,157 @@ + + + + + + EdmObjectType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmObjectType Enumeration
+ See Also   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmObjectType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Types of objects returned by IEdmObject5::ObjectTypeIEdmFile5::ObjectType, and IEdmFolder5::ObjectType.

+

Syntax

Visual Basic 
Public Enum EdmObjectType 
+   Inherits System.Enum
+
C# 
public enum EdmObjectType : System.Enum 
+
C++/CLI 
public enum class EdmObjectType : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmObject_Attribute10 = The object is an attribute, used in variables, and it supports the IEdmAttribute5 interface
EdmObject_BOM15 = The object is a Bill of Materials; see IEdmBom
EdmObject_Card5 = The object is a file/folder data card, and it supports the IEdmCard5 interface
EdmObject_CardControl6 = The object is a control in a file/folder data card, and it supports the IEdmCardControl5 interface
EdmObject_Category14 = The object is a category; see IEdmCategory6
EdmObject_Dictionary12 = The object is a dictionary, and it supports the IEdmDictionary5 interface
EdmObject_File1 = The object is a file, and it supports the IEdmFile5 interface
EdmObject_Folder2 = The object is a folder, and it supports the IEdmFolder5 interface
EdmObject_Invalid0 = This is not an object type; it is an error code
EdmObject_Item16 = The object is an item; see IEdmItem
EdmObject_ItemFolder17 = The object is a parent folder of an item; see IEdmFolder6
EdmObject_ItemRootFolder18 = The object is the invisible root folder of all item folders; see IEdmFolder6
EdmObject_Label11 = The object is a label, and it supports the IEdmLabel5 interface
EdmObject_State3 = The object is a workflow state, and it supports the IEdmState5 interface
EdmObject_Transition4 = The object is a transition (i.e., a workflow state change), and it supports the IEdmTransition5 interface
EdmObject_User7 = The object is a user, and it supports the IEdmUser5 interface
EdmObject_UserGroup8 = The object is a user group, and it supports the IEdmUserGroup5 interface
EdmObject_Variable9 = The object is a variable (for file/folder data cards), and it supports the IEdmVariable5 interface
EdmObject_Workflow13 = The object is a workflow; see IEdmWorkflow5 and IEdmWorkflow6
+ + + +

Example

+

Remarks

All interfaces that inherit from IEdmObject5 have a corresponding EdmObjectType value indicating the kind of object.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint.html new file mode 100644 index 0000000..e392498 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint.html @@ -0,0 +1,156 @@ + + + + + + EdmPoint Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmPoint Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmPoint Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds a point. + +

Syntax

Visual Basic 
Public Structure EdmPoint 
+   Inherits System.ValueType
+
C# 
public struct EdmPoint : System.ValueType 
+
C++/CLI 
public value class EdmPoint : public System.ValueType 
+
+ + +

Example

struct EdmPoint{
  integer mlX;
  integer mlY;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_fields.html new file mode 100644 index 0000000..7cee66f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmPoint Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmPoint Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmPoint Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmPoint members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmlXX coordinate.  
public FieldmlYY coordinate.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_members.html new file mode 100644 index 0000000..0a9d791 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint_members.html @@ -0,0 +1,162 @@ + + + + + + EdmPoint Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmPoint Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmPoint Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmPoint.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmlXX coordinate.  
public FieldmlYY coordinate.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlX.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlX.html new file mode 100644 index 0000000..355df9d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlX.html @@ -0,0 +1,150 @@ + + + + + + mlX Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlX Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmPoint Structure + : mlX Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + X coordinate. +

Syntax

Visual Basic 
Public mlX As System.Integer
+
C# 
public System.int mlX
+
C++/CLI 
public:
+System.int mlX
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlY.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlY.html new file mode 100644 index 0000000..a9b8625 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmPoint~mlY.html @@ -0,0 +1,150 @@ + + + + + + mlY Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlY Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmPoint Structure + : mlY Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Y coordinate. +

Syntax

Visual Basic 
Public mlY As System.Integer
+
C# 
public System.int mlY
+
C++/CLI 
public:
+System.int mlY
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmProgressType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmProgressType.html new file mode 100644 index 0000000..cd61f0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmProgressType.html @@ -0,0 +1,145 @@ + + + + + + EdmProgressType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmProgressType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmProgressType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of progress bars that are affected by certain operations. +

Syntax

Visual Basic 
Public Enum EdmProgressType 
+   Inherits System.Enum
+
C# 
public enum EdmProgressType : System.Enum 
+
C++/CLI 
public enum class EdmProgressType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Ept_FileTransfer2 = Progress bar for copying the data of a single file
Ept_Operation1 = Progress bar for the entire operation
Ept_UpdateReference3 = Progress bar for updating file references
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawRefFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawRefFlags.html new file mode 100644 index 0000000..e6bb151 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawRefFlags.html @@ -0,0 +1,138 @@ + + + + + + EdmRawRefFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRawRefFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRawRefFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in EdmRawReference. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmRawRefFlags 
+   Inherits System.Enum
+
C# 
public enum EdmRawRefFlags : System.Enum 
+
C++/CLI 
public enum class EdmRawRefFlags : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Edmrrf_Ghost1 = DWG files can store grandchildren as references; for example, in the file tree: A.dwg=>B.dwg=>C.dwg the file C.dwg can be stored as a ghost reference in A.dwg and as a normal reference in B.dwg; SOLIDWORKS PDM Professional does not show ghost references in check-in dialog boxes but does update them when files are moved
Edmrrf_InternalComponent2 = Not used
Edmrrf_Nothing0 = Normal file reference
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference.html new file mode 100644 index 0000000..3044949 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference.html @@ -0,0 +1,157 @@ + + + + + + EdmRawReference Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRawReference Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRawReference Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a file reference. + +

Syntax

Visual Basic 
Public Structure EdmRawReference 
+   Inherits System.ValueType
+
C# 
public struct EdmRawReference : System.ValueType 
+
C++/CLI 
public value class EdmRawReference : public System.ValueType 
+
+ + +

Example

struct EdmRawReference

+

{
  string mbsRefID;
  string mbsIncludePath;
  string mbsRefName;
  integer mlFlags;
  integer mlCount;
};

+ +
+

Example

+

Remarks

This structure is used by the IEdmRawReferenceMgr interface.
+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_fields.html new file mode 100644 index 0000000..3fa8bec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmRawReference Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRawReference Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRawReference Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRawReference members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsIncludePathHow the file is referenced by the referencing file.  
public FieldmbsRefIDInternal ID of the file reference.  
public FieldmbsRefNameReference name.  
public FieldmlCountNumber of times the file is referenced.  
public FieldmlFlagsA combination of EdmRawRefFlags bits.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_members.html new file mode 100644 index 0000000..42de701 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference_members.html @@ -0,0 +1,165 @@ + + + + + + EdmRawReference Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRawReference Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRawReference Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRawReference.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsIncludePathHow the file is referenced by the referencing file.  
public FieldmbsRefIDInternal ID of the file reference.  
public FieldmbsRefNameReference name.  
public FieldmlCountNumber of times the file is referenced.  
public FieldmlFlagsA combination of EdmRawRefFlags bits.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsIncludePath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsIncludePath.html new file mode 100644 index 0000000..76f8055 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsIncludePath.html @@ -0,0 +1,150 @@ + + + + + + mbsIncludePath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsIncludePath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRawReference Structure + : mbsIncludePath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + How the file is referenced by the referencing file. +

Syntax

Visual Basic 
Public mbsIncludePath As System.String
+
C# 
public System.string mbsIncludePath
+
C++/CLI 
public:
+System.String^ mbsIncludePath
+ +
+ + +

Example

See the EdmRawReference examples. +
+ +

Remarks

Equivalent to the included as column in the check-in dialog box.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefID.html new file mode 100644 index 0000000..b8ebc03 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefID.html @@ -0,0 +1,150 @@ + + + + + + mbsRefID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRefID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRawReference Structure + : mbsRefID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Internal ID of the file reference. +

Syntax

Visual Basic 
Public mbsRefID As System.String
+
C# 
public System.string mbsRefID
+
C++/CLI 
public:
+System.String^ mbsRefID
+ +
+ + +

Example

See the EdmRawReference examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefName.html new file mode 100644 index 0000000..4e7d6f3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mbsRefName.html @@ -0,0 +1,150 @@ + + + + + + mbsRefName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRefName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRawReference Structure + : mbsRefName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Reference name. +

Syntax

Visual Basic 
Public mbsRefName As System.String
+
C# 
public System.string mbsRefName
+
C++/CLI 
public:
+System.String^ mbsRefName
+ +
+ + +

Example

See the EdmRawReference examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlCount.html new file mode 100644 index 0000000..6aaee28 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlCount.html @@ -0,0 +1,150 @@ + + + + + + mlCount Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCount Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRawReference Structure + : mlCount Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Number of times the file is referenced. +

Syntax

Visual Basic 
Public mlCount As System.Integer
+
C# 
public System.int mlCount
+
C++/CLI 
public:
+System.int mlCount
+ +
+ + +

Example

See the EdmRawReference examples. +
+ +

Remarks

This member returns 0 for file formats that do not support counting of file references.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlFlags.html new file mode 100644 index 0000000..a06f657 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRawReference~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRawReference Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + A combination of EdmRawRefFlags bits. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +
+ + +

Example

See the EdmRawReference examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect.html new file mode 100644 index 0000000..bba324a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect.html @@ -0,0 +1,156 @@ + + + + + + EdmRect Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRect Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRect Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Encapsulates a rectangle and is identical to the Win32 RECT struct. + +

Syntax

Visual Basic 
Public Structure EdmRect 
+   Inherits System.ValueType
+
C# 
public struct EdmRect : System.ValueType 
+
C++/CLI 
public value class EdmRect : public System.ValueType 
+
+ + +

Example

struct EdmRect{
  integer mlLeft;
  integer mlTop;
  integer mlRight;
  integer mlBottom;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_fields.html new file mode 100644 index 0000000..bfe0f4a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmRect Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRect Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRect Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRect members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmlBottomRectangle's bottom edge + 1 (top + height).  
public FieldmlLeftX position of the rectangle's top-left corner.  
public FieldmlRightRectangle's right edge + 1 (left + width) .  
public FieldmlTopY position of the rectangle's top-left corner.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_members.html new file mode 100644 index 0000000..dd66944 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect_members.html @@ -0,0 +1,164 @@ + + + + + + EdmRect Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRect Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRect Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRect.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmlBottomRectangle's bottom edge + 1 (top + height).  
public FieldmlLeftX position of the rectangle's top-left corner.  
public FieldmlRightRectangle's right edge + 1 (left + width) .  
public FieldmlTopY position of the rectangle's top-left corner.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlBottom.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlBottom.html new file mode 100644 index 0000000..87a1209 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlBottom.html @@ -0,0 +1,150 @@ + + + + + + mlBottom Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlBottom Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRect Structure + : mlBottom Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Rectangle's bottom edge + 1 (top + height). +

Syntax

Visual Basic 
Public mlBottom As System.Integer
+
C# 
public System.int mlBottom
+
C++/CLI 
public:
+System.int mlBottom
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlLeft.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlLeft.html new file mode 100644 index 0000000..0c880cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlLeft.html @@ -0,0 +1,150 @@ + + + + + + mlLeft Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLeft Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRect Structure + : mlLeft Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + X position of the rectangle's top-left corner. +

Syntax

Visual Basic 
Public mlLeft As System.Integer
+
C# 
public System.int mlLeft
+
C++/CLI 
public:
+System.int mlLeft
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlRight.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlRight.html new file mode 100644 index 0000000..d48587f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlRight.html @@ -0,0 +1,150 @@ + + + + + + mlRight Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRight Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRect Structure + : mlRight Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Rectangle's right edge + 1 (left + width) . +

Syntax

Visual Basic 
Public mlRight As System.Integer
+
C# 
public System.int mlRight
+
C++/CLI 
public:
+System.int mlRight
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlTop.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlTop.html new file mode 100644 index 0000000..1ca4823 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRect~mlTop.html @@ -0,0 +1,150 @@ + + + + + + mlTop Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlTop Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRect Structure + : mlTop Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Y position of the rectangle's top-left corner. +

Syntax

Visual Basic 
Public mlTop As System.Integer
+
C# 
public System.int mlTop
+
C++/CLI 
public:
+System.int mlTop
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefFlags.html new file mode 100644 index 0000000..cc74b3c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefFlags.html @@ -0,0 +1,144 @@ + + + + + + EdmRefFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRefFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of item reference. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmRefFlags 
+   Inherits System.Enum
+
C# 
public enum EdmRefFlags : System.Enum 
+
C++/CLI 
public enum class EdmRefFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmRef_Dynamic4 = Auto-update item to file reference
EdmRef_File1 = Item to file reference
EdmRef_Item2 = Item to item reference
EdmRef_Static8 = Attachment-type item to file reference
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemProperty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemProperty.html new file mode 100644 index 0000000..f227946 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemProperty.html @@ -0,0 +1,170 @@ + + + + + + EdmRefItemProperty Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefItemProperty Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRefItemProperty Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of property that can be accessed in IEdmRefItem objects via IEdmRefItem::GetProperty and IEdmRefItem::SetProperty. +

Syntax

Visual Basic 
Public Enum EdmRefItemProperty 
+   Inherits System.Enum
+
C# 
public enum EdmRefItemProperty : System.Enum 
+
C++/CLI 
public enum class EdmRefItemProperty : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
Edmrip_CheckAdd27 = R+W; Boolean; add file?
Edmrip_CheckChangeState28 = R+W; Boolean; change the state of the file?
Edmrip_CheckCopy24 = R+W; Boolean; copy file?
Edmrip_CheckGet20 = R+W; Boolean; retrieve file?
Edmrip_CheckHasBlockingWarning30 = R+W; Boolean; file has blocking warning?
Edmrip_CheckIncRev21 = R+W; Boolean; increment revision?
Edmrip_CheckKeepLocked19 = R+W; Boolean; keep check-out state after check in?
Edmrip_CheckLock17 = R+W; Boolean; check out file?
Edmrip_CheckOverwriteLatestVersion29 = R+W; Boolean; overwrite the latest version of the file with the new changes instead of creating a new version?
Edmrip_CheckRemoveLocal23 = R+W; Boolean; Check In container; remove local file copy after check in?
Edmrip_CheckUndoLock22 = R+W; Boolean; Check In container; remove check-out state without producing a new version?
Edmrip_CheckUnlock18 = R+W; Boolean; Check In container; check in file?
Edmrip_FileName2 = R; string; All container; filename
Edmrip_FoundPath7 = R; string; Check In container; file system path to folder where file is found
Edmrip_ID0 = R; string; All container; unique ID of the item in the container
Edmrip_IncludedAs6 = R; string; Check In container; include path used to reference this file
Edmrip_LockComputer4 = R; string; Check In container; name of computer where file is checked out
Edmrip_LockPath3 = R; string; Check In container; file system path to folder where file is checked out
Edmrip_LockUser5 = R; string; Check In container; name of user who checked out file
Edmrip_RefName1 = R; string; All container; name of file reference; does not have to be the filename
Edmrip_RevisionLatest15 = R; string; current revision number of file
Edmrip_RevisionNew16 = R; string; next revision number of file
Edmrip_ShowMultipleWarnings31 = R+W; Boolean; display the Multiple Warnings link in the command dialog box's warning column?
Edmrip_Size33 = R; integer; file size
Edmrip_StatusHresult25 = R; HRESULT; All container; binary error code for this item
Edmrip_StatusText26 = R; string; All container; error code
Edmrip_TransitionID34 = R; integer; Transition ID returned with change state operation
Edmrip_Type32 = R; integer; Check In container; type of file: 1=normal, 2=virtual, 3=BOM, 4=item, 5=cutlist, 6=toolbox part
Edmrip_VersionAttached11 = R; integer; Check In container; version that was referenced before check in
Edmrip_VersionLatest9 = R; integer; Check In container; latest version of the file
Edmrip_VersionLocal8 = R; integer; Check In container; version of file copy on the local disk
Edmrip_VersionNew10 = R; integer; Check In container; next version of the file
Edmrip_VersionNewAttached12 = R; integer; Check In container; version that will be referenced after check in
Edmrip_WorkflowStateIcon14 = R; string; Check In container; name of the file's current workflow state icon
Edmrip_WorkflowStateName13 = R; string; Check In container; name of the file's current workflow state
+ + + + +

Remarks


+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemType.html new file mode 100644 index 0000000..c66a618 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefItemType.html @@ -0,0 +1,137 @@ + + + + + + EdmRefItemType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefItemType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRefItemType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Items to return from IEdmRefItemContainer::GetItems. +

Syntax

Visual Basic 
Public Enum EdmRefItemType 
+   Inherits System.Enum
+
C# 
public enum EdmRefItemType : System.Enum 
+
C++/CLI 
public enum class EdmRefItemType : public System.Enum 
+
+

Members

+ + +
MemberDescription
Edmrit_All2 = Return all items in the container (recursively)
Edmrit_Roots1 = Return only root items in the container
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefType.html new file mode 100644 index 0000000..db11195 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefType.html @@ -0,0 +1,137 @@ + + + + + + EdmRefType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRefType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of references to return from IEdmRefItem::GetRefs. +

Syntax

Visual Basic 
Public Enum EdmRefType 
+   Inherits System.Enum
+
C# 
public enum EdmRefType : System.Enum 
+
C++/CLI 
public enum class EdmRefType : public System.Enum 
+
+

Members

+ + +
MemberDescription
Edmrt_Children1 = Return normal file references
Edmrt_SubParents2 = Return sub-parents, which are parent files displayed as blue children in the reference dialog box; drawing files for some CAD formats are displayed this way
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar.html new file mode 100644 index 0000000..5d3dbce --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar.html @@ -0,0 +1,168 @@ + + + + + + EdmRefVar Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRefVar Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRefVar Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a single file reference variable; i.e., a variable stored on the reference relationship between an assembly file and one of its part files. + +

Syntax

Visual Basic 
Public Structure EdmRefVar 
+   Inherits System.ValueType
+
C# 
public struct EdmRefVar : System.ValueType 
+
C++/CLI 
public value class EdmRefVar : public System.ValueType 
+
+ + +

Example

struct EdmRefVar{
  integer mlVarID;
  integer mlParentFileID;
  integer mlParentVersion;
  integer mlChildFileID;
  string mbsChildCfgName;
  string mbsParentCfgName;
  object moValue;
  integer mhResult;
};

+ +
+

Example

+

Remarks

Reference variables are used in Bill of Materials columns that are configured to look for reference-specific values. To create a reference variable:

+
    +
  1. Open the SOLIDWORKS PDM Professional Administration tool. +
  2. Log into a vault. +
  3. Double-click Bill of Materials > BOM. +
  4. Click a column in the Columns list. +
  5. Select Look for variable in reference specific values. +
  6. Click OK. +
  7. In a vault view, check out an assembly. +
  8. Click the Bill of Materials tab. +
  9. In the column configured to use reference-specific values, type text. +
  10. Click Save in the Bill of Materials toolbar.
+

Each component of the assembly is in a separate reference relationship with the assembly. The BOM column configured to Look for variable in reference specific values contains reference variable values. Use IEdmBatchRefVars to get and set these reference variable values.

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_fields.html new file mode 100644 index 0000000..4157f0f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_fields.html @@ -0,0 +1,141 @@ + + + + + + EdmRefVar Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRefVar Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRefVar Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRefVar members.

+ + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsChildCfgNameChild file (part) configuration name.  
public FieldmbsParentCfgNameParent file (assembly) configuration name.  
public FieldmhResultResult of operation.  
public FieldmlChildFileIDID of child file (part).  
public FieldmlParentFileIDID of parent file (assembly).  
public FieldmlParentVersionVersion of parent file (assembly).  
public FieldmlVarIDID of the reference variable.  
public FieldmoValueValue of the reference variable.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_members.html new file mode 100644 index 0000000..bc88bc4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar_members.html @@ -0,0 +1,168 @@ + + + + + + EdmRefVar Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRefVar Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRefVar Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRefVar.

+ + + + + + + +

Public Fields

+ + + + + + + + +
 NameDescription
public FieldmbsChildCfgNameChild file (part) configuration name.  
public FieldmbsParentCfgNameParent file (assembly) configuration name.  
public FieldmhResultResult of operation.  
public FieldmlChildFileIDID of child file (part).  
public FieldmlParentFileIDID of parent file (assembly).  
public FieldmlParentVersionVersion of parent file (assembly).  
public FieldmlVarIDID of the reference variable.  
public FieldmoValueValue of the reference variable.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsChildCfgName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsChildCfgName.html new file mode 100644 index 0000000..5ac3232 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsChildCfgName.html @@ -0,0 +1,150 @@ + + + + + + mbsChildCfgName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsChildCfgName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mbsChildCfgName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Child file (part) configuration name. +

Syntax

Visual Basic 
Public mbsChildCfgName As System.String
+
C# 
public System.string mbsChildCfgName
+
C++/CLI 
public:
+System.String^ mbsChildCfgName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsParentCfgName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsParentCfgName.html new file mode 100644 index 0000000..ae9007f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mbsParentCfgName.html @@ -0,0 +1,150 @@ + + + + + + mbsParentCfgName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsParentCfgName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mbsParentCfgName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Parent file (assembly) configuration name. +

Syntax

Visual Basic 
Public mbsParentCfgName As System.String
+
C# 
public System.string mbsParentCfgName
+
C++/CLI 
public:
+System.String^ mbsParentCfgName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mhResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mhResult.html new file mode 100644 index 0000000..4f07464 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mhResult.html @@ -0,0 +1,150 @@ + + + + + + mhResult Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhResult Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mhResult Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Result of operation. +

Syntax

Visual Basic 
Public mhResult As System.Integer
+
C# 
public System.int mhResult
+
C++/CLI 
public:
+System.int mhResult
+ +
+ + + + + +

Remarks

All errors that can be returned on a file level by IEdmBatchRefVars::GetRefVars and IEdmBatchRefVars::SetRefVars are returned here rather than failing the entire method call.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlChildFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlChildFileID.html new file mode 100644 index 0000000..a3eb890 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlChildFileID.html @@ -0,0 +1,150 @@ + + + + + + mlChildFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlChildFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mlChildFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of child file (part). +

Syntax

Visual Basic 
Public mlChildFileID As System.Integer
+
C# 
public System.int mlChildFileID
+
C++/CLI 
public:
+System.int mlChildFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentFileID.html new file mode 100644 index 0000000..0151689 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentFileID.html @@ -0,0 +1,150 @@ + + + + + + mlParentFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mlParentFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of parent file (assembly). +

Syntax

Visual Basic 
Public mlParentFileID As System.Integer
+
C# 
public System.int mlParentFileID
+
C++/CLI 
public:
+System.int mlParentFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentVersion.html new file mode 100644 index 0000000..09cc080 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlParentVersion.html @@ -0,0 +1,150 @@ + + + + + + mlParentVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mlParentVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version of parent file (assembly). +

Syntax

Visual Basic 
Public mlParentVersion As System.Integer
+
C# 
public System.int mlParentVersion
+
C++/CLI 
public:
+System.int mlParentVersion
+ +
+ + + + + +

Remarks

This member is ignored during write operations, because only the latest version can be updated. Read operations interpret the value, 0, as the latest version.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlVarID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlVarID.html new file mode 100644 index 0000000..5df3b6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~mlVarID.html @@ -0,0 +1,150 @@ + + + + + + mlVarID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVarID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : mlVarID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the reference variable. +

Syntax

Visual Basic 
Public mlVarID As System.Integer
+
C# 
public System.int mlVarID
+
C++/CLI 
public:
+System.int mlVarID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~moValue.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~moValue.html new file mode 100644 index 0000000..a6bc09a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefVar~moValue.html @@ -0,0 +1,150 @@ + + + + + + moValue Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moValue Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRefVar Structure + : moValue Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Value of the reference variable. +

Syntax

Visual Basic 
Public moValue As System.Object
+
C# 
public System.object moValue
+
C++/CLI 
public:
+System.Object^ moValue
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefreshFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefreshFlag.html new file mode 100644 index 0000000..d109529 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRefreshFlag.html @@ -0,0 +1,141 @@ + + + + + + EdmRefreshFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefreshFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRefreshFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags that cause SOLIDWORKS PDM Professional to refresh elements of the user interface. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmRefreshFlag 
+   Inherits System.Enum
+
C# 
public enum EdmRefreshFlag : System.Enum 
+
C++/CLI 
public enum class EdmRefreshFlag : public System.Enum 
+
+

Members

+ + + + + +
MemberDescription
EdmRefresh_FileList1 = Refresh the file listing in File Explorer; this value should be returned if you add, delete, rename, check out, check in, etc., a file and want the change to be immediately visible to the user
EdmRefresh_Hooks2 = Force reloading of hooks; this value is normally only returned if your add-in changes the number of registered hooks
EdmRefresh_Menu4 = Force an update of the Tools menu in the File Explorer; this value is normally only returned if your add-in changes the number of registered menu commands
EdmRefresh_Nothing0 = No refresh is required
EdmRefresh_Toolbar8 = Force an update of the toolbar in File Explorer; this value is normally only returned if your add-in changes the number of registered menu commands with toolbar buttons
+ + + + +

Remarks

You can return a combination of these flags from your add-in's IEdmAddIn5::OnCmd via the EdmCmd struct to cause SOLIDWORKS PDM Professional to refresh certain parts of the user interface.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRepaintType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRepaintType.html new file mode 100644 index 0000000..8a66f72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRepaintType.html @@ -0,0 +1,138 @@ + + + + + + EdmRepaintType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRepaintType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRepaintType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of flags passed into IEdmImage::Reposition to control how to handle repainting of the background window. +

Syntax

Visual Basic 
Public Enum EdmRepaintType 
+   Inherits System.Enum
+
C# 
public enum EdmRepaintType : System.Enum 
+
C++/CLI 
public enum class EdmRepaintType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmRepaint_Erase2 = Trigger both paint and erase (WM_ERASEBKGND) message
EdmRepaint_Nothing0 = Do not refresh the window
EdmRepaint_Repaint1 = Trigger a repaint (WM_PAINT) message but not a background erase
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveAction.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveAction.html new file mode 100644 index 0000000..a138543 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveAction.html @@ -0,0 +1,143 @@ + + + + + + EdmResolveAction Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmResolveAction Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmResolveAction Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of flags that you return to SOLIDWORKS PDM Professional from IEdmCallback6::Resolve. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmResolveAction 
+   Inherits System.Enum
+
C# 
public enum EdmResolveAction : System.Enum 
+
C++/CLI 
public enum class EdmResolveAction : public System.Enum 
+
+

Members

+ + + + + + + + +
MemberDescription
Edmra_ClearUnique2 = Clear the duplicated unique-constrained values
Edmra_CopySerial4 = Copy existing serial number values from the source file
Edmra_CreateSerial8 = Create new serial number values
Edmra_ForceGenerateSerial128 = Force regeneration of serial numbers when values already exist; without the flag, SOLIDWORKS PDM Professional only generates values that are missing in the file
Edmra_KeepExistingSerialNumbers32 = Do not replace existing serial numbers with new ones; SOLIDWORKS PDM Professional still creates serial numbers for empty fields; if this flag is not specified, SOLIDWORKS PDM Professional overwrites existing serial numbers with new ones
Edmra_Replace1 = Replace existing file with the new one
Edmra_Skip16 = Do not process this file
Edmra_UniqueVarDelayCheck64 = Delay the unique variable check to next check in
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveReason.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveReason.html new file mode 100644 index 0000000..2abd8c0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmResolveReason.html @@ -0,0 +1,142 @@ + + + + + + EdmResolveReason Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmResolveReason Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmResolveReason Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of flags, which contain the reason for the function call, to pass to your implementation of IEdmCallback6::ResolveBitmask. +

Syntax

Visual Basic 
Public Enum EdmResolveReason 
+   Inherits System.Enum
+
C# 
public enum EdmResolveReason : System.Enum 
+
C++/CLI 
public enum class EdmResolveReason : public System.Enum 
+
+

Members

+ + + + + + + +
MemberDescription
Edmrr_DstExists1 = Destination file name is already used in the folder
Edmrr_DstExistsGlobal64 = Destination file name is already used in the vault
Edmrr_FolderExists32 = Folder with the same name exists
Edmrr_LockedByYouHere2 = Destination (existing) file is checked out by the logged-in user
Edmrr_SameAsSource4 = Source file and the destination file are the same
Edmrr_SerialNumber16 = Source file contains serial number values
Edmrr_UniqueValues8 = Source file contains unique, constrained, variable values that must be cleared on copy
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent.html new file mode 100644 index 0000000..97b4ce9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent.html @@ -0,0 +1,155 @@ + + + + + + EdmRevComponent Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Obsolete. Superseded by EdmRevComponent2. + +

Syntax

Visual Basic 
Public Structure EdmRevComponent 
+   Inherits System.ValueType
+
C# 
public struct EdmRevComponent : System.ValueType 
+
C++/CLI 
public value class EdmRevComponent : public System.ValueType 
+
+ + +

Example

struct EdmRevComponent

{
  integer mlComponentID;
  string mbsComponentName;
};
+ +
+ +

Remarks

Returned by IEdmRevisionMgr::GetRevisionNumberComponents, which is obsolete and superseded by IEdmRevisionMgr2.::GetRevisionNumberComponents2, which returns EdmRevComponent2.

+

The struct contains the component information.

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2.html new file mode 100644 index 0000000..f089755 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2.html @@ -0,0 +1,158 @@ + + + + + + EdmRevComponent2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a single revision number component. + +

Syntax

Visual Basic 
Public Structure EdmRevComponent2 
+   Inherits System.ValueType
+
C# 
public struct EdmRevComponent2 : System.ValueType 
+
C++/CLI 
public value class EdmRevComponent2 : public System.ValueType 
+
+ + +

Example

struct EdmRevComponent2{
  integer mlComponentID;
  string mbsComponentName;
  integer mlEdmRevComponentFlags;
  string mbsData;
  integer mlRecipientID;
  integer mlInitialCounter;
};

+ +
+

Example

+

Remarks

You can obtain this structure by calling IEdmRevisionMgr2::GetRevisionNumberComponents2.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_fields.html new file mode 100644 index 0000000..cb7c2f9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmRevComponent2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRevComponent2 members.

+ + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsComponentNameComponent's name.  
public FieldmbsDataFormat string entered in the administration tool if mlEdmRevComponentFlags contains the flag Edmrcf_TypeFormatString; if mbsDataField contains Edmrcf_TypeList, then the data member contains a new line-delimited list of list items.  
public FieldmlComponentIDComponent ID.  
public FieldmlEdmRevComponentFlagsCombination of EdmRevComponentFlags flags.  
public FieldmlInitialCounterInitial counter value for the component.  
public FieldmlRecipientIDID of the user or group notified by mail when the end of a revision number list is reached.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_members.html new file mode 100644 index 0000000..0fbaa95 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2_members.html @@ -0,0 +1,166 @@ + + + + + + EdmRevComponent2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRevComponent2.

+ + + + + + + +

Public Fields

+ + + + + + +
 NameDescription
public FieldmbsComponentNameComponent's name.  
public FieldmbsDataFormat string entered in the administration tool if mlEdmRevComponentFlags contains the flag Edmrcf_TypeFormatString; if mbsDataField contains Edmrcf_TypeList, then the data member contains a new line-delimited list of list items.  
public FieldmlComponentIDComponent ID.  
public FieldmlEdmRevComponentFlagsCombination of EdmRevComponentFlags flags.  
public FieldmlInitialCounterInitial counter value for the component.  
public FieldmlRecipientIDID of the user or group notified by mail when the end of a revision number list is reached.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsComponentName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsComponentName.html new file mode 100644 index 0000000..914cf41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsComponentName.html @@ -0,0 +1,150 @@ + + + + + + mbsComponentName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComponentName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mbsComponentName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Component's name. +

Syntax

Visual Basic 
Public mbsComponentName As System.String
+
C# 
public System.string mbsComponentName
+
C++/CLI 
public:
+System.String^ mbsComponentName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsData.html new file mode 100644 index 0000000..7520c39 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mbsData.html @@ -0,0 +1,259 @@ + + + + + + mbsData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mbsData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Format string entered in the administration tool if mlEdmRevComponentFlags contains the flag Edmrcf_TypeFormatString; if mbsDataField contains Edmrcf_TypeList, then the data member contains a new line-delimited list of list items. +

Syntax

Visual Basic 
Public mbsData As System.String
+
C# 
public System.string mbsData
+
C++/CLI 
public:
+System.String^ mbsData
+ +
+ + + + + +

Remarks

The mbsData member can contain the following format specifiers when mlEdmRevComponentFlags contains Edmrcf_TypeFormatString.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Specifier

+

Meaning

+

%C

+

Uppercase A, B, C...Z

+

%c

+

Lowercase a, b, c...z

+

%01d

+

Number, 0-padded to 1 digit

+

%02d

+

Number, 0-padded to 2 digits, etc.

+

%01x

+

Lowercase hex number, 0-padded to 1 digit

+

%02x

+

Lowercase hex number, 0-padded to 2 digits, etc.

+

%01X

+

Uppercase hex number, 0-padded to 1 digit

+

%02X

+

Uppercase hex number, 0-padded to 2 digits, etc.

+

%4y

+

4-digit year

+

%2y

+

2-digit year

+

%01m

+

Month number without 0 padding (1-12)

+

%02m

+

Month number, 0-padded to two digits (01-12)

+

%01D

+

Day number without 0 padding (1-31)

+

%02D

+

Day number, 0-padded to 2 digits (00-31)

+

%01H

+

Hour without 0 padding (0-23)

+

%02H

+

Hour, 0-padded to 2 digits (00-23)

+

%01M

+

Minute without 0 padding (0-59)

+

%02M

+

Minute, 0-padded to 2 digits (00-59)

+

%01S

+

Second without 0 padding (0-59)

+

%02S

+

Second, 0-padded to 2 digits (00-59)

+

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlComponentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlComponentID.html new file mode 100644 index 0000000..652dd41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlComponentID.html @@ -0,0 +1,150 @@ + + + + + + mlComponentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlComponentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mlComponentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Component ID. +

Syntax

Visual Basic 
Public mlComponentID As System.Integer
+
C# 
public System.int mlComponentID
+
C++/CLI 
public:
+System.int mlComponentID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlEdmRevComponentFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlEdmRevComponentFlags.html new file mode 100644 index 0000000..810fec4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlEdmRevComponentFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRevComponentFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRevComponentFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mlEdmRevComponentFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmRevComponentFlags flags. +

Syntax

Visual Basic 
Public mlEdmRevComponentFlags As System.Integer
+
C# 
public System.int mlEdmRevComponentFlags
+
C++/CLI 
public:
+System.int mlEdmRevComponentFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlInitialCounter.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlInitialCounter.html new file mode 100644 index 0000000..97fdad8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlInitialCounter.html @@ -0,0 +1,150 @@ + + + + + + mlInitialCounter Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlInitialCounter Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mlInitialCounter Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Initial counter value for the component. +

Syntax

Visual Basic 
Public mlInitialCounter As System.Integer
+
C# 
public System.int mlInitialCounter
+
C++/CLI 
public:
+System.int mlInitialCounter
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlRecipientID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlRecipientID.html new file mode 100644 index 0000000..fc03024 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent2~mlRecipientID.html @@ -0,0 +1,150 @@ + + + + + + mlRecipientID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRecipientID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent2 Structure + : mlRecipientID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the user or group notified by mail when the end of a revision number list is reached. +

Syntax

Visual Basic 
Public mlRecipientID As System.Integer
+
C# 
public System.int mlRecipientID
+
C++/CLI 
public:
+System.int mlRecipientID
+ +
+ + + + + +

Remarks

This member is only valid if mlEdmRevComponentFlags contains Edmrcf_EndOfListSendMail.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponentFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponentFlags.html new file mode 100644 index 0000000..9cc9089 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponentFlags.html @@ -0,0 +1,142 @@ + + + + + + EdmRevComponentFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRevComponentFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRevComponentFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used to control the members of the struct EdmRevComponent2. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmRevComponentFlags 
+   Inherits System.Enum
+
C# 
public enum EdmRevComponentFlags : System.Enum 
+
C++/CLI 
public enum class EdmRevComponentFlags : public System.Enum 
+
+

Members

+ + + + + + + +
MemberDescription
Edmrcf_EndOfListContinue4 = Continue to use the last list item when the end of the list is reached
Edmrcf_EndOfListRestart2 = Restart from the first list item when the end of the list is reached
Edmrcf_EndOfListSendMail16 = Send mail to a user or group when the end of the list is reached; the recipient ID is stored in the EdmRevcomponent2 mlRecipientID struct field
Edmrcf_EndOfListStop8 = Halt the operation when the end of the list is reached
Edmrcf_RecipientIsGroup1 = EdmRevcomponent2 mlRecipientID struct field is a group ID; this flag is only used in combination with Edmrcf_EndOflistSendMail
Edmrcf_TypeFormatString32 = Revision number is of type format string
Edmrcf_TypeList64 = Revision number is of type list
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_fields.html new file mode 100644 index 0000000..80c116c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmRevComponent Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRevComponent members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsComponentNameName of the component.  
public FieldmlComponentIDName of the component.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_members.html new file mode 100644 index 0000000..8a0c11f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent_members.html @@ -0,0 +1,162 @@ + + + + + + EdmRevComponent Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevComponent Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevComponent Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRevComponent.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsComponentNameName of the component.  
public FieldmlComponentIDName of the component.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mbsComponentName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mbsComponentName.html new file mode 100644 index 0000000..09d650c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mbsComponentName.html @@ -0,0 +1,150 @@ + + + + + + mbsComponentName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComponentName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent Structure + : mbsComponentName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the component. +

Syntax

Visual Basic 
Public mbsComponentName As System.String
+
C# 
public System.string mbsComponentName
+
C++/CLI 
public:
+System.String^ mbsComponentName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mlComponentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mlComponentID.html new file mode 100644 index 0000000..c1da404 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevComponent~mlComponentID.html @@ -0,0 +1,150 @@ + + + + + + mlComponentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlComponentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevComponent Structure + : mlComponentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the component. +

Syntax

Visual Basic 
Public mlComponentID As System.Integer
+
C# 
public System.int mlComponentID
+
C++/CLI 
public:
+System.int mlComponentID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter.html new file mode 100644 index 0000000..d392121 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter.html @@ -0,0 +1,156 @@ + + + + + + EdmRevCounter Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevCounter Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevCounter Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Used in calls to IEdmRevisionMgr::SetRevisionCounters, this structure holds information about a single counter. + +

Syntax

Visual Basic 
Public Structure EdmRevCounter 
+   Inherits System.ValueType
+
C# 
public struct EdmRevCounter : System.ValueType 
+
C++/CLI 
public value class EdmRevCounter : public System.ValueType 
+
+ + +

Example

struct EdmRevCounter{
  string mbsComponentName;
  integer mlCounter;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_fields.html new file mode 100644 index 0000000..c928576 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmRevCounter Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevCounter Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevCounter Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRevCounter members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsComponentNameName of revision number component as specified in the administration tool.  
public FieldmlCounterNew counter value for the component.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_members.html new file mode 100644 index 0000000..c90279f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter_members.html @@ -0,0 +1,162 @@ + + + + + + EdmRevCounter Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevCounter Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevCounter Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRevCounter.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsComponentNameName of revision number component as specified in the administration tool.  
public FieldmlCounterNew counter value for the component.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mbsComponentName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mbsComponentName.html new file mode 100644 index 0000000..4042d89 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mbsComponentName.html @@ -0,0 +1,150 @@ + + + + + + mbsComponentName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsComponentName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevCounter Structure + : mbsComponentName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of revision number component as specified in the administration tool. +

Syntax

Visual Basic 
Public mbsComponentName As System.String
+
C# 
public System.string mbsComponentName
+
C++/CLI 
public:
+System.String^ mbsComponentName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mlCounter.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mlCounter.html new file mode 100644 index 0000000..f6af9ee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevCounter~mlCounter.html @@ -0,0 +1,150 @@ + + + + + + mlCounter Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCounter Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevCounter Structure + : mlCounter Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + New counter value for the component. +

Syntax

Visual Basic 
Public mlCounter As System.Integer
+
C# 
public System.int mlCounter
+
C++/CLI 
public:
+System.int mlCounter
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError.html new file mode 100644 index 0000000..5a040ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError.html @@ -0,0 +1,156 @@ + + + + + + EdmRevError Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevError Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevError Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Returned from IEdmRevisionMgr::Commit if something goes wrong when incrementing the revision number on a file. + +

Syntax

Visual Basic 
Public Structure EdmRevError 
+   Inherits System.ValueType
+
C# 
public struct EdmRevError : System.ValueType 
+
C++/CLI 
public value class EdmRevError : public System.ValueType 
+
+ + +

Example

struct EdmRevError{
  integer mlFileID;
  integer mhError;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_fields.html new file mode 100644 index 0000000..31a336e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmRevError Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevError Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevError Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRevError members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmhErrorError code.  
public FieldmlFileIDID of file affected by the error.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_members.html new file mode 100644 index 0000000..1321c37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError_members.html @@ -0,0 +1,162 @@ + + + + + + EdmRevError Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevError Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevError Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRevError.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmhErrorError code.  
public FieldmlFileIDID of file affected by the error.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mhError.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mhError.html new file mode 100644 index 0000000..e6941a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mhError.html @@ -0,0 +1,150 @@ + + + + + + mhError Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhError Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevError Structure + : mhError Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Error code. +

Syntax

Visual Basic 
Public mhError As System.Integer
+
C# 
public System.int mhError
+
C++/CLI 
public:
+System.int mhError
+ +
+ + + + + +

Remarks

You can get more information about the error by calling IEdmVault5::GetErrorString.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mlFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mlFileID.html new file mode 100644 index 0000000..b16ea5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevError~mlFileID.html @@ -0,0 +1,150 @@ + + + + + + mlFileID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFileID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevError Structure + : mlFileID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of file affected by the error. +

Syntax

Visual Basic 
Public mlFileID As System.Integer
+
C# 
public System.int mlFileID
+
C++/CLI 
public:
+System.int mlFileID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo.html new file mode 100644 index 0000000..c3d5e05 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo.html @@ -0,0 +1,156 @@ + + + + + + EdmRevNo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevNo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevNo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a revision number and is returned from IEdmRevisionMgr2::GetRevisionNumbers.. + +

Syntax

Visual Basic 
Public Structure EdmRevNo 
+   Inherits System.ValueType
+
C# 
public struct EdmRevNo : System.ValueType 
+
C++/CLI 
public value class EdmRevNo : public System.ValueType 
+
+ + +

Example

struct EdmRevNo{
  integer mlRevNoID;
  string mbsRevNoName;
  string mbsData;
};

+ +
+

Example

+

Remarks

You can get the components of a revision number by calling IEdmRevisionMgr2::GetRevisionNumberComponents2 and passing a negative value to the EdmRevNo struct's mlRevNoID field as the argument.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_fields.html new file mode 100644 index 0000000..525e38a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmRevNo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevNo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevNo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmRevNo members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsDataFormat string as entered in the administration tool.  
public FieldmbsRevNoNameName of the revision number.  
public FieldmlRevNoIDID of the revision number.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_members.html new file mode 100644 index 0000000..8fa1385 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo_members.html @@ -0,0 +1,163 @@ + + + + + + EdmRevNo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmRevNo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmRevNo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmRevNo.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsDataFormat string as entered in the administration tool.  
public FieldmbsRevNoNameName of the revision number.  
public FieldmlRevNoIDID of the revision number.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsData.html new file mode 100644 index 0000000..bba77f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsData.html @@ -0,0 +1,150 @@ + + + + + + mbsData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevNo Structure + : mbsData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Format string as entered in the administration tool. +

Syntax

Visual Basic 
Public mbsData As System.String
+
C# 
public System.string mbsData
+
C++/CLI 
public:
+System.String^ mbsData
+ +
+ + + + + +

Remarks

The components are represented by escape sequences like this "%1n", "%2n"... where 1 and 2 are the database IDs of the components; i.e., the same as EdmRevComponent's mlComponentID field.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsRevNoName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsRevNoName.html new file mode 100644 index 0000000..cc0ea30 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mbsRevNoName.html @@ -0,0 +1,150 @@ + + + + + + mbsRevNoName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRevNoName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevNo Structure + : mbsRevNoName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the revision number. +

Syntax

Visual Basic 
Public mbsRevNoName As System.String
+
C# 
public System.string mbsRevNoName
+
C++/CLI 
public:
+System.String^ mbsRevNoName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mlRevNoID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mlRevNoID.html new file mode 100644 index 0000000..d2b85f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRevNo~mlRevNoID.html @@ -0,0 +1,150 @@ + + + + + + mlRevNoID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlRevNoID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmRevNo Structure + : mlRevNoID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the revision number. +

Syntax

Visual Basic 
Public mlRevNoID As System.Integer
+
C# 
public System.int mlRevNoID
+
C++/CLI 
public:
+System.int mlRevNoID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRightFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRightFlags.html new file mode 100644 index 0000000..7482691 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmRightFlags.html @@ -0,0 +1,166 @@ + + + + + + EdmRightFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRightFlags Enumeration
+ See Also   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmRightFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in calls to IEdmFolder5::HasRights and IEdmFolder5::HasRightsEx to check user rights. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmRightFlags 
+   Inherits System.Enum
+
C# 
public enum EdmRightFlags : System.Enum 
+
C++/CLI 
public enum class EdmRightFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmRight_Add8 = Permission to add files
EdmRight_AddFolder16777216 = Permission to create subfolders
EdmRight_All

-1 or 0xffffffff = Complete set of rights

+

NOTE: Do not use this constant in rights checking, because more flags might be added in the future. Instead, explicitly specify the rights bits.

EdmRight_BomActivate1024 = Activate computed BOM
EdmRight_ChangeCard65536 = Permission to change the contents of a file/folder data card
EdmRight_ColdStoreRestore524288 = Restore file from cold storage
EdmRight_Delete4 = Permission to delete files
EdmRight_DeleteFolder64 = Permission to delete subfolders
EdmRight_DestroyTrash256 = Destroy
EdmRight_EditFolderCard512 = Edit folder card data
EdmRight_EditVerFreeVarData1048576 = Edit version free variable data
EdmRight_IncrementRevision32 = Permission to increment revision on files
EdmRight_Lock2 = Permission to check out files
EdmRight_MandatoryVersionComments67108864 = Must enter revision comments
EdmRight_MaySeeComputedBOM2048 = See computed BOM
EdmRight_MoveFile2097152 = Permission to move files
EdmRight_MoveFolder8388608 = Permission to move folders
EdmRight_None0 = No rights at all; used internally
EdmRight_OverwriteLatestVersion33554432 = Overwrite latest version
EdmRight_PrivateState4194304 = Permission to make state private
EdmRight_Read1 = Permission to read files
EdmRight_RecoverTrash128 = Recover files from the recycle bin
EdmRight_Rename8 = Permission to rename files
EdmRight_RenameFolder16777216 = Permission to rename folders
EdmRight_Rollback262144 = Can run the rollback command in the history dialog box
EdmRight_SeePrivateStateFileContent536870912 = For Web2, permission to see contents of private state file
EdmRight_Share16 = Permission to share files
EdmRight_ShowWorkingVersion131072 = Permission to see working versions, not just revisions
+ + + +

Example

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSearchToken.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSearchToken.html new file mode 100644 index 0000000..e1ef57f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSearchToken.html @@ -0,0 +1,176 @@ + + + + + + EdmSearchToken Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmSearchToken Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmSearchToken Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Values that determine which search criteria to set. +

Syntax

Visual Basic 
Public Enum EdmSearchToken 
+   Inherits System.Enum
+
C# 
public enum EdmSearchToken : System.Enum 
+
C++/CLI 
public enum class EdmSearchToken : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
Edmstok_AllVersions2 = VT_BOOL; search all versions of a file
Edmstok_ContentText36 = VT_BSTR; search for this string in the file body itself; this requires that the indexing service has been enabled in the administration tool
Edmstok_ContentTextExact40 = VT_BOOL; find only exact matches of the content string, not individual words
Edmstok_ContentTextInBody37 = VT_BOOL; do content search in the file body
Edmstok_ContentTextInProperties38 = VT_BOOL; do content search in the file custom properties
Edmstok_ContentTextOr39 = VT_BOOL; search for any words, instead of all of the words, in the content search string
Edmstok_FindFiles31 = VT_BOOL; return files in the result
Edmstok_FindFolders32 = VT_BOOL; return folders in the result
Edmstok_FindItems41 = VT_BOOL; return items in the search result
Edmstok_FolderID5 = VT_I4; ID of folder to start the search in
Edmstok_HistoryAfter34 = VT_DATE; search history after this date
Edmstok_HistoryBefore33 = VT_DATE; search history before this date
Edmstok_HistoryString25 = VT_BSTR; search for string in file history
Edmstok_HistoryStringConfiguration43 = VT_BOOL; search for keyword among configuration names
Edmstok_HistoryStringFileName42 = VT_BOOL; search for keyword among file names
Edmstok_HistoryStringLabels27 = VT_BOOL; search labels for the history string
Edmstok_HistoryStringRevisionComment29 = VT_BOOL; search revisions comments for the history string
Edmstok_HistoryStringStateComment28 = VT_BOOL; search workflow state change comments for the history string
Edmstok_HistoryStringVariableValues30 = VT_BOOL; search variable values for the history string
Edmstok_HistoryStringVersionComment26 = VT_BOOL; search version comments for the history string
Edmstok_Label20 = VT_BSTR; search for this string in labels
Edmstok_LabelAfter24 = VT_DATE; search for labels set after this date
Edmstok_LabelBefore23 = VT_DATE; search for labels set before this date
Edmstok_LabelByUser22 = VT_BSTR; search for files where a user with this name created a label
Edmstok_LabelComment21 = VT_BOOL; search for the label string in the comment
Edmstok_Locked6 = VT_BOOL; return checked out files?
Edmstok_LockedBy8 = VT_BSTR; search for files checked out by users with this name
Edmstok_Name3 = VT_BSTR; name of file or folder for which to search
Edmstok_Recursive1 = VT_BOOL; search subfolders recursively
Edmstok_StateAfter19 = VT_DATE; only find files where a state change was made after this date
Edmstok_StateBefore18 = VT_DATE; only find files where a state change was made before this date
Edmstok_StateByUser17 = VT_BSTR; find files where a user with this name has changed workflow state
Edmstok_StateHistoric16 = VT_BOOL; search in historic states, not just the latest state
Edmstok_StateID15 = VT_I4; only find files in the workflow state with this ID
Edmstok_StateName14 = VT_BSTR; only find files in workflow states with this name
Edmstok_Unlocked7 = VT_BOOL; return checked in files?
Edmstok_VersionComment10 = VT_BSTR; search for files with this version comment 
Edmstok_VersionsAfter13 = VT_DATE; only find files that have been checked in after this date
Edmstok_VersionsBefore12 = VT_DATE; only find files that have been checked in before this date
Edmstok_VersionsByUser11 = VT-BSTR; only find files that have been checked in by a user with this name
Edmstok_WorkflowName35 = VT_BSTR; search for files part of this workflow
+ + + + +

Remarks

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem.html new file mode 100644 index 0000000..889469e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem.html @@ -0,0 +1,160 @@ + + + + + + EdmSelItem Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about one selected file; e.g., used with IEdmBatchUnlock::AddSelection. + +

Syntax

Visual Basic 
Public Structure EdmSelItem 
+   Inherits System.ValueType
+
C# 
public struct EdmSelItem : System.ValueType 
+
C++/CLI 
public value class EdmSelItem : public System.ValueType 
+
+ + +

Example

struct EdmSelItem

{
  integer mlDocID;
  integer mlProjID;
};
+ +
+

Example

+ + + + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2.html new file mode 100644 index 0000000..3fd0b9f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2.html @@ -0,0 +1,164 @@ + + + + + + EdmSelItem2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a selected item. + +

Syntax

Visual Basic 
Public Structure EdmSelItem2 
+   Inherits System.ValueType
+
C# 
public struct EdmSelItem2 : System.ValueType 
+
C++/CLI 
public value class EdmSelItem2 : public System.ValueType 
+
+ + +

Example

struct EdmSelItem2

+

{
    EdmObjectType meType;

+

    integer mlID;
    integer mlParentID;
    integer mlVersion;
};

+ +
+

Example

+

Remarks

Used by:

+ +

 

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_fields.html new file mode 100644 index 0000000..6ca00ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmSelItem2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmSelItem2 members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmeTypeType of object.  
public FieldmlIDDatabase ID of the selected object.  
public FieldmlParentIDObject's parent folder ID.  
public FieldmlVersionObject's version number.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_members.html new file mode 100644 index 0000000..041d988 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2_members.html @@ -0,0 +1,164 @@ + + + + + + EdmSelItem2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmSelItem2.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmeTypeType of object.  
public FieldmlIDDatabase ID of the selected object.  
public FieldmlParentIDObject's parent folder ID.  
public FieldmlVersionObject's version number.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~meType.html new file mode 100644 index 0000000..37e43fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem2 Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of object. +

Syntax

Visual Basic 
Public meType As EdmObjectType
+
C# 
public EdmObjectType meType
+
C++/CLI 
public:
+EdmObjectType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlID.html new file mode 100644 index 0000000..fbd4041 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlID.html @@ -0,0 +1,150 @@ + + + + + + mlID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem2 Structure + : mlID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Database ID of the selected object. +

Syntax

Visual Basic 
Public mlID As System.Integer
+
C# 
public System.int mlID
+
C++/CLI 
public:
+System.int mlID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlParentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlParentID.html new file mode 100644 index 0000000..37c65a8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlParentID.html @@ -0,0 +1,150 @@ + + + + + + mlParentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem2 Structure + : mlParentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object's parent folder ID. +

Syntax

Visual Basic 
Public mlParentID As System.Integer
+
C# 
public System.int mlParentID
+
C++/CLI 
public:
+System.int mlParentID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlVersion.html new file mode 100644 index 0000000..6cd6993 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem2~mlVersion.html @@ -0,0 +1,150 @@ + + + + + + mlVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem2 Structure + : mlVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object's version number. +

Syntax

Visual Basic 
Public mlVersion As System.Integer
+
C# 
public System.int mlVersion
+
C++/CLI 
public:
+System.int mlVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_fields.html new file mode 100644 index 0000000..f84b4d3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmSelItem Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmSelItem members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmlDocIDUnique ID of the file.  
public FieldmlProjIDUnique ID of the folder.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_members.html new file mode 100644 index 0000000..f08337b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem_members.html @@ -0,0 +1,162 @@ + + + + + + EdmSelItem Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelItem Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelItem Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmSelItem.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmlDocIDUnique ID of the file.  
public FieldmlProjIDUnique ID of the folder.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlDocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlDocID.html new file mode 100644 index 0000000..a93c19b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlDocID.html @@ -0,0 +1,150 @@ + + + + + + mlDocID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlDocID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem Structure + : mlDocID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the file. +

Syntax

Visual Basic 
Public mlDocID As System.Integer
+
C# 
public System.int mlDocID
+
C++/CLI 
public:
+System.int mlDocID
+ +
+ + +

Example

See the EdmSelItem examples. +
+ +

Remarks

ID can be retrieved from IEdmObject5::ID. You can set this argument to 0 to add all the files in the specified folder.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlProjID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlProjID.html new file mode 100644 index 0000000..626db3e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelItem~mlProjID.html @@ -0,0 +1,150 @@ + + + + + + mlProjID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlProjID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelItem Structure + : mlProjID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the folder. +

Syntax

Visual Basic 
Public mlProjID As System.Integer
+
C# 
public System.int mlProjID
+
C++/CLI 
public:
+System.int mlProjID
+ +
+ + +

Example

See the EdmSelItem examples. +
+ +

Remarks

The ID can be retrieved from IEdmObject5::ID.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject.html new file mode 100644 index 0000000..fdddaa9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject.html @@ -0,0 +1,156 @@ + + + + + + EdmSelectionObject Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelectionObject Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelectionObject Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains data returned from IEdmSelectionList6::GetNext2. + +

Syntax

Visual Basic 
Public Structure EdmSelectionObject 
+   Inherits System.ValueType
+
C# 
public struct EdmSelectionObject : System.ValueType 
+
C++/CLI 
public value class EdmSelectionObject : public System.ValueType 
+
+ + +

Example

struct EdmSelectionObject{
  EdmObjectType meType;
  string mbsPath;
  integer mlID;
  integer mlProjectID;
  integer mlGetVersion;
  integer mlLocalVersion;
  integer mlLatestVersion;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_fields.html new file mode 100644 index 0000000..02258a8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_fields.html @@ -0,0 +1,140 @@ + + + + + + EdmSelectionObject Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelectionObject Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelectionObject Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmSelectionObject members.

+ + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsPathObject's path.  
public FieldmeTypeObject type.  
public FieldmlGetVersionVersion to get.  
public FieldmlIDObject's database ID.  
public FieldmlLatestVersionLatest version.  
public FieldmlLocalVersionLocal version.  
public FieldmlProjectIDObject's parent folder ID.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_members.html new file mode 100644 index 0000000..e5bb600 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject_members.html @@ -0,0 +1,167 @@ + + + + + + EdmSelectionObject Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSelectionObject Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSelectionObject Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmSelectionObject.

+ + + + + + + +

Public Fields

+ + + + + + + +
 NameDescription
public FieldmbsPathObject's path.  
public FieldmeTypeObject type.  
public FieldmlGetVersionVersion to get.  
public FieldmlIDObject's database ID.  
public FieldmlLatestVersionLatest version.  
public FieldmlLocalVersionLocal version.  
public FieldmlProjectIDObject's parent folder ID.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mbsPath.html new file mode 100644 index 0000000..9157f78 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mbsPath.html @@ -0,0 +1,150 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object's path. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~meType.html new file mode 100644 index 0000000..3767b80 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object type. +

Syntax

Visual Basic 
Public meType As EdmObjectType
+
C# 
public EdmObjectType meType
+
C++/CLI 
public:
+EdmObjectType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlGetVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlGetVersion.html new file mode 100644 index 0000000..be639f4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlGetVersion.html @@ -0,0 +1,150 @@ + + + + + + mlGetVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlGetVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mlGetVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version to get. +

Syntax

Visual Basic 
Public mlGetVersion As System.Integer
+
C# 
public System.int mlGetVersion
+
C++/CLI 
public:
+System.int mlGetVersion
+ +
+ + + + + +

Remarks

Valid if retrieved from tree created by EdmUtility.EdmUtil_BatchGet.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlID.html new file mode 100644 index 0000000..0d2b08f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlID.html @@ -0,0 +1,150 @@ + + + + + + mlID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mlID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object's database ID. +

Syntax

Visual Basic 
Public mlID As System.Integer
+
C# 
public System.int mlID
+
C++/CLI 
public:
+System.int mlID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLatestVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLatestVersion.html new file mode 100644 index 0000000..0c07f2e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLatestVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLatestVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLatestVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mlLatestVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Latest version. +

Syntax

Visual Basic 
Public mlLatestVersion As System.Integer
+
C# 
public System.int mlLatestVersion
+
C++/CLI 
public:
+System.int mlLatestVersion
+ +
+ + + + + +

Remarks

Valid if retrieved from tree created by EdmUtility.EdmUtil_BatchGet.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLocalVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLocalVersion.html new file mode 100644 index 0000000..b0f4ae2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlLocalVersion.html @@ -0,0 +1,150 @@ + + + + + + mlLocalVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlLocalVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mlLocalVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Local version. +

Syntax

Visual Basic 
Public mlLocalVersion As System.Integer
+
C# 
public System.int mlLocalVersion
+
C++/CLI 
public:
+System.int mlLocalVersion
+ +
+ + + + + +

Remarks

Valid if retrieved from tree created by EdmUtility.EdmUtil_BatchGet.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlProjectID.html new file mode 100644 index 0000000..d73c2ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSelectionObject~mlProjectID.html @@ -0,0 +1,150 @@ + + + + + + mlProjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlProjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSelectionObject Structure + : mlProjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Object's parent folder ID. +

Syntax

Visual Basic 
Public mlProjectID As System.Integer
+
C# 
public System.int mlProjectID
+
C++/CLI 
public:
+System.int mlProjectID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo.html new file mode 100644 index 0000000..7ea0239 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo.html @@ -0,0 +1,155 @@ + + + + + + EdmSimpleXRefInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSimpleXRefInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSimpleXRefInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains cross-reference information. + +

Syntax

Visual Basic 
Public Structure EdmSimpleXRefInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmSimpleXRefInfo : System.ValueType 
+
C++/CLI 
public value class EdmSimpleXRefInfo : public System.ValueType 
+
+ + +

Example

struct EdmSimpleXRefInfo

+

{
    long VersionNo;
    long XRefDocumentID;
    long XRefProjectID;
    long XRefVersionNo;
};

+ +
+ + + + + +

See Also

+ +
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_fields.html new file mode 100644 index 0000000..ecdc11b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmSimpleXRefInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSimpleXRefInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSimpleXRefInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmSimpleXRefInfo members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldVersionNoVersion number.  
public FieldXRefDocumentIDDocument ID.  
public FieldXRefProjectIDParent folder ID.  
public FieldXRefVersionNoCross-reference version number.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_members.html new file mode 100644 index 0000000..a5eeaf3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo_members.html @@ -0,0 +1,164 @@ + + + + + + EdmSimpleXRefInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmSimpleXRefInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmSimpleXRefInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmSimpleXRefInfo.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldVersionNoVersion number.  
public FieldXRefDocumentIDDocument ID.  
public FieldXRefProjectIDParent folder ID.  
public FieldXRefVersionNoCross-reference version number.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~VersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~VersionNo.html new file mode 100644 index 0000000..0721649 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~VersionNo.html @@ -0,0 +1,150 @@ + + + + + + VersionNo Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + VersionNo Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSimpleXRefInfo Structure + : VersionNo Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Version number. +

Syntax

Visual Basic 
Public VersionNo As System.Integer
+
C# 
public System.int VersionNo
+
C++/CLI 
public:
+System.int VersionNo
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefDocumentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefDocumentID.html new file mode 100644 index 0000000..41c9131 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefDocumentID.html @@ -0,0 +1,150 @@ + + + + + + XRefDocumentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + XRefDocumentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSimpleXRefInfo Structure + : XRefDocumentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Document ID. +

Syntax

Visual Basic 
Public XRefDocumentID As System.Integer
+
C# 
public System.int XRefDocumentID
+
C++/CLI 
public:
+System.int XRefDocumentID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefProjectID.html new file mode 100644 index 0000000..df1f3ec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefProjectID.html @@ -0,0 +1,150 @@ + + + + + + XRefProjectID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + XRefProjectID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSimpleXRefInfo Structure + : XRefProjectID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Parent folder ID. +

Syntax

Visual Basic 
Public XRefProjectID As System.Integer
+
C# 
public System.int XRefProjectID
+
C++/CLI 
public:
+System.int XRefProjectID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefVersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefVersionNo.html new file mode 100644 index 0000000..b9fc73d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSimpleXRefInfo~XRefVersionNo.html @@ -0,0 +1,150 @@ + + + + + + XRefVersionNo Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + XRefVersionNo Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmSimpleXRefInfo Structure + : XRefVersionNo Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Cross-reference version number. +

Syntax

Visual Basic 
Public XRefVersionNo As System.Integer
+
C# 
public System.int XRefVersionNo
+
C++/CLI 
public:
+System.int XRefVersionNo
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStateFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStateFlags.html new file mode 100644 index 0000000..18e0b50 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStateFlags.html @@ -0,0 +1,137 @@ + + + + + + EdmStateFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmStateFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmStateFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in calls to IEdmFile5::ChangeState to set options for the operation. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmStateFlags 
+   Inherits System.Enum
+
C# 
public enum EdmStateFlags : System.Enum 
+
C++/CLI 
public enum class EdmStateFlags : public System.Enum 
+
+

Members

+ + +
MemberDescription
EdmState_Refs1 = Include references when changing state
EdmState_Simple0 = Default behavior of the operation
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission.html new file mode 100644 index 0000000..cd506a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission.html @@ -0,0 +1,154 @@ + + + + + + EdmStatePermission Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmStatePermission Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmStatePermission Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains state permission information. + +

Syntax

Visual Basic 
Public Structure EdmStatePermission 
+   Inherits System.ValueType
+
C# 
public struct EdmStatePermission : System.ValueType 
+
C++/CLI 
public value class EdmStatePermission : public System.ValueType 
+
+ + +

Example

struct EdmStatePermission
{
  enum EdmObjectType meOwnerType;
 
integer mlOwnerID;
  integer mlStateID;
 
integer mlEdmRightFlag;

};

+ +
+ +

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_fields.html new file mode 100644 index 0000000..e6934d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmStatePermission Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmStatePermission Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmStatePermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmStatePermission members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeType of mlOwnerID.  
public FieldmlEdmRightFlagState rights.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
public FieldmlStateIDID of the state to which these permissions apply.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_members.html new file mode 100644 index 0000000..f1e2830 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission_members.html @@ -0,0 +1,164 @@ + + + + + + EdmStatePermission Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmStatePermission Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmStatePermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmStatePermission.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeType of mlOwnerID.  
public FieldmlEdmRightFlagState rights.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
public FieldmlStateIDID of the state to which these permissions apply.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~meOwnerType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~meOwnerType.html new file mode 100644 index 0000000..e642038 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~meOwnerType.html @@ -0,0 +1,150 @@ + + + + + + meOwnerType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meOwnerType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmStatePermission Structure + : meOwnerType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of mlOwnerID. +

Syntax

Visual Basic 
Public meOwnerType As EdmObjectType
+
C# 
public EdmObjectType meOwnerType
+
C++/CLI 
public:
+EdmObjectType meOwnerType
+ +

Field Value

EdmObjectType.EdmObject_User or EdmObjectType.EdmObject_UserGroup
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlEdmRightFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlEdmRightFlag.html new file mode 100644 index 0000000..d3bb45e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlEdmRightFlag.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRightFlag Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRightFlag Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmStatePermission Structure + : mlEdmRightFlag Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + State rights. +

Syntax

Visual Basic 
Public mlEdmRightFlag As System.Integer
+
C# 
public System.int mlEdmRightFlag
+
C++/CLI 
public:
+System.int mlEdmRightFlag
+ +

Field Value

Combination of EdmRightFlags bits
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlOwnerID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlOwnerID.html new file mode 100644 index 0000000..f9eb599 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlOwnerID.html @@ -0,0 +1,150 @@ + + + + + + mlOwnerID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlOwnerID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmStatePermission Structure + : mlOwnerID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of meOwnerType for whom to assign permissions. +

Syntax

Visual Basic 
Public mlOwnerID As System.Integer
+
C# 
public System.int mlOwnerID
+
C++/CLI 
public:
+System.int mlOwnerID
+ +

Field Value

Owner ID
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlStateID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlStateID.html new file mode 100644 index 0000000..b777816 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmStatePermission~mlStateID.html @@ -0,0 +1,150 @@ + + + + + + mlStateID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlStateID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmStatePermission Structure + : mlStateID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the state to which these permissions apply. +

Syntax

Visual Basic 
Public mlStateID As System.Integer
+
C# 
public System.int mlStateID
+
C++/CLI 
public:
+System.int mlStateID
+ +

Field Value

State ID
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysPerm.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysPerm.html new file mode 100644 index 0000000..8450c31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysPerm.html @@ -0,0 +1,182 @@ + + + + + + EdmSysPerm Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmSysPerm Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmSysPerm Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of system permissions for a user or group. +

Syntax

Visual Basic 
Public Enum EdmSysPerm 
+   Inherits System.Enum
+
C# 
public enum EdmSysPerm : System.Enum 
+
C++/CLI 
public enum class EdmSysPerm : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmSysPerm_AcceptTasks1026 = May accept tasks to execute on a host
EdmSysPerm_CanAddCustomColsInFileDetails1032 = May add custom columns in File details
EdmSysPerm_CanAddCustomColsInFileOperations1033 = May add custom columns in File operations
EdmSysPerm_CanAddDelLabels2048 = May add and delete labels
EdmSysPerm_CanDeleteLabels1029 = May delete labels
EdmSysPerm_CanPurgeHistory1024 = May purge history listings
EdmSysPerm_CanSetLabels1030 = May set labels
EdmSysPerm_CantIgnoreWarnings4096 = Cannot click OK in the Check-in, Check-out, Get, etc., dialog boxes if there are any warnings in them
EdmSysPerm_CanUndoCheckOutAndCheckInForOthers

1028 =

+
    +
  1. May check in a file checked out to a different user in the same vault view +
  2. May undo checkouts of files that are checked out to a different user in the same or different vault view +
  3. Default permission for the Admin user in a new or upgraded 2018 vault +
  4. Applicable to all users/groups
EdmSysPerm_CanUpdateHistoryComments1031 = May delete history comments
EdmSysPerm_CanViewTask1034 = may view task list
EdmSysPerm_EditAddins4 = May install or uninstall add-ins
EdmSysPerm_EditReportQuery512 = May modify report queries
EdmSysPerm_EditSharedSearchQuery64 = May update shared search favorites
EdmSysPerm_EditTemplates256 = May update templates
EdmSysPerm_EditUserMgr1 = May update user and group properties
EdmSysPerm_EditWorkflow2 = May edit workflows
EdmSysPerm_ExportWebFolder128 = May export file vault folders to the internet
EdmSysPerm_MandatoryMailLogin32 = Must enter password before sending email
EdmSysPerm_MandatoryStateComments16 = Must enter change state comments
EdmSysPerm_MandatoryVersionComments8 = Must enter version comments
EdmSysPerm_MaySeeAdminTool67108864 = May see the Administration tool menu command item in File Explorer
EdmSysPerm_ModifyCardLists131072 = May update definitions of lists used in cards
EdmSysPerm_ModifyCategories8192 = May update category definitions
EdmSysPerm_ModifyColdStore268435456 = May update the cold storage settings
EdmSysPerm_ModifyColumns65536 = May update column definitions, including BOM definitions
EdmSysPerm_ModifyERPCfg1073741824 = May update XML Import and Export settings
EdmSysPerm_ModifyIndexing536870912 = May update the indexing settings
EdmSysPerm_ModifyItemNoGen2097152 = May administrate items
EdmSysPerm_ModifyLicenseKey524288 = May enter a new license key
EdmSysPerm_ModifyMailCfg1048576 = May update the notification settings
EdmSysPerm_ModifyReplication4194304 = May update vault replication settings
EdmSysPerm_ModifyRevisionNumbers32768 = May update the definition of revision numbers
EdmSysPerm_ModifySearchForms16777216 = May save search cards with the card editor
EdmSysPerm_ModifySerialNumbers262144 = May update serial number generators
EdmSysPerm_ModifyTasks1025 = May manage task definitions in the Administration tool
EdmSysPerm_ModifyTemplateForms33554432 = May save template cards with the card editor
EdmSysPerm_ModifyToolbox1027 = May update Toolbox Library settings in the Administration tool
EdmSysPerm_ModifyVariables16384 = May update variable definitions
EdmSysPerm_None0 = No rights at all
EdmSysPerm_RefuseLogin134217728 = Block the user from logging in
+ + + + +

Remarks

This enumeration was added in SOLIDWORKS PDM Professional 2010 and supersedes the EdmSysRightFlags enumeration.

+

Always use the IEdmUser7::HasSysRightEx and IEdmUserGroup6::HasSysRightEx methods instead of the obsoleted IEdmUser5::HasSysRight and IEdmUserGroup5::HasSysRight methods when writing code for SOLIDWORKS PDM Professional 2010 and later.

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysRightFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysRightFlags.html new file mode 100644 index 0000000..1ec5e83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmSysRightFlags.html @@ -0,0 +1,166 @@ + + + + + + EdmSysRightFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmSysRightFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmSysRightFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by EdmSysPerm. +

Syntax

Visual Basic 
Public Enum EdmSysRightFlags 
+   Inherits System.Enum
+
C# 
public enum EdmSysRightFlags : System.Enum 
+
C++/CLI 
public enum class EdmSysRightFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmSysRight_CanAddDelLabels2048 = May add and delete labels
EdmSysRight_CanPurgeHistory1024 = May delete the contents of history listings
EdmSysRight_CantIgnoreWarnings4096 = May not click OK in the check in, check out, Get, etc. dialog boxes if there are warnings in them
EdmSysRight_EditAddins4 = May install or uninstall add-ins
EdmSysRight_EditReportQuery512 = May use the Report Generator
EdmSysRight_EditSharedSearchQuery64 = May update shared search favorites
EdmSysRight_EditTemplates256 = May run the Template Manager
EdmSysRight_EditUserMgr1 = May run the User Manager
EdmSysRight_EditWorkflow2 = May run the Workflow Editor
EdmSysRight_ExportWebFolder128 = May export file vault folders to the internet
EdmSysRight_MandatoryMailLogin32 = Must enter password before sending email
EdmSysRight_MandatoryStateComments16 = Must enter change state comments
EdmSysRight_MandatoryVersionComments8 = Must enter version comments
EdmSysRight_MaySeeAdminTool67108864 = May see the Administration tool in the Tools menu in the File Explorer
EdmSysRight_ModifyCardLists131072 = May update lists used in cards
EdmSysRight_ModifyCategories8192 = May update category definitions in the SOLIDWORKS PDM Professional Administration tool
EdmSysRight_ModifyColdStore268435456 = May update the cold storage settings
EdmSysRight_ModifyColumns65536 = May update column definitions
EdmSysRight_ModifyERPCfg1073741824 = May update ERP import/export settings
EdmSysRight_ModifyIndexing536870912 = May update indexing settings
EdmSysRight_ModifyItemNoGen2097152 = May update item settings
EdmSysRight_ModifyLicenseKey524288 = May enter a new license key
EdmSysRight_ModifyMailCfg1048576 = May update the notification settings
EdmSysRight_ModifyReplication4194304 = May update replication settings
EdmSysRight_ModifyRevisionNumbers32768 = May update the definition of revision numbers
EdmSysRight_ModifySearchForms16777216 = May update search forms
EdmSysRight_ModifySerialNumbers262144 = May update serial number generators 
EdmSysRight_ModifyTemplateForms33554432 = May update template input forms
EdmSysRight_ModifyVariables16384 = May update variable definitions
EdmSysRight_None0 = No permissions
EdmSysRight_RefuseLogin134217728 = Block the user from logging in
+ + + + +

Remarks

Flags that indicate which SOLIDWORKS PDM Professional permissions a user has, etc. Bitmask.

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskFlag.html new file mode 100644 index 0000000..9b1c0f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskFlag.html @@ -0,0 +1,142 @@ + + + + + + EdmTaskFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmTaskFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmTaskFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Task add-in flags used in IEdmTaskProperties::TaskFlags and EdmTaskInfo. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmTaskFlag 
+   Inherits System.Enum
+
C# 
public enum EdmTaskFlag : System.Enum 
+
C++/CLI 
public enum class EdmTaskFlag : public System.Enum 
+
+

Members

+ + + + + + +
MemberDescription
EdmTask_Nothing0 = None of the other flags
EdmTask_SupportsChangeState

16 = Task can be launched via a workflow, state, change command

EdmTask_SupportsDetails4 = Add-in extends the task details dialog box in the task list window in the Administration tool; the add-in will receive a call to its IEdmAddIn5::OnCmd method with the argument EdmCmdType.EdmCmd_TaskDetails when the dialog box is to be extended
EdmTask_SupportsInitExec2 = Add-in wants to have its IEdmAddIn5::OnCmd method called when the user launches the task; this callback type (EdmCmdType.EdmCmd_TaskLaunch) can be used to provide a more sophisticated user interface than one created with the card editor; if this flag is included, then multiple files will be processed by a single task instance; otherwise, each file will be processed by a separate task instance
EdmTask_SupportsInitForm1 = Add-in supports displaying of a card created with the card editor; the card is used as the user interface when the task is launched, and the values of the card are accessible to the task add-in when it is executed
EdmTask_SupportsScheduling8 = Task can be scheduled
+ + + + +

Remarks

The flags indicate what a task add-in is capable of doing.

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo.html new file mode 100644 index 0000000..6d43366 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo.html @@ -0,0 +1,155 @@ + + + + + + EdmTaskInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Used by IEdmTaskMgr::RunTask. + +

Syntax

Visual Basic 
Public Structure EdmTaskInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmTaskInfo : System.ValueType 
+
C++/CLI 
public value class EdmTaskInfo : public System.ValueType 
+
+ + +

Example

struct EdmTaskInfo{
  string mbsTaskName;
  long mllShortTaskInfoFlags;
  integer mlTaskID;
};

+ +
+ + + + + +

See Also

+ +
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_fields.html new file mode 100644 index 0000000..7dfba51 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmTaskInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmTaskInfo members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsTaskNameTask add-in name.  
public FieldmllShortTaskInfoFlagsCombination of EdmTaskFlags flags.  
public FieldmlTaskIDTask add-in ID.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_members.html new file mode 100644 index 0000000..33f4229 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo_members.html @@ -0,0 +1,164 @@ + + + + + + EdmTaskInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmTaskInfo.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsTaskNameTask add-in name.  
public FieldmllShortTaskInfoFlagsCombination of EdmTaskFlags flags.  
public FieldmlTaskIDTask add-in ID.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mbsTaskName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mbsTaskName.html new file mode 100644 index 0000000..7567d0c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mbsTaskName.html @@ -0,0 +1,150 @@ + + + + + + mbsTaskName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsTaskName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskInfo Structure + : mbsTaskName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Task add-in name. +

Syntax

Visual Basic 
Public mbsTaskName As System.String
+
C# 
public System.string mbsTaskName
+
C++/CLI 
public:
+System.String^ mbsTaskName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mlTaskID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mlTaskID.html new file mode 100644 index 0000000..b7bca36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mlTaskID.html @@ -0,0 +1,150 @@ + + + + + + mlTaskID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlTaskID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskInfo Structure + : mlTaskID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Task add-in ID. +

Syntax

Visual Basic 
Public mlTaskID As System.Integer
+
C# 
public System.int mlTaskID
+
C++/CLI 
public:
+System.int mlTaskID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mllShortTaskInfoFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mllShortTaskInfoFlags.html new file mode 100644 index 0000000..f0b49ff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskInfo~mllShortTaskInfoFlags.html @@ -0,0 +1,150 @@ + + + + + + mllShortTaskInfoFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mllShortTaskInfoFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskInfo Structure + : mllShortTaskInfoFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmTaskFlags flags. +

Syntax

Visual Basic 
Public mllShortTaskInfoFlags As System.Long
+
C# 
public System.long mllShortTaskInfoFlags
+
C++/CLI 
public:
+System.int64 mllShortTaskInfoFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd.html new file mode 100644 index 0000000..d13604b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd.html @@ -0,0 +1,157 @@ + + + + + + EdmTaskMenuCmd Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskMenuCmd Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskMenuCmd Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Used by IEdmTaskProperties::SetMenuCmds when an add-in adds menu commands to launch a task. + +

Syntax

Visual Basic 
Public Structure EdmTaskMenuCmd 
+   Inherits System.ValueType
+
C# 
public struct EdmTaskMenuCmd : System.ValueType 
+
C++/CLI 
public value class EdmTaskMenuCmd : public System.ValueType 
+
+ + +

Example

struct EdmTaskMenuCmd{
  integer mlCmdID

  string mbsMenuString;
  integer mlEdmMenuFlags;
  string mbsStatusBarHelp;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_fields.html new file mode 100644 index 0000000..85ef9d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmTaskMenuCmd Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskMenuCmd Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskMenuCmd Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmTaskMenuCmd members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsMenuStringString to show in the menu.  
public FieldmbsStatusBarHelpHelp string to show in the File Explorer status bar when the menu command is selected.  
public FieldmlCmdIDAdd-in defined ID of the command.  
public FieldmlEdmMenuFlagsCombination of EdmMenuFlags flags.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_members.html new file mode 100644 index 0000000..c1ca492 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd_members.html @@ -0,0 +1,165 @@ + + + + + + EdmTaskMenuCmd Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskMenuCmd Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskMenuCmd Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmTaskMenuCmd.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsMenuStringString to show in the menu.  
public FieldmbsStatusBarHelpHelp string to show in the File Explorer status bar when the menu command is selected.  
public FieldmlCmdIDAdd-in defined ID of the command.  
public FieldmlEdmMenuFlagsCombination of EdmMenuFlags flags.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsMenuString.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsMenuString.html new file mode 100644 index 0000000..b5824fb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsMenuString.html @@ -0,0 +1,150 @@ + + + + + + mbsMenuString Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsMenuString Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskMenuCmd Structure + : mbsMenuString Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + String to show in the menu. +

Syntax

Visual Basic 
Public mbsMenuString As System.String
+
C# 
public System.string mbsMenuString
+
C++/CLI 
public:
+System.String^ mbsMenuString
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsStatusBarHelp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsStatusBarHelp.html new file mode 100644 index 0000000..d3718f0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mbsStatusBarHelp.html @@ -0,0 +1,150 @@ + + + + + + mbsStatusBarHelp Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStatusBarHelp Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskMenuCmd Structure + : mbsStatusBarHelp Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Help string to show in the File Explorer status bar when the menu command is selected. +

Syntax

Visual Basic 
Public mbsStatusBarHelp As System.String
+
C# 
public System.string mbsStatusBarHelp
+
C++/CLI 
public:
+System.String^ mbsStatusBarHelp
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlCmdID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlCmdID.html new file mode 100644 index 0000000..1fdc7c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlCmdID.html @@ -0,0 +1,150 @@ + + + + + + mlCmdID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlCmdID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskMenuCmd Structure + : mlCmdID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Add-in defined ID of the command. +

Syntax

Visual Basic 
Public mlCmdID As System.Integer
+
C# 
public System.int mlCmdID
+
C++/CLI 
public:
+System.int mlCmdID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlEdmMenuFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlEdmMenuFlags.html new file mode 100644 index 0000000..3eb1850 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskMenuCmd~mlEdmMenuFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmMenuFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmMenuFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskMenuCmd Structure + : mlEdmMenuFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmMenuFlags flags. +

Syntax

Visual Basic 
Public mlEdmMenuFlags As System.Integer
+
C# 
public System.int mlEdmMenuFlags
+
C++/CLI 
public:
+System.int mlEdmMenuFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel.html new file mode 100644 index 0000000..f57c5bd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel.html @@ -0,0 +1,155 @@ + + + + + + EdmTaskSel Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSel Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSel Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Passed as argument to IEdmTaskProperties::SetSel. + +

Syntax

Visual Basic 
Public Structure EdmTaskSel 
+   Inherits System.ValueType
+
C# 
public struct EdmTaskSel : System.ValueType 
+
C++/CLI 
public value class EdmTaskSel : public System.ValueType 
+
+ + +

Example

struct EdmTaskSel{
  EdmObjectType meType;
  integer mlID;
  integer mlParentID;
  integer mlVersion;
  string mbsConfiguration;
};

+ +
+ +

Remarks

The struct contains a selected item that should be processed by the task.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_fields.html new file mode 100644 index 0000000..17d32b6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_fields.html @@ -0,0 +1,139 @@ + + + + + + EdmTaskSel Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSel Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSel Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmTaskSel members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsConfigurationOptional configuration name. Empty for folders and file types not supporting configurations.  
public FieldmeTypeType of object (EdmObjectType.EdmObject_File or EdmObjectType.EdmObject_Folder).  
public FieldmlIDDatabase ID of file or folder.  
public FieldmlParentIDParent folder ID for files; 0 for folders.  
public FieldmlVersionFile version; 0 for folders.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_members.html new file mode 100644 index 0000000..00c869e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel_members.html @@ -0,0 +1,166 @@ + + + + + + EdmTaskSel Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSel Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSel Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmTaskSel.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsConfigurationOptional configuration name. Empty for folders and file types not supporting configurations.  
public FieldmeTypeType of object (EdmObjectType.EdmObject_File or EdmObjectType.EdmObject_Folder).  
public FieldmlIDDatabase ID of file or folder.  
public FieldmlParentIDParent folder ID for files; 0 for folders.  
public FieldmlVersionFile version; 0 for folders.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mbsConfiguration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mbsConfiguration.html new file mode 100644 index 0000000..34ef446 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mbsConfiguration.html @@ -0,0 +1,150 @@ + + + + + + mbsConfiguration Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsConfiguration Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSel Structure + : mbsConfiguration Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Optional configuration name. Empty for folders and file types not supporting configurations. +

Syntax

Visual Basic 
Public mbsConfiguration As System.String
+
C# 
public System.string mbsConfiguration
+
C++/CLI 
public:
+System.String^ mbsConfiguration
+ +
+ + + + + +

Remarks

This field is empty for folders and file types not supporting configurations.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~meType.html new file mode 100644 index 0000000..74ef4a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSel Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of object (EdmObjectType.EdmObject_File or EdmObjectType.EdmObject_Folder). +

Syntax

Visual Basic 
Public meType As EdmObjectType
+
C# 
public EdmObjectType meType
+
C++/CLI 
public:
+EdmObjectType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlID.html new file mode 100644 index 0000000..359c0a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlID.html @@ -0,0 +1,150 @@ + + + + + + mlID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSel Structure + : mlID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Database ID of file or folder. +

Syntax

Visual Basic 
Public mlID As System.Integer
+
C# 
public System.int mlID
+
C++/CLI 
public:
+System.int mlID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlParentID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlParentID.html new file mode 100644 index 0000000..6505898 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlParentID.html @@ -0,0 +1,150 @@ + + + + + + mlParentID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlParentID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSel Structure + : mlParentID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Parent folder ID for files; 0 for folders. +

Syntax

Visual Basic 
Public mlParentID As System.Integer
+
C# 
public System.int mlParentID
+
C++/CLI 
public:
+System.int mlParentID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlVersion.html new file mode 100644 index 0000000..226215d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSel~mlVersion.html @@ -0,0 +1,150 @@ + + + + + + mlVersion Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVersion Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSel Structure + : mlVersion Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + File version; 0 for folders. +

Syntax

Visual Basic 
Public mlVersion As System.Integer
+
C# 
public System.int mlVersion
+
C++/CLI 
public:
+System.int mlVersion
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage.html new file mode 100644 index 0000000..74e0770 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage.html @@ -0,0 +1,157 @@ + + + + + + EdmTaskSetupPage Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSetupPage Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSetupPage Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Used by the method IEdmTaskProperties::SetSetupPages. + +

Syntax

Visual Basic 
Public Structure EdmTaskSetupPage 
+   Inherits System.ValueType
+
C# 
public struct EdmTaskSetupPage : System.ValueType 
+
C++/CLI 
public value class EdmTaskSetupPage : public System.ValueType 
+
+ + +

Example

struct EdmTaskSetupPage{
  string mbsPageName;
  integer mlPageHwnd;
  object mpoPageImpl;
};

+ +
+

Example

+

Remarks

This structure defines a task add-in's setup page in the task properties dialog box.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_fields.html new file mode 100644 index 0000000..0d3355b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmTaskSetupPage Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSetupPage Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSetupPage Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmTaskSetupPage members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsPageNameName of the page to add.  
public FieldmlPageHwndWindow handle of the page.  
public FieldmpoPageImplInterface that SOLIDWORKS PDM Professional keeps addressed while the page exists.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_members.html new file mode 100644 index 0000000..dfc5673 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage_members.html @@ -0,0 +1,164 @@ + + + + + + EdmTaskSetupPage Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTaskSetupPage Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTaskSetupPage Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmTaskSetupPage.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsPageNameName of the page to add.  
public FieldmlPageHwndWindow handle of the page.  
public FieldmpoPageImplInterface that SOLIDWORKS PDM Professional keeps addressed while the page exists.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mbsPageName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mbsPageName.html new file mode 100644 index 0000000..326ee9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mbsPageName.html @@ -0,0 +1,150 @@ + + + + + + mbsPageName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPageName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSetupPage Structure + : mbsPageName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the page to add. +

Syntax

Visual Basic 
Public mbsPageName As System.String
+
C# 
public System.string mbsPageName
+
C++/CLI 
public:
+System.String^ mbsPageName
+ +
+ + + + + +

Remarks

This name shows up as a link in the left-side pane in the task property dialog in the Administration tool.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mlPageHwnd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mlPageHwnd.html new file mode 100644 index 0000000..0bb057a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mlPageHwnd.html @@ -0,0 +1,150 @@ + + + + + + mlPageHwnd Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlPageHwnd Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSetupPage Structure + : mlPageHwnd Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Window handle of the page. +

Syntax

Visual Basic 
Public mlPageHwnd As System.Integer
+
C# 
public System.int mlPageHwnd
+
C++/CLI 
public:
+System.int mlPageHwnd
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mpoPageImpl.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mpoPageImpl.html new file mode 100644 index 0000000..423eb9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskSetupPage~mpoPageImpl.html @@ -0,0 +1,150 @@ + + + + + + mpoPageImpl Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoPageImpl Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTaskSetupPage Structure + : mpoPageImpl Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Interface that SOLIDWORKS PDM Professional keeps addressed while the page exists. +

Syntax

Visual Basic 
Public mpoPageImpl As System.Object
+
C# 
public System.object mpoPageImpl
+
C++/CLI 
public:
+System.Object^ mpoPageImpl
+ +
+ + + + + +

Remarks

This object typically points to the object implementing the window owning the handle in mlPageHwnd.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskStatus.html new file mode 100644 index 0000000..a5fd4b2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTaskStatus.html @@ -0,0 +1,147 @@ + + + + + + EdmTaskStatus Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmTaskStatus Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmTaskStatus Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Task add-in statuses. +

Syntax

Visual Basic 
Public Enum EdmTaskStatus 
+   Inherits System.Enum
+
C# 
public enum EdmTaskStatus : System.Enum 
+
C++/CLI 
public enum class EdmTaskStatus : public System.Enum 
+
+

Members

+ + + + + + + + + + +
MemberDescription
EdmTaskStat_CancelPending6 = Cancel clicked, but the host computer hasn't noticed it yet
EdmTaskStat_DoneCancelled8 = Task terminated through canceling
EdmTaskStat_DoneFailed9 = Task completed with errors
EdmTaskStat_DoneOK7 = Task completed successfully
EdmTaskStat_ResumePending11 = Resume clicked after task was suspended, but the host server hasn't noticed it yet
EdmTaskStat_Retrying4 = Execution has failed at least once, but the framework is trying to execute the add-in again
EdmTaskStat_Running3 = Task add-in is running on the host computer
EdmTaskStat_Starting2 = Task starting on the host computer
EdmTaskStat_Suspended5 = Task suspended by the user
EdmTaskStat_SuspensionPending10 = Suspend clicked, but the task add-in hasn't noticed it yet
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission.html new file mode 100644 index 0000000..7d409da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission.html @@ -0,0 +1,154 @@ + + + + + + EdmTransitionPermission Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTransitionPermission Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTransitionPermission Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains transition permission information. + +

Syntax

Visual Basic 
Public Structure EdmTransitionPermission 
+   Inherits System.ValueType
+
C# 
public struct EdmTransitionPermission : System.ValueType 
+
C++/CLI 
public value class EdmTransitionPermission : public System.ValueType 
+
+ + +

Example

struct EdmTransitionPermission
{
  enum EdmObjectType meOwnerType;
 
integer mlOwnerID;
  integer mlTransitionID;
 
integer mlEdmRightFlag;

};

+ +
+ +

Remarks

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_fields.html new file mode 100644 index 0000000..432370d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmTransitionPermission Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTransitionPermission Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTransitionPermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmTransitionPermission members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeType of mlOwnerID.  
public FieldmlEdmRightFlagTransition rights.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
public FieldmlTransitionIDID of the transition to which these permissions apply.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_members.html new file mode 100644 index 0000000..ec89da1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission_members.html @@ -0,0 +1,164 @@ + + + + + + EdmTransitionPermission Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmTransitionPermission Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmTransitionPermission Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmTransitionPermission.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmeOwnerTypeType of mlOwnerID.  
public FieldmlEdmRightFlagTransition rights.  
public FieldmlOwnerIDID of meOwnerType for whom to assign permissions.  
public FieldmlTransitionIDID of the transition to which these permissions apply.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~meOwnerType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~meOwnerType.html new file mode 100644 index 0000000..0165312 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~meOwnerType.html @@ -0,0 +1,150 @@ + + + + + + meOwnerType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meOwnerType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTransitionPermission Structure + : meOwnerType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Type of mlOwnerID. +

Syntax

Visual Basic 
Public meOwnerType As EdmObjectType
+
C# 
public EdmObjectType meOwnerType
+
C++/CLI 
public:
+EdmObjectType meOwnerType
+ +

Field Value

EdmObjectType.EdmObject_User or EdmObjectType.EdmObject_UserGroup
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlEdmRightFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlEdmRightFlag.html new file mode 100644 index 0000000..8141409 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlEdmRightFlag.html @@ -0,0 +1,150 @@ + + + + + + mlEdmRightFlag Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmRightFlag Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTransitionPermission Structure + : mlEdmRightFlag Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Transition rights. +

Syntax

Visual Basic 
Public mlEdmRightFlag As System.Integer
+
C# 
public System.int mlEdmRightFlag
+
C++/CLI 
public:
+System.int mlEdmRightFlag
+ +

Field Value

Combination of EdmTransitionRightFlags bits
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlOwnerID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlOwnerID.html new file mode 100644 index 0000000..f7d1f71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlOwnerID.html @@ -0,0 +1,150 @@ + + + + + + mlOwnerID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlOwnerID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTransitionPermission Structure + : mlOwnerID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of meOwnerType for whom to assign permissions. +

Syntax

Visual Basic 
Public mlOwnerID As System.Integer
+
C# 
public System.int mlOwnerID
+
C++/CLI 
public:
+System.int mlOwnerID
+ +

Field Value

Owner ID
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlTransitionID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlTransitionID.html new file mode 100644 index 0000000..0277021 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionPermission~mlTransitionID.html @@ -0,0 +1,150 @@ + + + + + + mlTransitionID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlTransitionID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmTransitionPermission Structure + : mlTransitionID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the transition to which these permissions apply. +

Syntax

Visual Basic 
Public mlTransitionID As System.Integer
+
C# 
public System.int mlTransitionID
+
C++/CLI 
public:
+System.int mlTransitionID
+ +

Field Value

Transition ID
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionRightFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionRightFlags.html new file mode 100644 index 0000000..39ab84e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionRightFlags.html @@ -0,0 +1,138 @@ + + + + + + EdmTransitionRightFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmTransitionRightFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmTransitionRightFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Transition permission flags. +

Syntax

Visual Basic 
Public Enum EdmTransitionRightFlags 
+   Inherits System.Enum
+
C# 
public enum EdmTransitionRightFlags : System.Enum 
+
C++/CLI 
public enum class EdmTransitionRightFlags : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmTransitionRight_DisallowSequentialStateChanges2 = Disallow sequential state changes
EdmTransitionRight_MandatoryStateComments4
EdmTransitionRight_Permit1 = Permit transition
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionType.html new file mode 100644 index 0000000..272a528 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmTransitionType.html @@ -0,0 +1,138 @@ + + + + + + EdmTransitionType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmTransitionType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmTransitionType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of transitions. +

Syntax

Visual Basic 
Public Enum EdmTransitionType 
+   Inherits System.Enum
+
C# 
public enum EdmTransitionType : System.Enum 
+
C++/CLI 
public enum class EdmTransitionType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmTransitionType_Automatic1
EdmTransitionType_Normal0
EdmTransitionType_Parallel2
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockBuildTreeFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockBuildTreeFlags.html new file mode 100644 index 0000000..889170c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockBuildTreeFlags.html @@ -0,0 +1,152 @@ + + + + + + EdmUnlockBuildTreeFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockBuildTreeFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockBuildTreeFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used to control the creation of the check-in file tree created by the IEdmBatchUnlock interface. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmUnlockBuildTreeFlags 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockBuildTreeFlags : System.Enum 
+
C++/CLI 
public enum class EdmUnlockBuildTreeFlags : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + +
MemberDescription
Eubtf_ForceUnlock32768 = Unlock the file even if it is not modified; use only in combination with Eubtf_MayUnlock
Eubtf_IgnoreReferences65536 = Ignore the child references at check-in; unlock root items only
Eubtf_MayUndoLock2 = Support undo file check-out
Eubtf_MayUnlock1 = Support file check-in
Eubtf_MayUnlockWithLatest4096 = Check in latest version instead of cached version; use only in combination with Eubtf_MayUnlock
Eubtf_MayUnlockWithoutOverwrite16384 = Check in without version overwrite; use only in combination with Eubtf_MayUnlock
Eubtf_NoCallbackDlgErrors256 = Do not pass dialog box errors to the callback
Eubtf_NoRemoveLocalCopy128 = Do not display the Remove Local Copy column in the dialog box
Eubtf_Nothing0 = None of the other flags
Eubtf_RefreshFileListing32 = Refresh the file listing in the File Explorer when the operation completes
Eubtf_SearchForDrawings512 = Include drawings as sub-parent nodes
Eubtf_ShowCloseAfterCheckinOption2048 = Display the Reload or Close Files after Check In dropdown on the Check In or Undo Check Out dialog box toolbar; this option permits the user to choose whether to close the files in SOLIDWORKS after the check-in operation has succeeded or reload them in SOLIDWORKS 
Eubtf_ShowMultipleWarnings8192 = Display Multiple Warnings link in warning column of dialog
Eubtf_SkipOpenFileChecks1024 = Do not check whether files are open in another application
Eubtf_UndoLockDefault4 = Make undo check-out the default operation
Eubtf_Warn_UndoLockModifiedInCb16 = Warn the caller of undo check-out of modified files via the callback interface
Eubtf_Warn_UndoLockModifiedInDlg8 = Show warning icon in the Undo Check Out dialog box for modified files marked for undo check-out
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo.html new file mode 100644 index 0000000..fc5f8e5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmUnlockErrInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUnlockErrInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUnlockErrInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains extended information about an error message.  + +

Syntax

Visual Basic 
Public Structure EdmUnlockErrInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmUnlockErrInfo : System.ValueType 
+
C++/CLI 
public value class EdmUnlockErrInfo : public System.ValueType 
+
+ + +

Example

struct EdmUnlockErrInfo{
  integer mlDocID;
  string mbsConfigName;
  integer mlVarID;
  string mbsVarName;
};

+ +
+

Example

+

Remarks

This struct is displayed with IEdmUnlockOpCallback::MsgBox.
+ + + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_fields.html new file mode 100644 index 0000000..28530e4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmUnlockErrInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUnlockErrInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUnlockErrInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmUnlockErrInfo members.

+ + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsConfigNameName of configuration (layout) where the variable value that caused the error is stored.  
public FieldmbsVarNameName of the variable that caused the error.  
public FieldmlDocIDUnique ID of the file that caused the error, which is the same ID you see in IEdmObject5::ID.  
public FieldmlVarIDUnique ID of the variable that caused the error.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_members.html new file mode 100644 index 0000000..49f8394 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo_members.html @@ -0,0 +1,164 @@ + + + + + + EdmUnlockErrInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUnlockErrInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUnlockErrInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmUnlockErrInfo.

+ + + + + + + +

Public Fields

+ + + + +
 NameDescription
public FieldmbsConfigNameName of configuration (layout) where the variable value that caused the error is stored.  
public FieldmbsVarNameName of the variable that caused the error.  
public FieldmlDocIDUnique ID of the file that caused the error, which is the same ID you see in IEdmObject5::ID.  
public FieldmlVarIDUnique ID of the variable that caused the error.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsConfigName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsConfigName.html new file mode 100644 index 0000000..e25dd70 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsConfigName.html @@ -0,0 +1,150 @@ + + + + + + mbsConfigName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsConfigName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUnlockErrInfo Structure + : mbsConfigName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of configuration (layout) where the variable value that caused the error is stored. +

Syntax

Visual Basic 
Public mbsConfigName As System.String
+
C# 
public System.string mbsConfigName
+
C++/CLI 
public:
+System.String^ mbsConfigName
+ +
+ + +

Example

See the EdmUnlockErrInfo examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsVarName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsVarName.html new file mode 100644 index 0000000..f69698f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mbsVarName.html @@ -0,0 +1,150 @@ + + + + + + mbsVarName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsVarName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUnlockErrInfo Structure + : mbsVarName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the variable that caused the error. +

Syntax

Visual Basic 
Public mbsVarName As System.String
+
C# 
public System.string mbsVarName
+
C++/CLI 
public:
+System.String^ mbsVarName
+ +
+ + +

Example

See the EdmUnlockErrInfo examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlDocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlDocID.html new file mode 100644 index 0000000..d850bd2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlDocID.html @@ -0,0 +1,150 @@ + + + + + + mlDocID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlDocID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUnlockErrInfo Structure + : mlDocID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the file that caused the error, which is the same ID you see in IEdmObject5::ID. +

Syntax

Visual Basic 
Public mlDocID As System.Integer
+
C# 
public System.int mlDocID
+
C++/CLI 
public:
+System.int mlDocID
+ +
+ + +

Example

See the EdmUnlockErrInfo examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlVarID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlVarID.html new file mode 100644 index 0000000..5ee1df5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockErrInfo~mlVarID.html @@ -0,0 +1,150 @@ + + + + + + mlVarID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVarID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUnlockErrInfo Structure + : mlVarID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the variable that caused the error. +

Syntax

Visual Basic 
Public mlVarID As System.Integer
+
C# 
public System.int mlVarID
+
C++/CLI 
public:
+System.int mlVarID
+ +
+ + +

Example

See the EdmUnlockErrInfo examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEvent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEvent.html new file mode 100644 index 0000000..3daa0c2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEvent.html @@ -0,0 +1,138 @@ + + + + + + EdmUnlockEvent Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockEvent Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockEvent Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of check-in command passed to the IEdmUnlockOpCallback interface to notify the caller about what is happening while checking in files with the IEdmBatchUnlock interface. +

Syntax

Visual Basic 
Public Enum EdmUnlockEvent 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockEvent : System.Enum 
+
C++/CLI 
public enum class EdmUnlockEvent : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Euev_CompressingTree3 = Check-in command is compressing the reference tree
Euev_ReadingFileRefs1 = Check-in command is reading external references from the file
Euev_UnlockFile2 = Check-in command is checking in a file
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEventMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEventMsg.html new file mode 100644 index 0000000..3c995e0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockEventMsg.html @@ -0,0 +1,136 @@ + + + + + + EdmUnlockEventMsg Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockEventMsg Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockEventMsg Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Type of check-in commands passed to IEdmUnlockOpCallback while checking in files with the IEdmBatchUnlock interface in order to notify the caller about the progress of the operation. +

Syntax

Visual Basic 
Public Enum EdmUnlockEventMsg 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockEventMsg : System.Enum 
+
C++/CLI 
public enum class EdmUnlockEventMsg : public System.Enum 
+
+

Members

+ +
MemberDescription
Euev_ReadingDbFileInfo1 = Check-in command is reading information from the database about the selected files
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFileListFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFileListFlag.html new file mode 100644 index 0000000..f810e6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFileListFlag.html @@ -0,0 +1,138 @@ + + + + + + EdmUnlockFileListFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockFileListFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockFileListFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags telling IEdmBatchUnlock::GetFileList what kind of files to get. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmUnlockFileListFlag 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockFileListFlag : System.Enum 
+
C++/CLI 
public enum class EdmUnlockFileListFlag : public System.Enum 
+
+

Members

+ + + +
MemberDescription
Euflf_GetUndoLocked2 = Files with their locks undone
Euflf_GetUnlocked1 = Checked-in files
Euflf_GetUnprocessed4 = Files not processed by the operation
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFlag.html new file mode 100644 index 0000000..256e4cb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockFlag.html @@ -0,0 +1,145 @@ + + + + + + EdmUnlockFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in IEdmFile5::UnlockFile to control the behavior of the check-in operation. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmUnlockFlag 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockFlag : System.Enum 
+
C++/CLI 
public enum class EdmUnlockFlag : public System.Enum 
+
+

Members

+ + + + + + + + + + +
MemberDescription
EdmUnlock_FailOnRegenerationNeed16 = Fail if the file needs to be regenerated in the CAD program 

NOTE: Only files resaved in SOLIDWORKS 2009 or later can trigger this flag 
EdmUnlock_ForceUnlock256 = Unlock the file even if it is not modified
EdmUnlock_IgnoreCorruptFile4 = Ignore files with file formats unrecognized by SOLIDWORKS PDM Professional; without this flag, SOLIDWORKS PDM Professional returns E_EDM_INVALID_FILE if it encounters a corrupt file or a file containing a newer format than SOLIDWORKS PDM Professional can handle
EdmUnlock_IgnoreReferences128 = Silently unlock parent files without their references
EdmUnlock_IgnoreRefsNotLockedByCaller32 = Ignore references not locked by caller
EdmUnlock_IgnoreRefsOutsideVault8 = Ignore references to files outside the vault
EdmUnlock_KeepLocked1 = Keep the file checked out after creating the new version in the archive
EdmUnlock_OverwriteLatestVersion64 = Do not create a new version; overwrite the last version of the file with new changes
EdmUnlock_RemoveLocalCopy2 = Remove the local copy of the file from the hard disk after the file has been checked in
EdmUnlock_Simple0 = Check in the file using default behavior
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpMsg.html new file mode 100644 index 0000000..c643500 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpMsg.html @@ -0,0 +1,146 @@ + + + + + + EdmUnlockOpMsg Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockOpMsg Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockOpMsg Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of constant passed to IEdmUnlockOpCallback::MsgBox when the caller should either display a message to the user or process the message in some other way. +

Syntax

Visual Basic 
Public Enum EdmUnlockOpMsg 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockOpMsg : System.Enum 
+
C++/CLI 
public enum class EdmUnlockOpMsg : public System.Enum 
+
+

Members

+ + + + + + + + + + + +
MemberDescription
Euom_AdminUndoLock5 = You are logged in as Admin and are trying to undo the check-out flag on a file checked out by another user
Euom_AdminUnlock8 = You are logged in as Admin and are trying to check in a file that is checked out by another user
Euom_CircularReference9 = The files checked have circular references
Euom_DocumentDoesNotMeetConditionsInAnyCategory11 = The document cannot be unlocked because it does not meet the conditions of any category
Euom_DocumentDoesNotMeetConditionsInAnyWorkflow10 = The document cannot be unlocked because it does not meet the conditions of any workflow
Euom_DuplicateUniqueVar1 = The file has a unique variable with a duplicate value
Euom_LocalFileNotFound6 = The local copy of the file was not found
Euom_LocalFileShareError7 = Sharing violation accessing the local copy of the file
Euom_MissingMandatoryVar2 = The file cannot be checked in, because the file contains a unique and constrained variable with a value that is already used elsewhere
Euom_UndoLockModified4 = The file about whose check out you about to undo, has been modified
Euom_UnknownFileFormat3 = SOLIDWORKS PDM Professional cannot read references or variables from the file, because its file format is unknown
+ + + + +

Remarks

This constant tells which message to display.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpReply.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpReply.html new file mode 100644 index 0000000..0a85b1b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockOpReply.html @@ -0,0 +1,141 @@ + + + + + + EdmUnlockOpReply Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockOpReply Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockOpReply Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Types of operations returned from your IEdmUnlockOpCallback::MsgBox method if you implement an IEdmUnlockOpCallback interface to use with the IEdmBatchUnlock interface. +

Syntax

Visual Basic 
Public Enum EdmUnlockOpReply 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockOpReply : System.Enum 
+
C++/CLI 
public enum class EdmUnlockOpReply : public System.Enum 
+
+

Members

+ + + + + + +
MemberDescription
Euor_Cancel1 = Cancel the entire operation
Euor_ClearVar10 = Clear the value of the conflicting unique variable
Euor_Error-1 = Internal error code; typically not returned by you
Euor_OK0 = Continue the operation
Euor_Retry12 = Retry operation
Euor_SkipFile11 = Continue the operation, but skip this particular file
+ + + + +

Remarks

The return value tells SOLIDWORKS PDM Professional what to do.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockStatusFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockStatusFlag.html new file mode 100644 index 0000000..aa569b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUnlockStatusFlag.html @@ -0,0 +1,137 @@ + + + + + + EdmUnlockStatusFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUnlockStatusFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUnlockStatusFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Statuses returned by IEdmBatchUnlock2::GetStatus. +

Syntax

Visual Basic 
Public Enum EdmUnlockStatusFlag 
+   Inherits System.Enum
+
C# 
public enum EdmUnlockStatusFlag : System.Enum 
+
C++/CLI 
public enum class EdmUnlockStatusFlag : public System.Enum 
+
+

Members

+ + +
MemberDescription
Eusf_CloseAfterCheckinFlag1 = Return true if user selects Close File after Check In on the Check In dialog box toolbar, return false if user selects Reload File after Check In
Eusf_Nothing0 = Do not use
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath.html new file mode 100644 index 0000000..e7d79b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath.html @@ -0,0 +1,154 @@ + + + + + + EdmUpdatedRefPath Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUpdatedRefPath Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUpdatedRefPath Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains old and new path information for references that are moved or renamed by another client. + +

Syntax

Visual Basic 
Public Structure EdmUpdatedRefPath 
+   Inherits System.ValueType
+
C# 
public struct EdmUpdatedRefPath : System.ValueType 
+
C++/CLI 
public value class EdmUpdatedRefPath : public System.ValueType 
+
+ + +

Example

struct EdmUpdatedRefPath{
  string mbsRefOldPath;
  string mbsRefNewPath;
};

+ +
+ +

Remarks

This structure is returned by IEdmRefItem2::GetUpdatedPaths.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP04
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_fields.html new file mode 100644 index 0000000..635a0c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_fields.html @@ -0,0 +1,135 @@ + + + + + + EdmUpdatedRefPath Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUpdatedRefPath Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUpdatedRefPath Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmUpdatedRefPath members.

+ + +

Public Fields

+ + +
 NameDescription
public FieldmbsRefNewPathNew reference path.  
public FieldmbsRefOldPathOld reference path.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_members.html new file mode 100644 index 0000000..2b17938 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath_members.html @@ -0,0 +1,162 @@ + + + + + + EdmUpdatedRefPath Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUpdatedRefPath Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUpdatedRefPath Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmUpdatedRefPath.

+ + + + + + + +

Public Fields

+ + +
 NameDescription
public FieldmbsRefNewPathNew reference path.  
public FieldmbsRefOldPathOld reference path.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefNewPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefNewPath.html new file mode 100644 index 0000000..1574b02 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefNewPath.html @@ -0,0 +1,150 @@ + + + + + + mbsRefNewPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRefNewPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUpdatedRefPath Structure + : mbsRefNewPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + New reference path. +

Syntax

Visual Basic 
Public mbsRefNewPath As System.String
+
C# 
public System.string mbsRefNewPath
+
C++/CLI 
public:
+System.String^ mbsRefNewPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefOldPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefOldPath.html new file mode 100644 index 0000000..84804fd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUpdatedRefPath~mbsRefOldPath.html @@ -0,0 +1,150 @@ + + + + + + mbsRefOldPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsRefOldPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUpdatedRefPath Structure + : mbsRefOldPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Old reference path. +

Syntax

Visual Basic 
Public mbsRefOldPath As System.String
+
C# 
public System.string mbsRefOldPath
+
C++/CLI 
public:
+System.String^ mbsRefOldPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData.html new file mode 100644 index 0000000..13c8099 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData.html @@ -0,0 +1,154 @@ + + + + + + EdmUserData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Obsolete. Superseded by EdmUserData2 in SOLIDWORKS PDM Professional 2010 and later. + +

Syntax

Visual Basic 
Public Structure EdmUserData 
+   Inherits System.ValueType
+
C# 
public struct EdmUserData : System.ValueType 
+
C++/CLI 
public value class EdmUserData : public System.ValueType 
+
+ + +

Example

struct EdmUserData{
  string mbsUserName;
  string mbsInitials;
  string mbsCompleteName;
  string mbsUserData;
  string mbsPassword;
  string mbsEmail;
  integer mlFlags;
  integer mlSysRights;
  string mbsColumnView;
  integer mlUserID;
  integer mhStatus;
  IEdmUser6* mpoUser;
};

+ +
+ +

Remarks

Holds information about a user. This struct is used as argument to IEdmUserMgr6::AddUsers.
+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2.html new file mode 100644 index 0000000..e2cc564 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2.html @@ -0,0 +1,158 @@ + + + + + + EdmUserData2 Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData2 Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData2 Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a user to be created. + +

Syntax

Visual Basic 
Public Structure EdmUserData2 
+   Inherits System.ValueType
+
C# 
public struct EdmUserData2 : System.ValueType 
+
C++/CLI 
public value class EdmUserData2 : public System.ValueType 
+
+ + +

Example

struct EdmUserData2{
  string   mbsUserName;
  string   mbsInitials;
  string   mbsCompleteName;
  string   mbsUserData;
  string   mbsPassword;
  string   mbsEmail;
  integer   mlFlags;
  EdmSysPerm[] moSysPerms;
  string   mbsColumnView;
  integer   mlUserID;
  integer   mhStatus;
  IEdmUser6mpoUser;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_fields.html new file mode 100644 index 0000000..8d9da33 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_fields.html @@ -0,0 +1,145 @@ + + + + + + EdmUserData2 Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData2 Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmUserData2 members.

+ + +

Public Fields

+ + + + + + + + + + + + +
 NameDescription
public FieldmbsColumnViewName of the column view that the user should see in File Explorer file listings.   
public FieldmbsCompleteNameComplete user name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPasswordUser's password in SOLIDWORKS PDM Professional.  
public FieldmbsUserDataArbitrary text to associate with the user.  
public FieldmbsUserNameUser's login name in SOLIDWORKS PDM Professional.  
public FieldmhStatusHRESULT code containing the status of the creation of the user.  
public FieldmlFlagsCombination of EdmUserDataFlags flags.  
public FieldmlUserIDDatabase ID of the just-created user.  
public FieldmoSysPermsUser's system permissions.  
public FieldmpoUserUser's interface if mlFlags contains the edmUserDataFlags.edmudf_GetInterface and mhStatus is S_OK (0), otherwise the pointer is null.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_members.html new file mode 100644 index 0000000..199bccb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2_members.html @@ -0,0 +1,172 @@ + + + + + + EdmUserData2 Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData2 Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData2 Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmUserData2.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + + +
 NameDescription
public FieldmbsColumnViewName of the column view that the user should see in File Explorer file listings.   
public FieldmbsCompleteNameComplete user name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPasswordUser's password in SOLIDWORKS PDM Professional.  
public FieldmbsUserDataArbitrary text to associate with the user.  
public FieldmbsUserNameUser's login name in SOLIDWORKS PDM Professional.  
public FieldmhStatusHRESULT code containing the status of the creation of the user.  
public FieldmlFlagsCombination of EdmUserDataFlags flags.  
public FieldmlUserIDDatabase ID of the just-created user.  
public FieldmoSysPermsUser's system permissions.  
public FieldmpoUserUser's interface if mlFlags contains the edmUserDataFlags.edmudf_GetInterface and mhStatus is S_OK (0), otherwise the pointer is null.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsColumnView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsColumnView.html new file mode 100644 index 0000000..043bf7e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsColumnView.html @@ -0,0 +1,150 @@ + + + + + + mbsColumnView Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsColumnView Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsColumnView Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the column view that the user should see in File Explorer file listings.  +

Syntax

Visual Basic 
Public mbsColumnView As System.String
+
C# 
public System.string mbsColumnView
+
C++/CLI 
public:
+System.String^ mbsColumnView
+ +
+ + + + + +

Remarks

This is an input value that you should leave empty or null to use the standard view.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsCompleteName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsCompleteName.html new file mode 100644 index 0000000..26f60a7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsCompleteName.html @@ -0,0 +1,150 @@ + + + + + + mbsCompleteName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCompleteName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsCompleteName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Complete user name. +

Syntax

Visual Basic 
Public mbsCompleteName As System.String
+
C# 
public System.string mbsCompleteName
+
C++/CLI 
public:
+System.String^ mbsCompleteName
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsEmail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsEmail.html new file mode 100644 index 0000000..f974042 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsEmail.html @@ -0,0 +1,150 @@ + + + + + + mbsEmail Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsEmail Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsEmail Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Email address. +

Syntax

Visual Basic 
Public mbsEmail As System.String
+
C# 
public System.string mbsEmail
+
C++/CLI 
public:
+System.String^ mbsEmail
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsInitials.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsInitials.html new file mode 100644 index 0000000..cb15ca5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsInitials.html @@ -0,0 +1,150 @@ + + + + + + mbsInitials Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsInitials Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsInitials Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's initials. +

Syntax

Visual Basic 
Public mbsInitials As System.String
+
C# 
public System.string mbsInitials
+
C++/CLI 
public:
+System.String^ mbsInitials
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsPassword.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsPassword.html new file mode 100644 index 0000000..7d0421f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsPassword.html @@ -0,0 +1,150 @@ + + + + + + mbsPassword Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPassword Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsPassword Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's password in SOLIDWORKS PDM Professional. +

Syntax

Visual Basic 
Public mbsPassword As System.String
+
C# 
public System.string mbsPassword
+
C++/CLI 
public:
+System.String^ mbsPassword
+ +
+ + + + + +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserData.html new file mode 100644 index 0000000..176b494 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserData.html @@ -0,0 +1,150 @@ + + + + + + mbsUserData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsUserData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Arbitrary text to associate with the user. +

Syntax

Visual Basic 
Public mbsUserData As System.String
+
C# 
public System.string mbsUserData
+
C++/CLI 
public:
+System.String^ mbsUserData
+ +
+ + + + + +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserName.html new file mode 100644 index 0000000..ef88c63 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mbsUserName.html @@ -0,0 +1,150 @@ + + + + + + mbsUserName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mbsUserName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's login name in SOLIDWORKS PDM Professional. +

Syntax

Visual Basic 
Public mbsUserName As System.String
+
C# 
public System.string mbsUserName
+
C++/CLI 
public:
+System.String^ mbsUserName
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mhStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mhStatus.html new file mode 100644 index 0000000..9507078 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mhStatus.html @@ -0,0 +1,150 @@ + + + + + + mhStatus Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhStatus Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mhStatus Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + HRESULT code containing the status of the creation of the user. +

Syntax

Visual Basic 
Public mhStatus As System.Integer
+
C# 
public System.int mhStatus
+
C++/CLI 
public:
+System.int mhStatus
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Output value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlFlags.html new file mode 100644 index 0000000..d978d11 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmUserDataFlags flags. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlUserID.html new file mode 100644 index 0000000..80934db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mlUserID.html @@ -0,0 +1,150 @@ + + + + + + mlUserID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mlUserID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Database ID of the just-created user. +

Syntax

Visual Basic 
Public mlUserID As System.Integer
+
C# 
public System.int mlUserID
+
C++/CLI 
public:
+System.int mlUserID
+ +
+ + + + + +

Remarks

Output value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~moSysPerms.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~moSysPerms.html new file mode 100644 index 0000000..19eff83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~moSysPerms.html @@ -0,0 +1,150 @@ + + + + + + moSysPerms Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moSysPerms Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : moSysPerms Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's system permissions. +

Syntax

Visual Basic 
Public moSysPerms As EdmSysPerm()
+
C# 
public EdmSysPerm[] moSysPerms
+
C++/CLI 
public:
+array<EdmSysPerm>^ moSysPerms
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ +

Remarks

Input value.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mpoUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mpoUser.html new file mode 100644 index 0000000..c278e50 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData2~mpoUser.html @@ -0,0 +1,150 @@ + + + + + + mpoUser Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoUser Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData2 Structure + : mpoUser Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's interface if mlFlags contains the edmUserDataFlags.edmudf_GetInterface and mhStatus is S_OK (0), otherwise the pointer is null. +

Syntax

Visual Basic 
Public mpoUser As IEdmUser6
+
C# 
public IEdmUser6 mpoUser
+
C++/CLI 
public:
+IEdmUser6^ mpoUser
+ +
+ + +

Example

See the EdmUserData2 examples. +
+ + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx.html new file mode 100644 index 0000000..c281f06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx.html @@ -0,0 +1,158 @@ + + + + + + EdmUserDataEx Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserDataEx Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserDataEx Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a user. + +

Syntax

Visual Basic 
Public Structure EdmUserDataEx 
+   Inherits System.ValueType
+
C# 
public struct EdmUserDataEx : System.ValueType 
+
C++/CLI 
public value class EdmUserDataEx : public System.ValueType 
+
+ + +

Example

struct EdmUserDataEx{
  integer mlUserID;
  integer mlEdmUserDataExFlags;
  string mbsInitials;
  string mbsCompleteName;
  string mbsUserData;
  string mbsEmail;
  string mbsPhone;
  string mbsCellPhone;
  string mbsPicturePath;
  string mbsWebSite1;
  string mbsWebSite2;
  string mbsWebSite3;
  string mbsWebSite4;
  string mbsPresenceNote;
};

+ +
+

Example

+

Remarks

Used to read/write user properties via IEdmUser10::GetUserDataEx and IEdmUser10::SetUserDataEx.

+

The following image shows where the EdmUserDataEx struct fields are used in the user popup window when IEdmUserMgr8::ShowUserPopup is called after updating the properties with IEdmUser10::GetUserDataEx.

+

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataExFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataExFlag.html new file mode 100644 index 0000000..04f0683 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataExFlag.html @@ -0,0 +1,151 @@ + + + + + + EdmUserDataExFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUserDataExFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUserDataExFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags that tell which members of EdmUserDataEx are valid. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmUserDataExFlag 
+   Inherits System.Enum
+
C# 
public enum EdmUserDataExFlag : System.Enum 
+
C++/CLI 
public enum class EdmUserDataExFlag : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + +
MemberDescription
Edmudex_All

A combination of all the other flags

+

NOTE: To get better performance, call IEdmUser10::GetUserDataEx and only specify the enumerators that you need.

Edmudex_CellPhone32 = mbsCellPhone of EdmUserDataEx is valid
Edmudex_CompleteName2 = mbsCompleteName of EdmUserDataEx is valid
Edmudex_Email8 = mbsEmail of EdmUserDataEx is valid
Edmudex_Initials1 = mbsInitials of EdmUserDataEx is valid
Edmudex_Nothing0 = None of EdmUserDataEx members are valid
Edmudex_Phone16 = mbsPhone of EdmUserDataEx is valid
Edmudex_PicturePath64 = mbsPicturePath of EdmUserDataEx is valid
Edmudex_PresenceNote2048 = mbsPresenceNote of EdmUserDataEx is valid
Edmudex_UserData4 = mbsUserData of EdmUserDataEx is valid
Edmudex_WebSite1128 = mbsWebSite1 of EdmUserDataEx is valid
Edmudex_WebSite2256 = mbsWebSite2 of EdmUserDataEx is valid
Edmudex_WebSite3512 = mbsWebSite3 of EdmUserDataEx is valid
Edmudex_WebSite41024 = mbsWebSite4 of EdmUserDataEx is valid
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_fields.html new file mode 100644 index 0000000..e6be784 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_fields.html @@ -0,0 +1,147 @@ + + + + + + EdmUserDataEx Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserDataEx Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserDataEx Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmUserDataEx members.

+ + +

Public Fields

+ + + + + + + + + + + + + + +
 NameDescription
public FieldmbsCellPhoneCell phone number.  
public FieldmbsCompleteNameFull user name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPhoneOffice phone number.  
public FieldmbsPicturePathPoints to an image file (e.g., .jpg, .bmp, .png, etc.)  that can be set using IEdmUser10::SetUserDataEx.  
public FieldmbsPresenceNotePresence (i.e., out of office) note.  
public FieldmbsUserDataUser's data string.  
public FieldmbsWebSite1First website address.  
public FieldmbsWebSite2Second website.  
public FieldmbsWebSite3Third website.  
public FieldmbsWebSite4Fourth website.  
public FieldmlEdmUserDataExFlagsCombination of EdmUserDataExFlag flags telling which of the other members of this structure should be updated or retrieved.  
public FieldmlUserIDID of user to which the data belongs.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_members.html new file mode 100644 index 0000000..a95acfb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx_members.html @@ -0,0 +1,174 @@ + + + + + + EdmUserDataEx Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserDataEx Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserDataEx Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmUserDataEx.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + + + + +
 NameDescription
public FieldmbsCellPhoneCell phone number.  
public FieldmbsCompleteNameFull user name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPhoneOffice phone number.  
public FieldmbsPicturePathPoints to an image file (e.g., .jpg, .bmp, .png, etc.)  that can be set using IEdmUser10::SetUserDataEx.  
public FieldmbsPresenceNotePresence (i.e., out of office) note.  
public FieldmbsUserDataUser's data string.  
public FieldmbsWebSite1First website address.  
public FieldmbsWebSite2Second website.  
public FieldmbsWebSite3Third website.  
public FieldmbsWebSite4Fourth website.  
public FieldmlEdmUserDataExFlagsCombination of EdmUserDataExFlag flags telling which of the other members of this structure should be updated or retrieved.  
public FieldmlUserIDID of user to which the data belongs.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCellPhone.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCellPhone.html new file mode 100644 index 0000000..f6c0a0c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCellPhone.html @@ -0,0 +1,151 @@ + + + + + + mbsCellPhone Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCellPhone Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsCellPhone Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Cell phone number. +

Syntax

Visual Basic 
Public mbsCellPhone As System.String
+
C# 
public System.string mbsCellPhone
+
C++/CLI 
public:
+System.String^ mbsCellPhone
+ +
+ + + + + +

Remarks

If you want the Microsoft Office Communicator integration (i.e., the phone number links in the user's popup windows) to be able to call the number, then you must enter the number in a form supported by your Microsoft Office Communicator installation.

+

Microsoft Office Communicator must also be set up to support outgoing calls. See the Microsoft Office Communicator documentation for more details.

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCompleteName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCompleteName.html new file mode 100644 index 0000000..711de4c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsCompleteName.html @@ -0,0 +1,150 @@ + + + + + + mbsCompleteName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCompleteName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsCompleteName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Full user name. +

Syntax

Visual Basic 
Public mbsCompleteName As System.String
+
C# 
public System.string mbsCompleteName
+
C++/CLI 
public:
+System.String^ mbsCompleteName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsEmail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsEmail.html new file mode 100644 index 0000000..4efed38 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsEmail.html @@ -0,0 +1,150 @@ + + + + + + mbsEmail Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsEmail Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsEmail Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Email address. +

Syntax

Visual Basic 
Public mbsEmail As System.String
+
C# 
public System.string mbsEmail
+
C++/CLI 
public:
+System.String^ mbsEmail
+ +
+ + + + + +

Remarks

This address exactly must match the address used in Microsoft Office Communicator in order for instant messaging and voice over IP to work in the user popup windows.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsInitials.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsInitials.html new file mode 100644 index 0000000..913f329 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsInitials.html @@ -0,0 +1,150 @@ + + + + + + mbsInitials Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsInitials Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsInitials Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's initials. +

Syntax

Visual Basic 
Public mbsInitials As System.String
+
C# 
public System.string mbsInitials
+
C++/CLI 
public:
+System.String^ mbsInitials
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPhone.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPhone.html new file mode 100644 index 0000000..ca9c86b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPhone.html @@ -0,0 +1,151 @@ + + + + + + mbsPhone Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPhone Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsPhone Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Office phone number. +

Syntax

Visual Basic 
Public mbsPhone As System.String
+
C# 
public System.string mbsPhone
+
C++/CLI 
public:
+System.String^ mbsPhone
+ +
+ + + + + +

Remarks

If you want the Microsoft Office Communicator integration (i.e., the phone number links in the user's popup windows) to be able to call the number, then you must enter the number in a form supported by your Microsoft Office Communicator installation.

+

Microsoft Office Communicator must also be set up to support outgoing calls. See the Microsoft Office Communicator documentation for more details.

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPicturePath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPicturePath.html new file mode 100644 index 0000000..9c17dcf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPicturePath.html @@ -0,0 +1,151 @@ + + + + + + mbsPicturePath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPicturePath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsPicturePath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Points to an image file (e.g., .jpg, .bmp, .png, etc.)  that can be set using IEdmUser10::SetUserDataEx. +

Syntax

Visual Basic 
Public mbsPicturePath As System.String
+
C# 
public System.string mbsPicturePath
+
C++/CLI 
public:
+System.String^ mbsPicturePath
+ +
+ + + + + +

Remarks

The member can be set to an empty or null string to remove the user's picture.

+

If you call IEdmUser10::GetUserDataEx, then this field points to the user's picture cached to the client computer disk. This is the cache used bySOLIDWORKS PDM Professional, so you should not delete the file from that location.

+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPresenceNote.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPresenceNote.html new file mode 100644 index 0000000..7ee6764 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsPresenceNote.html @@ -0,0 +1,150 @@ + + + + + + mbsPresenceNote Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPresenceNote Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsPresenceNote Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Presence (i.e., out of office) note. +

Syntax

Visual Basic 
Public mbsPresenceNote As System.String
+
C# 
public System.string mbsPresenceNote
+
C++/CLI 
public:
+System.String^ mbsPresenceNote
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsUserData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsUserData.html new file mode 100644 index 0000000..8b0d778 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsUserData.html @@ -0,0 +1,150 @@ + + + + + + mbsUserData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsUserData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's data string. +

Syntax

Visual Basic 
Public mbsUserData As System.String
+
C# 
public System.string mbsUserData
+
C++/CLI 
public:
+System.String^ mbsUserData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite1.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite1.html new file mode 100644 index 0000000..65d6610 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite1.html @@ -0,0 +1,150 @@ + + + + + + mbsWebSite1 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWebSite1 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsWebSite1 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + First website address. +

Syntax

Visual Basic 
Public mbsWebSite1 As System.String
+
C# 
public System.string mbsWebSite1
+
C++/CLI 
public:
+System.String^ mbsWebSite1
+ +
+ + + + + +

Remarks

The websites appear as buttons in the user popup windows. You can provide a custom ToolTip for web addresses by appending a new line and the Tooltip to the address like this: www.solidworks.com\nSOLIDWORKS!. The button is retrieved from the website's favicon.ico file.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite2.html new file mode 100644 index 0000000..4bfe9f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite2.html @@ -0,0 +1,150 @@ + + + + + + mbsWebSite2 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWebSite2 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsWebSite2 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Second website. +

Syntax

Visual Basic 
Public mbsWebSite2 As System.String
+
C# 
public System.string mbsWebSite2
+
C++/CLI 
public:
+System.String^ mbsWebSite2
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite3.html new file mode 100644 index 0000000..359eb62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite3.html @@ -0,0 +1,150 @@ + + + + + + mbsWebSite3 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWebSite3 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsWebSite3 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Third website. +

Syntax

Visual Basic 
Public mbsWebSite3 As System.String
+
C# 
public System.string mbsWebSite3
+
C++/CLI 
public:
+System.String^ mbsWebSite3
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite4.html new file mode 100644 index 0000000..32fb2d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mbsWebSite4.html @@ -0,0 +1,150 @@ + + + + + + mbsWebSite4 Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWebSite4 Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mbsWebSite4 Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Fourth website. +

Syntax

Visual Basic 
Public mbsWebSite4 As System.String
+
C# 
public System.string mbsWebSite4
+
C++/CLI 
public:
+System.String^ mbsWebSite4
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlEdmUserDataExFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlEdmUserDataExFlags.html new file mode 100644 index 0000000..2167099 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlEdmUserDataExFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmUserDataExFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmUserDataExFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mlEdmUserDataExFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmUserDataExFlag flags telling which of the other members of this structure should be updated or retrieved. +

Syntax

Visual Basic 
Public mlEdmUserDataExFlags As System.Integer
+
C# 
public System.int mlEdmUserDataExFlags
+
C++/CLI 
public:
+System.int mlEdmUserDataExFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlUserID.html new file mode 100644 index 0000000..e31697a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataEx~mlUserID.html @@ -0,0 +1,150 @@ + + + + + + mlUserID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserDataEx Structure + : mlUserID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of user to which the data belongs. +

Syntax

Visual Basic 
Public mlUserID As System.Integer
+
C# 
public System.int mlUserID
+
C++/CLI 
public:
+System.int mlUserID
+ +
+ + + + + +

Remarks

This field is ignored in calls to IEdmUser10::SetUserDataEx.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataFlags.html new file mode 100644 index 0000000..a92e58e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserDataFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmUserDataFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUserDataFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUserDataFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags used in EdmUserData's mlFlags field when adding users with IEdmUserMgr6::AddUsers. +

Syntax

Visual Basic 
Public Enum EdmUserDataFlags 
+   Inherits System.Enum
+
C# 
public enum EdmUserDataFlags : System.Enum 
+
C++/CLI 
public enum class EdmUserDataFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
Edmudf_CopySettings4 = Copy the settings from the user with EdmUserData.mlUserID
Edmudf_ForceAdd2 = Add this user even if other users in the array sent to IEdmUserMgr7::AddUsers2 cannot be added
Edmudf_GetInterface1 = Return the IEdmUser6 interface in the structure
Edmudf_Nothing0 = None of the other flags
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_fields.html new file mode 100644 index 0000000..fa6cf6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_fields.html @@ -0,0 +1,145 @@ + + + + + + EdmUserData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmUserData members.

+ + +

Public Fields

+ + + + + + + + + + + + +
 NameDescription
public FieldmbsColumnViewName of the column view the user should see in File Explorer.  
public FieldmbsCompleteNameUser’s complete name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPasswordUser's password.  
public FieldmbsUserDataArbitrary data associated with the user.  
public FieldmbsUserNameUser's login name.  
public FieldmhStatusStatus of the add operation.  
public FieldmlFlagsCombination of EdmUserDataFlags flags.  
public FieldmlSysRightsCombination of EdmSysRightFlags flags.  
public FieldmlUserIDUser's ID.  
public FieldmpoUserPointer to the user's interface if the mlFlags filed contained EdmUserDataFlags.Edmudf_GetInterface.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_members.html new file mode 100644 index 0000000..0b8b6a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData_members.html @@ -0,0 +1,172 @@ + + + + + + EdmUserData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmUserData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmUserData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmUserData.

+ + + + + + + +

Public Fields

+ + + + + + + + + + + + +
 NameDescription
public FieldmbsColumnViewName of the column view the user should see in File Explorer.  
public FieldmbsCompleteNameUser’s complete name.  
public FieldmbsEmailEmail address.  
public FieldmbsInitialsUser's initials.  
public FieldmbsPasswordUser's password.  
public FieldmbsUserDataArbitrary data associated with the user.  
public FieldmbsUserNameUser's login name.  
public FieldmhStatusStatus of the add operation.  
public FieldmlFlagsCombination of EdmUserDataFlags flags.  
public FieldmlSysRightsCombination of EdmSysRightFlags flags.  
public FieldmlUserIDUser's ID.  
public FieldmpoUserPointer to the user's interface if the mlFlags filed contained EdmUserDataFlags.Edmudf_GetInterface.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsColumnView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsColumnView.html new file mode 100644 index 0000000..d74ec34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsColumnView.html @@ -0,0 +1,150 @@ + + + + + + mbsColumnView Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsColumnView Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsColumnView Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the column view the user should see in File Explorer. +

Syntax

Visual Basic 
Public mbsColumnView As System.String
+
C# 
public System.string mbsColumnView
+
C++/CLI 
public:
+System.String^ mbsColumnView
+ +
+ + + + + +

Remarks

This field is empty is there isn't a column view.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsCompleteName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsCompleteName.html new file mode 100644 index 0000000..e9534bb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsCompleteName.html @@ -0,0 +1,150 @@ + + + + + + mbsCompleteName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsCompleteName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsCompleteName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User’s complete name. +

Syntax

Visual Basic 
Public mbsCompleteName As System.String
+
C# 
public System.string mbsCompleteName
+
C++/CLI 
public:
+System.String^ mbsCompleteName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsEmail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsEmail.html new file mode 100644 index 0000000..e500b76 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsEmail.html @@ -0,0 +1,150 @@ + + + + + + mbsEmail Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsEmail Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsEmail Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Email address. +

Syntax

Visual Basic 
Public mbsEmail As System.String
+
C# 
public System.string mbsEmail
+
C++/CLI 
public:
+System.String^ mbsEmail
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsInitials.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsInitials.html new file mode 100644 index 0000000..0491e1e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsInitials.html @@ -0,0 +1,150 @@ + + + + + + mbsInitials Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsInitials Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsInitials Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's initials. +

Syntax

Visual Basic 
Public mbsInitials As System.String
+
C# 
public System.string mbsInitials
+
C++/CLI 
public:
+System.String^ mbsInitials
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsPassword.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsPassword.html new file mode 100644 index 0000000..89a971f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsPassword.html @@ -0,0 +1,150 @@ + + + + + + mbsPassword Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPassword Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsPassword Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's password. +

Syntax

Visual Basic 
Public mbsPassword As System.String
+
C# 
public System.string mbsPassword
+
C++/CLI 
public:
+System.String^ mbsPassword
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserData.html new file mode 100644 index 0000000..bf57f17 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserData.html @@ -0,0 +1,150 @@ + + + + + + mbsUserData Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserData Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsUserData Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Arbitrary data associated with the user. +

Syntax

Visual Basic 
Public mbsUserData As System.String
+
C# 
public System.string mbsUserData
+
C++/CLI 
public:
+System.String^ mbsUserData
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserName.html new file mode 100644 index 0000000..39ed8f1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mbsUserName.html @@ -0,0 +1,150 @@ + + + + + + mbsUserName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsUserName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mbsUserName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's login name. +

Syntax

Visual Basic 
Public mbsUserName As System.String
+
C# 
public System.string mbsUserName
+
C++/CLI 
public:
+System.String^ mbsUserName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mhStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mhStatus.html new file mode 100644 index 0000000..f2cd830 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mhStatus.html @@ -0,0 +1,150 @@ + + + + + + mhStatus Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mhStatus Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mhStatus Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Status of the add operation. +

Syntax

Visual Basic 
Public mhStatus As System.Integer
+
C# 
public System.int mhStatus
+
C++/CLI 
public:
+System.int mhStatus
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlFlags.html new file mode 100644 index 0000000..c5e14a4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlFlags.html @@ -0,0 +1,150 @@ + + + + + + mlFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mlFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmUserDataFlags flags. +

Syntax

Visual Basic 
Public mlFlags As System.Integer
+
C# 
public System.int mlFlags
+
C++/CLI 
public:
+System.int mlFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlSysRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlSysRights.html new file mode 100644 index 0000000..131c7d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlSysRights.html @@ -0,0 +1,150 @@ + + + + + + mlSysRights Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlSysRights Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mlSysRights Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmSysRightFlags flags. +

Syntax

Visual Basic 
Public mlSysRights As System.Integer
+
C# 
public System.int mlSysRights
+
C++/CLI 
public:
+System.int mlSysRights
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlUserID.html new file mode 100644 index 0000000..72eb669 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mlUserID.html @@ -0,0 +1,150 @@ + + + + + + mlUserID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlUserID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mlUserID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + User's ID. +

Syntax

Visual Basic 
Public mlUserID As System.Integer
+
C# 
public System.int mlUserID
+
C++/CLI 
public:
+System.int mlUserID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mpoUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mpoUser.html new file mode 100644 index 0000000..9c76185 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserData~mpoUser.html @@ -0,0 +1,150 @@ + + + + + + mpoUser Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoUser Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmUserData Structure + : mpoUser Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Pointer to the user's interface if the mlFlags filed contained EdmUserDataFlags.Edmudf_GetInterface. +

Syntax

Visual Basic 
Public mpoUser As IEdmUser6
+
C# 
public IEdmUser6 mpoUser
+
C++/CLI 
public:
+IEdmUser6^ mpoUser
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserPictureFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserPictureFlag.html new file mode 100644 index 0000000..802e508 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserPictureFlag.html @@ -0,0 +1,136 @@ + + + + + + EdmUserPictureFlag Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUserPictureFlag Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUserPictureFlag Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags that are passed in the lEdmUserPictureFlags argument of  IEdmUserMgr8::CreateUserPicture. +

Syntax

Visual Basic 
Public Enum EdmUserPictureFlag 
+   Inherits System.Enum
+
C# 
public enum EdmUserPictureFlag : System.Enum 
+
C++/CLI 
public enum class EdmUserPictureFlag : public System.Enum 
+
+

Members

+ +
MemberDescription
Edmup_Nothing0 = Only valid flag in SOLIDWORKS PDM Professional 2013 and later
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserSetting.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserSetting.html new file mode 100644 index 0000000..3dc16ed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserSetting.html @@ -0,0 +1,138 @@ + + + + + + EdmUserSetting Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUserSetting Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUserSetting Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ User settings used by IEdmUser11::SetSettingsVar. +

Syntax

Visual Basic 
Public Enum EdmUserSetting 
+   Inherits System.Enum
+
C# 
public enum EdmUserSetting : System.Enum 
+
C++/CLI 
public enum class EdmUserSetting : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmUSv_AutoDelete9 = Whether to automatically delete local read-only files that are not part of the vault; 1 = true, 0 = false; this setting corresonds to the "Automatically delete local read-only files that are not part of the file vault" checkbox on the Explorer tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a user in the Admin Tool
EdmUSv_AutoGetLatest11 = Whether to always work with the latest version of files; 1 = true, 0 = false; this setting corresponds to the "Always work with latest version of files" checkbox on the Reference Dialog tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a user in the Admin Tool
EdmUSv_AutoGetLatestRefs43 = Whether to auto-select reference files to get latest when checking out; 1 = true, 0 = false; this setting corresponds to the "Auto select reference files to get latest when checking out" checkbox on the Reference Dialog tab on the Settings dialog that appears when you click "Settings" on the Properties dialog of a user in the Admin Tool
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserType.html new file mode 100644 index 0000000..30f8152 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUserType.html @@ -0,0 +1,139 @@ + + + + + + EdmUserType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUserType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUserType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Type of user passed in UserType of IEdmUserMgr10::AddUsers3. +

Syntax

Visual Basic 
Public Enum EdmUserType 
+   Inherits System.Enum
+
C# 
public enum EdmUserType : System.Enum 
+
C++/CLI 
public enum class EdmUserType : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmUser_Invalid0
EdmUser_LDAP3
EdmUser_PDM1
EdmUser_Windows2
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUtility.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUtility.html new file mode 100644 index 0000000..0ce0a3d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmUtility.html @@ -0,0 +1,163 @@ + + + + + + EdmUtility Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmUtility Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmUtility Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Constants that are passed to the IEdmVault7::CreateUtility to create utility interfaces of various kinds. +

Syntax

Visual Basic 
Public Enum EdmUtility 
+   Inherits System.Enum
+
C# 
public enum EdmUtility : System.Enum 
+
C++/CLI 
public enum class EdmUtility : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmUtil_AddCustomRefs8 = IEdmAddCustomRefs
EdmUtil_BatchAdd16 = IEdmBatchAdd
EdmUtil_BatchAddFolders14 = IEdmBatchAddFolders
EdmUtil_BatchChangeState22 = IEdmBatchChangeState
EdmUtil_BatchDelete20 = IEdmBatchDelete
EdmUtil_BatchGet12 = IEdmBatchGet
EdmUtil_BatchItemGeneration23 = IEdmBatchItemGeneration
EdmUtil_BatchItemReferenceUpdate25 = IEdmBatchItemReferenceUpdate
EdmUtil_BatchList13 = IEdmBatchListing
EdmUtil_BatchRefVars26 = IEdmBatchRefVars
EdmUtil_BatchUnlock6 = IEdmBatchUnlock
EdmUtil_BatchUpdate2 = IEdmBatchUpdate
EdmUtil_BomMgr24 = IEdmBomMgr
EdmUtil_CategoryMgr5 = IEdmCategoryMgr6
EdmUtil_ClearLocalCache19 = IEdmClearLocalCache
EdmUtil_FindUser29 = IEdmFindUser
EdmUtil_History17 = IEdmHistory
EdmUtil_HistoryUpdate21 = IEdmHistoryUpdate
EdmUtil_RawReferenceMgr15 = IEdmRawReferenceMgr
EdmUtil_RevisionMgr18 = IEdmRevisionMgr
EdmUtil_Search1 = IEdmSearch5 (creates regular search objects only; to create an advanced search object, use IEdmVault21::CreateSearch2)
EdmUtil_SerNoGen11 = IEdmSerNoGen6
EdmUtil_TaskMgr30 = IEdmTaskMgr
EdmUtil_TemplateMgr10 = IEdmTemplateMgr5
EdmUtil_UpdateReferences27 = IEdmUpdateReferences
EdmUtil_UserMgr3 = IEdmUserMgr5
EdmUtil_VariableMgr9 = IEdmVariableMgr5
EdmUtil_WorkflowMgr4 = IEdmWorkflowMgr6
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarOp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarOp.html new file mode 100644 index 0000000..771b000 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarOp.html @@ -0,0 +1,155 @@ + + + + + + EdmVarOp Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmVarOp Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmVarOp Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Operators for variable searches. +

Syntax

Visual Basic 
Public Enum EdmVarOp 
+   Inherits System.Enum
+
C# 
public enum EdmVarOp : System.Enum 
+
C++/CLI 
public enum class EdmVarOp : public System.Enum 
+
+

Members

+ + + + + + + + + + + + + + + + + + + + +
MemberDescription
EdmVarOp_DateEqualTo130
EdmVarOp_DateGreaterThan133
EdmVarOp_DateGreaterThanOrEqualTo135
EdmVarOp_DateLessThan132
EdmVarOp_DateLessThanOrEqualTo134
EdmVarOp_DateNotEqualTo131
EdmVarOp_NumberEqualTo120
EdmVarOp_NumberGreaterThan123
EdmVarOp_NumberGreaterThanOrEqualTo125
EdmVarOp_NumberLessThan122
EdmVarOp_NumberLessThanOrEqualTo124
EdmVarOp_NumberNotEqualTo121
EdmVarOp_StringContains106
EdmVarOp_StringDoesNotContain107
EdmVarOp_StringEqualTo100
EdmVarOp_StringGreaterThan103
EdmVarOp_StringGreaterThanOrEqualTo105
EdmVarOp_StringLessThan102
EdmVarOp_StringLessThanOrEqualTo104
EdmVarOp_StringNotEqualTo101
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal.html new file mode 100644 index 0000000..f6b9606 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal.html @@ -0,0 +1,157 @@ + + + + + + EdmVarVal Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVarVal Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVarVal Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Passed to IEdmBatchItemGeneration2::AddSelection2 to update a variable value. + +

Syntax

Visual Basic 
Public Structure EdmVarVal 
+   Inherits System.ValueType
+
C# 
public struct EdmVarVal : System.ValueType 
+
C++/CLI 
public value class EdmVarVal : public System.ValueType 
+
+ + +

Example

struct EdmVarVal{
  integer mlEdmVarValFlags;
  object moVarIDorName;
  object moValue;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_fields.html new file mode 100644 index 0000000..5bb5892 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_fields.html @@ -0,0 +1,137 @@ + + + + + + EdmVarVal Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVarVal Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVarVal Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmVarVal members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmlEdmVarValFlagsMust be 0.  
public FieldmoValueValue of variable.  
public FieldmoVarIDorNameVariable ID (integer) or name (string).  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_members.html new file mode 100644 index 0000000..a390f4a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal_members.html @@ -0,0 +1,164 @@ + + + + + + EdmVarVal Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVarVal Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVarVal Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmVarVal.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmlEdmVarValFlagsMust be 0.  
public FieldmoValueValue of variable.  
public FieldmoVarIDorNameVariable ID (integer) or name (string).  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~mlEdmVarValFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~mlEdmVarValFlags.html new file mode 100644 index 0000000..f8ea2ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~mlEdmVarValFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmVarValFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmVarValFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVarVal Structure + : mlEdmVarValFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Must be 0. +

Syntax

Visual Basic 
Public mlEdmVarValFlags As System.Integer
+
C# 
public System.int mlEdmVarValFlags
+
C++/CLI 
public:
+System.int mlEdmVarValFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moValue.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moValue.html new file mode 100644 index 0000000..17fff78 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moValue.html @@ -0,0 +1,150 @@ + + + + + + moValue Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moValue Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVarVal Structure + : moValue Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Value of variable. +

Syntax

Visual Basic 
Public moValue As System.Object
+
C# 
public System.object moValue
+
C++/CLI 
public:
+System.Object^ moValue
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moVarIDorName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moVarIDorName.html new file mode 100644 index 0000000..c06d241 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVarVal~moVarIDorName.html @@ -0,0 +1,150 @@ + + + + + + moVarIDorName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + moVarIDorName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVarVal Structure + : moVarIDorName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Variable ID (integer) or name (string). +

Syntax

Visual Basic 
Public moVarIDorName As System.Object
+
C# 
public System.object moVarIDorName
+
C++/CLI 
public:
+System.Object^ moVarIDorName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData.html new file mode 100644 index 0000000..d49995b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData.html @@ -0,0 +1,156 @@ + + + + + + EdmVariableData Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVariableData Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVariableData Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a variable created with IEdmVariableMgr6::AddVariables. + +

Syntax

Visual Basic 
Public Structure EdmVariableData 
+   Inherits System.ValueType
+
C# 
public struct EdmVariableData : System.ValueType 
+
C++/CLI 
public value class EdmVariableData : public System.ValueType 
+
+ + +

Example

struct EdmVariableData{
  string mbsVariableName;
  EdmVariableType meType;
  integer mlEdmVariableFlags;
  EdmAttributeData mpoAttributes;
  integer mlVariableID;
};

+ +
+

Example

+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_fields.html new file mode 100644 index 0000000..47f1729 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmVariableData Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVariableData Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVariableData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmVariableData members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsVariableNameName of variable.  
public FieldmeTypeVariable type as defined in EdmVariableType.  
public FieldmlEdmVariableFlagsCombination of EdmVariableFlags.  
public FieldmlVariableIDID of the variable.  
public FieldmpoAttributesEdmAttributeData to which this variable should be mapped.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_members.html new file mode 100644 index 0000000..fde8e31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData_members.html @@ -0,0 +1,165 @@ + + + + + + EdmVariableData Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmVariableData Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmVariableData Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmVariableData.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbsVariableNameName of variable.  
public FieldmeTypeVariable type as defined in EdmVariableType.  
public FieldmlEdmVariableFlagsCombination of EdmVariableFlags.  
public FieldmlVariableIDID of the variable.  
public FieldmpoAttributesEdmAttributeData to which this variable should be mapped.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mbsVariableName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mbsVariableName.html new file mode 100644 index 0000000..2826fb6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mbsVariableName.html @@ -0,0 +1,150 @@ + + + + + + mbsVariableName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsVariableName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVariableData Structure + : mbsVariableName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of variable. +

Syntax

Visual Basic 
Public mbsVariableName As System.String
+
C# 
public System.string mbsVariableName
+
C++/CLI 
public:
+System.String^ mbsVariableName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~meType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~meType.html new file mode 100644 index 0000000..9ca02e3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~meType.html @@ -0,0 +1,150 @@ + + + + + + meType Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + meType Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVariableData Structure + : meType Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Variable type as defined in EdmVariableType. +

Syntax

Visual Basic 
Public meType As EdmVariableType
+
C# 
public EdmVariableType meType
+
C++/CLI 
public:
+EdmVariableType meType
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlEdmVariableFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlEdmVariableFlags.html new file mode 100644 index 0000000..d0995f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlEdmVariableFlags.html @@ -0,0 +1,150 @@ + + + + + + mlEdmVariableFlags Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlEdmVariableFlags Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVariableData Structure + : mlEdmVariableFlags Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Combination of EdmVariableFlags. +

Syntax

Visual Basic 
Public mlEdmVariableFlags As System.Integer
+
C# 
public System.int mlEdmVariableFlags
+
C++/CLI 
public:
+System.int mlEdmVariableFlags
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlVariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlVariableID.html new file mode 100644 index 0000000..ac7d24f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mlVariableID.html @@ -0,0 +1,150 @@ + + + + + + mlVariableID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mlVariableID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVariableData Structure + : mlVariableID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + ID of the variable. +

Syntax

Visual Basic 
Public mlVariableID As System.Integer
+
C# 
public System.int mlVariableID
+
C++/CLI 
public:
+System.int mlVariableID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mpoAttributes.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mpoAttributes.html new file mode 100644 index 0000000..2d5d72a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableData~mpoAttributes.html @@ -0,0 +1,150 @@ + + + + + + mpoAttributes Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mpoAttributes Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmVariableData Structure + : mpoAttributes Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + EdmAttributeData to which this variable should be mapped. +

Syntax

Visual Basic 
Public mpoAttributes As EdmAttributeData()
+
C# 
public EdmAttributeData[] mpoAttributes
+
C++/CLI 
public:
+array<EdmAttributeData>^ mpoAttributes
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableFlags.html new file mode 100644 index 0000000..ccb7b51 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableFlags.html @@ -0,0 +1,139 @@ + + + + + + EdmVariableFlags Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmVariableFlags Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmVariableFlags Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Flags that set the style of variables used in file and folder data cards. Bitmask. +

Syntax

Visual Basic 
Public Enum EdmVariableFlags 
+   Inherits System.Enum
+
C# 
public enum EdmVariableFlags : System.Enum 
+
C++/CLI 
public enum class EdmVariableFlags : public System.Enum 
+
+

Members

+ + + + +
MemberDescription
EdmVar_Mandatory2 = Missing values are not permitted; only used for files, ignored for folders
EdmVar_Unique1 = Values of the variable must be unique; only used for files, ignored for folders
EdmVar_VerFreeUpdateAll4 = Every version and every revision, regardless access, workflow states etc., are affected by the variable update
EdmVar_VerFreeUpdateLatest8 = Only the latest version is affected by the variable update
+ + + + +

Remarks

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableType.html new file mode 100644 index 0000000..4fc0c5d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVariableType.html @@ -0,0 +1,141 @@ + + + + + + EdmVariableType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmVariableType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmVariableType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Constants that identify the data type of a variable. +

Syntax

Visual Basic 
Public Enum EdmVariableType 
+   Inherits System.Enum
+
C# 
public enum EdmVariableType : System.Enum 
+
C++/CLI 
public enum class EdmVariableType : public System.Enum 
+
+

Members

+ + + + + + +
MemberDescription
EdmVarType_Bool4 = Boolean data (i.e., yes or no values)
EdmVarType_Date5 = Date and time data
EdmVarType_Float3 = Floating-point data (64 bit)
EdmVarType_Int2 = Integer data (32 bit)
EdmVarType_None0 = Error code; used internally
EdmVarType_Text1 = String data
+ + + + +

Remarks

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVaultType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVaultType.html new file mode 100644 index 0000000..197d0a3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmVaultType.html @@ -0,0 +1,138 @@ + + + + + + EdmVaultType Enumeration + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmVaultType Enumeration
+ See Also   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : EdmVaultType Enumeration
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Vault types. +

Syntax

Visual Basic 
Public Enum EdmVaultType 
+   Inherits System.Enum
+
C# 
public enum EdmVaultType : System.Enum 
+
C++/CLI 
public enum class EdmVaultType : public System.Enum 
+
+

Members

+ + + +
MemberDescription
EdmVault_Invalid2
EdmVault_Professional0
EdmVault_Standard1
+ + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo.html new file mode 100644 index 0000000..8c08184 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo.html @@ -0,0 +1,158 @@ + + + + + + EdmViewInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmViewInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmViewInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Contains information about a file vault view. + +

Syntax

Visual Basic 
Public Structure EdmViewInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmViewInfo : System.ValueType 
+
C++/CLI 
public value class EdmViewInfo : public System.ValueType 
+
+ + +

Example

struct EdmViewInfo{
  string mbsVaultName;
  string mbsViewID;
  string mbsVaultID;
  string mbsPath;
  short mbLoggedIn;
};

+ +
+

Example

+

Remarks

This structure is returned by IEdmVault8::GetVaultViews.
+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_fields.html new file mode 100644 index 0000000..b73fb9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_fields.html @@ -0,0 +1,138 @@ + + + + + + EdmViewInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmViewInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmViewInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmViewInfo members.

+ + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbLoggedInTure if you are logged into the vault, false if not  
public FieldmbsPathPath to the view root folder.  
public FieldmbsVaultIDUnique ID of the vault.  
public FieldmbsVaultNameName of the file vault.  
public FieldmbsViewIDUnique ID of the view.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_members.html new file mode 100644 index 0000000..43f175e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo_members.html @@ -0,0 +1,165 @@ + + + + + + EdmViewInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmViewInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmViewInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmViewInfo.

+ + + + + + + +

Public Fields

+ + + + + +
 NameDescription
public FieldmbLoggedInTure if you are logged into the vault, false if not  
public FieldmbsPathPath to the view root folder.  
public FieldmbsVaultIDUnique ID of the vault.  
public FieldmbsVaultNameName of the file vault.  
public FieldmbsViewIDUnique ID of the view.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbLoggedIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbLoggedIn.html new file mode 100644 index 0000000..03f4370 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbLoggedIn.html @@ -0,0 +1,150 @@ + + + + + + mbLoggedIn Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbLoggedIn Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmViewInfo Structure + : mbLoggedIn Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Ture if you are logged into the vault, false if not +

Syntax

Visual Basic 
Public mbLoggedIn As System.Short
+
C# 
public System.short mbLoggedIn
+
C++/CLI 
public:
+System.short mbLoggedIn
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsPath.html new file mode 100644 index 0000000..5b0eac4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsPath.html @@ -0,0 +1,150 @@ + + + + + + mbsPath Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsPath Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmViewInfo Structure + : mbsPath Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Path to the view root folder. +

Syntax

Visual Basic 
Public mbsPath As System.String
+
C# 
public System.string mbsPath
+
C++/CLI 
public:
+System.String^ mbsPath
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultID.html new file mode 100644 index 0000000..69f2f0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultID.html @@ -0,0 +1,150 @@ + + + + + + mbsVaultID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsVaultID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmViewInfo Structure + : mbsVaultID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the vault. +

Syntax

Visual Basic 
Public mbsVaultID As System.String
+
C# 
public System.string mbsVaultID
+
C++/CLI 
public:
+System.String^ mbsVaultID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultName.html new file mode 100644 index 0000000..068c618 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsVaultName.html @@ -0,0 +1,152 @@ + + + + + + mbsVaultName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsVaultName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmViewInfo Structure + : mbsVaultName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the file vault. +

Syntax

Visual Basic 
Public mbsVaultName As System.String
+
C# 
public System.string mbsVaultName
+
C++/CLI 
public:
+System.String^ mbsVaultName
+ +
+ + + + +

Example

+ + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsViewID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsViewID.html new file mode 100644 index 0000000..d735b1b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmViewInfo~mbsViewID.html @@ -0,0 +1,150 @@ + + + + + + mbsViewID Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsViewID Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmViewInfo Structure + : mbsViewID Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Unique ID of the view. +

Syntax

Visual Basic 
Public mbsViewID As System.String
+
C# 
public System.string mbsViewID
+
C++/CLI 
public:
+System.String^ mbsViewID
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo.html new file mode 100644 index 0000000..101d0d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo.html @@ -0,0 +1,156 @@ + + + + + + EdmWorkflowInfo Structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmWorkflowInfo Structure + +
+ See Also  + Members   + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmWorkflowInfo Structure
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Holds information about a file's workflow state. + +

Syntax

Visual Basic 
Public Structure EdmWorkflowInfo 
+   Inherits System.ValueType
+
C# 
public struct EdmWorkflowInfo : System.ValueType 
+
C++/CLI 
public value class EdmWorkflowInfo : public System.ValueType 
+
+ + +

Example

struct EdmWorkflowInfo
  string mbsStateName;
  string mbsStateIcon;
  string mbsWorkflowName;

};

+ +
+

Example

+

Remarks

This structure is referenced in the EdmListFile2 structure.
+ + + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ +
+ + + diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_fields.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_fields.html new file mode 100644 index 0000000..8d50355 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_fields.html @@ -0,0 +1,136 @@ + + + + + + EdmWorkflowInfo Structure Fields + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmWorkflowInfo Structure Fields + +
+ See Also  +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmWorkflowInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

For a list of all members of this type, see EdmWorkflowInfo members.

+ + +

Public Fields

+ + + +
 NameDescription
public FieldmbsStateIconName of the icon resource associated with the state.  
public FieldmbsStateNameName of state.  
public FieldmbsWorkflowNameName of the worflow to which the state belongs.  
Top
+ + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_members.html new file mode 100644 index 0000000..55dd6e7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo_members.html @@ -0,0 +1,163 @@ + + + + + + EdmWorkflowInfo Structure Members + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EdmWorkflowInfo Structure Members + +
+ See Also  + Fields  + + + +
+ + + + +
+ + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + : EdmWorkflowInfo Structure
+
+ + +
+ + +
+
+
+ +
+ +
+
+
+

The following tables list the members exposed by EdmWorkflowInfo.

+ + + + + + + +

Public Fields

+ + + +
 NameDescription
public FieldmbsStateIconName of the icon resource associated with the state.  
public FieldmbsStateNameName of state.  
public FieldmbsWorkflowNameName of the worflow to which the state belongs.  
Top
+ + + + + + + + + + + + + + + + + + + + + + +

See Also

+ +
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateIcon.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateIcon.html new file mode 100644 index 0000000..5c1e23d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateIcon.html @@ -0,0 +1,150 @@ + + + + + + mbsStateIcon Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStateIcon Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmWorkflowInfo Structure + : mbsStateIcon Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the icon resource associated with the state. +

Syntax

Visual Basic 
Public mbsStateIcon As System.String
+
C# 
public System.string mbsStateIcon
+
C++/CLI 
public:
+System.String^ mbsStateIcon
+ +
+ + + + + +

Remarks

The state icons are stored in Wflcons.dll.
+ + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateName.html new file mode 100644 index 0000000..911aa08 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsStateName.html @@ -0,0 +1,150 @@ + + + + + + mbsStateName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsStateName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmWorkflowInfo Structure + : mbsStateName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of state. +

Syntax

Visual Basic 
Public mbsStateName As System.String
+
C# 
public System.string mbsStateName
+
C++/CLI 
public:
+System.String^ mbsStateName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsWorkflowName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsWorkflowName.html new file mode 100644 index 0000000..36c71d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.EdmWorkflowInfo~mbsWorkflowName.html @@ -0,0 +1,150 @@ + + + + + + mbsWorkflowName Field + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + mbsWorkflowName Field + +
+ See Also  + +
+ + + + +
+ + + + + + + + + + + + + + + +
+
+EPDM.Interop.epdm Namespace + > EdmWorkflowInfo Structure + : mbsWorkflowName Field
+
+ + + +
+ +
+ + +
+
+ +
+ +
+
+
+ + Name of the worflow to which the state belongs. +

Syntax

Visual Basic 
Public mbsWorkflowName As System.String
+
C# 
public System.string mbsWorkflowName
+
C++/CLI 
public:
+System.String^ mbsWorkflowName
+ +
+ + + + + + + + +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs.html new file mode 100644 index 0000000..6bfe4ce --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs.html @@ -0,0 +1,150 @@ + + + + + + IEdmAddCustomRefs Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create or manage user-defined file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddCustomRefs 
+
C# 
public interface IEdmAddCustomRefs 
+
C++/CLI 
public interface class IEdmAddCustomRefs 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To manage existing references:

+
    +
  1. Create IEdmAddCustomRefs using IEdmVault7::CreateUtility. +
  2. Call IEdmAddCustomRefs::ShowEditReferencesDlg to display the existing file references.
+

To create new references:

+
    +
  1. Create IEdmAddCustomRefs using IEdmVault7::CreateUtility. +
  2. Call IEdmAddCustomRefs::AddReferencesClipboard, IEdmAddCustomRefs::AddReferencesID, or IEdmAddCustomRefs::AddReferencesPath to add file references. +
  3. (Optional) Call IEdmAddCustomRefs::CreateTree and IEdmAddCustomRefs::ShowDlg to display the file references. +
  4. Call IEdmAddCustomRefs::CreateReferences to create the new references.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2.html new file mode 100644 index 0000000..3296cb9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2.html @@ -0,0 +1,136 @@ + + + + + + IEdmAddCustomRefs2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create or manage user-defined file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddCustomRefs2 
+   Inherits IEdmAddCustomRefs 
+
C# 
public interface IEdmAddCustomRefs2 : IEdmAddCustomRefs  
+
C++/CLI 
public interface class IEdmAddCustomRefs2 : public IEdmAddCustomRefs  
+
+ + + + +

Remarks

This interface inherits from IEdmAddCustomRefs.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_members.html new file mode 100644 index 0000000..8ca0f38 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmAddCustomRefs2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddCustomRefs2.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddReferencesID2Adds file references by ID and quantity.  
 MethodAddReferencesPath2Adds file references by file system path and quantity.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_methods.html new file mode 100644 index 0000000..9a9701f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmAddCustomRefs2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddCustomRefs2 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddReferencesID2Adds file references by ID and quantity.  
 MethodAddReferencesPath2Adds file references by file system path and quantity.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesID2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesID2.html new file mode 100644 index 0000000..e8ff6f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesID2.html @@ -0,0 +1,172 @@ + + + + + + AddReferencesID2 Method (IEdmAddCustomRefs2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReferencesID2 Method (IEdmAddCustomRefs2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs2 Interface + : AddReferencesID2 Method (IEdmAddCustomRefs2)
+ +
+ + + +
+ +
+ + +
+
+
lRootFile
+
ID of file to which to add file references
+
+
+
ppoReferences
+
Array of EdmSelItems containing file references to add to lRootFile
+
+
+
plQuantity
+
Array of times that the files in ppoReferences are referenced in lRootFile
+
+ +
+ +
+ + +
+
+ Adds file references by ID and quantity. + + +

Syntax

Visual Basic 
Sub AddReferencesID2( _
+   ByVal lRootFile As System.Integer, _
+   ByRef ppoReferences() As EdmSelItem, _
+   ByRef plQuantity() As System.Integer _
+) 
+
C# 
void AddReferencesID2( 
+   System.int lRootFile,
+   ref EdmSelItem[] ppoReferences,
+   ref System.int[] plQuantity
+)
+
C++/CLI 
void AddReferencesID2( 
+&   System.int lRootFile,
+&   array<EdmSelItem>^% ppoReferences,
+&   System.array<int>^% plQuantity
+) 
+ +

Parameters

lRootFile
+
ID of file to which to add file references
ppoReferences
+
Array of EdmSelItems containing file references to add to lRootFile
plQuantity
+
Array of times that the files in ppoReferences are referenced in lRootFile
+ +
+ + + + + +

Remarks

This method supersedes IEdmAddCustomRefs::AddReferencesID, which adds reference files only by ID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 2013 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesPath2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesPath2.html new file mode 100644 index 0000000..e622729 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs2~AddReferencesPath2.html @@ -0,0 +1,172 @@ + + + + + + AddReferencesPath2 Method (IEdmAddCustomRefs2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReferencesPath2 Method (IEdmAddCustomRefs2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs2 Interface + : AddReferencesPath2 Method (IEdmAddCustomRefs2)
+ +
+ + + +
+ +
+ + +
+
+
lRootFile
+
ID of file to which to add file references
+
+
+
ppoReferences
+
Array of paths to reference files
+
+
+
plQuantity
+
Array of times that the files in ppoReferences are referenced in lRootFile
+
+ +
+ +
+ + +
+
+ Adds file references by file system path and quantity. + + +

Syntax

Visual Basic 
Sub AddReferencesPath2( _
+   ByVal lRootFile As System.Integer, _
+   ByRef ppoReferences() As System.String, _
+   ByRef plQuantity() As System.Integer _
+) 
+
C# 
void AddReferencesPath2( 
+   System.int lRootFile,
+   ref System.string[] ppoReferences,
+   ref System.int[] plQuantity
+)
+
C++/CLI 
void AddReferencesPath2( 
+&   System.int lRootFile,
+&   System.array<String^>^% ppoReferences,
+&   System.array<int>^% plQuantity
+) 
+ +

Parameters

lRootFile
+
ID of file to which to add file references
ppoReferences
+
Array of paths to reference files
plQuantity
+
Array of times that the files in ppoReferences are referenced in lRootFile
+ +
+ + + + + +

Remarks

This method supersedes IEdmAddCustomRefs::AddReferencesPath, which adds reference files only by file system path.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 2013 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_members.html new file mode 100644 index 0000000..f6dd8c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmAddCustomRefs Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddCustomRefs.

+ + +

Public Methods

+ + + + + + + +
 NameDescription
 MethodAddReferencesClipboardAdds a file reference that has been copied to the Windows clipboard to another checked-out file.  
 MethodAddReferencesIDObsolete. Superseded by IEdmAddCustomRefs2::AddReferencesID2.  
 MethodAddReferencesPathObsolete. Superseded by IEdmAddCustomRefs2::AddReferencesPath2.  
 MethodCreateReferencesCreates the custom file references in the file vault.  
 MethodCreateTreeComputes the file reference tree.  
 MethodShowDlgDisplays the Create File References dialog box that allows the user to edit the new file references.  
 MethodShowEditReferencesDlgDisplays the Edit User-Defined File References dialog box that allows the user to edit the existing file references.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_methods.html new file mode 100644 index 0000000..42d9aef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmAddCustomRefs Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddCustomRefs Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddCustomRefs Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddCustomRefs members.

+

Public Methods

+ + + + + + + +
 NameDescription
 MethodAddReferencesClipboardAdds a file reference that has been copied to the Windows clipboard to another checked-out file.  
 MethodAddReferencesIDObsolete. Superseded by IEdmAddCustomRefs2::AddReferencesID2.  
 MethodAddReferencesPathObsolete. Superseded by IEdmAddCustomRefs2::AddReferencesPath2.  
 MethodCreateReferencesCreates the custom file references in the file vault.  
 MethodCreateTreeComputes the file reference tree.  
 MethodShowDlgDisplays the Create File References dialog box that allows the user to edit the new file references.  
 MethodShowEditReferencesDlgDisplays the Edit User-Defined File References dialog box that allows the user to edit the existing file references.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesClipboard.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesClipboard.html new file mode 100644 index 0000000..f87cd1d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesClipboard.html @@ -0,0 +1,159 @@ + + + + + + AddReferencesClipboard Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReferencesClipboard Method (IEdmAddCustomRefs)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : AddReferencesClipboard Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
lRootFile
+
ID of file to which to add the file reference that is on the Windows clipboard
+
+ +
+ +
+ + +
+
+ Adds a file reference that has been copied to the Windows clipboard to another checked-out file. + + +

Syntax

Visual Basic 
Sub AddReferencesClipboard( _
+   ByVal lRootFile As System.Integer _
+) 
+
C# 
void AddReferencesClipboard( 
+   System.int lRootFile
+)
+
C++/CLI 
void AddReferencesClipboard( 
+&   System.int lRootFile
+) 
+ +

Parameters

lRootFile
+
ID of file to which to add the file reference that is on the Windows clipboard
+ +
+ + + + +

Example

+

Remarks

This method is valid only after the user has copied a file to the Windows clipboard. A file reference on the clipboard is in CF_HDROP format.

+

After calling this method, you must call IEdmAddCustomRefs::CreateReferences to create the custom file reference in the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesID.html new file mode 100644 index 0000000..4cc0572 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesID.html @@ -0,0 +1,163 @@ + + + + + + AddReferencesID Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReferencesID Method (IEdmAddCustomRefs)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : AddReferencesID Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
lRootFile
+
ID of file to which to add file references
+
+
+
ppoReferences
+
Array of EdmSelItems containing file references to add to lRootFile
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmAddCustomRefs2::AddReferencesID2. + + +

Syntax

Visual Basic 
Sub AddReferencesID( _
+   ByVal lRootFile As System.Integer, _
+   ByRef ppoReferences() As EdmSelItem _
+) 
+
C# 
void AddReferencesID( 
+   System.int lRootFile,
+   ref EdmSelItem[] ppoReferences
+)
+
C++/CLI 
void AddReferencesID( 
+&   System.int lRootFile,
+&   array<EdmSelItem>^% ppoReferences
+) 
+ +

Parameters

lRootFile
+
ID of file to which to add file references
ppoReferences
+
Array of EdmSelItems containing file references to add to lRootFile
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesPath.html new file mode 100644 index 0000000..ef1890c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~AddReferencesPath.html @@ -0,0 +1,163 @@ + + + + + + AddReferencesPath Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReferencesPath Method (IEdmAddCustomRefs)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : AddReferencesPath Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
lRootFile
+
ID of file to which to add file references
+
+
+
ppoReferences
+
Array of paths to reference files to add to lRootFile
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmAddCustomRefs2::AddReferencesPath2. + + +

Syntax

Visual Basic 
Sub AddReferencesPath( _
+   ByVal lRootFile As System.Integer, _
+   ByRef ppoReferences() As System.String _
+) 
+
C# 
void AddReferencesPath( 
+   System.int lRootFile,
+   ref System.string[] ppoReferences
+)
+
C++/CLI 
void AddReferencesPath( 
+&   System.int lRootFile,
+&   System.array<String^>^% ppoReferences
+) 
+ +

Parameters

lRootFile
+
ID of file to which to add file references
ppoReferences
+
Array of paths to reference files to add to lRootFile
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateReferences.html new file mode 100644 index 0000000..8c9f6f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateReferences.html @@ -0,0 +1,150 @@ + + + + + + CreateReferences Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateReferences Method (IEdmAddCustomRefs)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : CreateReferences Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Creates the custom file references in the file vault. + + +

Syntax

Visual Basic 
Function CreateReferences() As System.Boolean
+
C# 
System.bool CreateReferences()
+
C++/CLI 
System.bool CreateReferences(); 
+ + + +

Return Value

True if any file was created, false if no files were created
+ + + + +

Example

+

Remarks

Before calling this method, you must call one of the following methods to add a file reference to another file:

+ +

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateTree.html new file mode 100644 index 0000000..9b27ccc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~CreateTree.html @@ -0,0 +1,158 @@ + + + + + + CreateTree Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTree Method (IEdmAddCustomRefs)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : CreateTree Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
lEdmCreateReferenceFlags
+
Combination of EdmCreateReferenceFlags bits
+
+ +
+ +
+ + +
+
+ Computes the file reference tree. + + +

Syntax

Visual Basic 
Function CreateTree( _
+   ByVal lEdmCreateReferenceFlags As System.Integer _
+) As System.Boolean
+
C# 
System.bool CreateTree( 
+   System.int lEdmCreateReferenceFlags
+)
+
C++/CLI 
System.bool CreateTree( 
+&   System.int lEdmCreateReferenceFlags
+) 
+ +

Parameters

lEdmCreateReferenceFlags
+
Combination of EdmCreateReferenceFlags bits
+ +

Return Value

True if there are file references, false if not
+ + + + +

Example

+

Remarks

If this method returns true, call IEdmAddCustomRefs::ShowDlg to display and edit the file references.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowDlg.html new file mode 100644 index 0000000..6fad73d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowDlg.html @@ -0,0 +1,158 @@ + + + + + + ShowDlg Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmAddCustomRefs)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : ShowDlg Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Displays the Create File References dialog box that allows the user to edit the new file references. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal hParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int hParentWnd
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int hParentWnd
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
+ +

Return Value

True if the user clicked OK, false if the user clicked Cancel
+ + + + +

Example

+

Remarks

Before calling this method, call IEdmAddCustomRefs::CreateTree to compute the file reference tree.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowEditReferencesDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowEditReferencesDlg.html new file mode 100644 index 0000000..9fe919a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddCustomRefs~ShowEditReferencesDlg.html @@ -0,0 +1,165 @@ + + + + + + ShowEditReferencesDlg Method (IEdmAddCustomRefs) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowEditReferencesDlg Method (IEdmAddCustomRefs)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddCustomRefs Interface + : ShowEditReferencesDlg Method (IEdmAddCustomRefs)
+ +
+ + + +
+ +
+ + +
+
+
ppoFileIdArray
+
Array of IDs of the files to edit
+
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Displays the Edit User-Defined File References dialog box that allows the user to edit the existing file references. + + +

Syntax

Visual Basic 
Function ShowEditReferencesDlg( _
+   ByRef ppoFileIdArray() As System.Integer, _
+   ByVal lParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowEditReferencesDlg( 
+   ref System.int[] ppoFileIdArray,
+   System.int lParentWnd
+)
+
C++/CLI 
System.bool ShowEditReferencesDlg( 
+&   System.array<int>^% ppoFileIdArray,
+&   System.int lParentWnd
+) 
+ +

Parameters

ppoFileIdArray
+
Array of IDs of the files to edit
lParentWnd
+
Parent window handle
+ +

Return Value

True if the user modified the file references, false if no changes were made
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5.html new file mode 100644 index 0000000..3f733cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5.html @@ -0,0 +1,151 @@ + + + + + + IEdmAddIn5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddIn5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddIn5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a SOLIDWORKS PDM Professional add-in.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddIn5 
+
C# 
public interface IEdmAddIn5 
+
C++/CLI 
public interface class IEdmAddIn5 
+
+ +

Example

+

Example

+

Remarks

This interface inherits from IUnknown. See Using and Implementing IUnknown (COM).

+

To create a SOLIDWORKS PDM Professional add-in:

+
    +
  1. Create a class that implements this interface and its methods. +
  2. Add menu commands, toolbar buttons, and hooks in your implementation of IEdmAddIn5::GetAddInInfo. +
  3. Add callbacks for the hooks, menu commands, and toolbar buttons in your implementation of IEdmAddIn5::OnCmd. +
  4. Register the add-in via the Administration Add-ins dialog. During registration, SOLIDWORKS PDM Professional calls your IEdmAddIn5::GetAddInInfo method to obtain information about the add-in.
+

After the add-in is created and registered, SOLIDWORKS PDM Professional calls your IEdmAddIn5::OnCmd method whenever the user executes a menu command or hook from your add-in.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_members.html new file mode 100644 index 0000000..d397481 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmAddIn5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddIn5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddIn5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddIn5.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetAddInInfoCalled by SOLIDWORKS PDM Professional to obtain information about this add-in and the commands it supports.  
 MethodOnCmdCalled by SOLIDWORKS PDM Professional whenever one of the menu commands or hooks registered in IEdmAddIn5::GetAddInInfo is executed.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_methods.html new file mode 100644 index 0000000..d758e94 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmAddIn5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddIn5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddIn5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddIn5 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetAddInInfoCalled by SOLIDWORKS PDM Professional to obtain information about this add-in and the commands it supports.  
 MethodOnCmdCalled by SOLIDWORKS PDM Professional whenever one of the menu commands or hooks registered in IEdmAddIn5::GetAddInInfo is executed.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~GetAddInInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~GetAddInInfo.html new file mode 100644 index 0000000..dcd122f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~GetAddInInfo.html @@ -0,0 +1,172 @@ + + + + + + GetAddInInfo Method (IEdmAddIn5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAddInInfo Method (IEdmAddIn5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddIn5 Interface + : GetAddInInfo Method (IEdmAddIn5)
+ +
+ + + +
+ +
+ + +
+
+
poInfo
+
EdmAddInInfo structure; before returning this structure, populate it with information about your add-in; used by the Administration Add-ins dialog during add-in registration
+
+
+
poVault
+
IEdmVault5; pointer to the active vault
+
+
+
poCmdMgr
+
IEdmCmdMgr5; pointer to the command manager that you use to add hooks, menu commands, and toolbar buttons
+
+ +
+ +
+ + +
+
+ Called by SOLIDWORKS PDM Professional to obtain information about this add-in and the commands it supports. + + +

Syntax

Visual Basic 
Sub GetAddInInfo( _
+   ByRef poInfo As EdmAddInInfo, _
+   ByVal poVault As IEdmVault5, _
+   ByVal poCmdMgr As IEdmCmdMgr5 _
+) 
+
C# 
void GetAddInInfo( 
+   out EdmAddInInfo poInfo,
+   IEdmVault5 poVault,
+   IEdmCmdMgr5 poCmdMgr
+)
+
C++/CLI 
void GetAddInInfo( 
+&   [Out] EdmAddInInfo poInfo,
+&   IEdmVault5^ poVault,
+&   IEdmCmdMgr5^ poCmdMgr
+) 
+ +

Parameters

poInfo
+
EdmAddInInfo structure; before returning this structure, populate it with information about your add-in; used by the Administration Add-ins dialog during add-in registration
poVault
+
IEdmVault5; pointer to the active vault
poCmdMgr
+
IEdmCmdMgr5; pointer to the command manager that you use to add hooks, menu commands, and toolbar buttons
+ +
+ + +

Example

See the IEdmAddin5 examples. +
+ +

Remarks

See IEdmAddIn5 for more information.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html new file mode 100644 index 0000000..465829a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddIn5~OnCmd.html @@ -0,0 +1,164 @@ + + + + + + OnCmd Method (IEdmAddIn5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnCmd Method (IEdmAddIn5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddIn5 Interface + : OnCmd Method (IEdmAddIn5)
+ +
+ + + +
+ +
+ + +
+
+
poCmd
+
EdmCmd structure; command information common to all affected files and folders
+
+
+
ppoData
+
Array of EdmCmdData structures, one for each affected file or folder
+
+ +
+ +
+ + +
+
+ Called by SOLIDWORKS PDM Professional whenever one of the menu commands or hooks registered in IEdmAddIn5::GetAddInInfo is executed. + + +

Syntax

Visual Basic 
Sub OnCmd( _
+   ByRef poCmd As EdmCmd, _
+   ByRef ppoData() As EdmCmdData _
+) 
+
C# 
void OnCmd( 
+   out EdmCmd poCmd,
+   out EdmCmdData[] ppoData
+)
+
C++/CLI 
void OnCmd( 
+&   [Out] EdmCmd poCmd,
+&   [Out] array<EdmCmdData>^ ppoData
+) 
+ +

Parameters

poCmd
+
EdmCmd structure; command information common to all affected files and folders
ppoData
+
Array of EdmCmdData structures, one for each affected file or folder
+ +
+ + +

Example

See the IEdmAddin5 examples.

+
+ +

Remarks

See the IEdmAddIn5 topic for more information.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5.html new file mode 100644 index 0000000..3bddbc9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5.html @@ -0,0 +1,144 @@ + + + + + + IEdmAddInDrawButton5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInDrawButton5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInDrawButton5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to dynamically draw an add-in toolbar button.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInDrawButton5 
+
C# 
public interface IEdmAddInDrawButton5 
+
C++/CLI 
public interface class IEdmAddInDrawButton5 
+
+ + + + +

Remarks

This interface inherits from IUnknown. See Using and Implementing IUnknown (COM).

+

To dynamically draw a toolbar button:

+
    +
  1. Create a class that implements both IEdmAddIn5 and IEdmAddInDrawButton5. +
  2. Implement IEdmAddIn5::GetAddInInfo, calling IEdmCmdMgr5::AddCmd with lEdmMenuFlags setting the EdmMenuFlags.EdmMenu_OwnerDrawToolbarButton flag. +
  3. Implement IEdmAddInDrawButton5::DrawToolbarButton to draw a toolbar button when called by SOLIDWORKS PDM Professional.
+

To draw a fixed toolbar button:

+
    +
  1. Call IEdmCmdMgr5::AddToolbarImage. +
  2. Call IEdmCmdMgr5::AddCmd, passing in the toolbar button image ID used in IEdmCmdMgr5::AddToolbarImage.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_members.html new file mode 100644 index 0000000..d7982dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmAddInDrawButton5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInDrawButton5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInDrawButton5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInDrawButton5.

+ + +

Public Methods

+ +
 NameDescription
 MethodDrawToolbarButton

Dynamically draws an add-in toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

 
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_methods.html new file mode 100644 index 0000000..3e36583 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmAddInDrawButton5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInDrawButton5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInDrawButton5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInDrawButton5 members.

+

Public Methods

+ +
 NameDescription
 MethodDrawToolbarButton

Dynamically draws an add-in toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

 
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5~DrawToolbarButton.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5~DrawToolbarButton.html new file mode 100644 index 0000000..d11965e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInDrawButton5~DrawToolbarButton.html @@ -0,0 +1,201 @@ + + + + + + DrawToolbarButton Method (IEdmAddInDrawButton5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DrawToolbarButton Method (IEdmAddInDrawButton5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInDrawButton5 Interface + : DrawToolbarButton Method (IEdmAddInDrawButton5)
+ +
+ + + +
+ +
+ + +
+
+
lCmdID
+
Command ID passed to IEdmCmdMgr5::AddCmd during add-in registration
+
+
+
hDC
+
Handle of the device context to draw on
+
+
+
poDestRect
+
EdmRect structure; rectangle within which to draw
+
+
+
eState
+
State of the button image to draw as defined in EdmButtonState
+
+
+
plRetBackgroundColor
+
RGB value of a transparent color
+
+ +
+ +
+ + +
+
+

Dynamically draws an add-in toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

+ + +

Syntax

Visual Basic 
Sub DrawToolbarButton( _
+   ByVal lCmdID As System.Integer, _
+   ByVal hDC As System.Integer, _
+   ByRef poDestRect As EdmRect, _
+   ByVal eState As EdmButtonState, _
+   ByRef plRetBackgroundColor As System.Integer _
+) 
+
C# 
void DrawToolbarButton( 
+   System.int lCmdID,
+   System.int hDC,
+   ref EdmRect poDestRect,
+   EdmButtonState eState,
+   out System.int plRetBackgroundColor
+)
+
C++/CLI 
void DrawToolbarButton( 
+&   System.int lCmdID,
+&   System.int hDC,
+&   EdmRect% poDestRect,
+&   EdmButtonState eState,
+&   [Out] System.int plRetBackgroundColor
+) 
+ +

Parameters

lCmdID
+
Command ID passed to IEdmCmdMgr5::AddCmd during add-in registration
hDC
+
Handle of the device context to draw on
poDestRect
+
EdmRect structure; rectangle within which to draw
eState
+
State of the button image to draw as defined in EdmButtonState
plRetBackgroundColor
+
RGB value of a transparent color
+ +
+ + +

Example

Visual Basic sample code showing how to dynamically draw a toolbar button

+
    +
  1. Add the toolbar button command in the IEdmAddIn5::GetAddInInfo implementation:
+
+

poCmdMgr.AddCmd 1000, "First command", EdmMenu_HasToolbarButton Or EdmMenu_OwnerDrawToolbarButton, "This is the first command", "First command", -1, -1

+
    +
  1. At the top of your class implementation, add declarations of the Win32 GDI functions that you want to use (read more about this in the Visual Basic online help):
+
+

Private Declare Sub LineTo Lib "Gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long)

Private Declare Sub MoveToEx Lib "Gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal OldPnt As Long)

Private Declare Sub Arc Lib "Gdi32" (ByVal hDC As Long, _
                                     ByVal x1 As Long, ByVal y1 As Long, _
                                     ByVal x2 As Long, ByVal y2 As Long, _
                                     ByVal xstart As Long, ByVal ystart As Long, _
                                     ByVal xend As Long, ByVal yend As Long)

+
    +
  1. Implement IEdmAddInDrawButton5::DrawToolbarButton (called by SOLIDWORKS PDM Professional):
+
+

Private Sub IEdmAddInDrawButton5_DrawToolbarButton(ByVal lCmdID As Long, ByVal hDC As Long, poDestRect As EdmRect, ByVal eState As EdmButtonState, plRetBackgroundColor As Long)
On Error GoTo ErrHand

If eState = BState_Cold Then
  'Draw a cross using the default pen
  MoveToEx hDC, poDestRect.mlLeft, poDestRect.mlTop, 0
  LineTo hDC, poDestRect.mlRight, poDestRect.mlBottom
  MoveToEx hDC, poDestRect.mlLeft, poDestRect.mlBottom, 0
  LineTo hDC, poDestRect.mlRight, poDestRect.mlTop
Else
  'Draw a circle using the default pen
  Arc hDC, poDestRect.mlLeft, poDestRect.mlTop, poDestRect.mlRight, poDestRect.mlBottom, _
  poDestRect.mlLeft + (poDestRect.mlRight - poDestRect.mlLeft) / 2, poDestRect.mlTop, _
  poDestRect.mlLeft + (poDestRect.mlRight - poDestRect.mlLeft) / 2, poDestRect.mlTop
End If

Exit Sub
ErrHand:
Dim errnum As String
errnum = Err.Number
MsgBox "Error drawing toolbar button!" + vbLf + Err.Description + vbLf + errnum
End Sub

+
+ +

Remarks

See the IEdmAddInDrawButton5 topic for more information.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5.html new file mode 100644 index 0000000..79d6cb5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5.html @@ -0,0 +1,140 @@ + + + + + + IEdmAddInMgr5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to administer add-ins.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInMgr5 
+
C# 
public interface IEdmAddInMgr5 
+
C++/CLI 
public interface class IEdmAddInMgr5 
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_members.html new file mode 100644 index 0000000..9d76dee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmAddInMgr5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInMgr5.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddAddInsInstalls add-ins in SOLIDWORKS PDM Professional.  
 MethodGetAddInInfoObsolete. Superseded by IEdmAddInMgr6::GetAddInInfo2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_methods.html new file mode 100644 index 0000000..536a944 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmAddInMgr5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInMgr5 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddAddInsInstalls add-ins in SOLIDWORKS PDM Professional.  
 MethodGetAddInInfoObsolete. Superseded by IEdmAddInMgr6::GetAddInInfo2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~AddAddIns.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~AddAddIns.html new file mode 100644 index 0000000..ae01a97 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~AddAddIns.html @@ -0,0 +1,169 @@ + + + + + + AddAddIns Method (IEdmAddInMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddAddIns Method (IEdmAddInMgr5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr5 Interface + : AddAddIns Method (IEdmAddInMgr5)
+ +
+ + + +
+ +
+ + +
+
+
bsPathList
+
Linefeed-separated list of path and file names of add-in files
+
+
+
lEdmAddAddInFlags
+
Add-in option as defined in EdmAddAddInFlags
+
+
+
poReserved
+
Nothing or null
+
+ +
+ +
+ + +
+
+ Installs add-ins in SOLIDWORKS PDM Professional. + + +

Syntax

Visual Basic 
Sub AddAddIns( _
+   ByVal bsPathList As System.String, _
+   ByVal lEdmAddAddInFlags As System.Integer, _
+   ByRef poReserved As System.Object _
+) 
+
C# 
void AddAddIns( 
+   System.string bsPathList,
+   System.int lEdmAddAddInFlags,
+   ref System.object poReserved
+)
+
C++/CLI 
void AddAddIns( 
+&   System.String^ bsPathList,
+&   System.int lEdmAddAddInFlags,
+&   System.Object^% poReserved
+) 
+ +

Parameters

bsPathList
+
Linefeed-separated list of path and file names of add-in files
lEdmAddAddInFlags
+
Add-in option as defined in EdmAddAddInFlags
poReserved
+
Nothing or null
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +   + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~GetAddInInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~GetAddInInfo.html new file mode 100644 index 0000000..3ef021c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr5~GetAddInInfo.html @@ -0,0 +1,171 @@ + + + + + + GetAddInInfo Method (IEdmAddInMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAddInInfo Method (IEdmAddInMgr5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr5 Interface + : GetAddInInfo Method (IEdmAddInMgr5)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path to the DLL about which to get information
+
+
+
poReserved
+
Null only
+
+
+
poInfo
+
EdmAddInInfo structure; returned add-in information
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmAddInMgr6::GetAddInInfo2. + + +

Syntax

Visual Basic 
Sub GetAddInInfo( _
+   ByVal bsPath As System.String, _
+   ByRef poReserved As System.Object, _
+   ByRef poInfo As EdmAddInInfo _
+) 
+
C# 
void GetAddInInfo( 
+   System.string bsPath,
+   ref System.object poReserved,
+   out EdmAddInInfo poInfo
+)
+
C++/CLI 
void GetAddInInfo( 
+&   System.String^ bsPath,
+&   System.Object^% poReserved,
+&   [Out] EdmAddInInfo poInfo
+) 
+ +

Parameters

bsPath
+
Path to the DLL about which to get information
poReserved
+
Null only
poInfo
+
EdmAddInInfo structure; returned add-in information
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6.html new file mode 100644 index 0000000..fa0de8e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6.html @@ -0,0 +1,139 @@ + + + + + + IEdmAddInMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to administer add-ins.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInMgr6 
+   Inherits IEdmAddInMgr5 
+
C# 
public interface IEdmAddInMgr6 : IEdmAddInMgr5  
+
C++/CLI 
public interface class IEdmAddInMgr6 : public IEdmAddInMgr5  
+
+ +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_members.html new file mode 100644 index 0000000..b225839 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmAddInMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInMgr6.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodGetAddInInfo2Gets information about an add-in.  
 MethodGetDebugAddInsGets information about all of the add-ins that have been installed for debugging on this machine.  
 MethodInstallDebugAddInInstalls an add-in for debugging on this machine.  
 MethodRemoveDebugAddInRemoves an add-in that has been installed for debugging.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_methods.html new file mode 100644 index 0000000..dd53e61 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmAddInMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInMgr6 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetAddInInfo2Gets information about an add-in.  
 MethodGetDebugAddInsGets information about all of the add-ins that have been installed for debugging on this machine.  
 MethodInstallDebugAddInInstalls an add-in for debugging on this machine.  
 MethodRemoveDebugAddInRemoves an add-in that has been installed for debugging.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetAddInInfo2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetAddInInfo2.html new file mode 100644 index 0000000..a050ed5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetAddInInfo2.html @@ -0,0 +1,172 @@ + + + + + + GetAddInInfo2 Method (IEdmAddInMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAddInInfo2 Method (IEdmAddInMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr6 Interface + : GetAddInInfo2 Method (IEdmAddInMgr6)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path to the DLL about which to get information
+
+
+
oReserved
+
Must be empty
+
+
+
poInfo
+
EdmAddInInfo2 structure; returned add-in information
+
+ +
+ +
+ + +
+
+ Gets information about an add-in. + + +

Syntax

Visual Basic 
Sub GetAddInInfo2( _
+   ByVal bsPath As System.String, _
+   ByVal oReserved As System.Object, _
+   ByRef poInfo As EdmAddInInfo2 _
+) 
+
C# 
void GetAddInInfo2( 
+   System.string bsPath,
+   System.object oReserved,
+   out EdmAddInInfo2 poInfo
+)
+
C++/CLI 
void GetAddInInfo2( 
+&   System.String^ bsPath,
+&   System.Object^ oReserved,
+&   [Out] EdmAddInInfo2 poInfo
+) 
+ +

Parameters

bsPath
+
Path to the DLL about which to get information
oReserved
+
Must be empty
poInfo
+
EdmAddInInfo2 structure; returned add-in information
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

This method supersedes IEdmAddInMgr5::GetAddInInfo which returned less information about the add-in.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetDebugAddIns.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetDebugAddIns.html new file mode 100644 index 0000000..fd8d6d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~GetDebugAddIns.html @@ -0,0 +1,159 @@ + + + + + + GetDebugAddIns Method (IEdmAddInMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDebugAddIns Method (IEdmAddInMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr6 Interface + : GetDebugAddIns Method (IEdmAddInMgr6)
+ +
+ + + +
+ +
+ + +
+
+
ppoAddIns
+
Array of EdmAddInInfo2 structures; one structure for each debug add-in
+
+ +
+ +
+ + +
+
+ Gets information about all of the add-ins that have been installed for debugging on this machine. + + +

Syntax

Visual Basic 
Sub GetDebugAddIns( _
+   ByRef ppoAddIns() As EdmAddInInfo2 _
+) 
+
C# 
void GetDebugAddIns( 
+   out EdmAddInInfo2[] ppoAddIns
+)
+
C++/CLI 
void GetDebugAddIns( 
+&   [Out] array<EdmAddInInfo2>^ ppoAddIns
+) 
+ +

Parameters

ppoAddIns
+
Array of EdmAddInInfo2 structures; one structure for each debug add-in
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

You can install add-ins for debugging either of two ways:

+
    +
  • Right-clicking the Add-ins node in the SOLIDWORKS PDM Professional Administration Tool and clicking Debug Add-ins.  +
  • Calling IEdmAddInMgr6::InstallDebugAddIn.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~InstallDebugAddIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~InstallDebugAddIn.html new file mode 100644 index 0000000..1a73757 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~InstallDebugAddIn.html @@ -0,0 +1,160 @@ + + + + + + InstallDebugAddIn Method (IEdmAddInMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InstallDebugAddIn Method (IEdmAddInMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr6 Interface + : InstallDebugAddIn Method (IEdmAddInMgr6)
+ +
+ + + +
+ +
+ + +
+
+
oAddIn
+
Contains either the path to the DLL of the add-in to add or the ID of the class that implements IEdmAddIn5
+
+ +
+ +
+ + +
+
+ Installs an add-in for debugging on this machine. + + +

Syntax

Visual Basic 
Sub InstallDebugAddIn( _
+   ByVal oAddIn As System.Object _
+) 
+
C# 
void InstallDebugAddIn( 
+   System.object oAddIn
+)
+
C++/CLI 
void InstallDebugAddIn( 
+&   System.Object^ oAddIn
+) 
+ +

Parameters

oAddIn
+
Contains either the path to the DLL of the add-in to add or the ID of the class that implements IEdmAddIn5
+ +
+ + + + + +

Remarks

You can install add-ins for debugging either of two ways:

+
    +
  • Right-clicking the Add-ins node in the SOLIDWORKS PDM Professional Administration Tool and clicking Debug Add-ins. +
  • Calling this method.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~RemoveDebugAddIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~RemoveDebugAddIn.html new file mode 100644 index 0000000..7866765 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr6~RemoveDebugAddIn.html @@ -0,0 +1,159 @@ + + + + + + RemoveDebugAddIn Method (IEdmAddInMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveDebugAddIn Method (IEdmAddInMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr6 Interface + : RemoveDebugAddIn Method (IEdmAddInMgr6)
+ +
+ + + +
+ +
+ + +
+
+
oAddIn
+
Contains either the path to the DLL of the add-in to remove or the ID of the class that implements IEdmAddIn5
+
+ +
+ +
+ + +
+
+ Removes an add-in that has been installed for debugging. + + +

Syntax

Visual Basic 
Sub RemoveDebugAddIn( _
+   ByVal oAddIn As System.Object _
+) 
+
C# 
void RemoveDebugAddIn( 
+   System.object oAddIn
+)
+
C++/CLI 
void RemoveDebugAddIn( 
+&   System.Object^ oAddIn
+) 
+ +

Parameters

oAddIn
+
Contains either the path to the DLL of the add-in to remove or the ID of the class that implements IEdmAddIn5
+ +
+ + + + + +

Remarks

You can install add-ins for debugging either of two ways:

+ +

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional or later
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7.html new file mode 100644 index 0000000..7d0f96f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7.html @@ -0,0 +1,139 @@ + + + + + + IEdmAddInMgr7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to administer add-ins.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInMgr7 
+   Inherits IEdmAddInMgr5IEdmAddInMgr6 
+
C# 
public interface IEdmAddInMgr7 : IEdmAddInMgr5IEdmAddInMgr6  
+
C++/CLI 
public interface class IEdmAddInMgr7 : public IEdmAddInMgr5IEdmAddInMgr6  
+
+ +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

This interface:

+
    +
  • extends IEdmAddInMgr6 by providing the ability to get information about all of the add-ins in a vault.  +
  • is extended by IEdmAddInMgr8.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_members.html new file mode 100644 index 0000000..a20c8ec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmAddInMgr7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInMgr7.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetInstalledAddInsGets information about all of the add-ins that have been installed in the vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_methods.html new file mode 100644 index 0000000..26de466 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmAddInMgr7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInMgr7 members.

+

Public Methods

+ +
 NameDescription
 MethodGetInstalledAddInsGets information about all of the add-ins that have been installed in the vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7~GetInstalledAddIns.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7~GetInstalledAddIns.html new file mode 100644 index 0000000..e025572 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr7~GetInstalledAddIns.html @@ -0,0 +1,156 @@ + + + + + + GetInstalledAddIns Method (IEdmAddInMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetInstalledAddIns Method (IEdmAddInMgr7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr7 Interface + : GetInstalledAddIns Method (IEdmAddInMgr7)
+ +
+ + + +
+ +
+ + +
+
+
ppoAddIns
+
Array of EdmAddInInfo2 structures, one structure for each add-in
+
+ +
+ +
+ + +
+
+ Gets information about all of the add-ins that have been installed in the vault. + + +

Syntax

Visual Basic 
Sub GetInstalledAddIns( _
+   ByRef ppoAddIns() As EdmAddInInfo2 _
+) 
+
C# 
void GetInstalledAddIns( 
+   out EdmAddInInfo2[] ppoAddIns
+)
+
C++/CLI 
void GetInstalledAddIns( 
+&   [Out] array<EdmAddInInfo2>^ ppoAddIns
+) 
+ +

Parameters

ppoAddIns
+
Array of EdmAddInInfo2 structures, one structure for each add-in
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8.html new file mode 100644 index 0000000..90f0221 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8.html @@ -0,0 +1,139 @@ + + + + + + IEdmAddInMgr8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to administer add-ins.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInMgr8 
+   Inherits IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7 
+
C# 
public interface IEdmAddInMgr8 : IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7  
+
C++/CLI 
public interface class IEdmAddInMgr8 : public IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7  
+
+ +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_members.html new file mode 100644 index 0000000..c77e376 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmAddInMgr8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInMgr8.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodExtractInstalledAddInExtracts files from the specified add-in and places them in the specified folder.  
 MethodGetCAFInfoExtracts files and information from an add-in that is stored in a *.CAF that pre-dates SOLIDWORKS PDM Professional 2010.  
 MethodGetInstalledAddInExtracts files and information from the specified add-in.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_methods.html new file mode 100644 index 0000000..28dd3b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmAddInMgr8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInMgr8 members.

+

Public Methods

+ + + +
 NameDescription
 MethodExtractInstalledAddInExtracts files from the specified add-in and places them in the specified folder.  
 MethodGetCAFInfoExtracts files and information from an add-in that is stored in a *.CAF that pre-dates SOLIDWORKS PDM Professional 2010.  
 MethodGetInstalledAddInExtracts files and information from the specified add-in.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~ExtractInstalledAddIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~ExtractInstalledAddIn.html new file mode 100644 index 0000000..3546475 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~ExtractInstalledAddIn.html @@ -0,0 +1,174 @@ + + + + + + ExtractInstalledAddIn Method (IEdmAddInMgr8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ExtractInstalledAddIn Method (IEdmAddInMgr8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr8 Interface + : ExtractInstalledAddIn Method (IEdmAddInMgr8)
+ +
+ + + +
+ +
+ + +
+
+
oNameOrID
+
ID or name of the add-in from which to extract files
+
+
+
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
+
+
+
ppoFiles
+
Array of EdmAddInFileInfo structures, one structure for each extracted file
+
+ +
+ +
+ + +
+
+ Extracts files from the specified add-in and places them in the specified folder. + + +

Syntax

Visual Basic 
Sub ExtractInstalledAddIn( _
+   ByVal oNameOrID As System.Object, _
+   ByVal bsExtractPath As System.String, _
+   ByRef ppoFiles() As EdmAddInFileInfo _
+) 
+
C# 
void ExtractInstalledAddIn( 
+   System.object oNameOrID,
+   System.string bsExtractPath,
+   out EdmAddInFileInfo[] ppoFiles
+)
+
C++/CLI 
void ExtractInstalledAddIn( 
+&   System.Object^ oNameOrID,
+&   System.String^ bsExtractPath,
+&   [Out] array<EdmAddInFileInfo>^ ppoFiles
+) 
+ +

Parameters

oNameOrID
+
ID or name of the add-in from which to extract files
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
ppoFiles
+
Array of EdmAddInFileInfo structures, one structure for each extracted file
+ +
+ + + + + +

Remarks

This method performs a subset of the functionality of IEdmAddInMgr8::GetInstalledAddIn.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: oNameOrID specified an ID that was not found. +
  • E_EDM_INVALID_NAME: oNameOrID specified a name that was not found. +
  • E_EDM_FOLDER_NOT_FOUND: bsExtractPath contained a path to a missing folder.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetCAFInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetCAFInfo.html new file mode 100644 index 0000000..b63daff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetCAFInfo.html @@ -0,0 +1,187 @@ + + + + + + GetCAFInfo Method (IEdmAddInMgr8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCAFInfo Method (IEdmAddInMgr8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr8 Interface + : GetCAFInfo Method (IEdmAddInMgr8)
+ +
+ + + +
+ +
+ + +
+
+
bsCAFPath
+
Path to the *.CAF from which to get information
+
+
+
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
+
+
+
poAddIn
+
EdmAddInInfo2 structure; information about the add-in
+
+
+
ppoFiles
+
Array of EdmAddInFileInfo structures, one for each file extracted from the add-in
+
+
+
ppoCmds
+
Array of EdmAddInMenuInfo structures, one for each menu command implemented by the add-in
+
+ +
+ +
+ + +
+
+ Extracts files and information from an add-in that is stored in a *.CAF that pre-dates SOLIDWORKS PDM Professional 2010. + + +

Syntax

Visual Basic 
Sub GetCAFInfo( _
+   ByVal bsCAFPath As System.String, _
+   ByVal bsExtractPath As System.String, _
+   ByRef poAddIn As EdmAddInInfo2, _
+   ByRef ppoFiles() As EdmAddInFileInfo, _
+   ByRef ppoCmds() As EdmAddInMenuInfo _
+) 
+
C# 
void GetCAFInfo( 
+   System.string bsCAFPath,
+   System.string bsExtractPath,
+   out EdmAddInInfo2 poAddIn,
+   out EdmAddInFileInfo[] ppoFiles,
+   out EdmAddInMenuInfo[] ppoCmds
+)
+
C++/CLI 
void GetCAFInfo( 
+&   System.String^ bsCAFPath,
+&   System.String^ bsExtractPath,
+&   [Out] EdmAddInInfo2 poAddIn,
+&   [Out] array<EdmAddInFileInfo>^ ppoFiles,
+&   [Out] array<EdmAddInMenuInfo>^ ppoCmds
+) 
+ +

Parameters

bsCAFPath
+
Path to the *.CAF from which to get information
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
poAddIn
+
EdmAddInInfo2 structure; information about the add-in
ppoFiles
+
Array of EdmAddInFileInfo structures, one for each file extracted from the add-in
ppoCmds
+
Array of EdmAddInMenuInfo structures, one for each menu command implemented by the add-in
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: The specified *.CAF file was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetInstalledAddIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetInstalledAddIn.html new file mode 100644 index 0000000..751df04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr8~GetInstalledAddIn.html @@ -0,0 +1,191 @@ + + + + + + GetInstalledAddIn Method (IEdmAddInMgr8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetInstalledAddIn Method (IEdmAddInMgr8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr8 Interface + : GetInstalledAddIn Method (IEdmAddInMgr8)
+ +
+ + + +
+ +
+ + +
+
+
oNameOrID
+
ID or name of the add-in
+
+
+
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
+
+
+
poAddIn
+
EdmAddInInfo2 structure; information about the add-in
+
+
+
ppoFiles
+
Array of EdmAddInFileInfo structures, one for each file extracted from the add-in
+
+
+
ppoCmds
+
Array of EdmAddInMenuInfo structures, one for each menu command implemented by the add-in
+
+ +
+ +
+ + +
+
+ Extracts files and information from the specified add-in. + + +

Syntax

Visual Basic 
Sub GetInstalledAddIn( _
+   ByVal oNameOrID As System.Object, _
+   ByVal bsExtractPath As System.String, _
+   ByRef poAddIn As EdmAddInInfo2, _
+   ByRef ppoFiles() As EdmAddInFileInfo, _
+   ByRef ppoCmds() As EdmAddInMenuInfo _
+) 
+
C# 
void GetInstalledAddIn( 
+   System.object oNameOrID,
+   System.string bsExtractPath,
+   out EdmAddInInfo2 poAddIn,
+   out EdmAddInFileInfo[] ppoFiles,
+   out EdmAddInMenuInfo[] ppoCmds
+)
+
C++/CLI 
void GetInstalledAddIn( 
+&   System.Object^ oNameOrID,
+&   System.String^ bsExtractPath,
+&   [Out] EdmAddInInfo2 poAddIn,
+&   [Out] array<EdmAddInFileInfo>^ ppoFiles,
+&   [Out] array<EdmAddInMenuInfo>^ ppoCmds
+) 
+ +

Parameters

oNameOrID
+
ID or name of the add-in
bsExtractPath
+
Path to the folder to which to extract files; ignored if empty
poAddIn
+
EdmAddInInfo2 structure; information about the add-in
ppoFiles
+
Array of EdmAddInFileInfo structures, one for each file extracted from the add-in
ppoCmds
+
Array of EdmAddInMenuInfo structures, one for each menu command implemented by the add-in
+ +
+ + +

Example

See the IEdmAddInMgr5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: oNameOrID specified an ID that was not found. +
  • E_EDM_INVALID_NAME: oNameOrID specified a name that was not found. +
  • E_EDM_FOLDER_NOT_FOUND: bsExtractPath contained a path to a missing folder.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9.html new file mode 100644 index 0000000..ddfbc0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9.html @@ -0,0 +1,138 @@ + + + + + + IEdmAddInMgr9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to administer add-ins.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAddInMgr9 
+   Inherits IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7IEdmAddInMgr8 
+
C# 
public interface IEdmAddInMgr9 : IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7IEdmAddInMgr8  
+
C++/CLI 
public interface class IEdmAddInMgr9 : public IEdmAddInMgr5IEdmAddInMgr6IEdmAddInMgr7IEdmAddInMgr8  
+
+ + + +

Example

+

Remarks

This interface extends IEdmAddInMgr8 by providing the ability to uninstall an add-in.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_members.html new file mode 100644 index 0000000..fc7b01a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmAddInMgr9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAddInMgr9.

+ + +

Public Methods

+ +
 NameDescription
 MethodRemoveAddInRemoves the specified add-in.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_methods.html new file mode 100644 index 0000000..b38aa72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmAddInMgr9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAddInMgr9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAddInMgr9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAddInMgr9 members.

+

Public Methods

+ +
 NameDescription
 MethodRemoveAddInRemoves the specified add-in.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9~RemoveAddIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9~RemoveAddIn.html new file mode 100644 index 0000000..ce2a71d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAddInMgr9~RemoveAddIn.html @@ -0,0 +1,156 @@ + + + + + + RemoveAddIn Method (IEdmAddInMgr9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveAddIn Method (IEdmAddInMgr9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAddInMgr9 Interface + : RemoveAddIn Method (IEdmAddInMgr9)
+ +
+ + + +
+ +
+ + +
+
+
oNameOrID
+
ID or name of the add-in to remove
+
+ +
+ +
+ + +
+
+ Removes the specified add-in. + + +

Syntax

Visual Basic 
Sub RemoveAddIn( _
+   ByVal oNameOrID As System.Object _
+) 
+
C# 
void RemoveAddIn( 
+   System.object oNameOrID
+)
+
C++/CLI 
void RemoveAddIn( 
+&   System.Object^ oNameOrID
+) 
+ +

Parameters

oNameOrID
+
ID or name of the add-in to remove
+ +
+ + +

Example

See the IEdmAddInMgr9 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5.html new file mode 100644 index 0000000..e1646b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5.html @@ -0,0 +1,141 @@ + + + + + + IEdmAttribute5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAttribute5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmAttribute5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows access to a file attribute that is used when data is transferred between a file data card and a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmAttribute5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmAttribute5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmAttribute5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5. Call IEdmObject5::Name to get the name of this attribute.

+

A variable, EdmVariable5, can be mapped to zero or more attributes (IEdmAttribute5).

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_members.html new file mode 100644 index 0000000..471e10c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmAttribute5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAttribute5 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAttribute5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmAttribute5.

+

Public Properties

+ + +
 NameDescription
 PropertyBlockNameGets the name of the block in which to search for this attribute.  
 PropertyExtensionsGets a list of file extensions for which this attribute is valid.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_properties.html new file mode 100644 index 0000000..a9db4d3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmAttribute5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmAttribute5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmAttribute5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmAttribute5 members.

+

Public Properties

+ + +
 NameDescription
 PropertyBlockNameGets the name of the block in which to search for this attribute.  
 PropertyExtensionsGets a list of file extensions for which this attribute is valid.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~BlockName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~BlockName.html new file mode 100644 index 0000000..21e8a2f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~BlockName.html @@ -0,0 +1,147 @@ + + + + + + BlockName Property (IEdmAttribute5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BlockName Property (IEdmAttribute5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAttribute5 Interface + : BlockName Property (IEdmAttribute5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the block in which to search for this attribute. + + +

Syntax

Visual Basic 
ReadOnly Property BlockName As System.String
+
C# 
System.string BlockName {get;}
+
C++/CLI 
property System.String^ BlockName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the block in which to search for this attribute
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~Extensions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~Extensions.html new file mode 100644 index 0000000..4eb6605 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmAttribute5~Extensions.html @@ -0,0 +1,147 @@ + + + + + + Extensions Property (IEdmAttribute5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Extensions Property (IEdmAttribute5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmAttribute5 Interface + : Extensions Property (IEdmAttribute5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets a list of file extensions for which this attribute is valid. + + +

Syntax

Visual Basic 
ReadOnly Property Extensions As System.String
+
C# 
System.string Extensions {get;}
+
C++/CLI 
property System.String^ Extensions {
+   System.String^ get();
+}
+ + + +

Property Value

Comma-separated list of file extensions ("doc,ppt,xls")
+ + +

Example

See IEdmAttribute5 examples. +
+ + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd.html new file mode 100644 index 0000000..f8a2385 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd.html @@ -0,0 +1,142 @@ + + + + + + IEdmBatchAdd Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add several files and folders to the vault at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchAdd 
+
C# 
public interface IEdmBatchAdd 
+
C++/CLI 
public interface class IEdmBatchAdd 
+
+ + + +

Example

+

Remarks

This interface:

+ +

Using IEdmBatchAdd is more efficient than calling IEdmFolder5::AddFile or IEdmFolder5::AddFolder multiple times.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2.html new file mode 100644 index 0000000..c845f79 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2.html @@ -0,0 +1,136 @@ + + + + + + IEdmBatchAdd2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to display a dialog box with information about several files and folders being added to the vault all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchAdd2 
+   Inherits IEdmBatchAdd 
+
C# 
public interface IEdmBatchAdd2 : IEdmBatchAdd  
+
C++/CLI 
public interface class IEdmBatchAdd2 : public IEdmBatchAdd  
+
+ +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

This interface extends IEdmBatchAdd.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_members.html new file mode 100644 index 0000000..9121722 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchAdd2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchAdd2.

+ + +

Public Methods

+ +
 NameDescription
 MethodShowDlgShows a dialog box containing information about the file and folders that are about to be added to the vault by IEdmBatchAdd::CommitAdd.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_methods.html new file mode 100644 index 0000000..15c2558 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchAdd2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchAdd2 members.

+

Public Methods

+ +
 NameDescription
 MethodShowDlgShows a dialog box containing information about the file and folders that are about to be added to the vault by IEdmBatchAdd::CommitAdd.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2~ShowDlg.html new file mode 100644 index 0000000..4c6bf4d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd2~ShowDlg.html @@ -0,0 +1,179 @@ + + + + + + ShowDlg Method (IEdmBatchAdd2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmBatchAdd2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd2 Interface + : ShowDlg Method (IEdmBatchAdd2)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle for the dialog box
+
+
+
lEdmAddFileDlgFlags
+
Combination of EdmAddFileDlgFlag bits
+
+
+
bsMessage
+
Message to display in the dialog box
+
+
+
bsCaption
+
Dialog box caption
+
+ +
+ +
+ + +
+
+ Shows a dialog box containing information about the file and folders that are about to be added to the vault by IEdmBatchAdd::CommitAdd. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal lEdmAddFileDlgFlags As System.Integer, _
+   Optional ByVal bsMessage As System.String, _
+   Optional ByVal bsCaption As System.String _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int hParentWnd,
+   System.int lEdmAddFileDlgFlags,
+   System.string bsMessage,
+   System.string bsCaption
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int hParentWnd,
+&   System.int lEdmAddFileDlgFlags,
+&   System.String^ bsMessage,
+&   System.String^ bsCaption
+) 
+ +

Parameters

hParentWnd
+
Parent window handle for the dialog box
lEdmAddFileDlgFlags
+
Combination of EdmAddFileDlgFlag bits
bsMessage
+
Message to display in the dialog box
bsCaption
+
Dialog box caption
+ +

Return Value

True if the user clicked OK, false if the user clicked Cancel
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders.html new file mode 100644 index 0000000..70470b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders.html @@ -0,0 +1,144 @@ + + + + + + IEdmBatchAddFolders Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAddFolders Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchAddFolders Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add several folders to the vault all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchAddFolders 
+
C# 
public interface IEdmBatchAddFolders 
+
C++/CLI 
public interface class IEdmBatchAddFolders 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To add several folders to the vault in one batch:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_BatchAddFolders as a parameter. +
  2. Call IEdmBatchAddFolders::AddFolder once for each folder to add to the batch. +
  3. Call IEdmBatchAddFolders::Create to commit the folders in the batch to the vault.
+

Using IEdmBatchAddFolders is more efficient than calling IEdmFolder5::AddFolder or IEdmFolder5::CreateFolderPath multiple times.

+

Use IEdmBatchAdd if you need to add several files and folders to the vault.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_members.html new file mode 100644 index 0000000..b7201b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBatchAddFolders Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAddFolders Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAddFolders Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchAddFolders.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddFolderAdds a folder or a complete folder path to the batch of folders to add to the vault.  
 MethodCreateCreates all the folders that were added to the batch using IEdmBatchAddFolders::AddFolder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_methods.html new file mode 100644 index 0000000..f83811e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBatchAddFolders Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAddFolders Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAddFolders Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchAddFolders members.

+

Public Methods

+ + +
 NameDescription
 MethodAddFolderAdds a folder or a complete folder path to the batch of folders to add to the vault.  
 MethodCreateCreates all the folders that were added to the batch using IEdmBatchAddFolders::AddFolder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~AddFolder.html new file mode 100644 index 0000000..e0c0220 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~AddFolder.html @@ -0,0 +1,196 @@ + + + + + + AddFolder Method (IEdmBatchAddFolders) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmBatchAddFolders)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAddFolders Interface + : AddFolder Method (IEdmBatchAddFolders)
+ +
+ + + +
+ +
+ + +
+
+
lParentFolderID
+
ID of parent folder to which to add the folders
+
+
+
bsRelativePath
+
Name of folder or relative path of new folder
+
+
+
lParam
+
Caller-defined value
+
+
+
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
+
+
+
poData
+
Optional IEdmFolderData5 permission settings and card layouts are copied to the added folders
+
+
+
lSourceFolderID
+
Optional ID of folder to copy; if not 0, permission settings and card layouts from the source folder with this lSourceFolderID are copied to the added folders
+
+ +
+ +
+ + +
+
+ Adds a folder or a complete folder path to the batch of folders to add to the vault. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal lParentFolderID As System.Integer, _
+   ByVal bsRelativePath As System.String, _
+   ByVal lParam As System.Integer, _
+   Optional ByVal lEdmBatchAddFolderFlags As System.Integer, _
+   Optional ByVal poData As EdmFolderData, _
+   Optional ByVal lSourceFolderID As System.Integer _
+) 
+
C# 
void AddFolder( 
+   System.int lParentFolderID,
+   System.string bsRelativePath,
+   System.int lParam,
+   System.int lEdmBatchAddFolderFlags,
+   EdmFolderData poData,
+   System.int lSourceFolderID
+)
+
C++/CLI 
void AddFolder( 
+&   System.int lParentFolderID,
+&   System.String^ bsRelativePath,
+&   System.int lParam,
+&   System.int lEdmBatchAddFolderFlags,
+&   EdmFolderData^ poData,
+&   System.int lSourceFolderID
+) 
+ +

Parameters

lParentFolderID
+
ID of parent folder to which to add the folders
bsRelativePath
+
Name of folder or relative path of new folder
lParam
+
Caller-defined value
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
poData
+
Optional IEdmFolderData5 permission settings and card layouts are copied to the added folders
lSourceFolderID
+
Optional ID of folder to copy; if not 0, permission settings and card layouts from the source folder with this lSourceFolderID are copied to the added folders
+ +
+ + +

Example

See the IEdmBatchAddFolders examples. +
+ +

Remarks

After calling this method, you must call IEdmBatchAddFolders::Create to actually add the folder to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_NAME: The folder name contained invalid characters.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~Create.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~Create.html new file mode 100644 index 0000000..8ecbd72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAddFolders~Create.html @@ -0,0 +1,171 @@ + + + + + + Create Method (IEdmBatchAddFolders) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Create Method (IEdmBatchAddFolders)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAddFolders Interface + : Create Method (IEdmBatchAddFolders)
+ +
+ + + +
+ +
+ + +
+
+
lHwnd
+
Parent window handle that is passed to add-ins that are notified about folders added to the vault
+
+
+
ppoRetFolders
+
Array of EdmFolderInfo structures; one structure for each folder added
+
+
+
lEdmBatchCreateFolderFlags
+
Combination of EdmBatchCreateFolderFlag bits
+
+ +
+ +
+ + +
+
+ Creates all the folders that were added to the batch using IEdmBatchAddFolders::AddFolder. + + +

Syntax

Visual Basic 
Sub Create( _
+   ByVal lHwnd As System.Integer, _
+   ByRef ppoRetFolders() As EdmFolderInfo, _
+   Optional ByVal lEdmBatchCreateFolderFlags As System.Integer _
+) 
+
C# 
void Create( 
+   System.int lHwnd,
+   out EdmFolderInfo[] ppoRetFolders,
+   System.int lEdmBatchCreateFolderFlags
+)
+
C++/CLI 
void Create( 
+&   System.int lHwnd,
+&   [Out] array<EdmFolderInfo>^ ppoRetFolders,
+&   System.int lEdmBatchCreateFolderFlags
+) 
+ +

Parameters

lHwnd
+
Parent window handle that is passed to add-ins that are notified about folders added to the vault
ppoRetFolders
+
Array of EdmFolderInfo structures; one structure for each folder added
lEdmBatchCreateFolderFlags
+
Combination of EdmBatchCreateFolderFlag bits
+ +
+ + +

Example

See the IEdmBatchAddFolders examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_COULD_NOT_CREATE_LOCAL_FOLDER: The folders were created in the vault but could not be created in the local cache.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_members.html new file mode 100644 index 0000000..3bfee81 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_members.html @@ -0,0 +1,119 @@ + + + + + + IEdmBatchAdd Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchAdd.

+ + +

Public Methods

+ + + + + + + + +
 NameDescription
 MethodAddFileFromPathAdds a file to the batch of files to be added to the vault; the file will be copied to a destination folder with the specified ID.  
 MethodAddFileFromPathToPathAdds a file to the batch of files to be added to the vault; the file will be copied to the specified destination folder path.  
 MethodAddFileFromVaultAdds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified ID.  
 MethodAddFileFromVaultToPathAdds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified path.  
 MethodAddFolderAdds the specified folder or folder path to the batch of folders to be added to the vault.  
 MethodAddFolderPathAdds the specified folder path to the batch of folders to be added to the vault.  
 MethodCommitAddAdds all files and folders in the batch to the vault.  
 MethodSetFileNameSerNoFor internal use only; do not use.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_methods.html new file mode 100644 index 0000000..daa1bbc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd_methods.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchAdd Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchAdd Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchAdd Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchAdd members.

+

Public Methods

+ + + + + + + + +
 NameDescription
 MethodAddFileFromPathAdds a file to the batch of files to be added to the vault; the file will be copied to a destination folder with the specified ID.  
 MethodAddFileFromPathToPathAdds a file to the batch of files to be added to the vault; the file will be copied to the specified destination folder path.  
 MethodAddFileFromVaultAdds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified ID.  
 MethodAddFileFromVaultToPathAdds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified path.  
 MethodAddFolderAdds the specified folder or folder path to the batch of folders to be added to the vault.  
 MethodAddFolderPathAdds the specified folder path to the batch of folders to be added to the vault.  
 MethodCommitAddAdds all files and folders in the batch to the vault.  
 MethodSetFileNameSerNoFor internal use only; do not use.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPath.html new file mode 100644 index 0000000..9ded177 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPath.html @@ -0,0 +1,189 @@ + + + + + + AddFileFromPath Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileFromPath Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFileFromPath Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
bsSourcePath
+
Path of file to add
+
+
+
lDestinationFolderID
+
ID of folder to which to add the file
+
+
+
lArg
+
Caller-defined argument
+
+
+
bsNewName
+
Optional new name of the added file
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Adds a file to the batch of files to be added to the vault; the file will be copied to a destination folder with the specified ID. + + +

Syntax

Visual Basic 
Sub AddFileFromPath( _
+   ByVal bsSourcePath As System.String, _
+   ByVal lDestinationFolderID As System.Integer, _
+   Optional ByVal lArg As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) 
+
C# 
void AddFileFromPath( 
+   System.string bsSourcePath,
+   System.int lDestinationFolderID,
+   System.int lArg,
+   System.string bsNewName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
void AddFileFromPath( 
+&   System.String^ bsSourcePath,
+&   System.int lDestinationFolderID,
+&   System.int lArg,
+&   System.String^ bsNewName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

bsSourcePath
+
Path of file to add
lDestinationFolderID
+
ID of folder to which to add the file
lArg
+
Caller-defined argument
bsNewName
+
Optional new name of the added file
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +
+ + + + + +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPathToPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPathToPath.html new file mode 100644 index 0000000..1fa1d94 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromPathToPath.html @@ -0,0 +1,190 @@ + + + + + + AddFileFromPathToPath Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileFromPathToPath Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFileFromPathToPath Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
bsSourcePath
+
Path of file to add
+
+
+
bsDestinationFolderPath
+
Path of folder to which to add the file
+
+
+
lArg
+
Caller-defined argument
+
+
+
bsNewName
+
Optional new name of the added file
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Adds a file to the batch of files to be added to the vault; the file will be copied to the specified destination folder path. + + +

Syntax

Visual Basic 
Sub AddFileFromPathToPath( _
+   ByVal bsSourcePath As System.String, _
+   ByVal bsDestinationFolderPath As System.String, _
+   Optional ByVal lArg As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) 
+
C# 
void AddFileFromPathToPath( 
+   System.string bsSourcePath,
+   System.string bsDestinationFolderPath,
+   System.int lArg,
+   System.string bsNewName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
void AddFileFromPathToPath( 
+&   System.String^ bsSourcePath,
+&   System.String^ bsDestinationFolderPath,
+&   System.int lArg,
+&   System.String^ bsNewName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

bsSourcePath
+
Path of file to add
bsDestinationFolderPath
+
Path of folder to which to add the file
lArg
+
Caller-defined argument
bsNewName
+
Optional new name of the added file
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

If the specified bsDestinationFolderPath does not exist in the vault, it will be created when the file is added.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVault.html new file mode 100644 index 0000000..8b24c8b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVault.html @@ -0,0 +1,197 @@ + + + + + + AddFileFromVault Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileFromVault Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFileFromVault Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
lSourceFileID
+
ID of file to copy
+
+
+
lSourceFolderID
+
ID of folder of file to copy
+
+
+
lDestinationFolderID
+
ID of folder to which to copy the file
+
+
+
lArg
+
Caller-defined argument.
+
+
+
bsNewName
+
Optional new name of file.
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Adds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified ID. + + +

Syntax

Visual Basic 
Sub AddFileFromVault( _
+   ByVal lSourceFileID As System.Integer, _
+   ByVal lSourceFolderID As System.Integer, _
+   ByVal lDestinationFolderID As System.Integer, _
+   Optional ByVal lArg As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) 
+
C# 
void AddFileFromVault( 
+   System.int lSourceFileID,
+   System.int lSourceFolderID,
+   System.int lDestinationFolderID,
+   System.int lArg,
+   System.string bsNewName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
void AddFileFromVault( 
+&   System.int lSourceFileID,
+&   System.int lSourceFolderID,
+&   System.int lDestinationFolderID,
+&   System.int lArg,
+&   System.String^ bsNewName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

lSourceFileID
+
ID of file to copy
lSourceFolderID
+
ID of folder of file to copy
lDestinationFolderID
+
ID of folder to which to copy the file
lArg
+
Caller-defined argument.
bsNewName
+
Optional new name of file.
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +
+ + + + + +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVaultToPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVaultToPath.html new file mode 100644 index 0000000..c1d3ad9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFileFromVaultToPath.html @@ -0,0 +1,198 @@ + + + + + + AddFileFromVaultToPath Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileFromVaultToPath Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFileFromVaultToPath Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
lSourceFileID
+
ID of file to copy
+
+
+
lSourceFolderID
+
ID of folder of file to copy
+
+
+
bsDestinationFolderPath
+
Path of folder to which to copy the file
+
+
+
lArg
+
Caller-defined argument
+
+
+
bsNewName
+
Optional new name of file
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Adds a file with the specified ID and folder ID to the batch of files to be added to the vault; the file will be copied to a new vault folder with the specified path. + + +

Syntax

Visual Basic 
Sub AddFileFromVaultToPath( _
+   ByVal lSourceFileID As System.Integer, _
+   ByVal lSourceFolderID As System.Integer, _
+   ByVal bsDestinationFolderPath As System.String, _
+   Optional ByVal lArg As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) 
+
C# 
void AddFileFromVaultToPath( 
+   System.int lSourceFileID,
+   System.int lSourceFolderID,
+   System.string bsDestinationFolderPath,
+   System.int lArg,
+   System.string bsNewName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
void AddFileFromVaultToPath( 
+&   System.int lSourceFileID,
+&   System.int lSourceFolderID,
+&   System.String^ bsDestinationFolderPath,
+&   System.int lArg,
+&   System.String^ bsNewName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

lSourceFileID
+
ID of file to copy
lSourceFolderID
+
ID of folder of file to copy
bsDestinationFolderPath
+
Path of folder to which to copy the file
lArg
+
Caller-defined argument
bsNewName
+
Optional new name of file
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

If the specified bsDestinationFolderPath does not exist in the vault, it will be created when the file is added.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolder.html new file mode 100644 index 0000000..8869ff7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolder.html @@ -0,0 +1,197 @@ + + + + + + AddFolder Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFolder Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
lParentFolderID
+
ID of parent folder to which to add the folders
+
+
+
bsRelativePath
+
Name of folder or relative path of new folder
+
+
+
lArg
+
Caller-defined argument
+
+
+
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
+
+
+
poData
+
Optional IEdmFolderData5; extra information about the folder to create
+
+
+
lSourceFolderID
+
Optional ID of source folder from which to copy properties from
+
+ +
+ +
+ + +
+
+ Adds the specified folder or folder path to the batch of folders to be added to the vault. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal lParentFolderID As System.Integer, _
+   ByVal bsRelativePath As System.String, _
+   ByVal lArg As System.Integer, _
+   Optional ByVal lEdmBatchAddFolderFlags As System.Integer, _
+   Optional ByVal poData As EdmFolderData, _
+   Optional ByVal lSourceFolderID As System.Integer _
+) 
+
C# 
void AddFolder( 
+   System.int lParentFolderID,
+   System.string bsRelativePath,
+   System.int lArg,
+   System.int lEdmBatchAddFolderFlags,
+   EdmFolderData poData,
+   System.int lSourceFolderID
+)
+
C++/CLI 
void AddFolder( 
+&   System.int lParentFolderID,
+&   System.String^ bsRelativePath,
+&   System.int lArg,
+&   System.int lEdmBatchAddFolderFlags,
+&   EdmFolderData^ poData,
+&   System.int lSourceFolderID
+) 
+ +

Parameters

lParentFolderID
+
ID of parent folder to which to add the folders
bsRelativePath
+
Name of folder or relative path of new folder
lArg
+
Caller-defined argument
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
poData
+
Optional IEdmFolderData5; extra information about the folder to create
lSourceFolderID
+
Optional ID of source folder from which to copy properties from
+ +
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolderPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolderPath.html new file mode 100644 index 0000000..2dea320 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~AddFolderPath.html @@ -0,0 +1,189 @@ + + + + + + AddFolderPath Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolderPath Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : AddFolderPath Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
bsLocalPath
+
File system path to folder to create; path leads in to the file vault; all folders missing in the path are created
+
+
+
lArg
+
Caller-defined argument
+
+
+
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
+
+
+
poData
+
Optional IEdmFolderData5; extra information about the folder to create
+
+
+
lSourceFolderID
+
Optional ID of source folder from which to copy properties
+
+ +
+ +
+ + +
+
+ Adds the specified folder path to the batch of folders to be added to the vault. + + +

Syntax

Visual Basic 
Sub AddFolderPath( _
+   ByVal bsLocalPath As System.String, _
+   ByVal lArg As System.Integer, _
+   Optional ByVal lEdmBatchAddFolderFlags As System.Integer, _
+   Optional ByVal poData As EdmFolderData, _
+   Optional ByVal lSourceFolderID As System.Integer _
+) 
+
C# 
void AddFolderPath( 
+   System.string bsLocalPath,
+   System.int lArg,
+   System.int lEdmBatchAddFolderFlags,
+   EdmFolderData poData,
+   System.int lSourceFolderID
+)
+
C++/CLI 
void AddFolderPath( 
+&   System.String^ bsLocalPath,
+&   System.int lArg,
+&   System.int lEdmBatchAddFolderFlags,
+&   EdmFolderData^ poData,
+&   System.int lSourceFolderID
+) 
+ +

Parameters

bsLocalPath
+
File system path to folder to create; path leads in to the file vault; all folders missing in the path are created
lArg
+
Caller-defined argument
lEdmBatchAddFolderFlags
+
Combination of EdmBatchAddFolderFlag bits
poData
+
Optional IEdmFolderData5; extra information about the folder to create
lSourceFolderID
+
Optional ID of source folder from which to copy properties
+ +
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Before calling this method, use IEdmBatchAdd::SetFileNameSerNo to specify how to create the name for the new file's data card.

+

After calling this method, you must call IEdmBatchAdd::CommitAdd to actually add the file to the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~CommitAdd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~CommitAdd.html new file mode 100644 index 0000000..feb1c5a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~CommitAdd.html @@ -0,0 +1,179 @@ + + + + + + CommitAdd Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommitAdd Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : CommitAdd Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
lHwnd
+
Parent window handle that is passed to add-ins that are notified about files and folders added to the vault
+
+
+
ppoRetFiles
+
Array of EdmFileInfo structures, one structure for each file and folder
+
+
+
lEdmBatchAddFlags
+
Combination of EdmBatchAddFlag bits
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback or IEdmCallback6 to provide the caller with more information
+
+ +
+ +
+ + +
+
+ Adds all files and folders in the batch to the vault. + + +

Syntax

Visual Basic 
Function CommitAdd( _
+   ByVal lHwnd As System.Integer, _
+   ByRef ppoRetFiles() As EdmFileInfo, _
+   Optional ByVal lEdmBatchAddFlags As System.Integer, _
+   Optional ByVal poCallback As System.Object _
+) As System.Integer
+
C# 
System.int CommitAdd( 
+   System.int lHwnd,
+   out EdmFileInfo[] ppoRetFiles,
+   System.int lEdmBatchAddFlags,
+   System.object poCallback
+)
+
C++/CLI 
System.int CommitAdd( 
+&   System.int lHwnd,
+&   [Out] array<EdmFileInfo>^ ppoRetFiles,
+&   System.int lEdmBatchAddFlags,
+&   System.Object^ poCallback
+) 
+ +

Parameters

lHwnd
+
Parent window handle that is passed to add-ins that are notified about files and folders added to the vault
ppoRetFiles
+
Array of EdmFileInfo structures, one structure for each file and folder
lEdmBatchAddFlags
+
Combination of EdmBatchAddFlag bits
poCallback
+
Optional pointer to a class that implements IEdmCallback or IEdmCallback6 to provide the caller with more information
+ +

Return Value

0 for success; See ppoRetFiles' EdmFileInfo.mhResult for each file added to the vault to get individual result codes
+ + +

Example

See the IEdmBatchAdd examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~SetFileNameSerNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~SetFileNameSerNo.html new file mode 100644 index 0000000..63feab4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchAdd~SetFileNameSerNo.html @@ -0,0 +1,173 @@ + + + + + + SetFileNameSerNo Method (IEdmBatchAdd) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFileNameSerNo Method (IEdmBatchAdd)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchAdd Interface + : SetFileNameSerNo Method (IEdmBatchAdd)
+ +
+ + + +
+ +
+ + +
+
+
oSerialNumberName
+
File name or the ID of the serial number generator
+
+
+
lFlags
+
Must be 0
+
+ +
+ +
+ + +
+
+ For internal use only; do not use. + + +

Syntax

Visual Basic 
Sub SetFileNameSerNo( _
+   ByVal oSerialNumberName As System.Object, _
+   Optional ByVal lFlags As System.Integer _
+) 
+
C# 
void SetFileNameSerNo( 
+   System.object oSerialNumberName,
+   System.int lFlags
+)
+
C++/CLI 
void SetFileNameSerNo( 
+&   System.Object^ oSerialNumberName,
+&   System.int lFlags
+) 
+ +

Parameters

oSerialNumberName
+
File name or the ID of the serial number generator
lFlags
+
Must be 0
+ +
+ + + + + +

Remarks

This method specifies that when a file is batch added to the vault, its data card is created with a name that is either the added file's serial number or its name.

+

By default when new files are added to the vault, file data cards are created with serial number names. Use this method to specify that when batch adding a file to the vault (IEdmBatchAdd::Add* methods), the file's data card name is the file name instead of the file's serial number.

+

If you don't call this method before calling the IEdmBatchAdd::Add* methods, they will create one serial number for the file and another serial number for the file data card. To synchronize the serial numbers:

+
    +
  1. Generate the added file's serial number using IEdmSerNoGen7. +
  2. Call this method, specifying oSerialNumberName with the added file's serial number generator ID. +
  3. Repeat steps 1 and 2 for each new file. +
  4. Call one of the IEdmBatchAdd::Add* methods to add the new files to the batch. +
  5. Call  IEdmBatchAdd::CommitAdd.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState.html new file mode 100644 index 0000000..c99165b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState.html @@ -0,0 +1,145 @@ + + + + + + IEdmBatchChangeState Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState 
+
C# 
public interface IEdmBatchChangeState 
+
C++/CLI 
public interface class IEdmBatchChangeState 
+
+ + + + +

Remarks

This interface:

+ +

To change the states of files:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_BatchChangeState as a parameter. +
  2. Call IEdmBatchChangeState::AddFile to add a file to the batch of files whose states you want to change. +
  3. Call IEdmBatchChangeState::CreateTree to build the initial file reference tree. +
  4. Optionally call IEdmBatchChangeState::ShowDlg to show a dialog with the affected files. +
  5. Call IEdmBatchChangeState::ChangeState to change the states of the files added to the batch.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2.html new file mode 100644 index 0000000..a17752e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2.html @@ -0,0 +1,141 @@ + + + + + + IEdmBatchChangeState2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState2 
+   Inherits IEdmBatchChangeState 
+
C# 
public interface IEdmBatchChangeState2 : IEdmBatchChangeState  
+
C++/CLI 
public interface class IEdmBatchChangeState2 : public IEdmBatchChangeState  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_members.html new file mode 100644 index 0000000..3d0e8b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBatchChangeState2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState2.

+ + +

Public Methods

+ + +
 NameDescription
 MethodCreateTreeForRevokeComputes the file reference tree and checks that the specified transition revocation can be performed for the files added to this batch using IEdmBatchChangeState::AddFile.  
 MethodGetAvailableTransitionListGets the state transitions available for the files in this batch.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_methods.html new file mode 100644 index 0000000..5fb8421 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBatchChangeState2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState2 members.

+

Public Methods

+ + +
 NameDescription
 MethodCreateTreeForRevokeComputes the file reference tree and checks that the specified transition revocation can be performed for the files added to this batch using IEdmBatchChangeState::AddFile.  
 MethodGetAvailableTransitionListGets the state transitions available for the files in this batch.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~CreateTreeForRevoke.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~CreateTreeForRevoke.html new file mode 100644 index 0000000..ff4832b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~CreateTreeForRevoke.html @@ -0,0 +1,157 @@ + + + + + + CreateTreeForRevoke Method (IEdmBatchChangeState2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTreeForRevoke Method (IEdmBatchChangeState2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState2 Interface + : CreateTreeForRevoke Method (IEdmBatchChangeState2)
+ +
+ + + +
+ +
+ + +
+
+
bsTransition
+
Name of the workflow state transition to revoke
+
+ +
+ +
+ + +
+
+ Computes the file reference tree and checks that the specified transition revocation can be performed for the files added to this batch using IEdmBatchChangeState::AddFile. + + +

Syntax

Visual Basic 
Function CreateTreeForRevoke( _
+   ByVal bsTransition As System.String _
+) As System.Boolean
+
C# 
System.bool CreateTreeForRevoke( 
+   System.string bsTransition
+)
+
C++/CLI 
System.bool CreateTreeForRevoke( 
+&   System.String^ bsTransition
+) 
+ +

Parameters

bsTransition
+
Name of the workflow state transition to revoke
+ +

Return Value

True if there are any valid files on which to revoke transitions, false if there are no valid files
+ + +

Example

See the IEdmBatchChangeState2 examples. +
+ +

Remarks

To include parent files in the file reference tree, call IEdmBatchChangeState5::IncludeParentsForRevokeTree.

+

After calling this method, call IEdmBatchChangeState::ShowDlg and/or IEdmBatchChangeState::ChangeState.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~GetAvailableTransitionList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~GetAvailableTransitionList.html new file mode 100644 index 0000000..61a3620 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState2~GetAvailableTransitionList.html @@ -0,0 +1,155 @@ + + + + + + GetAvailableTransitionList Method (IEdmBatchChangeState2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAvailableTransitionList Method (IEdmBatchChangeState2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState2 Interface + : GetAvailableTransitionList Method (IEdmBatchChangeState2)
+ +
+ + + +
+ +
+ + +
+
+
ppoTransitions
+
Array of EdmChangeStateTransitionInfo structures; one structure for each state transition
+
+ +
+ +
+ + +
+
+ Gets the state transitions available for the files in this batch. + + +

Syntax

Visual Basic 
Sub GetAvailableTransitionList( _
+   ByRef ppoTransitions() As EdmChangeStateTransitionInfo _
+) 
+
C# 
void GetAvailableTransitionList( 
+   out EdmChangeStateTransitionInfo[] ppoTransitions
+)
+
C++/CLI 
void GetAvailableTransitionList( 
+&   [Out] array<EdmChangeStateTransitionInfo>^ ppoTransitions
+) 
+ +

Parameters

ppoTransitions
+
Array of EdmChangeStateTransitionInfo structures; one structure for each state transition
+ +
+ + +

Example

See the IEdmBatchChangeState2 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3.html new file mode 100644 index 0000000..f91012f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3.html @@ -0,0 +1,141 @@ + + + + + + IEdmBatchChangeState3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState3 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState3 
+   Inherits IEdmBatchChangeStateIEdmBatchChangeState2 
+
C# 
public interface IEdmBatchChangeState3 : IEdmBatchChangeStateIEdmBatchChangeState2  
+
C++/CLI 
public interface class IEdmBatchChangeState3 : public IEdmBatchChangeStateIEdmBatchChangeState2  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_members.html new file mode 100644 index 0000000..1745e4b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBatchChangeState3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAllowAdminToRevokeSets whether an administrator is allowed to revoke state transitions of files in this batch.  
 MethodSetRevokeUserIDSets the ID of the user allowed to revoke state transitions of files in this batch.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_methods.html new file mode 100644 index 0000000..f1a182f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBatchChangeState3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState3 members.

+

Public Methods

+ + +
 NameDescription
 MethodAllowAdminToRevokeSets whether an administrator is allowed to revoke state transitions of files in this batch.  
 MethodSetRevokeUserIDSets the ID of the user allowed to revoke state transitions of files in this batch.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~AllowAdminToRevoke.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~AllowAdminToRevoke.html new file mode 100644 index 0000000..836bb5e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~AllowAdminToRevoke.html @@ -0,0 +1,155 @@ + + + + + + AllowAdminToRevoke Method (IEdmBatchChangeState3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AllowAdminToRevoke Method (IEdmBatchChangeState3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState3 Interface + : AllowAdminToRevoke Method (IEdmBatchChangeState3)
+ +
+ + + +
+ +
+ + +
+
+
bAllowAdminToRevoke
+
True to allow an administrator to revoke state transitions of files, false to not
+
+ +
+ +
+ + +
+
+ Sets whether an administrator is allowed to revoke state transitions of files in this batch. + + +

Syntax

Visual Basic 
Sub AllowAdminToRevoke( _
+   ByVal bAllowAdminToRevoke As System.Boolean _
+) 
+
C# 
void AllowAdminToRevoke( 
+   System.bool bAllowAdminToRevoke
+)
+
C++/CLI 
void AllowAdminToRevoke( 
+&   System.bool bAllowAdminToRevoke
+) 
+ +

Parameters

bAllowAdminToRevoke
+
True to allow an administrator to revoke state transitions of files, false to not
+ +
+ + +

Example

See the IEdmBatchChangeState3 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~SetRevokeUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~SetRevokeUserID.html new file mode 100644 index 0000000..f02fdb5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState3~SetRevokeUserID.html @@ -0,0 +1,155 @@ + + + + + + SetRevokeUserID Method (IEdmBatchChangeState3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetRevokeUserID Method (IEdmBatchChangeState3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState3 Interface + : SetRevokeUserID Method (IEdmBatchChangeState3)
+ +
+ + + +
+ +
+ + +
+
+
lUserID
+
ID of user allowed to revoke state transitions of files
+
+ +
+ +
+ + +
+
+ Sets the ID of the user allowed to revoke state transitions of files in this batch. + + +

Syntax

Visual Basic 
Sub SetRevokeUserID( _
+   ByVal lUserID As System.Integer _
+) 
+
C# 
void SetRevokeUserID( 
+   System.int lUserID
+)
+
C++/CLI 
void SetRevokeUserID( 
+&   System.int lUserID
+) 
+ +

Parameters

lUserID
+
ID of user allowed to revoke state transitions of files
+ +
+ + +

Example

See the IEdmBatchChangeState3 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4.html new file mode 100644 index 0000000..efefd38 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4.html @@ -0,0 +1,141 @@ + + + + + + IEdmBatchChangeState4 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState4 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState4 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState4 
+   Inherits IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3 
+
C# 
public interface IEdmBatchChangeState4 : IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3  
+
C++/CLI 
public interface class IEdmBatchChangeState4 : public IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_members.html new file mode 100644 index 0000000..0e0e605 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchChangeState4 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState4 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState4 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState4.

+ + +

Public Methods

+ +
 NameDescription
 MethodChangeState2Changes states or revokes transitions of all the files added to this batch using IEdmBatchChangeState::AddFile.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_methods.html new file mode 100644 index 0000000..141f288 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchChangeState4 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState4 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState4 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState4 members.

+

Public Methods

+ +
 NameDescription
 MethodChangeState2Changes states or revokes transitions of all the files added to this batch using IEdmBatchChangeState::AddFile.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4~ChangeState2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4~ChangeState2.html new file mode 100644 index 0000000..55ae08b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState4~ChangeState2.html @@ -0,0 +1,174 @@ + + + + + + ChangeState2 Method (IEdmBatchChangeState4) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState2 Method (IEdmBatchChangeState4)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState4 Interface + : ChangeState2 Method (IEdmBatchChangeState4)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+

Parent window handle that is passed to add-ins that are notified about file state changes in the vault

+
+
+
bsPasswd
+
Password of user executing the transition
+
+
+
poCallback
+

Optional pointer to a class that implements IEdmCallback to receive progress information about the operation

+
+ +
+ +
+ + +
+
+ Changes states or revokes transitions of all the files added to this batch using IEdmBatchChangeState::AddFile. + + +

Syntax

Visual Basic 
Sub ChangeState2( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsPasswd As System.String, _
+   Optional ByVal poCallback As EdmCallback _
+) 
+
C# 
void ChangeState2( 
+   System.int lParentWnd,
+   System.string bsPasswd,
+   EdmCallback poCallback
+)
+
C++/CLI 
void ChangeState2( 
+&   System.int lParentWnd,
+&   System.String^ bsPasswd,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

lParentWnd
+

Parent window handle that is passed to add-ins that are notified about file state changes in the vault

bsPasswd
+
Password of user executing the transition
poCallback
+

Optional pointer to a class that implements IEdmCallback to receive progress information about the operation

+ +
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ +

Remarks

The difference between this method and the now obsolete IEdmBatchChangeState::ChangeState is that this method specifies a user password that allows the file to change state if the transition requires authentication (IEdmTransition10::Authentication).

+

Before calling this method, you must call IEdmBatchChangeState::CreateTree if changing states or IEdmBatchChangeState2::CreateTreeForRevoke if revoking transitions.

+

Return codes:

+
    +
  • E_EDM_STATECHANGE_FAILED: The password is invalid. +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP02
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5.html new file mode 100644 index 0000000..5b43735 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5.html @@ -0,0 +1,139 @@ + + + + + + IEdmBatchChangeState5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState5 
+   Inherits IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3IEdmBatchChangeState4 
+
C# 
public interface IEdmBatchChangeState5 : IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3IEdmBatchChangeState4  
+
C++/CLI 
public interface class IEdmBatchChangeState5 : public IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3IEdmBatchChangeState4  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_members.html new file mode 100644 index 0000000..15a6e93 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchChangeState5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState5.

+ + +

Public Methods

+ +
 NameDescription
 MethodIncludeParentsForRevokeTreeGets or sets whether to include parent files in the file reference tree to revoke transactions.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_methods.html new file mode 100644 index 0000000..122af82 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchChangeState5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState5 members.

+

Public Methods

+ +
 NameDescription
 MethodIncludeParentsForRevokeTreeGets or sets whether to include parent files in the file reference tree to revoke transactions.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5~IncludeParentsForRevokeTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5~IncludeParentsForRevokeTree.html new file mode 100644 index 0000000..641c862 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState5~IncludeParentsForRevokeTree.html @@ -0,0 +1,155 @@ + + + + + + IncludeParentsForRevokeTree Method (IEdmBatchChangeState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IncludeParentsForRevokeTree Method (IEdmBatchChangeState5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState5 Interface + : IncludeParentsForRevokeTree Method (IEdmBatchChangeState5)
+ +
+ + + +
+ +
+ + +
+
+
bInclude
+
True to include parent files in the file reference tree to revoke transactions, false to not
+
+ +
+ +
+ + +
+
+ Gets or sets whether to include parent files in the file reference tree to revoke transactions. + + +

Syntax

Visual Basic 
Sub IncludeParentsForRevokeTree( _
+   ByVal bInclude As System.Boolean _
+) 
+
C# 
void IncludeParentsForRevokeTree( 
+   System.bool bInclude
+)
+
C++/CLI 
void IncludeParentsForRevokeTree( 
+&   System.bool bInclude
+) 
+ +

Parameters

bInclude
+
True to include parent files in the file reference tree to revoke transactions, false to not
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6.html new file mode 100644 index 0000000..bf84306 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6.html @@ -0,0 +1,138 @@ + + + + + + IEdmBatchChangeState6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to change states or revoke transitions of several files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchChangeState6 
+   Inherits IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3IEdmBatchChangeState4IEdmBatchChangeState5 
+ +
C++/CLI 
public interface class IEdmBatchChangeState6 : public IEdmBatchChangeStateIEdmBatchChangeState2IEdmBatchChangeState3IEdmBatchChangeState4IEdmBatchChangeState5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmBatchChangeState5 by allowing another user to transition files.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_members.html new file mode 100644 index 0000000..9a479c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchChangeState6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState6.

+ + +

Public Methods

+ +
 NameDescription
 MethodRunAsUserTransitions files with another user's credentials.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_methods.html new file mode 100644 index 0000000..8ce29d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchChangeState6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState6 members.

+

Public Methods

+ +
 NameDescription
 MethodRunAsUserTransitions files with another user's credentials.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6~RunAsUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6~RunAsUser.html new file mode 100644 index 0000000..153420c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState6~RunAsUser.html @@ -0,0 +1,168 @@ + + + + + + RunAsUser Method (IEdmBatchChangeState6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RunAsUser Method (IEdmBatchChangeState6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState6 Interface + : RunAsUser Method (IEdmBatchChangeState6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle that is passed to add-ins that are notified about file state changes in the vault
+
+
+
bsRunASUserName
+
User name to use to transition the files
+
+
+
bsRunAsPassword
+
Password for bsRunASUserName
+
+ +
+ +
+ + +
+
+ Transitions files with another user's credentials. + + +

Syntax

Visual Basic 
Sub RunAsUser( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsRunASUserName As System.String, _
+   ByVal bsRunAsPassword As System.String _
+) 
+
C# 
void RunAsUser( 
+   System.int lParentWnd,
+   System.string bsRunASUserName,
+   System.string bsRunAsPassword
+)
+
C++/CLI 
void RunAsUser( 
+&   System.int lParentWnd,
+&   System.String^ bsRunASUserName,
+&   System.String^ bsRunAsPassword
+) 
+ +

Parameters

lParentWnd
+
Parent window handle that is passed to add-ins that are notified about file state changes in the vault
bsRunASUserName
+
User name to use to transition the files
bsRunAsPassword
+
Password for bsRunASUserName
+ +
+ + +

Example

See the IEdmBatchChangeState6 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_members.html new file mode 100644 index 0000000..bf901c4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_members.html @@ -0,0 +1,118 @@ + + + + + + IEdmBatchChangeState Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchChangeState.

+

Public Properties

+ +
 NameDescription
 PropertyCommentComment about this state change or transition revocation to add to the history listing.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodAddFileAdds a file to this batch of files whose states you want to change or whose transitions you want to revoke.  
 MethodChangeStateObsolete. Superseded by IEdmBatchChangeState4::ChangeState2.  
 MethodCreateTreeComputes the file reference tree and checks that the specified state transition can be performed for the files added to this batch using IEdmBatchChangeState::AddFile.  
 MethodGetFileListGets the list of files affected by the state change or transition revocation.  
 MethodSetAuxReserved for future use.  
 MethodShowDlgShows the change state or revoke transition dialog box.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_methods.html new file mode 100644 index 0000000..f0c1d83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmBatchChangeState Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodAddFileAdds a file to this batch of files whose states you want to change or whose transitions you want to revoke.  
 MethodChangeStateObsolete. Superseded by IEdmBatchChangeState4::ChangeState2.  
 MethodCreateTreeComputes the file reference tree and checks that the specified state transition can be performed for the files added to this batch using IEdmBatchChangeState::AddFile.  
 MethodGetFileListGets the list of files affected by the state change or transition revocation.  
 MethodSetAuxReserved for future use.  
 MethodShowDlgShows the change state or revoke transition dialog box.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_properties.html new file mode 100644 index 0000000..8909f85 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmBatchChangeState Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchChangeState Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchChangeState Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchChangeState members.

+

Public Properties

+ +
 NameDescription
 PropertyCommentComment about this state change or transition revocation to add to the history listing.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~AddFile.html new file mode 100644 index 0000000..2b26018 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~AddFile.html @@ -0,0 +1,164 @@ + + + + + + AddFile Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : AddFile Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file whose state you want to change or whose transition you want to revoke
+
+
+
lFolderID
+
ID of file's folder
+
+ +
+ +
+ + +
+
+ Adds a file to this batch of files whose states you want to change or whose transitions you want to revoke. + + +

Syntax

Visual Basic 
Sub AddFile( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer _
+) 
+
C# 
void AddFile( 
+   System.int lFileID,
+   System.int lFolderID
+)
+
C++/CLI 
void AddFile( 
+&   System.int lFileID,
+&   System.int lFolderID
+) 
+ +

Parameters

lFileID
+
ID of file whose state you want to change or whose transition you want to revoke
lFolderID
+
ID of file's folder
+ +
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ +

Remarks

After calling this method, call IEdmBatchChangeState::ChangeState to actually change the state of the file or revoke its transition.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ChangeState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ChangeState.html new file mode 100644 index 0000000..ca64ec6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ChangeState.html @@ -0,0 +1,164 @@ + + + + + + ChangeState Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : ChangeState Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle that is passed to add-ins that are notified about file state changes in the vault
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to receive progress information about the operation
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchChangeState4::ChangeState2. + + +

Syntax

Visual Basic 
Sub ChangeState( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal poCallback As EdmCallback _
+) 
+
C# 
void ChangeState( 
+   System.int lParentWnd,
+   EdmCallback poCallback
+)
+
C++/CLI 
void ChangeState( 
+&   System.int lParentWnd,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle that is passed to add-ins that are notified about file state changes in the vault
poCallback
+
Optional pointer to a class that implements IEdmCallback to receive progress information about the operation
+ +
+ + + + + +

Remarks

Before calling this method, you must call IEdmBatchChangeState::CreateTree if changing states or IEdmBatchChangeState2::CreateTreeForRevoke if revoking transitions.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009; for revoking a transition, SOLIDWORKS PDM Professional 2013

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~Comment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~Comment.html new file mode 100644 index 0000000..596c36e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~Comment.html @@ -0,0 +1,148 @@ + + + + + + Comment Property (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Comment Property (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : Comment Property (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Comment about this state change or transition revocation to add to the history listing. + + +

Syntax

Visual Basic 
Property Comment As System.String
+
C# 
System.string Comment {get; set;}
+
C++/CLI 
property System.String^ Comment {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Comment
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~CreateTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~CreateTree.html new file mode 100644 index 0000000..915ea66 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~CreateTree.html @@ -0,0 +1,157 @@ + + + + + + CreateTree Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTree Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : CreateTree Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
bsTransition
+
Name of the workflow state transition to perform
+
+ +
+ +
+ + +
+
+ Computes the file reference tree and checks that the specified state transition can be performed for the files added to this batch using IEdmBatchChangeState::AddFile. + + +

Syntax

Visual Basic 
Function CreateTree( _
+   ByVal bsTransition As System.String _
+) As System.Boolean
+
C# 
System.bool CreateTree( 
+   System.string bsTransition
+)
+
C++/CLI 
System.bool CreateTree( 
+&   System.String^ bsTransition
+) 
+ +

Parameters

bsTransition
+
Name of the workflow state transition to perform
+ +

Return Value

True if there are any valid state changes, false if not
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ +

Remarks

If you are revoking transitions, instead of calling this method, call IEdmBatchChangeState2::CreateTreeForRevoke.

+

After calling this method, call IEdmBatchChangeState::ShowDlg and/or IEdmBatchChangeState::ChangeState.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~GetFileList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~GetFileList.html new file mode 100644 index 0000000..6a94a1d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~GetFileList.html @@ -0,0 +1,155 @@ + + + + + + GetFileList Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileList Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : GetFileList Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
lEdmChangeStateFileListFlags
+
Combination of EdmChangeStateFileListFlag bits
+
+ +
+ +
+ + +
+
+ Gets the list of files affected by the state change or transition revocation. + + +

Syntax

Visual Basic 
Function GetFileList( _
+   ByVal lEdmChangeStateFileListFlags As System.Integer _
+) As EdmSelectionList5
+
C# 
EdmSelectionList5 GetFileList( 
+   System.int lEdmChangeStateFileListFlags
+)
+
C++/CLI 
EdmSelectionList5^ GetFileList( 
+&   System.int lEdmChangeStateFileListFlags
+) 
+ +

Parameters

lEdmChangeStateFileListFlags
+
Combination of EdmChangeStateFileListFlag bits
+ +

Return Value

IEdmSelectionList5; list of affected objects
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~SetAux.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~SetAux.html new file mode 100644 index 0000000..785bad1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~SetAux.html @@ -0,0 +1,160 @@ + + + + + + SetAux Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetAux Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : SetAux Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
poAux
+
 
+
+
+
lFlags
+
 
+
+ +
+ +
+ + +
+
+ Reserved for future use. + + +

Syntax

Visual Basic 
Sub SetAux( _
+   ByVal poAux As System.Object, _
+   Optional ByVal lFlags As System.Integer _
+) 
+
C# 
void SetAux( 
+   System.object poAux,
+   System.int lFlags
+)
+
C++/CLI 
void SetAux( 
+&   System.Object^ poAux,
+&   System.int lFlags
+) 
+ +

Parameters

poAux
+
 
lFlags
+
 
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ShowDlg.html new file mode 100644 index 0000000..74145ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchChangeState~ShowDlg.html @@ -0,0 +1,156 @@ + + + + + + ShowDlg Method (IEdmBatchChangeState) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmBatchChangeState)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchChangeState Interface + : ShowDlg Method (IEdmBatchChangeState)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle for the dialog box
+
+ +
+ +
+ + +
+
+ Shows the change state or revoke transition dialog box. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal lParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int lParentWnd
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int lParentWnd
+) 
+ +

Parameters

lParentWnd
+
Parent window handle for the dialog box
+ +

Return Value

True if the user clicked OK, false if the user clicked Cancel
+ + +

Example

See the IEdmBatchChangeState4 examples. +
+ +

Remarks

Before calling this method, you must call IEdmBatchChangeState::CreateTree if changing states or IEdmBatchChangeState2::CreateTreeForRevoke if revoking transitions.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009; for the revoke transition dialog, SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete.html new file mode 100644 index 0000000..55e149f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete.html @@ -0,0 +1,149 @@ + + + + + + IEdmBatchDelete Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to delete several files and folders from the vault at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchDelete 
+
C# 
public interface IEdmBatchDelete 
+
C++/CLI 
public interface class IEdmBatchDelete 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To delete several files and folders from the vault at once:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_BatchDelete as a parameter. +
  2. Call IEdmBatchDelete::AddFileByID, IEdmBatchDelete::AddFileByPath, or IEdmBatchDelete::AddFolder one or more times to add files and folders to the batch for deletion. +
  3. Call IEdmBatchDelete::ComputePermissions to prepare the delete operation. +
  4. Optionally call IEdmBatchDelete2::ShowWarningDlg2 to display a message about any errors found in step 3. +
  5. Call IEdmBatchDelete::CommitDelete to delete the files and folders added to the batch. +
  6. Optionally call IEdmBatchDelete::ShowCommitErrorsDlg or IEdmBatchDelete3::GetCommitErrors to get any errors that might have occurred in step 5.
+

Using IEdmBatchDelete is more efficient than calling IEdmFolder5::DeleteFile or IEdmFolder5::DeleteFolder multiple times.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2.html new file mode 100644 index 0000000..ce38293 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2.html @@ -0,0 +1,139 @@ + + + + + + IEdmBatchDelete2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to delete several files and folders from the vault at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchDelete2 
+   Inherits IEdmBatchDelete 
+
C# 
public interface IEdmBatchDelete2 : IEdmBatchDelete  
+
C++/CLI 
public interface class IEdmBatchDelete2 : public IEdmBatchDelete  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_members.html new file mode 100644 index 0000000..017cf2d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchDelete2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchDelete2.

+ + +

Public Methods

+ +
 NameDescription
 MethodShowWarningDlg2Shows a dialog box with the warnings and errors that occurred during IEdmBatchDelete::ComputePermissions.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_methods.html new file mode 100644 index 0000000..1d92e62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchDelete2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchDelete2 members.

+

Public Methods

+ +
 NameDescription
 MethodShowWarningDlg2Shows a dialog box with the warnings and errors that occurred during IEdmBatchDelete::ComputePermissions.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2~ShowWarningDlg2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2~ShowWarningDlg2.html new file mode 100644 index 0000000..ecc1e18 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete2~ShowWarningDlg2.html @@ -0,0 +1,164 @@ + + + + + + ShowWarningDlg2 Method (IEdmBatchDelete2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowWarningDlg2 Method (IEdmBatchDelete2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete2 Interface + : ShowWarningDlg2 Method (IEdmBatchDelete2)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle for the dialog box
+
+
+
bIncludeDeleted
+
True to show the contents of the trash can, false to not
+
+ +
+ +
+ + +
+
+ Shows a dialog box with the warnings and errors that occurred during IEdmBatchDelete::ComputePermissions. + + +

Syntax

Visual Basic 
Function ShowWarningDlg2( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal bIncludeDeleted As System.Boolean _
+) As System.Boolean
+
C# 
System.bool ShowWarningDlg2( 
+   System.int hParentWnd,
+   System.bool bIncludeDeleted
+)
+
C++/CLI 
System.bool ShowWarningDlg2( 
+&   System.int hParentWnd,
+&   System.bool bIncludeDeleted
+) 
+ +

Parameters

hParentWnd
+
Parent window handle for the dialog box
bIncludeDeleted
+
True to show the contents of the trash can, false to not
+ +

Return Value

True if the user chooses to continue the operation in spite of the warnings, false if the user cancels the operation
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

This method supersedes IEdmBatchDelete.ShowWarningDlg by adding the option to show the deleted objects in the trash can.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NOT_INITIALIZED: IEdmBatchDelete::ComputePermissions has not been called.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3.html new file mode 100644 index 0000000..2b909ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3.html @@ -0,0 +1,136 @@ + + + + + + IEdmBatchDelete3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to delete several files and folders from the vault all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchDelete3 
+   Inherits IEdmBatchDeleteIEdmBatchDelete2 
+
C# 
public interface IEdmBatchDelete3 : IEdmBatchDeleteIEdmBatchDelete2  
+
C++/CLI 
public interface class IEdmBatchDelete3 : public IEdmBatchDeleteIEdmBatchDelete2  
+
+ + + + +

Remarks

This interface extends IEdmBatchDelete2 by adding IEdmBatchDelete3::GetCommitErrors which shows the errors that occurred during IEdmBatchDelete::CommitDelete.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_members.html new file mode 100644 index 0000000..7bdaee7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchDelete3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchDelete3.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetCommitErrorsShows the errors that occurred during IEdmBatchDelete::CommitDelete.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_methods.html new file mode 100644 index 0000000..a4b22c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchDelete3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchDelete3 members.

+

Public Methods

+ +
 NameDescription
 MethodGetCommitErrorsShows the errors that occurred during IEdmBatchDelete::CommitDelete.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3~GetCommitErrors.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3~GetCommitErrors.html new file mode 100644 index 0000000..24fd6d1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete3~GetCommitErrors.html @@ -0,0 +1,156 @@ + + + + + + GetCommitErrors Method (IEdmBatchDelete3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCommitErrors Method (IEdmBatchDelete3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete3 Interface + : GetCommitErrors Method (IEdmBatchDelete3)
+ +
+ + + +
+ +
+ + +
+
+
ppoDelErrors
+
Array of EdmBatchDelErrInfo structures; one for each error that occurred during IEdmBatchDelete::CommitDelete
+
+ +
+ +
+ + +
+
+ Shows the errors that occurred during IEdmBatchDelete::CommitDelete. + + +

Syntax

Visual Basic 
Sub GetCommitErrors( _
+   ByRef ppoDelErrors() As EdmBatchDelErrInfo _
+) 
+
C# 
void GetCommitErrors( 
+   out EdmBatchDelErrInfo[] ppoDelErrors
+)
+
C++/CLI 
void GetCommitErrors( 
+&   [Out] array<EdmBatchDelErrInfo>^ ppoDelErrors
+) 
+ +

Parameters

ppoDelErrors
+
Array of EdmBatchDelErrInfo structures; one for each error that occurred during IEdmBatchDelete::CommitDelete
+ +
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

Call this method after calling IEdmBatchDelete::CommitDelete.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NOT_INITIALIZED: IEdmBatchDelete::CommitDelete has not been called.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2012
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_members.html new file mode 100644 index 0000000..e6f0043 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmBatchDelete Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchDelete.

+ + +

Public Methods

+ + + + + + + +
 NameDescription
 MethodAddFileByIDAdds a file with the specified file and folder IDs to the batch of files to be deleted.  
 MethodAddFileByPathAdds a file with the specified path to the batch of files to be deleted.  
 MethodAddFolderAdds a folder with the specified ID or path to the batch of folders to delete.  
 MethodCommitDeleteDeletes the files and folders added to the batch by IEdmBatchDelete::AddFileByID, IEdmBatchDelete::AddFileByPath, and/or IEdmBatchDelete::AddFolder.  
 MethodComputePermissionsSpecifies whether files or folders should be permanently deleted or moved to the recycle bin.  
 MethodShowCommitErrorsDlgShows a dialog box containing the errors that occurred during IEdmBatchDelete::CommitDelete.  
 MethodShowWarningDlgObsolete. Superseded by IEdmBatchDelete2::ShowWarningDlg2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_methods.html new file mode 100644 index 0000000..17679f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmBatchDelete Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchDelete Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchDelete Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchDelete members.

+

Public Methods

+ + + + + + + +
 NameDescription
 MethodAddFileByIDAdds a file with the specified file and folder IDs to the batch of files to be deleted.  
 MethodAddFileByPathAdds a file with the specified path to the batch of files to be deleted.  
 MethodAddFolderAdds a folder with the specified ID or path to the batch of folders to delete.  
 MethodCommitDeleteDeletes the files and folders added to the batch by IEdmBatchDelete::AddFileByID, IEdmBatchDelete::AddFileByPath, and/or IEdmBatchDelete::AddFolder.  
 MethodComputePermissionsSpecifies whether files or folders should be permanently deleted or moved to the recycle bin.  
 MethodShowCommitErrorsDlgShows a dialog box containing the errors that occurred during IEdmBatchDelete::CommitDelete.  
 MethodShowWarningDlgObsolete. Superseded by IEdmBatchDelete2::ShowWarningDlg2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByID.html new file mode 100644 index 0000000..df11c96 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByID.html @@ -0,0 +1,164 @@ + + + + + + AddFileByID Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileByID Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : AddFileByID Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to delete
+
+
+
lFolderID
+
ID of file's parent folder
+
+ +
+ +
+ + +
+
+ Adds a file with the specified file and folder IDs to the batch of files to be deleted. + + +

Syntax

Visual Basic 
Sub AddFileByID( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer _
+) 
+
C# 
void AddFileByID( 
+   System.int lFileID,
+   System.int lFolderID
+)
+
C++/CLI 
void AddFileByID( 
+&   System.int lFileID,
+&   System.int lFolderID
+) 
+ +

Parameters

lFileID
+
ID of file to delete
lFolderID
+
ID of file's parent folder
+ +
+ + + + + +

Remarks

After calling this method, call IEdmBatchDelete::CommitDelete to delete the file from the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByPath.html new file mode 100644 index 0000000..bc60833 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFileByPath.html @@ -0,0 +1,156 @@ + + + + + + AddFileByPath Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileByPath Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : AddFileByPath Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path of file to delete
+
+ +
+ +
+ + +
+
+ Adds a file with the specified path to the batch of files to be deleted. + + +

Syntax

Visual Basic 
Sub AddFileByPath( _
+   ByVal bsPath As System.String _
+) 
+
C# 
void AddFileByPath( 
+   System.string bsPath
+)
+
C++/CLI 
void AddFileByPath( 
+&   System.String^ bsPath
+) 
+ +

Parameters

bsPath
+
Path of file to delete
+ +
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

After calling this method, call IEdmBatchDelete::CommitDelete to delete the file from the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFolder.html new file mode 100644 index 0000000..29af0d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~AddFolder.html @@ -0,0 +1,156 @@ + + + + + + AddFolder Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : AddFolder Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
oFolderIDorPath
+
ID of or path to folder to delete
+
+ +
+ +
+ + +
+
+ Adds a folder with the specified ID or path to the batch of folders to delete. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal oFolderIDorPath As System.Object _
+) 
+
C# 
void AddFolder( 
+   System.object oFolderIDorPath
+)
+
C++/CLI 
void AddFolder( 
+&   System.Object^ oFolderIDorPath
+) 
+ +

Parameters

oFolderIDorPath
+
ID of or path to folder to delete
+ +
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

After calling this method, call IEdmBatchDelete::CommitDelete to delete the file from the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~CommitDelete.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~CommitDelete.html new file mode 100644 index 0000000..8e12b7c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~CommitDelete.html @@ -0,0 +1,165 @@ + + + + + + CommitDelete Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommitDelete Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : CommitDelete Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle that is passed to add-ins that are notified about file or folder deletions from the vault
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to provide delete progress feedback to the user
+
+ +
+ +
+ + +
+
+ Deletes the files and folders added to the batch by IEdmBatchDelete::AddFileByID, IEdmBatchDelete::AddFileByPath, and/or IEdmBatchDelete::AddFolder. + + +

Syntax

Visual Basic 
Function CommitDelete( _
+   ByVal hParentWnd As System.Integer, _
+   Optional ByVal poCallback As EdmCallback _
+) As System.Boolean
+
C# 
System.bool CommitDelete( 
+   System.int hParentWnd,
+   EdmCallback poCallback
+)
+
C++/CLI 
System.bool CommitDelete( 
+&   System.int hParentWnd,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

hParentWnd
+
Parent window handle that is passed to add-ins that are notified about file or folder deletions from the vault
poCallback
+
Optional pointer to a class that implements IEdmCallback to provide delete progress feedback to the user
+ +

Return Value

True if no errors occurred, false if errors occurred
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

Before calling this method, you must call IEdmBatchDelete::ComputePermissions.

+

If errors occurred during IEdmBatchDelete::CommitDelete, call IEdmBatchDelete::ShowCommitErrorsDlg or IEdmBatchDelete3::GetCommitErrors.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NOT_INITIALIZED: IEdmBatchDelete::ComputePermissions has not been called.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ComputePermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ComputePermissions.html new file mode 100644 index 0000000..8368c2f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ComputePermissions.html @@ -0,0 +1,165 @@ + + + + + + ComputePermissions Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ComputePermissions Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : ComputePermissions Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
bDestroy
+
True to permanently delete files and folders, false to move files and folders to the recycle bin
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to provide delete progress feedback to the user
+
+ +
+ +
+ + +
+
+ Specifies whether files or folders should be permanently deleted or moved to the recycle bin. + + +

Syntax

Visual Basic 
Function ComputePermissions( _
+   ByVal bDestroy As System.Boolean, _
+   Optional ByVal poCallback As EdmCallback _
+) As System.Boolean
+
C# 
System.bool ComputePermissions( 
+   System.bool bDestroy,
+   EdmCallback poCallback
+)
+
C++/CLI 
System.bool ComputePermissions( 
+&   System.bool bDestroy,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

bDestroy
+
True to permanently delete files and folders, false to move files and folders to the recycle bin
poCallback
+
Optional pointer to a class that implements IEdmCallback to provide delete progress feedback to the user
+ +

Return Value

True if no errors occurred, false otherwise
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

Before calling this method, you must add files and folders to the batch using IEdmBatchDelete::AddFileByID, IEdmBatchDelete::AddFileByPath, and IEdmBatchDelete::AddFolder.

+

If errors occurred during IEdmBatchDelete::ComputePermissions, call IEdmBatchDelete::ShowWarningDlg.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowCommitErrorsDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowCommitErrorsDlg.html new file mode 100644 index 0000000..46ee0f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowCommitErrorsDlg.html @@ -0,0 +1,155 @@ + + + + + + ShowCommitErrorsDlg Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowCommitErrorsDlg Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : ShowCommitErrorsDlg Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle for the dialog box
+
+ +
+ +
+ + +
+
+ Shows a dialog box containing the errors that occurred during IEdmBatchDelete::CommitDelete. + + +

Syntax

Visual Basic 
Sub ShowCommitErrorsDlg( _
+   ByVal hParentWnd As System.Integer _
+) 
+
C# 
void ShowCommitErrorsDlg( 
+   System.int hParentWnd
+)
+
C++/CLI 
void ShowCommitErrorsDlg( 
+&   System.int hParentWnd
+) 
+ +

Parameters

hParentWnd
+
Parent window handle for the dialog box
+ +
+ + +

Example

See the IEdmBatchDelete examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NOT_INITIALIZED: IEdmBatchDelete::CommitDelete has not been called.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowWarningDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowWarningDlg.html new file mode 100644 index 0000000..11f4297 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchDelete~ShowWarningDlg.html @@ -0,0 +1,155 @@ + + + + + + ShowWarningDlg Method (IEdmBatchDelete) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowWarningDlg Method (IEdmBatchDelete)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchDelete Interface + : ShowWarningDlg Method (IEdmBatchDelete)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle for the dialog box
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchDelete2::ShowWarningDlg2. + + +

Syntax

Visual Basic 
Function ShowWarningDlg( _
+   ByVal hParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowWarningDlg( 
+   System.int hParentWnd
+)
+
C++/CLI 
System.bool ShowWarningDlg( 
+&   System.int hParentWnd
+) 
+ +

Parameters

hParentWnd
+
Parent window handle for the dialog box
+ +

Return Value

True if the user chooses to continue the operation in spite of the warnings, false if the user cancels the operation
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NOT_INITIALIZED: IEdmBatchDelete::ComputePermissions has not been called.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet.html new file mode 100644 index 0000000..babcc0c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet.html @@ -0,0 +1,145 @@ + + + + + + IEdmBatchGet Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchGet Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchGet Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to get several files from the vault all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchGet 
+
C# 
public interface IEdmBatchGet 
+
C++/CLI 
public interface class IEdmBatchGet 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To get several files at once:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_BatchGet as a parameter. +
  2. Call IEdmBatchGet::AddSelection or IEdmBatchGet::AddSelectionEx at least once. +
  3. Call IEdmBatchGet::CreateTree to compute the file reference tree and specify get and check-out options. +
  4. Optionally call IEdmBatchGet::ShowDlg to display the Get or Check Out dialog box. +
  5. Call IEdmBatchGet::GetFiles to get the files.
+

Using this interface is more efficient than calling IEdmFile5::GetFileCopy and IEdmFile5::LockFile for each file that you want to check out.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_members.html new file mode 100644 index 0000000..2ad84df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_members.html @@ -0,0 +1,118 @@ + + + + + + IEdmBatchGet Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchGet Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchGet Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchGet.

+

Public Properties

+ +
 NameDescription
 PropertyFileCountGets the number of files in this batch.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodAddSelectionAdds one or more files or folders to the batch of files or folders to get.  
 MethodAddSelectionExAdds a file with the specified ID and version to the batch of files to get.  
 MethodCreateTreeComputes the file reference tree with the files added to the batch using IEdmBatchGet::AddSelection or IEdmBatchGet::AddSelectionEx.  
 MethodGetFileListGets a list of the files in this batch.  
 MethodGetFilesGets the files in the batch.  
 MethodShowDlgDisplays a dialog in which are listed the files to get or check out.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_methods.html new file mode 100644 index 0000000..610c925 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmBatchGet Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchGet Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchGet Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchGet members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodAddSelectionAdds one or more files or folders to the batch of files or folders to get.  
 MethodAddSelectionExAdds a file with the specified ID and version to the batch of files to get.  
 MethodCreateTreeComputes the file reference tree with the files added to the batch using IEdmBatchGet::AddSelection or IEdmBatchGet::AddSelectionEx.  
 MethodGetFileListGets a list of the files in this batch.  
 MethodGetFilesGets the files in the batch.  
 MethodShowDlgDisplays a dialog in which are listed the files to get or check out.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_properties.html new file mode 100644 index 0000000..48e316b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmBatchGet Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchGet Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchGet Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchGet members.

+

Public Properties

+ +
 NameDescription
 PropertyFileCountGets the number of files in this batch.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelection.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelection.html new file mode 100644 index 0000000..e0b676d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelection.html @@ -0,0 +1,163 @@ + + + + + + AddSelection Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSelection Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : AddSelection Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; vault from which to get the files or folders
+
+
+
ppoSelection
+
Array of EdmSelItem structures; one structure for each file or folder
+
+ +
+ +
+ + +
+
+ Adds one or more files or folders to the batch of files or folders to get. + + +

Syntax

Visual Basic 
Sub AddSelection( _
+   ByVal poVault As EdmVault5, _
+   ByRef ppoSelection() As EdmSelItem _
+) 
+
C# 
void AddSelection( 
+   EdmVault5 poVault,
+   ref EdmSelItem[] ppoSelection
+)
+
C++/CLI 
void AddSelection( 
+&   EdmVault5^ poVault,
+&   array<EdmSelItem>^% ppoSelection
+) 
+ +

Parameters

poVault
+
IEdmVault5; vault from which to get the files or folders
ppoSelection
+
Array of EdmSelItem structures; one structure for each file or folder
+ +
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelectionEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelectionEx.html new file mode 100644 index 0000000..2f81eb3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~AddSelectionEx.html @@ -0,0 +1,179 @@ + + + + + + AddSelectionEx Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSelectionEx Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : AddSelectionEx Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; vault from which to get the file
+
+
+
lFileID
+
ID of file to get
+
+
+
lParentFolderID
+
ID of the file's parent folder
+
+
+
oVersionOrFileDate
+
Number or modified date of the version of the file to get
+
+ +
+ +
+ + +
+
+ Adds a file with the specified ID and version to the batch of files to get. + + +

Syntax

Visual Basic 
Sub AddSelectionEx( _
+   ByVal poVault As EdmVault5, _
+   ByVal lFileID As System.Integer, _
+   ByVal lParentFolderID As System.Integer, _
+   ByVal oVersionOrFileDate As System.Object _
+) 
+
C# 
void AddSelectionEx( 
+   EdmVault5 poVault,
+   System.int lFileID,
+   System.int lParentFolderID,
+   System.object oVersionOrFileDate
+)
+
C++/CLI 
void AddSelectionEx( 
+&   EdmVault5^ poVault,
+&   System.int lFileID,
+&   System.int lParentFolderID,
+&   System.Object^ oVersionOrFileDate
+) 
+ +

Parameters

poVault
+
IEdmVault5; vault from which to get the file
lFileID
+
ID of file to get
lParentFolderID
+
ID of the file's parent folder
oVersionOrFileDate
+
Number or modified date of the version of the file to get
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~CreateTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~CreateTree.html new file mode 100644 index 0000000..c67de9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~CreateTree.html @@ -0,0 +1,164 @@ + + + + + + CreateTree Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTree Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : CreateTree Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmGetCmdFlags
+
Combination of EdmGetCmdFlags bits; specifies options for retrieving files from the vault
+
+ +
+ +
+ + +
+
+ Computes the file reference tree with the files added to the batch using IEdmBatchGet::AddSelection or IEdmBatchGet::AddSelectionEx. + + +

Syntax

Visual Basic 
Sub CreateTree( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lEdmGetCmdFlags As System.Integer _
+) 
+
C# 
void CreateTree( 
+   System.int lParentWnd,
+   System.int lEdmGetCmdFlags
+)
+
C++/CLI 
void CreateTree( 
+&   System.int lParentWnd,
+&   System.int lEdmGetCmdFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lEdmGetCmdFlags
+
Combination of EdmGetCmdFlags bits; specifies options for retrieving files from the vault
+ +
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

After calling this method, call IEdmBatchGet::ShowDlg and IEdmBatchGet::GetFiles.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~FileCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~FileCount.html new file mode 100644 index 0000000..d33870e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~FileCount.html @@ -0,0 +1,147 @@ + + + + + + FileCount Property (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileCount Property (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : FileCount Property (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of files in this batch. + + +

Syntax

Visual Basic 
ReadOnly Property FileCount As System.Integer
+
C# 
System.int FileCount {get;}
+
C++/CLI 
property System.int FileCount {
+   System.int get();
+}
+ + + +

Property Value

Number of files in this batch
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

This property is valid only after IEdmBatchGet::CreateTree is called.
+ + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFileList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFileList.html new file mode 100644 index 0000000..061e9de --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFileList.html @@ -0,0 +1,155 @@ + + + + + + GetFileList Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileList Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : GetFileList Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
lEdmGetFileListFlags
+
Combination of EdmGetFileListFlag bits
+
+ +
+ +
+ + +
+
+ Gets a list of the files in this batch. + + +

Syntax

Visual Basic 
Function GetFileList( _
+   ByVal lEdmGetFileListFlags As System.Integer _
+) As EdmSelectionList5
+
C# 
EdmSelectionList5 GetFileList( 
+   System.int lEdmGetFileListFlags
+)
+
C++/CLI 
EdmSelectionList5^ GetFileList( 
+&   System.int lEdmGetFileListFlags
+) 
+ +

Parameters

lEdmGetFileListFlags
+
Combination of EdmGetFileListFlag bits
+ +

Return Value

IEdmSelectionList5; list of files in this batch
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFiles.html new file mode 100644 index 0000000..f227d6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~GetFiles.html @@ -0,0 +1,164 @@ + + + + + + GetFiles Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFiles Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : GetFiles Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmGetOpCallback, IEdmGetOpCallback2, or IEdmGetOpCallback3 to control and monitor the operation
+
+ +
+ +
+ + +
+
+ Gets the files in the batch. + + +

Syntax

Visual Basic 
Sub GetFiles( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal poCallback As IEdmGetOpCallback _
+) 
+
C# 
void GetFiles( 
+   System.int lParentWnd,
+   IEdmGetOpCallback poCallback
+)
+
C++/CLI 
void GetFiles( 
+&   System.int lParentWnd,
+&   IEdmGetOpCallback^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
poCallback
+
Optional pointer to a class that implements IEdmGetOpCallback, IEdmGetOpCallback2, or IEdmGetOpCallback3 to control and monitor the operation
+ +
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

Call this method after calling IEdmBatchGet::CreateTree and, optionally, IEdmBatchGet::ShowDlg.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~ShowDlg.html new file mode 100644 index 0000000..5e58941 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchGet~ShowDlg.html @@ -0,0 +1,155 @@ + + + + + + ShowDlg Method (IEdmBatchGet) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmBatchGet)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchGet Interface + : ShowDlg Method (IEdmBatchGet)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Displays a dialog in which are listed the files to get or check out. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal lParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int lParentWnd
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int lParentWnd
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
+ +

Return Value

True if the user clicked Get or Check Out, false if the user clicked Cancel
+ + +

Example

See the IEdmBatchGet examples. +
+ +

Remarks

Call this method after calling IEdmBatchGet::CreateTree and before calling IEdmBatchGet::GetFiles.

+

Return code:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration.html new file mode 100644 index 0000000..d1e18c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration.html @@ -0,0 +1,146 @@ + + + + + + IEdmBatchItemGeneration Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to generate items from a file structure.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchItemGeneration 
+
C# 
public interface IEdmBatchItemGeneration 
+
C++/CLI 
public interface class IEdmBatchItemGeneration 
+
+ +

Example

See the IEdmBatchItemGeneration2 examples. +
+ +

Remarks

This interface:

+ +

To create several items from files at once:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_BatchItemGeneration as a parameter. +
  2. Call IEdmBatchItemGeneration::AddSelection one or more times. +
  3. Call IEdmBatchItemGeneration::CreateTree to compute the file reference tree. +
  4. Optionally call IEdmBatchItemGeneration::ShowDlg to show an item dialog. +
  5. Call IEdmBatchItemGeneration::GenerateItems to create the items.
+

See the Programming Items topic for more information.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2.html new file mode 100644 index 0000000..2f4b713 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2.html @@ -0,0 +1,139 @@ + + + + + + IEdmBatchItemGeneration2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to generate several items from file structures all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchItemGeneration2 
+   Inherits IEdmBatchItemGeneration 
+
C# 
public interface IEdmBatchItemGeneration2 : IEdmBatchItemGeneration  
+
C++/CLI 
public interface class IEdmBatchItemGeneration2 : public IEdmBatchItemGeneration  
+
+ + + +

Example

+

Remarks

This interface extends IEdmBatchItemGeneration.

+

See the Programming Items topic for more information.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_members.html new file mode 100644 index 0000000..4190d27 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchItemGeneration2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchItemGeneration2.

+ + +

Public Methods

+ +
 NameDescription
 MethodAddSelection2Adds information to the batch to generate a new item either from a file or stand-alone without a source file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_methods.html new file mode 100644 index 0000000..c4137ce --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchItemGeneration2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchItemGeneration2 members.

+

Public Methods

+ +
 NameDescription
 MethodAddSelection2Adds information to the batch to generate a new item either from a file or stand-alone without a source file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2~AddSelection2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2~AddSelection2.html new file mode 100644 index 0000000..c2c0a68 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration2~AddSelection2.html @@ -0,0 +1,216 @@ + + + + + + AddSelection2 Method (IEdmBatchItemGeneration2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSelection2 Method (IEdmBatchItemGeneration2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration2 Interface + : AddSelection2 Method (IEdmBatchItemGeneration2)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; vault in which to create the new item
+
+
+
poVariables
+
Optional array of EdmVarVal structures; variables to write to the item
+
+
+
bsItemName
+
Name of new item; if left blank, the serial number generator assigns the name
+
+
+
lDestFolderID
+
ID of the folder in which to place the new item; if left blank, the new item is placed in the item root folder
+
+
+
lSrcFileID
+
ID of the file from which to create the item; if 0 or blank, no link is created
+
+
+
lSrcFileProjID
+
ID of the parent folder of lSrcFileID; only valid if lSrcFileID is not 0 or blank
+
+
+
bsSrcFileConfig
+
Name of the configuration in the source file to which to link the new item
+
+
+
lEdmRefFlags
+
Combination of EdmRefFlags bits
+
+ +
+ +
+ + +
+
+ Adds information to the batch to generate a new item either from a file or stand-alone without a source file. + + +

Syntax

Visual Basic 
Sub AddSelection2( _
+   ByVal poVault As EdmVault5, _
+   ByVal poVariables() As EdmVarVal, _
+   Optional ByVal bsItemName As System.String, _
+   Optional ByVal lDestFolderID As System.Integer, _
+   Optional ByVal lSrcFileID As System.Integer, _
+   Optional ByVal lSrcFileProjID As System.Integer, _
+   Optional ByVal bsSrcFileConfig As System.String, _
+   Optional ByVal lEdmRefFlags As System.Integer _
+) 
+
C# 
void AddSelection2( 
+   EdmVault5 poVault,
+   EdmVarVal[] poVariables,
+   System.string bsItemName,
+   System.int lDestFolderID,
+   System.int lSrcFileID,
+   System.int lSrcFileProjID,
+   System.string bsSrcFileConfig,
+   System.int lEdmRefFlags
+)
+
C++/CLI 
void AddSelection2( 
+&   EdmVault5^ poVault,
+&   array<EdmVarVal>^ poVariables,
+&   System.String^ bsItemName,
+&   System.int lDestFolderID,
+&   System.int lSrcFileID,
+&   System.int lSrcFileProjID,
+&   System.String^ bsSrcFileConfig,
+&   System.int lEdmRefFlags
+) 
+ +

Parameters

poVault
+
IEdmVault5; vault in which to create the new item
poVariables
+
Optional array of EdmVarVal structures; variables to write to the item
bsItemName
+
Name of new item; if left blank, the serial number generator assigns the name
lDestFolderID
+
ID of the folder in which to place the new item; if left blank, the new item is placed in the item root folder
lSrcFileID
+
ID of the file from which to create the item; if 0 or blank, no link is created
lSrcFileProjID
+
ID of the parent folder of lSrcFileID; only valid if lSrcFileID is not 0 or blank
bsSrcFileConfig
+
Name of the configuration in the source file to which to link the new item
lEdmRefFlags
+
Combination of EdmRefFlags bits
+ +
+ + + + +

Example

+

Remarks

This method supersedes IEdmBatchItemGeneration::AddSelection by adding the ability to create stand-alone items without a source file.

+

To create a stand-alone item, you must call this method specifying poVault at a minimum. You can optionally specify poVariables and bsItemName to create a stand-alone item. The other parameters are only used to create new items from files.

+

After calling this method, call IEdmBatchItemGeneration::CreateTree.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_members.html new file mode 100644 index 0000000..d380d9d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmBatchItemGeneration Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchItemGeneration.

+

Public Properties

+ +
 NameDescription
 PropertyDestFolderIDGets or sets the ID of the item folder where new items are placed.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodAddSelectionObsolete. Superseded by IEdmBatchItemGeneration2::AddSelection2.  
 MethodCreateTreeComputes the file reference tree for the items added to the batch using IEdmBatchItemGeneration::AddSelection.  
 MethodGenerateItemsCreates the items added to the batch by IEdmBatchItemGeneration::AddSelection.  
 MethodShowDlgShows the item creation dialog box.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_methods.html new file mode 100644 index 0000000..985d075 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmBatchItemGeneration Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchItemGeneration members.

+

Public Methods

+ + + + +
 NameDescription
 MethodAddSelectionObsolete. Superseded by IEdmBatchItemGeneration2::AddSelection2.  
 MethodCreateTreeComputes the file reference tree for the items added to the batch using IEdmBatchItemGeneration::AddSelection.  
 MethodGenerateItemsCreates the items added to the batch by IEdmBatchItemGeneration::AddSelection.  
 MethodShowDlgShows the item creation dialog box.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_properties.html new file mode 100644 index 0000000..df4a09f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmBatchItemGeneration Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemGeneration Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemGeneration Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchItemGeneration members.

+

Public Properties

+ +
 NameDescription
 PropertyDestFolderIDGets or sets the ID of the item folder where new items are placed.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~AddSelection.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~AddSelection.html new file mode 100644 index 0000000..752f5d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~AddSelection.html @@ -0,0 +1,163 @@ + + + + + + AddSelection Method (IEdmBatchItemGeneration) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSelection Method (IEdmBatchItemGeneration)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration Interface + : AddSelection Method (IEdmBatchItemGeneration)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; vault in which to create the new items
+
+
+
ppoSelection
+
Array of EdmSelItem structures, one structure for each file from which to generate an item
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchItemGeneration2::AddSelection2. + + +

Syntax

Visual Basic 
Sub AddSelection( _
+   ByVal poVault As EdmVault5, _
+   ByRef ppoSelection() As EdmSelItem _
+) 
+
C# 
void AddSelection( 
+   EdmVault5 poVault,
+   ref EdmSelItem[] ppoSelection
+)
+
C++/CLI 
void AddSelection( 
+&   EdmVault5^ poVault,
+&   array<EdmSelItem>^% ppoSelection
+) 
+ +

Parameters

poVault
+
IEdmVault5; vault in which to create the new items
ppoSelection
+
Array of EdmSelItem structures, one structure for each file from which to generate an item
+ +
+ + +

Example

See the example in the IEdmBatchItemGeneration topic. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~CreateTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~CreateTree.html new file mode 100644 index 0000000..5bda517 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~CreateTree.html @@ -0,0 +1,166 @@ + + + + + + CreateTree Method (IEdmBatchItemGeneration) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTree Method (IEdmBatchItemGeneration)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration Interface + : CreateTree Method (IEdmBatchItemGeneration)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmItemGenerationCmdFlags
+
Combination of EdmItemGenerationFlags bits
+
+ +
+ +
+ + +
+
+ Computes the file reference tree for the items added to the batch using IEdmBatchItemGeneration::AddSelection. + + +

Syntax

Visual Basic 
Function CreateTree( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lEdmItemGenerationCmdFlags As System.Integer _
+) As System.Boolean
+
C# 
System.bool CreateTree( 
+   System.int lParentWnd,
+   System.int lEdmItemGenerationCmdFlags
+)
+
C++/CLI 
System.bool CreateTree( 
+&   System.int lParentWnd,
+&   System.int lEdmItemGenerationCmdFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lEdmItemGenerationCmdFlags
+
Combination of EdmItemGenerationFlags bits
+ +

Return Value

True if there is at least one item to create; false if there are none
+ + + + +

Example

+

Remarks

After calling this method, call IEdmBatchItemGeneration::GenerateItems and, optionally, IEdmBatchItemGeneration::ShowDlg.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~DestFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~DestFolderID.html new file mode 100644 index 0000000..22b8b08 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~DestFolderID.html @@ -0,0 +1,148 @@ + + + + + + DestFolderID Property (IEdmBatchItemGeneration) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DestFolderID Property (IEdmBatchItemGeneration)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration Interface + : DestFolderID Property (IEdmBatchItemGeneration)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the ID of the item folder where new items are placed. + + +

Syntax

Visual Basic 
Property DestFolderID As System.Integer
+
C# 
System.int DestFolderID {get; set;}
+
C++/CLI 
property System.int DestFolderID {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

ID of the item folder; by default, the item root folder
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009 Service Pack 2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~GenerateItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~GenerateItems.html new file mode 100644 index 0000000..0a86085 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~GenerateItems.html @@ -0,0 +1,189 @@ + + + + + + GenerateItems Method (IEdmBatchItemGeneration) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GenerateItems Method (IEdmBatchItemGeneration)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration Interface + : GenerateItems Method (IEdmBatchItemGeneration)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
ppoRetItems
+
Array of EdmGenItemInfo structures, one structure for each new item
+
+
+
pbOpen
+

True, if the following occurred:

+ +

False, if not

+
+
+
poCallback
+
Null; reserved for future use
+
+ +
+ +
+ + +
+
+ Creates the items added to the batch by IEdmBatchItemGeneration::AddSelection. + + +

Syntax

Visual Basic 
Sub GenerateItems( _
+   ByVal lParentWnd As System.Integer, _
+   ByRef ppoRetItems() As EdmGenItemInfo, _
+   ByRef pbOpen As System.Boolean, _
+   Optional ByVal poCallback As System.Object _
+) 
+
C# 
void GenerateItems( 
+   System.int lParentWnd,
+   out EdmGenItemInfo[] ppoRetItems,
+   out System.bool pbOpen,
+   System.object poCallback
+)
+
C++/CLI 
void GenerateItems( 
+&   System.int lParentWnd,
+&   [Out] array<EdmGenItemInfo>^ ppoRetItems,
+&   [Out] System.bool pbOpen,
+&   System.Object^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
ppoRetItems
+
Array of EdmGenItemInfo structures, one structure for each new item
pbOpen
+

True, if the following occurred:

+ +

False, if not

poCallback
+
Null; reserved for future use
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~ShowDlg.html new file mode 100644 index 0000000..a6f4288 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemGeneration~ShowDlg.html @@ -0,0 +1,155 @@ + + + + + + ShowDlg Method (IEdmBatchItemGeneration) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmBatchItemGeneration)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemGeneration Interface + : ShowDlg Method (IEdmBatchItemGeneration)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Shows the item creation dialog box. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal lParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int lParentWnd
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int lParentWnd
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
+ +

Return Value

True if the user clicked OK, false if the user clicked Cancel
+ + +

Example

See the example in the IEdmBatchItemGeneration topic. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate.html new file mode 100644 index 0000000..02436e0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate.html @@ -0,0 +1,138 @@ + + + + + + IEdmBatchItemReferenceUpdate Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemReferenceUpdate Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchItemReferenceUpdate Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add or remove several item references all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchItemReferenceUpdate 
+
C# 
public interface IEdmBatchItemReferenceUpdate 
+
C++/CLI 
public interface class IEdmBatchItemReferenceUpdate 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

See the Programming Items topic for more information.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_members.html new file mode 100644 index 0000000..109dee4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchItemReferenceUpdate Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemReferenceUpdate Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemReferenceUpdate Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchItemReferenceUpdate.

+ + +

Public Methods

+ +
 NameDescription
 MethodUpdateReferencesAdds or removes item references.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_methods.html new file mode 100644 index 0000000..288c98b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchItemReferenceUpdate Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchItemReferenceUpdate Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchItemReferenceUpdate Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchItemReferenceUpdate members.

+

Public Methods

+ +
 NameDescription
 MethodUpdateReferencesAdds or removes item references.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate~UpdateReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate~UpdateReferences.html new file mode 100644 index 0000000..8a45b62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchItemReferenceUpdate~UpdateReferences.html @@ -0,0 +1,163 @@ + + + + + + UpdateReferences Method (IEdmBatchItemReferenceUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateReferences Method (IEdmBatchItemReferenceUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchItemReferenceUpdate Interface + : UpdateReferences Method (IEdmBatchItemReferenceUpdate)
+ +
+ + + +
+ +
+ + +
+
+
ppoAddReferences
+
Array of EdmItemRef structures; item references to add
+
+
+
ppoRemoveReferences
+
Array of EdmItemRef structures; item references to remove
+
+ +
+ +
+ + +
+
+ Adds or removes item references. + + +

Syntax

Visual Basic 
Sub UpdateReferences( _
+   ByRef ppoAddReferences() As EdmItemRef, _
+   ByRef ppoRemoveReferences() As EdmItemRef _
+) 
+
C# 
void UpdateReferences( 
+   out EdmItemRef[] ppoAddReferences,
+   out EdmItemRef[] ppoRemoveReferences
+)
+
C++/CLI 
void UpdateReferences( 
+&   [Out] array<EdmItemRef>^ ppoAddReferences,
+&   [Out] array<EdmItemRef>^ ppoRemoveReferences
+) 
+ +

Parameters

ppoAddReferences
+
Array of EdmItemRef structures; item references to add
ppoRemoveReferences
+
Array of EdmItemRef structures; item references to remove
+ +
+ + +

Example

See the IEdmBatchItemReferenceUpdate examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing.html new file mode 100644 index 0000000..baf04f0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing.html @@ -0,0 +1,147 @@ + + + + + + IEdmBatchListing Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchListing Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a listing of various file or folder properties.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchListing 
+
C# 
public interface IEdmBatchListing 
+
C++/CLI 
public interface class IEdmBatchListing 
+
+ + + + +

Remarks

This interface:

+ +

To create a listing of the properties of a batched set of files or folders:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing in EdmUtility.EdmUtil_BatchList as a parameter. +
  2. Call IEdmBatchListing::AddFile once for each file whose properties you want to list. +
  3. Call IEdmBatchListing::AddFolder once for each folder whose properties you want to list. +
  4. Optionally call IEdmBatchListing::GetColumnSetNames to get the column sets that can be used to create listings with this interface. +
  5. Call IEdmBatchListing::CreateList to create the listing. +
  6. Call IEdmBatchListing::GetFiles to get the files in the listing or IEdmBatchListing::GetFolders to get the folders in the listing.
+

Using this interface to create a listing of file or folder properties is more efficient than retrieving the interfaces and properties of the files and folders individually.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2.html new file mode 100644 index 0000000..721bd0a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2.html @@ -0,0 +1,139 @@ + + + + + + IEdmBatchListing2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchListing2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a listing of various file or folder properties and specify from which configuration file the variables should be read.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchListing2 
+   Inherits IEdmBatchListing 
+
C# 
public interface IEdmBatchListing2 : IEdmBatchListing  
+
C++/CLI 
public interface class IEdmBatchListing2 : public IEdmBatchListing  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_members.html new file mode 100644 index 0000000..8e03648 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBatchListing2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchListing2.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddFileCfgAdds a file to the batch of files for which to create a listing using variables from the specified configuration.  
 MethodCreateListExCreates a listing of the properties of the files and folders that were added to the batch using IEdmBatchListing::AddFile, IEdmBatchListing::AddFolder, and IEdmBatchListing2::AddFileCfg.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_methods.html new file mode 100644 index 0000000..50df75c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBatchListing2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchListing2 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddFileCfgAdds a file to the batch of files for which to create a listing using variables from the specified configuration.  
 MethodCreateListExCreates a listing of the properties of the files and folders that were added to the batch using IEdmBatchListing::AddFile, IEdmBatchListing::AddFolder, and IEdmBatchListing2::AddFileCfg.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~AddFileCfg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~AddFileCfg.html new file mode 100644 index 0000000..20ba69b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~AddFileCfg.html @@ -0,0 +1,190 @@ + + + + + + AddFileCfg Method (IEdmBatchListing2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileCfg Method (IEdmBatchListing2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing2 Interface + : AddFileCfg Method (IEdmBatchListing2)
+ +
+ + + +
+ +
+ + +
+
+
oIdOrPath
+
Path of file to add
+
+
+
oFileDate
+
Local file date
+
+
+
lParam
+
Caller-defined argument
+
+
+
bsConfigName
+
Name of the configuration from which to read the file variables; default is an empty string
+
+
+
lEdmListFileFlags
+
Combination of EdmListFileFlags bits; default is 0
+
+ +
+ +
+ + +
+
+ Adds a file to the batch of files for which to create a listing using variables from the specified configuration. + + +

Syntax

Visual Basic 
Sub AddFileCfg( _
+   ByVal oIdOrPath As System.Object, _
+   ByVal oFileDate As System.Date, _
+   ByVal lParam As System.Integer, _
+   Optional ByVal bsConfigName As System.String, _
+   Optional ByVal lEdmListFileFlags As System.Integer _
+) 
+
C# 
void AddFileCfg( 
+   System.object oIdOrPath,
+   System.DateTime oFileDate,
+   System.int lParam,
+   System.string bsConfigName,
+   System.int lEdmListFileFlags
+)
+
C++/CLI 
void AddFileCfg( 
+&   System.Object^ oIdOrPath,
+&   System.DateTime oFileDate,
+&   System.int lParam,
+&   System.String^ bsConfigName,
+&   System.int lEdmListFileFlags
+) 
+ +

Parameters

oIdOrPath
+
Path of file to add
oFileDate
+
Local file date
lParam
+
Caller-defined argument
bsConfigName
+
Name of the configuration from which to read the file variables; default is an empty string
lEdmListFileFlags
+
Combination of EdmListFileFlags bits; default is 0
+ +
+ + + + +

Example

+

Remarks

This method extends IEdmBatchListing::AddFile and IEdmBAtchListing::AddFolder by adding the ability to specify the configuration from which to read the file variables.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~CreateListEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~CreateListEx.html new file mode 100644 index 0000000..a0e9d63 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing2~CreateListEx.html @@ -0,0 +1,182 @@ + + + + + + CreateListEx Method (IEdmBatchListing2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateListEx Method (IEdmBatchListing2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing2 Interface + : CreateListEx Method (IEdmBatchListing2)
+ +
+ + + +
+ +
+ + +
+
+
bsColumnSetName
+
Empty string, one of the set names returned by IEdmBatchListing::GetColumnSetNames, or a list of variable names separated by newline characters and starting with a newline character (e.g., "\nAuthor\nProject\nDate")
+
+
+
lEdmCreateListExFlags
+
Combination of EdmCreateListExFlags bits
+
+
+
ppoColumns
+
Array of EdmListCol structures; one structure for each column in the column set
+
+
+
poAux
+
Reserved for future use
+
+ +
+ +
+ + +
+
+ Creates a listing of the properties of the files and folders that were added to the batch using IEdmBatchListing::AddFile, IEdmBatchListing::AddFolder, and IEdmBatchListing2::AddFileCfg. + + +

Syntax

Visual Basic 
Sub CreateListEx( _
+   ByVal bsColumnSetName As System.String, _
+   ByVal lEdmCreateListExFlags As System.Integer, _
+   ByRef ppoColumns() As EdmListCol, _
+   Optional ByVal poAux As System.Object _
+) 
+
C# 
void CreateListEx( 
+   System.string bsColumnSetName,
+   System.int lEdmCreateListExFlags,
+   out EdmListCol[] ppoColumns,
+   System.object poAux
+)
+
C++/CLI 
void CreateListEx( 
+&   System.String^ bsColumnSetName,
+&   System.int lEdmCreateListExFlags,
+&   [Out] array<EdmListCol>^ ppoColumns,
+&   System.Object^ poAux
+) 
+ +

Parameters

bsColumnSetName
+
Empty string, one of the set names returned by IEdmBatchListing::GetColumnSetNames, or a list of variable names separated by newline characters and starting with a newline character (e.g., "\nAuthor\nProject\nDate")
lEdmCreateListExFlags
+
Combination of EdmCreateListExFlags bits
ppoColumns
+
Array of EdmListCol structures; one structure for each column in the column set
poAux
+
Reserved for future use
+ +
+ + + + +

Example

+

Remarks

This method extends IEdmBatchListing::CreateList by adding the ability to configure from where the file variables are read.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3.html new file mode 100644 index 0000000..4606fe3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3.html @@ -0,0 +1,139 @@ + + + + + + IEdmBatchListing3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchListing3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a listing of several file, folder, or internal component properties all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchListing3 
+   Inherits IEdmBatchListingIEdmBatchListing2 
+
C# 
public interface IEdmBatchListing3 : IEdmBatchListingIEdmBatchListing2  
+
C++/CLI 
public interface class IEdmBatchListing3 : public IEdmBatchListingIEdmBatchListing2  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmBatchListing2 by adding the ability to add an internal component to the listing and get references. +
  • is extended by IEdmBatchListing4, which allows users to find out if files in their local cache are valid or obsolete.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_members.html new file mode 100644 index 0000000..fa67163 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBatchListing3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchListing3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddInternalComponentAdds the specified internal component to the batch for listing.  
 MethodGetReferencesGets a list of referenced files.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_methods.html new file mode 100644 index 0000000..f1b5e45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBatchListing3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchListing3 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddInternalComponentAdds the specified internal component to the batch for listing.  
 MethodGetReferencesGets a list of referenced files.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~AddInternalComponent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~AddInternalComponent.html new file mode 100644 index 0000000..173ca2c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~AddInternalComponent.html @@ -0,0 +1,203 @@ + + + + + + AddInternalComponent Method (IEdmBatchListing3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddInternalComponent Method (IEdmBatchListing3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing3 Interface + : AddInternalComponent Method (IEdmBatchListing3)
+ +
+ + + +
+ +
+ + +
+
+
oPath
+
Path of internal component
+
+
+
oID
+
ID of internal component
+
+
+
oVirtualFileParentPath
+
Path of parent folder
+
+
+
oFileDate
+
Date of file
+
+
+
lParam
+
User-defined argument
+
+
+
bsConfigName
+
Name of the configuration file from which to read variables
+
+
+
lEdmListFileFlags
+
Combination of EdmListFileFlags bits
+
+ +
+ +
+ + +
+
+ Adds the specified internal component to the batch for listing. + + +

Syntax

Visual Basic 
Sub AddInternalComponent( _
+   ByVal oPath As System.Object, _
+   ByVal oID As System.Object, _
+   ByVal oVirtualFileParentPath As System.Object, _
+   ByVal oFileDate As System.Date, _
+   ByVal lParam As System.Integer, _
+   Optional ByVal bsConfigName As System.String, _
+   Optional ByVal lEdmListFileFlags As System.Integer _
+) 
+
C# 
void AddInternalComponent( 
+   System.object oPath,
+   System.object oID,
+   System.object oVirtualFileParentPath,
+   System.DateTime oFileDate,
+   System.int lParam,
+   System.string bsConfigName,
+   System.int lEdmListFileFlags
+)
+
C++/CLI 
void AddInternalComponent( 
+&   System.Object^ oPath,
+&   System.Object^ oID,
+&   System.Object^ oVirtualFileParentPath,
+&   System.DateTime oFileDate,
+&   System.int lParam,
+&   System.String^ bsConfigName,
+&   System.int lEdmListFileFlags
+) 
+ +

Parameters

oPath
+
Path of internal component
oID
+
ID of internal component
oVirtualFileParentPath
+
Path of parent folder
oFileDate
+
Date of file
lParam
+
User-defined argument
bsConfigName
+
Name of the configuration file from which to read variables
lEdmListFileFlags
+
Combination of EdmListFileFlags bits
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~GetReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~GetReferences.html new file mode 100644 index 0000000..73301a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing3~GetReferences.html @@ -0,0 +1,155 @@ + + + + + + GetReferences Method (IEdmBatchListing3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetReferences Method (IEdmBatchListing3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing3 Interface + : GetReferences Method (IEdmBatchListing3)
+ +
+ + + +
+ +
+ + +
+
+
ppoReferences
+
Array of EdmListRef structures
+
+ +
+ +
+ + +
+
+ Gets a list of referenced files. + + +

Syntax

Visual Basic 
Sub GetReferences( _
+   ByRef ppoReferences() As EdmListRef _
+) 
+
C# 
void GetReferences( 
+   out EdmListRef[] ppoReferences
+)
+
C++/CLI 
void GetReferences( 
+&   [Out] array<EdmListRef>^ ppoReferences
+) 
+ +

Parameters

ppoReferences
+
Array of EdmListRef structures
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4.html new file mode 100644 index 0000000..307fdfb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4.html @@ -0,0 +1,138 @@ + + + + + + IEdmBatchListing4 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing4 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchListing4 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a listing of several file, folder, or internal component properties all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchListing4 
+   Inherits IEdmBatchListingIEdmBatchListing2IEdmBatchListing3 
+
C# 
public interface IEdmBatchListing4 : IEdmBatchListingIEdmBatchListing2IEdmBatchListing3  
+
C++/CLI 
public interface class IEdmBatchListing4 : public IEdmBatchListingIEdmBatchListing2IEdmBatchListing3  
+
+ + + +

Example

+

Remarks

This interface extends IEdmBatchListing3 by allowing users to find out if files in their local cache are valid or obsolete.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_members.html new file mode 100644 index 0000000..7f30c5c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchListing4 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing4 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing4 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchListing4.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetFiles2Gets all the files in this listing.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_methods.html new file mode 100644 index 0000000..d8c5430 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchListing4 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing4 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing4 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchListing4 members.

+

Public Methods

+ +
 NameDescription
 MethodGetFiles2Gets all the files in this listing.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4~GetFiles2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4~GetFiles2.html new file mode 100644 index 0000000..9fb52bf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing4~GetFiles2.html @@ -0,0 +1,159 @@ + + + + + + GetFiles2 Method (IEdmBatchListing4) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFiles2 Method (IEdmBatchListing4)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing4 Interface + : GetFiles2 Method (IEdmBatchListing4)
+ +
+ + + +
+ +
+ + +
+
+
ppoFiles
+
Array of EdmListFile2 structures; one structure for each file in the listing
+
+ +
+ +
+ + +
+
+ Gets all the files in this listing. + + +

Syntax

Visual Basic 
Sub GetFiles2( _
+   ByRef ppoFiles() As EdmListFile2 _
+) 
+
C# 
void GetFiles2( 
+   out EdmListFile2[] ppoFiles
+)
+
C++/CLI 
void GetFiles2( 
+&   [Out] array<EdmListFile2>^ ppoFiles
+) 
+ +

Parameters

ppoFiles
+
Array of EdmListFile2 structures; one structure for each file in the listing
+ +
+ + + + +

Example

+

Remarks

This method does not work with assemblies that contain weldment components or cutlist items.

+

Before calling this method, call IEdmBatchListing2::CreateListEx.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_members.html new file mode 100644 index 0000000..f9869d9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmBatchListing Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchListing.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodAddFileAdds a file to the batch of files for which to create a listing.  
 MethodAddFolderAdds a folder to the batch of folders for which to create a listing.  
 MethodCreateListObsolete. Superseded by IEdmBatchListing2::CreateListEx.  
 MethodGetColumnSetNamesGets the names of the column sets that can be used to create listings with this interface.  
 MethodGetFilesObsolete. Superseded by IEdmBatchListing4::GetFiles2.  
 MethodGetFoldersGets all the folders in this listing.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_methods.html new file mode 100644 index 0000000..39407a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmBatchListing Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchListing Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchListing Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchListing members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodAddFileAdds a file to the batch of files for which to create a listing.  
 MethodAddFolderAdds a folder to the batch of folders for which to create a listing.  
 MethodCreateListObsolete. Superseded by IEdmBatchListing2::CreateListEx.  
 MethodGetColumnSetNamesGets the names of the column sets that can be used to create listings with this interface.  
 MethodGetFilesObsolete. Superseded by IEdmBatchListing4::GetFiles2.  
 MethodGetFoldersGets all the folders in this listing.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFile.html new file mode 100644 index 0000000..f386ebd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFile.html @@ -0,0 +1,180 @@ + + + + + + AddFile Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : AddFile Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+
oIdOrPath
+
ID or path of the file to add
+
+
+
oFileDate
+
Local file date
+
+
+
lParam
+
Caller-defined argument
+
+
+
lEdmListFileFlags
+
Reserved; must be 0
+
+ +
+ +
+ + +
+
+ Adds a file to the batch of files for which to create a listing. + + +

Syntax

Visual Basic 
Sub AddFile( _
+   ByVal oIdOrPath As System.Object, _
+   ByVal oFileDate As System.Date, _
+   ByVal lParam As System.Integer, _
+   Optional ByVal lEdmListFileFlags As System.Integer _
+) 
+
C# 
void AddFile( 
+   System.object oIdOrPath,
+   System.DateTime oFileDate,
+   System.int lParam,
+   System.int lEdmListFileFlags
+)
+
C++/CLI 
void AddFile( 
+&   System.Object^ oIdOrPath,
+&   System.DateTime oFileDate,
+&   System.int lParam,
+&   System.int lEdmListFileFlags
+) 
+ +

Parameters

oIdOrPath
+
ID or path of the file to add
oFileDate
+
Local file date
lParam
+
Caller-defined argument
lEdmListFileFlags
+
Reserved; must be 0
+ +
+ + + + + +

Remarks

After calling this method for each file whose properties you want to list, call IEdmBatchListing::CreateList to create a listing for all the files.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFolder.html new file mode 100644 index 0000000..db102d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~AddFolder.html @@ -0,0 +1,172 @@ + + + + + + AddFolder Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : AddFolder Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+
oIdOrPath
+
ID of folder to add; path is not supported in SOLIDWORKS PDM 2010
+
+
+
lParam
+
Caller-defined argument
+
+
+
lEdmListFolderFlags
+
Only EdmListFiolderFlags.EdmListFolder_Recursive is supported
+
+ +
+ +
+ + +
+
+ Adds a folder to the batch of folders for which to create a listing. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal oIdOrPath As System.Object, _
+   ByVal lParam As System.Integer, _
+   Optional ByVal lEdmListFolderFlags As System.Integer _
+) 
+
C# 
void AddFolder( 
+   System.object oIdOrPath,
+   System.int lParam,
+   System.int lEdmListFolderFlags
+)
+
C++/CLI 
void AddFolder( 
+&   System.Object^ oIdOrPath,
+&   System.int lParam,
+&   System.int lEdmListFolderFlags
+) 
+ +

Parameters

oIdOrPath
+
ID of folder to add; path is not supported in SOLIDWORKS PDM 2010
lParam
+
Caller-defined argument
lEdmListFolderFlags
+
Only EdmListFiolderFlags.EdmListFolder_Recursive is supported
+ +
+ + + + + +

Remarks

After calling this method for each folder whose properties you want to list, call IEdmBatchListing::CreateList to create a listing of all the folders' properties.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~CreateList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~CreateList.html new file mode 100644 index 0000000..705c369 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~CreateList.html @@ -0,0 +1,164 @@ + + + + + + CreateList Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateList Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : CreateList Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+
bsColumnSetName
+
Empty string, column set name returned by IEdmBatchListing::GetColumnSetNames, or a list of variable names separated by a newline character and starting with a newline character (e.g., "\nAuthor\nProject\nDate")
+
+
+
ppoColumns
+
Array of EdmListCol structures; one structure for each column in the column set; empty array if bsColumnSetName is an empty string
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchListing2::CreateListEx. + + +

Syntax

Visual Basic 
Sub CreateList( _
+   ByVal bsColumnSetName As System.String, _
+   ByRef ppoColumns() As EdmListCol _
+) 
+
C# 
void CreateList( 
+   System.string bsColumnSetName,
+   out EdmListCol[] ppoColumns
+)
+
C++/CLI 
void CreateList( 
+&   System.String^ bsColumnSetName,
+&   [Out] array<EdmListCol>^ ppoColumns
+) 
+ +

Parameters

bsColumnSetName
+
Empty string, column set name returned by IEdmBatchListing::GetColumnSetNames, or a list of variable names separated by a newline character and starting with a newline character (e.g., "\nAuthor\nProject\nDate")
ppoColumns
+
Array of EdmListCol structures; one structure for each column in the column set; empty array if bsColumnSetName is an empty string
+ +
+ + + + + +

Remarks

After calling this method, call IEdmBatchListing::GetFiles and IEdmBatchListing::GetFolders.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetColumnSetNames.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetColumnSetNames.html new file mode 100644 index 0000000..960f21d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetColumnSetNames.html @@ -0,0 +1,143 @@ + + + + + + GetColumnSetNames Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetColumnSetNames Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : GetColumnSetNames Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the names of the column sets that can be used to create listings with this interface. + + +

Syntax

Visual Basic 
Function GetColumnSetNames() As EdmStrLst5
+
C# 
EdmStrLst5 GetColumnSetNames()
+
C++/CLI 
EdmStrLst5^ GetColumnSetNames(); 
+ + + +

Return Value

IEdmStrLst5; list of column set names that can be used as a parameter in IEdmBatchListing::CreateList
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFiles.html new file mode 100644 index 0000000..5859612 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFiles.html @@ -0,0 +1,156 @@ + + + + + + GetFiles Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFiles Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : GetFiles Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+
ppoFiles
+
Array of EdmListFile structures; one structure for each file in the listing
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchListing4::GetFiles2. + + +

Syntax

Visual Basic 
Sub GetFiles( _
+   ByRef ppoFiles() As EdmListFile _
+) 
+
C# 
void GetFiles( 
+   out EdmListFile[] ppoFiles
+)
+
C++/CLI 
void GetFiles( 
+&   [Out] array<EdmListFile>^ ppoFiles
+) 
+ +

Parameters

ppoFiles
+
Array of EdmListFile structures; one structure for each file in the listing
+ +
+ + + + + +

Remarks

Before calling this method, call IEdmBatchListing::CreateList.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFolders.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFolders.html new file mode 100644 index 0000000..6bcad6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchListing~GetFolders.html @@ -0,0 +1,156 @@ + + + + + + GetFolders Method (IEdmBatchListing) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFolders Method (IEdmBatchListing)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchListing Interface + : GetFolders Method (IEdmBatchListing)
+ +
+ + + +
+ +
+ + +
+
+
ppoFolders
+
Array of EdmListFolder structures; one structure for each folder in the listing
+
+ +
+ +
+ + +
+
+ Gets all the folders in this listing. + + +

Syntax

Visual Basic 
Sub GetFolders( _
+   ByRef ppoFolders() As EdmListFolder _
+) 
+
C# 
void GetFolders( 
+   out EdmListFolder[] ppoFolders
+)
+
C++/CLI 
void GetFolders( 
+&   [Out] array<EdmListFolder>^ ppoFolders
+) 
+ +

Parameters

ppoFolders
+
Array of EdmListFolder structures; one structure for each folder in the listing
+ +
+ + + + + +

Remarks

Before calling this method, call IEdmBatchListing::CreateList.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars.html new file mode 100644 index 0000000..6941454 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars.html @@ -0,0 +1,150 @@ + + + + + + IEdmBatchRefVars Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchRefVars Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchRefVars Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access several file reference variables all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchRefVars 
+
C# 
public interface IEdmBatchRefVars 
+
C++/CLI 
public interface class IEdmBatchRefVars 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

Reference variables are used in Bill of Materials columns that are configured to look for reference-specific values. To create a reference variable:

+
    +
  1. Open the SOLIDWORKS PDM Professional Administration tool. +
  2. Log into a vault. +
  3. Double-click Bill of Materials > BOM. +
  4. Click a column in the Columns list. +
  5. Select Look for variable in reference specific values. +
  6. Click OK. +
  7. In a vault view, check out an assembly. +
  8. Click the Bill of Materials tab. +
  9. In the column configured to use reference-specific values, type text. +
  10. Click Save in the Bill of Materials toolbar.
+

Each component of the assembly is in a separate reference relationship with the assembly. The BOM column configured to Look for variable in reference specific values contains reference variable values. Use this interface to get and set these reference variable values.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_members.html new file mode 100644 index 0000000..885cc22 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmBatchRefVars Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchRefVars Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchRefVars Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchRefVars.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetAllRefVarsGets all of the values for the specified reference variables.  
 MethodGetRefVarsGets the values of the specified reference variables.  
 MethodSetRefVarsSets the values of the specified reference variables.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_methods.html new file mode 100644 index 0000000..3dfd7c4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmBatchRefVars Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchRefVars Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchRefVars Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchRefVars members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetAllRefVarsGets all of the values for the specified reference variables.  
 MethodGetRefVarsGets the values of the specified reference variables.  
 MethodSetRefVarsSets the values of the specified reference variables.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetAllRefVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetAllRefVars.html new file mode 100644 index 0000000..9196f84 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetAllRefVars.html @@ -0,0 +1,195 @@ + + + + + + GetAllRefVars Method (IEdmBatchRefVars) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAllRefVars Method (IEdmBatchRefVars)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchRefVars Interface + : GetAllRefVars Method (IEdmBatchRefVars)
+ +
+ + + +
+ +
+ + +
+
+
ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable
+
+
+
lParentFileID
+
ID of parent file for which to get reference variables
+
+
+
lParentFileVersion
+
Version number of parent file for which to get reference variables; 0 gets the latest version if the parent file is checked in and the checked-out version if it is checked out
+
+
+
lChildFileID
+
ID of the referenced child file; 0 gets variables for all child references
+
+
+
bsParentConfig
+
Configuration of parent file for which to get reference variables; "" gets all configurations
+
+
+
bsChildConfig
+
Configuration of parent file for which to get reference variables; "" is ignored
+
+ +
+ +
+ + +
+
+ Gets all of the values for the specified reference variables. + + +

Syntax

Visual Basic 
Sub GetAllRefVars( _
+   ByRef ppoVars() As EdmRefVar, _
+   ByVal lParentFileID As System.Integer, _
+   Optional ByVal lParentFileVersion As System.Integer, _
+   Optional ByVal lChildFileID As System.Integer, _
+   Optional ByVal bsParentConfig As System.String, _
+   Optional ByVal bsChildConfig As System.String _
+) 
+
C# 
void GetAllRefVars( 
+   out EdmRefVar[] ppoVars,
+   System.int lParentFileID,
+   System.int lParentFileVersion,
+   System.int lChildFileID,
+   System.string bsParentConfig,
+   System.string bsChildConfig
+)
+
C++/CLI 
void GetAllRefVars( 
+&   [Out] array<EdmRefVar>^ ppoVars,
+&   System.int lParentFileID,
+&   System.int lParentFileVersion,
+&   System.int lChildFileID,
+&   System.String^ bsParentConfig,
+&   System.String^ bsChildConfig
+) 
+ +

Parameters

ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable
lParentFileID
+
ID of parent file for which to get reference variables
lParentFileVersion
+
Version number of parent file for which to get reference variables; 0 gets the latest version if the parent file is checked in and the checked-out version if it is checked out
lChildFileID
+
ID of the referenced child file; 0 gets variables for all child references
bsParentConfig
+
Configuration of parent file for which to get reference variables; "" gets all configurations
bsChildConfig
+
Configuration of parent file for which to get reference variables; "" is ignored
+ +
+ + +

Example

See the IEdmBatchRefVars examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetRefVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetRefVars.html new file mode 100644 index 0000000..38a3364 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~GetRefVars.html @@ -0,0 +1,157 @@ + + + + + + GetRefVars Method (IEdmBatchRefVars) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRefVars Method (IEdmBatchRefVars)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchRefVars Interface + : GetRefVars Method (IEdmBatchRefVars)
+ +
+ + + +
+ +
+ + +
+
+
ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable whose value you want to retrieve
+
+ +
+ +
+ + +
+
+ Gets the values of the specified reference variables. + + +

Syntax

Visual Basic 
Sub GetRefVars( _
+   ByRef ppoVars() As EdmRefVar _
+) 
+
C# 
void GetRefVars( 
+   out EdmRefVar[] ppoVars
+)
+
C++/CLI 
void GetRefVars( 
+&   [Out] array<EdmRefVar>^ ppoVars
+) 
+ +

Parameters

ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable whose value you want to retrieve
+ +
+ + +

Example

See the IEdmBatchRefVars examples. +
+ +

Remarks

This method updates the moValue and mhResult members of the EdmRefVar structures. mlParentVersion = 0 gets the values from the latest version you have permission to read.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~SetRefVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~SetRefVars.html new file mode 100644 index 0000000..8fc2f41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchRefVars~SetRefVars.html @@ -0,0 +1,157 @@ + + + + + + SetRefVars Method (IEdmBatchRefVars) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetRefVars Method (IEdmBatchRefVars)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchRefVars Interface + : SetRefVars Method (IEdmBatchRefVars)
+ +
+ + + +
+ +
+ + +
+
+
ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable whose value you want to update
+
+ +
+ +
+ + +
+
+ Sets the values of the specified reference variables. + + +

Syntax

Visual Basic 
Sub SetRefVars( _
+   ByRef ppoVars() As EdmRefVar _
+) 
+
C# 
void SetRefVars( 
+   out EdmRefVar[] ppoVars
+)
+
C++/CLI 
void SetRefVars( 
+&   [Out] array<EdmRefVar>^ ppoVars
+) 
+ +

Parameters

ppoVars
+
Array of EdmRefVar structures; one structure for each reference variable whose value you want to update
+ +
+ + +

Example

See the IEdmBatchRefVars examples. +
+ +

Remarks

Call IEdmBatchRefVars::GetRefVars and IEdmBatchRefVars::GetAllRefVars to get the variable values.  

+

The parent file must be checked out in order to update reference variables.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock.html new file mode 100644 index 0000000..2f19fbb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock.html @@ -0,0 +1,154 @@ + + + + + + IEdmBatchUnlock Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to unlock, check in, or undo check-outs of multiple files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchUnlock 
+
C# 
public interface IEdmBatchUnlock 
+
C++/CLI 
public interface class IEdmBatchUnlock 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To unlock, check in, or undo the check-outs of multiple files in one batch:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing in EdmUtility.EdmUtil_BatchUnlock. +
  2. Call IEdmBatchUnlock::AddSelection to specify the files to unlock. +
  3. Call IEdmBatchUnlock::CreateTree to create the file reference tree. +
  4. Optionally call IEdmBatchUnlock::ShowDlg to display the SOLIDWORKS PDM Professional Check In or Undo Check Out dialog box. +
  5. Call IEdmBatchUnlock::GetFileList to get the files affected by the unlock operation. +
  6. Call IEdmBatchUnlock::UnlockFiles to perform the batch unlock operation.
+

Using this interface to unlock, check in, or undo check-outs is more efficient than calling IEdmFile5::UnlockFile or IEdmFile5::UndoLockFile for each file.  

+

You can obtain an IEdmRefItemContainer interface from IEdmBatchUnlock by assignment (QueryInterface in C++).

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2.html new file mode 100644 index 0000000..415a38c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2.html @@ -0,0 +1,136 @@ + + + + + + IEdmBatchUnlock2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to unlock, check in, or undo check-outs of multiple files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchUnlock2 
+   Inherits IEdmBatchUnlock 
+
C# 
public interface IEdmBatchUnlock2 : IEdmBatchUnlock  
+
C++/CLI 
public interface class IEdmBatchUnlock2 : public IEdmBatchUnlock  
+
+ +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

This interface extends IEdmBatchUnlock by adding the ability to get the status of the unlock operation.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_members.html new file mode 100644 index 0000000..5d8dae5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBatchUnlock2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchUnlock2.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetStatusGets the specified statuses for this unlock operation.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_methods.html new file mode 100644 index 0000000..060d2a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBatchUnlock2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchUnlock2 members.

+

Public Methods

+ +
 NameDescription
 MethodGetStatusGets the specified statuses for this unlock operation.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2~GetStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2~GetStatus.html new file mode 100644 index 0000000..1161bd5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock2~GetStatus.html @@ -0,0 +1,155 @@ + + + + + + GetStatus Method (IEdmBatchUnlock2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetStatus Method (IEdmBatchUnlock2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock2 Interface + : GetStatus Method (IEdmBatchUnlock2)
+ +
+ + + +
+ +
+ + +
+
+
lEdmUnlockStatusFlag
+
Combination of EdmUnlockStatusFlag bits
+
+ +
+ +
+ + +
+
+ Gets the specified statuses for this unlock operation. + + +

Syntax

Visual Basic 
Function GetStatus( _
+   ByVal lEdmUnlockStatusFlag As System.Integer _
+) As System.Object
+
C# 
System.object GetStatus( 
+   System.int lEdmUnlockStatusFlag
+)
+
C++/CLI 
System.Object^ GetStatus( 
+&   System.int lEdmUnlockStatusFlag
+) 
+ +

Parameters

lEdmUnlockStatusFlag
+
Combination of EdmUnlockStatusFlag bits
+ +

Return Value

Array of statuses
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_members.html new file mode 100644 index 0000000..c313bba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmBatchUnlock Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchUnlock.

+

Public Properties

+ +
 NameDescription
 PropertyCommentGets or sets the comment for unlocking, checking in, or undoing check-outs of the files in this batch.  
Top
+ +

Public Methods

+ + + + + +
 NameDescription
 MethodAddSelectionSpecifies the batch of files to be unlocked.  
 MethodCreateTreeCreates the file reference tree.  
 MethodGetFileListGets the list of files to be unlocked.  
 MethodShowDlgDisplays the SOLIDWORKS PDM Professional Check In or Undo Check Out dialog box.  
 MethodUnlockFilesUnlocks, checks in, or undoes the check-outs of the files in this batch.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_methods.html new file mode 100644 index 0000000..89c0066 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmBatchUnlock Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchUnlock members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodAddSelectionSpecifies the batch of files to be unlocked.  
 MethodCreateTreeCreates the file reference tree.  
 MethodGetFileListGets the list of files to be unlocked.  
 MethodShowDlgDisplays the SOLIDWORKS PDM Professional Check In or Undo Check Out dialog box.  
 MethodUnlockFilesUnlocks, checks in, or undoes the check-outs of the files in this batch.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_properties.html new file mode 100644 index 0000000..3a6a160 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmBatchUnlock Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUnlock Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUnlock Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchUnlock members.

+

Public Properties

+ +
 NameDescription
 PropertyCommentGets or sets the comment for unlocking, checking in, or undoing check-outs of the files in this batch.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~AddSelection.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~AddSelection.html new file mode 100644 index 0000000..1148c6d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~AddSelection.html @@ -0,0 +1,165 @@ + + + + + + AddSelection Method (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSelection Method (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : AddSelection Method (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; vault to which the files belong
+
+
+
ppoSelection
+
Array of IEdmSelItem structures; one structure for each file to unlock
+
+ +
+ +
+ + +
+
+ Specifies the batch of files to be unlocked. + + +

Syntax

Visual Basic 
Sub AddSelection( _
+   ByVal poVault As EdmVault5, _
+   ByRef ppoSelection() As EdmSelItem _
+) 
+
C# 
void AddSelection( 
+   EdmVault5 poVault,
+   ref EdmSelItem[] ppoSelection
+)
+
C++/CLI 
void AddSelection( 
+&   EdmVault5^ poVault,
+&   array<EdmSelItem>^% ppoSelection
+) 
+ +

Parameters

poVault
+
IEdmVault5; vault to which the files belong
ppoSelection
+
Array of IEdmSelItem structures; one structure for each file to unlock
+ +
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

See the IEdmBatchUnlock remarks for information about using this method.

+

When you call this method, SOLIDWORKS PDM Professional automatically adds the file's references to the unlock file set.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~Comment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~Comment.html new file mode 100644 index 0000000..39c6900 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~Comment.html @@ -0,0 +1,148 @@ + + + + + + Comment Property (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Comment Property (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : Comment Property (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the comment for unlocking, checking in, or undoing check-outs of the files in this batch. + + +

Syntax

Visual Basic 
Property Comment As System.String
+
C# 
System.string Comment {get; set;}
+
C++/CLI 
property System.String^ Comment {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Unlock comment
+ + +

Example

See the IEdmBatchUnlock examples. +
+ + + + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~CreateTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~CreateTree.html new file mode 100644 index 0000000..2f77efe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~CreateTree.html @@ -0,0 +1,172 @@ + + + + + + CreateTree Method (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateTree Method (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : CreateTree Method (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmUnlockBuildTreeFlags
+
Combination of EdmUnlockBuildTreeFlags bits
+
+
+
poCallback
+
IEdmUnlockOpCallback; optional callback that you can implement to receive more information about the unlock operation
+
+ +
+ +
+ + +
+
+ Creates the file reference tree. + + +

Syntax

Visual Basic 
Function CreateTree( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lEdmUnlockBuildTreeFlags As System.Integer, _
+   Optional ByVal poCallback As IEdmUnlockOpCallback _
+) As System.Boolean
+
C# 
System.bool CreateTree( 
+   System.int lParentWnd,
+   System.int lEdmUnlockBuildTreeFlags,
+   IEdmUnlockOpCallback poCallback
+)
+
C++/CLI 
System.bool CreateTree( 
+&   System.int lParentWnd,
+&   System.int lEdmUnlockBuildTreeFlags,
+&   IEdmUnlockOpCallback^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lEdmUnlockBuildTreeFlags
+
Combination of EdmUnlockBuildTreeFlags bits
poCallback
+
IEdmUnlockOpCallback; optional callback that you can implement to receive more information about the unlock operation
+ +

Return Value

True if at least one file is valid for the operation, false if no files are valid for the operation
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

See the IEdmBatchUnlock remarks for information about using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~GetFileList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~GetFileList.html new file mode 100644 index 0000000..d99bac5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~GetFileList.html @@ -0,0 +1,156 @@ + + + + + + GetFileList Method (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileList Method (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : GetFileList Method (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+
lEdmUnlockFileListFlags
+
Combination of EdmUnlockFileListFlag bits
+
+ +
+ +
+ + +
+
+ Gets the list of files to be unlocked. + + +

Syntax

Visual Basic 
Function GetFileList( _
+   ByVal lEdmUnlockFileListFlags As System.Integer _
+) As EdmSelectionList5
+
C# 
EdmSelectionList5 GetFileList( 
+   System.int lEdmUnlockFileListFlags
+)
+
C++/CLI 
EdmSelectionList5^ GetFileList( 
+&   System.int lEdmUnlockFileListFlags
+) 
+ +

Parameters

lEdmUnlockFileListFlags
+
Combination of EdmUnlockFileListFlag bits
+ +

Return Value

IEdmSelectionList5
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

See the IEdmBatchUnlock remarks for information about using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~ShowDlg.html new file mode 100644 index 0000000..085816a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~ShowDlg.html @@ -0,0 +1,156 @@ + + + + + + ShowDlg Method (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : ShowDlg Method (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Displays the SOLIDWORKS PDM Professional Check In or Undo Check Out dialog box. + + +

Syntax

Visual Basic 
Function ShowDlg( _
+   ByVal lParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool ShowDlg( 
+   System.int lParentWnd
+)
+
C++/CLI 
System.bool ShowDlg( 
+&   System.int lParentWnd
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
+ +

Return Value

True if successful, false if not
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

See the IEdmBatchUnlock remarks for information about using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~UnlockFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~UnlockFiles.html new file mode 100644 index 0000000..6792b92 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUnlock~UnlockFiles.html @@ -0,0 +1,164 @@ + + + + + + UnlockFiles Method (IEdmBatchUnlock) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UnlockFiles Method (IEdmBatchUnlock)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUnlock Interface + : UnlockFiles Method (IEdmBatchUnlock)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
poCallback
+
IEdmUnlockOpCallback; optional callback that you can implement to receive more information about the unlock operation
+
+ +
+ +
+ + +
+
+ Unlocks, checks in, or undoes the check-outs of the files in this batch. + + +

Syntax

Visual Basic 
Sub UnlockFiles( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal poCallback As IEdmUnlockOpCallback _
+) 
+
C# 
void UnlockFiles( 
+   System.int lParentWnd,
+   IEdmUnlockOpCallback poCallback
+)
+
C++/CLI 
void UnlockFiles( 
+&   System.int lParentWnd,
+&   IEdmUnlockOpCallback^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
poCallback
+
IEdmUnlockOpCallback; optional callback that you can implement to receive more information about the unlock operation
+ +
+ + +

Example

See the IEdmBatchUnlock examples. +
+ +

Remarks

See the IEdmBatchUnlock remarks for information about using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 6.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate.html new file mode 100644 index 0000000..b3848b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate.html @@ -0,0 +1,145 @@ + + + + + + IEdmBatchUpdate Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to set the values of several file and folder card variables all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchUpdate 
+
C# 
public interface IEdmBatchUpdate 
+
C++/CLI 
public interface class IEdmBatchUpdate 
+
+ + + + +

Remarks

This interface:

+ +

To set the values of file card variables:

+
+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing in EdmUtility.EdmUtil_BatchUpdate. +
  2. Call IEdmBatchUpdate::SetVar once for each variable you want to update. +
  3. Call IEdmBatchUpdate::Commit to commit all variable changes.  
+

Before SOLIDWORKS PDM Professional 6.2, the only way to set the values of variables used in file data cards was to use the IEdmEnumeratorVariable interface which processed the variables one file and one variable at a time. This still works, but when setting the values of many variables, it is more efficient to use the IEdmBatchUpdate interface which accumulates all variables to set and then commits them all in a single operation.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2.html new file mode 100644 index 0000000..ab48c8f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2.html @@ -0,0 +1,148 @@ + + + + + + IEdmBatchUpdate2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to set the values of several file and folder card variables all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBatchUpdate2 
+
C# 
public interface IEdmBatchUpdate2 
+
C++/CLI 
public interface class IEdmBatchUpdate2 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To set the values of file and folder card variables:

+
+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing in EdmUtility.EdmUtil_BatchUpdate. +
  2. Call IEdmBatchUpdate2::SetVar once for each file card variable you want to update. You must first check out the files whose card varibles you want to update. +
  3. Call IEdmBatchUpdate2::SetFolderVar once for each folder card variable you want to update. +
  4. Call IEdmBatchUpdate2::CommitUpdate to commit all of the file and folder card variable changes.  
+

Prior to SOLIDWORKS PDM Professional 6.2, the only way to set file card variables was to use IEdmEnumeratorVariable, which can handle only one file or folder card variable at a time.  As of SOLIDWORKS PDM Professional 6.2, you should use IEdmBatchUpdate2, which can handle several file and folder card variables at a time.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_members.html new file mode 100644 index 0000000..ac7f0a8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmBatchUpdate2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchUpdate2.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodCommitUpdateCommits all of the file and folder card variable updates in this batch.  
 MethodSetFolderVarAdds a folder card variable to the batch of variables to update.  
 MethodSetVarAdds a file card variable to the batch of variables to update.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_methods.html new file mode 100644 index 0000000..351b68f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmBatchUpdate2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchUpdate2 members.

+

Public Methods

+ + + +
 NameDescription
 MethodCommitUpdateCommits all of the file and folder card variable updates in this batch.  
 MethodSetFolderVarAdds a folder card variable to the batch of variables to update.  
 MethodSetVarAdds a file card variable to the batch of variables to update.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~CommitUpdate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~CommitUpdate.html new file mode 100644 index 0000000..3e7e22f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~CommitUpdate.html @@ -0,0 +1,163 @@ + + + + + + CommitUpdate Method (IEdmBatchUpdate2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommitUpdate Method (IEdmBatchUpdate2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate2 Interface + : CommitUpdate Method (IEdmBatchUpdate2)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetErrors
+
Array of EdmBatchError2 structures; one structure for each non-critical error that occurred during the update
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to get more information during the operation
+
+ +
+ +
+ + +
+
+ Commits all of the file and folder card variable updates in this batch. + + +

Syntax

Visual Basic 
Function CommitUpdate( _
+   ByRef ppoRetErrors() As EdmBatchError2, _
+   Optional ByVal poCallback As EdmCallback _
+) As System.Integer
+
C# 
System.int CommitUpdate( 
+   out EdmBatchError2[] ppoRetErrors,
+   EdmCallback poCallback
+)
+
C++/CLI 
System.int CommitUpdate( 
+&   [Out] array<EdmBatchError2>^ ppoRetErrors,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

ppoRetErrors
+
Array of EdmBatchError2 structures; one structure for each non-critical error that occurred during the update
poCallback
+
Optional pointer to a class that implements IEdmCallback to get more information during the operation
+ +

Return Value

Size of ppoRetErrors array; 0 if no errors
+ + +

Example

See the IEdmBatchUpdate2 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetFolderVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetFolderVar.html new file mode 100644 index 0000000..9a76af2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetFolderVar.html @@ -0,0 +1,179 @@ + + + + + + SetFolderVar Method (IEdmBatchUpdate2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFolderVar Method (IEdmBatchUpdate2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate2 Interface + : SetFolderVar Method (IEdmBatchUpdate2)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of folder to which to write the card variable
+
+
+
lVariableID
+
ID of folder card variable to update
+
+
+
poValue
+
New value of the folder card variable
+
+
+
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+
+ +
+ +
+ + +
+
+ Adds a folder card variable to the batch of variables to update. + + +

Syntax

Visual Basic 
Sub SetFolderVar( _
+   ByVal lFolderID As System.Integer, _
+   ByVal lVariableID As System.Integer, _
+   ByRef poValue As System.Object, _
+   Optional ByVal lEdmBatchFlags As System.Integer _
+) 
+
C# 
void SetFolderVar( 
+   System.int lFolderID,
+   System.int lVariableID,
+   ref System.object poValue,
+   System.int lEdmBatchFlags
+)
+
C++/CLI 
void SetFolderVar( 
+&   System.int lFolderID,
+&   System.int lVariableID,
+&   System.Object^% poValue,
+&   System.int lEdmBatchFlags
+) 
+ +

Parameters

lFolderID
+
ID of folder to which to write the card variable
lVariableID
+
ID of folder card variable to update
poValue
+
New value of the folder card variable
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+ +
+ + +

Example

See the IEdmBatchUpdate2 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetVar.html new file mode 100644 index 0000000..a68099c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate2~SetVar.html @@ -0,0 +1,187 @@ + + + + + + SetVar Method (IEdmBatchUpdate2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmBatchUpdate2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate2 Interface + : SetVar Method (IEdmBatchUpdate2)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to which to write the file card variable
+
+
+
lVariableID
+
ID of file card variable to update
+
+
+
poValue
+
New value of the file card variable
+
+
+
bsConfiguration
+
Name of configuration to which to write the file card variable; ignored if lEdmBatchFlags contains EdmBatchFlags.EdmBatch_AllConfigs
+
+
+
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+
+ +
+ +
+ + +
+
+ Adds a file card variable to the batch of variables to update. + + +

Syntax

Visual Basic 
Sub SetVar( _
+   ByVal lFileID As System.Integer, _
+   ByVal lVariableID As System.Integer, _
+   ByRef poValue As System.Object, _
+   ByVal bsConfiguration As System.String, _
+   Optional ByVal lEdmBatchFlags As System.Integer _
+) 
+
C# 
void SetVar( 
+   System.int lFileID,
+   System.int lVariableID,
+   ref System.object poValue,
+   System.string bsConfiguration,
+   System.int lEdmBatchFlags
+)
+
C++/CLI 
void SetVar( 
+&   System.int lFileID,
+&   System.int lVariableID,
+&   System.Object^% poValue,
+&   System.String^ bsConfiguration,
+&   System.int lEdmBatchFlags
+) 
+ +

Parameters

lFileID
+
ID of file to which to write the file card variable
lVariableID
+
ID of file card variable to update
poValue
+
New value of the file card variable
bsConfiguration
+
Name of configuration to which to write the file card variable; ignored if lEdmBatchFlags contains EdmBatchFlags.EdmBatch_AllConfigs
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+ +
+ + +

Example

See the IEdmBatchUpdate2 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_members.html new file mode 100644 index 0000000..c552ac7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmBatchUpdate Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBatchUpdate.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodCommitObsolete. Superseded by IEdmBatchUpdate2::CommitUpdate.  
 MethodSetAuxFor internal use only.  
 MethodSetVarObsolete. Superseded by IEdmBatchUpdate2::SetVar.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_methods.html new file mode 100644 index 0000000..9484a49 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmBatchUpdate Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBatchUpdate Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBatchUpdate Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBatchUpdate members.

+

Public Methods

+ + + +
 NameDescription
 MethodCommitObsolete. Superseded by IEdmBatchUpdate2::CommitUpdate.  
 MethodSetAuxFor internal use only.  
 MethodSetVarObsolete. Superseded by IEdmBatchUpdate2::SetVar.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~Commit.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~Commit.html new file mode 100644 index 0000000..489385d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~Commit.html @@ -0,0 +1,161 @@ + + + + + + Commit Method (IEdmBatchUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Commit Method (IEdmBatchUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate Interface + : Commit Method (IEdmBatchUpdate)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetErrors
+
Array of EdmBatchError structures; one structure for each error that occurred during the save operation
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to get more information during the operation
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchUpdate2::CommitUpdate. + + +

Syntax

Visual Basic 
Sub Commit( _
+   ByRef ppoRetErrors() As EdmBatchError, _
+   Optional ByVal poCallback As EdmCallback _
+) 
+
C# 
void Commit( 
+   out EdmBatchError[] ppoRetErrors,
+   EdmCallback poCallback
+)
+
C++/CLI 
void Commit( 
+&   [Out] array<EdmBatchError>^ ppoRetErrors,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

ppoRetErrors
+
Array of EdmBatchError structures; one structure for each error that occurred during the save operation
poCallback
+
Optional pointer to a class that implements IEdmCallback to get more information during the operation
+ +
+ + + + + +

Remarks

Non-fatal errors are returned in the ppoRetErrors array. Examine the contents of the returned array to determine whether the operation is successful.

+

See the IEdmBatchUpdate remarks for information about using this method.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetAux.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetAux.html new file mode 100644 index 0000000..2f9c34f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetAux.html @@ -0,0 +1,160 @@ + + + + + + SetAux Method (IEdmBatchUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetAux Method (IEdmBatchUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate Interface + : SetAux Method (IEdmBatchUpdate)
+ +
+ + + +
+ +
+ + +
+
+
poAux
+
 
+
+
+
lFlags
+
 
+
+ +
+ +
+ + +
+
+ For internal use only. + + +

Syntax

Visual Basic 
Sub SetAux( _
+   ByVal poAux As System.Object, _
+   Optional ByVal lFlags As System.Integer _
+) 
+
C# 
void SetAux( 
+   System.object poAux,
+   System.int lFlags
+)
+
C++/CLI 
void SetAux( 
+&   System.Object^ poAux,
+&   System.int lFlags
+) 
+ +

Parameters

poAux
+
 
lFlags
+
 
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetVar.html new file mode 100644 index 0000000..28737c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBatchUpdate~SetVar.html @@ -0,0 +1,188 @@ + + + + + + SetVar Method (IEdmBatchUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmBatchUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBatchUpdate Interface + : SetVar Method (IEdmBatchUpdate)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to which to write the variable
+
+
+
lVariableID
+
ID of variable to update; retrieve using IEdmVariableMgr5
+
+
+
poValue
+
New value of the variable
+
+
+
bsConfiguration
+
Name of the configuration to which to write the variable; empty string for files without configurations
+
+
+
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBatchUpdate2::SetVar. + + +

Syntax

Visual Basic 
Sub SetVar( _
+   ByVal lFileID As System.Integer, _
+   ByVal lVariableID As System.Integer, _
+   ByRef poValue As System.Object, _
+   ByVal bsConfiguration As System.String, _
+   Optional ByVal lEdmBatchFlags As System.Integer _
+) 
+
C# 
void SetVar( 
+   System.int lFileID,
+   System.int lVariableID,
+   ref System.object poValue,
+   System.string bsConfiguration,
+   System.int lEdmBatchFlags
+)
+
C++/CLI 
void SetVar( 
+&   System.int lFileID,
+&   System.int lVariableID,
+&   System.Object^% poValue,
+&   System.String^ bsConfiguration,
+&   System.int lEdmBatchFlags
+) 
+ +

Parameters

lFileID
+
ID of file to which to write the variable
lVariableID
+
ID of variable to update; retrieve using IEdmVariableMgr5
poValue
+
New value of the variable
bsConfiguration
+
Name of the configuration to which to write the variable; empty string for files without configurations
lEdmBatchFlags
+
Combination of EdmBatchFlags bits
+ +
+ + + + + +

Remarks

See the IEdmBatchUpdate remarks for information about using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5.html new file mode 100644 index 0000000..def46d9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5.html @@ -0,0 +1,137 @@ + + + + + + IEdmBitmap5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBitmap5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBitmap5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a bitmap image.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBitmap5 
+
C# 
public interface IEdmBitmap5 
+
C++/CLI 
public interface class IEdmBitmap5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_members.html new file mode 100644 index 0000000..f23efc6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmBitmap5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBitmap5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBitmap5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBitmap5.

+

Public Properties

+ + +
 NameDescription
 PropertyHeightGets the height of the image.  
 PropertyWidthGets the width of the image.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodDrawDraws this bitmap image in a window.  
 MethodGetBitmapInfoGets bitmap information.  
 MethodGetBitmapInfoSizeGets the size of the bitmap information returned by IEdmBitmap5::GetBitmapInfo.  
 MethodSaveBmpSaves this bitmap image as a BMP file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_methods.html new file mode 100644 index 0000000..f244ae0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmBitmap5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBitmap5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBitmap5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBitmap5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodDrawDraws this bitmap image in a window.  
 MethodGetBitmapInfoGets bitmap information.  
 MethodGetBitmapInfoSizeGets the size of the bitmap information returned by IEdmBitmap5::GetBitmapInfo.  
 MethodSaveBmpSaves this bitmap image as a BMP file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_properties.html new file mode 100644 index 0000000..0859e49 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmBitmap5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBitmap5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBitmap5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBitmap5 members.

+

Public Properties

+ + +
 NameDescription
 PropertyHeightGets the height of the image.  
 PropertyWidthGets the width of the image.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Draw.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Draw.html new file mode 100644 index 0000000..38267c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Draw.html @@ -0,0 +1,187 @@ + + + + + + Draw Method (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Draw Method (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : Draw Method (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+
lWnd
+
Handle of window in which to draw the bitmap image
+
+
+
lX
+
X-coordinate in pixels where to position upper-left corner of image ; default is 0
+
+
+
lY
+
Y-coordinate in pixels where to position upper-left corner of image; default is 0
+
+
+
lWidth
+
Width in pixels of the drawn image; 0 for source image width
+
+
+
lHeight
+
Height in pixels of the drawn image; 0 for source image height
+
+ +
+ +
+ + +
+
+ Draws this bitmap image in a window. + + +

Syntax

Visual Basic 
Sub Draw( _
+   ByVal lWnd As System.Integer, _
+   Optional ByVal lX As System.Integer, _
+   Optional ByVal lY As System.Integer, _
+   Optional ByVal lWidth As System.Integer, _
+   Optional ByVal lHeight As System.Integer _
+) 
+
C# 
void Draw( 
+   System.int lWnd,
+   System.int lX,
+   System.int lY,
+   System.int lWidth,
+   System.int lHeight
+)
+
C++/CLI 
void Draw( 
+&   System.int lWnd,
+&   System.int lX,
+&   System.int lY,
+&   System.int lWidth,
+&   System.int lHeight
+) 
+ +

Parameters

lWnd
+
Handle of window in which to draw the bitmap image
lX
+
X-coordinate in pixels where to position upper-left corner of image ; default is 0
lY
+
Y-coordinate in pixels where to position upper-left corner of image; default is 0
lWidth
+
Width in pixels of the drawn image; 0 for source image width
lHeight
+
Height in pixels of the drawn image; 0 for source image height
+ +
+ + +

Example

See the IEdmBitmap5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfo.html new file mode 100644 index 0000000..c832f39 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfo.html @@ -0,0 +1,164 @@ + + + + + + GetBitmapInfo Method (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetBitmapInfo Method (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : GetBitmapInfo Method (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+
lDataSize
+
Size of pbData (see Remarks)
+
+
+
pbData
+
Buffer in which to return the bitmap information
+
+ +
+ +
+ + +
+
+ Gets bitmap information. + + +

Syntax

Visual Basic 
Sub GetBitmapInfo( _
+   ByVal lDataSize As System.Integer, _
+   ByRef pbData As System.Byte _
+) 
+
C# 
void GetBitmapInfo( 
+   System.int lDataSize,
+   out System.byte pbData
+)
+
C++/CLI 
void GetBitmapInfo( 
+&   System.int lDataSize,
+&   [Out] System.byte pbData
+) 
+ +

Parameters

lDataSize
+
Size of pbData (see Remarks)
pbData
+
Buffer in which to return the bitmap information
+ +
+ + + + + +

Remarks

Before calling this method, you must properly allocate the size of the pbData buffer. Call IEdmBitmap5::GetBitmapInfoSize to determine the size of buffer to allocate and to specify lDataSize.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: lDataSize does not match the size of the returned structure.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfoSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfoSize.html new file mode 100644 index 0000000..826cc4d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~GetBitmapInfoSize.html @@ -0,0 +1,143 @@ + + + + + + GetBitmapInfoSize Method (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetBitmapInfoSize Method (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : GetBitmapInfoSize Method (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the size of the bitmap information returned by IEdmBitmap5::GetBitmapInfo. + + +

Syntax

Visual Basic 
Function GetBitmapInfoSize() As System.Integer
+
C# 
System.int GetBitmapInfoSize()
+
C++/CLI 
System.int GetBitmapInfoSize(); 
+ + + +

Return Value

Size in bytes of the bitmap information
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Height.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Height.html new file mode 100644 index 0000000..23a9b61 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Height.html @@ -0,0 +1,147 @@ + + + + + + Height Property (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Height Property (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : Height Property (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the height of the image. + + +

Syntax

Visual Basic 
ReadOnly Property Height As System.Integer
+
C# 
System.int Height {get;}
+
C++/CLI 
property System.int Height {
+   System.int get();
+}
+ + + +

Property Value

Height in pixels of the image
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~SaveBmp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~SaveBmp.html new file mode 100644 index 0000000..77ef696 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~SaveBmp.html @@ -0,0 +1,156 @@ + + + + + + SaveBmp Method (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SaveBmp Method (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : SaveBmp Method (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+
bsBmpPath
+
Path and name of the BMP file; if the file already exists, it is overwritten
+
+ +
+ +
+ + +
+
+ Saves this bitmap image as a BMP file. + + +

Syntax

Visual Basic 
Sub SaveBmp( _
+   ByVal bsBmpPath As System.String _
+) 
+
C# 
void SaveBmp( 
+   System.string bsBmpPath
+)
+
C++/CLI 
void SaveBmp( 
+&   System.String^ bsBmpPath
+) 
+ +

Parameters

bsBmpPath
+
Path and name of the BMP file; if the file already exists, it is overwritten
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_SHARE_ERROR: Error opening the file. +
  • E_EDM_IO_ERROR: Error writing the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Width.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Width.html new file mode 100644 index 0000000..ec8fd7a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBitmap5~Width.html @@ -0,0 +1,147 @@ + + + + + + Width Property (IEdmBitmap5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Width Property (IEdmBitmap5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBitmap5 Interface + : Width Property (IEdmBitmap5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the width of the image. + + +

Syntax

Visual Basic 
ReadOnly Property Width As System.Integer
+
C# 
System.int Width {get;}
+
C++/CLI 
property System.int Width {
+   System.int get();
+}
+ + + +

Property Value

Width in pixels of the image
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom.html new file mode 100644 index 0000000..e8c741c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom.html @@ -0,0 +1,147 @@ + + + + + + IEdmBom Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBom Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBom Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a Bill of Materials (BOM).

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBom 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmBom : IEdmObject5  
+
C++/CLI 
public interface class IEdmBom : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5

+

To access this interface:

+
    +
  1. Call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_BOM.
+

      - or -

+
    +
  1. Create an EdmObjectInfo structure with meType = EdmObjectType.EdmObject_BOM. +
  2. Call IEdmVault9::GetObjects with ppoObjects set to the EdmObjectInfo structure created in step 1.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell.html new file mode 100644 index 0000000..3c46ed9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell.html @@ -0,0 +1,142 @@ + + + + + + IEdmBomCell Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomCell Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single row in a Bill of Materials (BOM).

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomCell 
+
C# 
public interface IEdmBomCell 
+
C++/CLI 
public interface class IEdmBomCell 
+
+ + + +

Example

+

Remarks

This interface:

+ +

 

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2.html new file mode 100644 index 0000000..1b77746 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2.html @@ -0,0 +1,136 @@ + + + + + + IEdmBomCell2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomCell2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single row in a Bill of Materials (BOM).

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomCell2 
+   Inherits IEdmBomCell 
+
C# 
public interface IEdmBomCell2 : IEdmBomCell  
+
C++/CLI 
public interface class IEdmBomCell2 : public IEdmBomCell  
+
+ + + + +

Remarks

This interface extends IEdmBomCell by providing the ability to determine whether the BOM cell is virtual.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_members.html new file mode 100644 index 0000000..63667a5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBomCell2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomCell2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomCell2.

+ + +

Public Methods

+ +
 NameDescription
 MethodIsVirtualGets whether this BOM row is a virtual component.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_methods.html new file mode 100644 index 0000000..c2c2a8f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBomCell2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomCell2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomCell2 members.

+

Public Methods

+ +
 NameDescription
 MethodIsVirtualGets whether this BOM row is a virtual component.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2~IsVirtual.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2~IsVirtual.html new file mode 100644 index 0000000..84b559c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell2~IsVirtual.html @@ -0,0 +1,140 @@ + + + + + + IsVirtual Method (IEdmBomCell2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsVirtual Method (IEdmBomCell2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell2 Interface + : IsVirtual Method (IEdmBomCell2)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this BOM row is a virtual component. + + +

Syntax

Visual Basic 
Function IsVirtual() As System.Boolean
+
C# 
System.bool IsVirtual()
+
C++/CLI 
System.bool IsVirtual(); 
+ + + +

Return Value

True if this is a virtual component, false if not
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_members.html new file mode 100644 index 0000000..0848d10 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmBomCell Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomCell Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomCell.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodGetItemIDGets the row index of this BOM row.  
 MethodGetPathNameGets the file system path to the file in this BOM row.  
 MethodGetTreeLevelGets the position of this BOM row in the computed BOM.  
 MethodGetVarGets the value of the specified cell in this BOM row.  
 MethodIsLockedGets whether the file associated with this BOM cell is checked out and can be edited.  
 MethodSetVarSets the value of the specified cell in this BOM row.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_methods.html new file mode 100644 index 0000000..e6716aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmBomCell Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomCell Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomCell Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomCell members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodGetItemIDGets the row index of this BOM row.  
 MethodGetPathNameGets the file system path to the file in this BOM row.  
 MethodGetTreeLevelGets the position of this BOM row in the computed BOM.  
 MethodGetVarGets the value of the specified cell in this BOM row.  
 MethodIsLockedGets whether the file associated with this BOM cell is checked out and can be edited.  
 MethodSetVarSets the value of the specified cell in this BOM row.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetItemID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetItemID.html new file mode 100644 index 0000000..f4e4d9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetItemID.html @@ -0,0 +1,143 @@ + + + + + + GetItemID Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetItemID Method (IEdmBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : GetItemID Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the row index of this BOM row. + + +

Syntax

Visual Basic 
Function GetItemID() As System.Integer
+
C# 
System.int GetItemID()
+
C++/CLI 
System.int GetItemID(); 
+ + + +

Return Value

Row index
+ + +

Example

See the IEdmBomCell examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetPathName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetPathName.html new file mode 100644 index 0000000..ab36426 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetPathName.html @@ -0,0 +1,143 @@ + + + + + + GetPathName Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetPathName Method (IEdmBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : GetPathName Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file system path to the file in this BOM row. + + +

Syntax

Visual Basic 
Function GetPathName() As System.String
+
C# 
System.string GetPathName()
+
C++/CLI 
System.String^ GetPathName(); 
+ + + +

Return Value

File system path to the file in this row
+ + +

Example

See the IEdmBomCell examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetTreeLevel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetTreeLevel.html new file mode 100644 index 0000000..306cde1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetTreeLevel.html @@ -0,0 +1,143 @@ + + + + + + GetTreeLevel Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTreeLevel Method (IEdmBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : GetTreeLevel Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the position of this BOM row in the computed BOM. + + +

Syntax

Visual Basic 
Function GetTreeLevel() As System.Integer
+
C# 
System.int GetTreeLevel()
+
C++/CLI 
System.int GetTreeLevel(); 
+ + + +

Return Value

Position of this BOM row in the computed BOM
+ + +

Example

See the IEdmBomCell examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetVar.html new file mode 100644 index 0000000..2c14258 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~GetVar.html @@ -0,0 +1,201 @@ + + + + + + GetVar Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVar Method (IEdmBomCell)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : GetVar Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+
lVariableID
+
ID of the variable to get (see Remarks)
+
+
+
eColumn
+
Type of column as defined in EdmBomColumnType (see Remarks)
+
+
+
poValue
+
Value in this BOM cell
+
+
+
poComputedValue
+
Computed value in this BOM cell
+
+
+
pbsConfiguration
+
Name of the configuration from which to get this BOM cell's value
+
+
+
pbReadOnly
+
True if this BOM cell cannot be updated, false if it can be updated by IEdmBomCell::SetVar
+
+ +
+ +
+ + +
+
+ Gets the value of the specified cell in this BOM row. + + +

Syntax

Visual Basic 
Sub GetVar( _
+   ByVal lVariableID As System.Integer, _
+   ByVal eColumn As EdmBomColumnType, _
+   ByRef poValue As System.Object, _
+   ByRef poComputedValue As System.Object, _
+   ByRef pbsConfiguration As System.String, _
+   ByRef pbReadOnly As System.Boolean _
+) 
+
C# 
void GetVar( 
+   System.int lVariableID,
+   EdmBomColumnType eColumn,
+   out System.object poValue,
+   out System.object poComputedValue,
+   out System.string pbsConfiguration,
+   out System.bool pbReadOnly
+)
+
C++/CLI 
void GetVar( 
+&   System.int lVariableID,
+&   EdmBomColumnType eColumn,
+&   [Out] System.Object^ poValue,
+&   [Out] System.Object^ poComputedValue,
+&   [Out] System.String^ pbsConfiguration,
+&   [Out] System.bool pbReadOnly
+) 
+ +

Parameters

lVariableID
+
ID of the variable to get (see Remarks)
eColumn
+
Type of column as defined in EdmBomColumnType (see Remarks)
poValue
+
Value in this BOM cell
poComputedValue
+
Computed value in this BOM cell
pbsConfiguration
+
Name of the configuration from which to get this BOM cell's value
pbReadOnly
+
True if this BOM cell cannot be updated, false if it can be updated by IEdmBomCell::SetVar
+ +
+ + + + +

Example

+

Remarks

    +
  1. Call IEdmBomView::GetColumns to get EdmBomColumn for this BOM cell. +
  2. Set IVariableID with EdmBomColumn.mlVariableID. +
  3. Set eColumn with EdmBomColumn.meType.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~IsLocked.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~IsLocked.html new file mode 100644 index 0000000..5bb1d57 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~IsLocked.html @@ -0,0 +1,143 @@ + + + + + + IsLocked Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsLocked Method (IEdmBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : IsLocked Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the file associated with this BOM cell is checked out and can be edited. + + +

Syntax

Visual Basic 
Function IsLocked() As System.Boolean
+
C# 
System.bool IsLocked()
+
C++/CLI 
System.bool IsLocked(); 
+ + + +

Return Value

True if the file associated with this BOM cell is available for editing, false if not
+ + +

Example

See the IEdmBomCell examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~SetVar.html new file mode 100644 index 0000000..d424d26 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomCell~SetVar.html @@ -0,0 +1,201 @@ + + + + + + SetVar Method (IEdmBomCell) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmBomCell)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomCell Interface + : SetVar Method (IEdmBomCell)
+ +
+ + + +
+ +
+ + +
+
+
lVariableID
+
ID of the variable to set (see Remarks)
+
+
+
eColumn
+
Type of column as defined in EdmBomColumnType (see Remarks)
+
+
+
oNewValue
+
New value
+
+
+
bsConfiguration
+
Name of the configuration in which to set the value of this BOM cell
+
+
+
eOption
+
Type of value to set as defined in EdmBomSetVarOption
+
+
+
pbsErrorMessage
+
Error message
+
+ +
+ +
+ + +
+
+ Sets the value of the specified cell in this BOM row. + + +

Syntax

Visual Basic 
Function SetVar( _
+   ByVal lVariableID As System.Integer, _
+   ByVal eColumn As EdmBomColumnType, _
+   ByVal oNewValue As System.Object, _
+   ByVal bsConfiguration As System.String, _
+   ByVal eOption As EdmBomSetVarOption, _
+   ByRef pbsErrorMessage As System.String _
+) As System.Boolean
+
C# 
System.bool SetVar( 
+   System.int lVariableID,
+   EdmBomColumnType eColumn,
+   System.object oNewValue,
+   System.string bsConfiguration,
+   EdmBomSetVarOption eOption,
+   out System.string pbsErrorMessage
+)
+
C++/CLI 
System.bool SetVar( 
+&   System.int lVariableID,
+&   EdmBomColumnType eColumn,
+&   System.Object^ oNewValue,
+&   System.String^ bsConfiguration,
+&   EdmBomSetVarOption eOption,
+&   [Out] System.String^ pbsErrorMessage
+) 
+ +

Parameters

lVariableID
+
ID of the variable to set (see Remarks)
eColumn
+
Type of column as defined in EdmBomColumnType (see Remarks)
oNewValue
+
New value
bsConfiguration
+
Name of the configuration in which to set the value of this BOM cell
eOption
+
Type of value to set as defined in EdmBomSetVarOption
pbsErrorMessage
+
Error message
+ +

Return Value

True if the value is successfully set, false if not
+ + + + +

Example

+

Remarks

    +
  1. Call IEdmBomView::GetColumns to get EdmBomColumn for this BOM cell. +
  2. Set IVariableID with EdmBomColumn.mlVariableID. +
  3. Set eColumn with EdmBomColumn.meType.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr.html new file mode 100644 index 0000000..a865364 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr.html @@ -0,0 +1,140 @@ + + + + + + IEdmBomMgr Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomMgr Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the Bill of Materials (BOM) layouts installed in a vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomMgr 
+
C# 
public interface IEdmBomMgr 
+
C++/CLI 
public interface class IEdmBomMgr 
+
+ + + + +

Remarks

This interface:

+ +

To view a vault's BOM layouts in the SOLIDWORKS PDM Professional Administration tool, log in to a vault and expand Bills of Materials.

+

To access this interface, call IEdmVault7::CreateUtility with eType = EdmUtility.EdmUtil_BomMgr.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2.html new file mode 100644 index 0000000..100fca5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2.html @@ -0,0 +1,147 @@ + + + + + + IEdmBomMgr2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomMgr2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the Bill of Materials (BOM) layouts installed in a vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomMgr2 
+   Inherits IEdmBomMgr 
+
C# 
public interface IEdmBomMgr2 : IEdmBomMgr  
+
C++/CLI 
public interface class IEdmBomMgr2 : public IEdmBomMgr  
+
+ + + +

Example

+

Remarks

This interface:

+

   - Extends IEdmBomMgr by providing:

+
    +
      +
    • support for Web 2 applications, +
    • the ability to determine whether a specified user can see a specified BOM layout, and  +
    • a new layout structure, EdmBomLayout2, that includes BOM type information.
+

   - Is extended by IEdmBomMgr3.

+

To view a vault's BOM layouts in the SOLIDWORKS PDM Professional Administration tool, log in to a vault and expand Bills of Materials.

+

To access this interface, call IEdmVault7::CreateUtility with eType = EdmUtility.EdmUtil_BomMgr.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_members.html new file mode 100644 index 0000000..1f5f922 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBomMgr2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomMgr2.

+ + +

Public Methods

+ + +
 NameDescription
 MethodCanSeeBomLayoutGets whether the specified BOM layout is visible to the specified user.  
 MethodGetBomLayouts2Gets all of the BOM layouts installed in a vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_methods.html new file mode 100644 index 0000000..f63c430 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBomMgr2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomMgr2 members.

+

Public Methods

+ + +
 NameDescription
 MethodCanSeeBomLayoutGets whether the specified BOM layout is visible to the specified user.  
 MethodGetBomLayouts2Gets all of the BOM layouts installed in a vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~CanSeeBomLayout.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~CanSeeBomLayout.html new file mode 100644 index 0000000..9659883 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~CanSeeBomLayout.html @@ -0,0 +1,160 @@ + + + + + + CanSeeBomLayout Method (IEdmBomMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CanSeeBomLayout Method (IEdmBomMgr2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomMgr2 Interface + : CanSeeBomLayout Method (IEdmBomMgr2)
+ +
+ + + +
+ +
+ + +
+
+
lLayoutId
+
BOM layout ID
+
+
+
lUserID
+
User ID
+
+ +
+ +
+ + +
+
+ Gets whether the specified BOM layout is visible to the specified user. + + +

Syntax

Visual Basic 
Function CanSeeBomLayout( _
+   ByVal lLayoutId As System.Integer, _
+   ByVal lUserID As System.Integer _
+) As System.Boolean
+
C# 
System.bool CanSeeBomLayout( 
+   System.int lLayoutId,
+   System.int lUserID
+)
+
C++/CLI 
System.bool CanSeeBomLayout( 
+&   System.int lLayoutId,
+&   System.int lUserID
+) 
+ +

Parameters

lLayoutId
+
BOM layout ID
lUserID
+
User ID
+ +

Return Value

True if visible, false if not
+ + +

Example

See the IEdmBomMgr2 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~GetBomLayouts2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~GetBomLayouts2.html new file mode 100644 index 0000000..ecc4b1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr2~GetBomLayouts2.html @@ -0,0 +1,155 @@ + + + + + + GetBomLayouts2 Method (IEdmBomMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetBomLayouts2 Method (IEdmBomMgr2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomMgr2 Interface + : GetBomLayouts2 Method (IEdmBomMgr2)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetLayouts
+
Array of EdmBomLayout2 structures; one structure for each BOM layout
+
+ +
+ +
+ + +
+
+ Gets all of the BOM layouts installed in a vault. + + +

Syntax

Visual Basic 
Sub GetBomLayouts2( _
+   ByRef ppoRetLayouts() As EdmBomLayout2 _
+) 
+
C# 
void GetBomLayouts2( 
+   out EdmBomLayout2[] ppoRetLayouts
+)
+
C++/CLI 
void GetBomLayouts2( 
+&   [Out] array<EdmBomLayout2>^ ppoRetLayouts
+) 
+ +

Parameters

ppoRetLayouts
+
Array of EdmBomLayout2 structures; one structure for each BOM layout
+ +
+ + +

Example

See the IEdmBomMgr2 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3.html new file mode 100644 index 0000000..03c7047 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3.html @@ -0,0 +1,277 @@ + + + + + + IEdmBomMgr3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomMgr3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to add a SOLIDWORKS Bill of Materials (BOM) to a non-SOLIDWORKS document. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomMgr3 
+   Inherits IEdmBomMgrIEdmBomMgr2 
+
C# 
public interface IEdmBomMgr3 : IEdmBomMgrIEdmBomMgr2  
+
C++/CLI 
public interface class IEdmBomMgr3 : public IEdmBomMgrIEdmBomMgr2  
+
+ +

Example

//C# console application:

+

//----------------------------------------------------------------------------

+

// Preconditions:

+

// 1. Start Microsoft Visual Studio.

+

//    a. Click File > New > Project > Visual C# > Console Application.

+

//    b. Type Search in Name.

+

//    c. Click Browse and navigate to the folder where to create the project.

+

//    d. Click OK.

+

//    e. Click Show All Files in the Solution Explorer toolbar and expand

+

//       Program.cs in the Solution Explorer.

+

//    f. Replace the code in Program.cs with the code below.

+

//    g. Change the namespace to match your setup.

+

// 2. Add EPDM.Interop.epdm.dll and EPDM.Interop.EPDMResultCode as references
//    (right-click the project
name in the Solution Explorer, click Add Reference, click

+

//    Assemblies > Framework in the left-side panel, browse to the top folder of

+

//    your SOLIDWORKS PDM Professional installation, locate and select

+

//    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).

+

// 3. Change the userName, vaultName, swBom.RefDocID, swBom.RefCfgs, swBom.SheetName,
//    AddSWBom method parameters, and swRow property assignments
in the code
//    to match your vault and the document to which you want to add this BOM.

+

// 4. Click Debug > Start Debugging or press F5.

+

//

+

// Postconditions: Press a key when prompted in the console.

+

//----------------------------------------------------------------------------

+

+

//Program.cs

+

using System;

+

using System.Collections.Generic;

+

using System.Linq;

+

using System.Text;

+

using System.Threading.Tasks;

+

using EPDM.Interop.epdm;

+

using EPDM.Interop.EPDMResultCode;

+

using System.Windows.Forms;

+

+

namespace SPR_1207428

+

{

+

  class Program

+

  {

+

    const int LVCFMT_CENTER = 2;

+

    const int LVCFMT_RIGHT = 1;

+

+

   

+

    static string userName = "Admin";

+

    static string vaultName = "2022_A1_B291";

+

+

    static void Main(string[] args)

+

    {

+

      StringBuilder sb = new StringBuilder();

+

      try

+

      {

+

        sb.AppendFormat("UserName: {0}", userName).AppendLine();

+

        sb.AppendFormat("VaultName: {0}", vaultName).AppendLine();

+

+

        IEdmVault11 vault = (IEdmVault11)(new EdmVault5());

+

        if (!vault.IsLoggedIn)

+

          vault.Login(userName, "", vaultName);

+

+

        IEdmBomMgr3 bomMgr = (IEdmBomMgr3)vault.CreateUtility(EdmUtility.EdmUtil_BomMgr);

+

+

+

        IEdmSWBom swBom = bomMgr.CreateEmptySWBom();

+

+

        swBom.Name = "Custom SWBom 7";

+

        swBom.TableType = 0;

+

        swBom.StartNumber = 1;

+

        swBom.IncrementNumber = 1;

+

        swBom.RefCfgs = "Default";

+

        swBom.RefDocID = 1553;

+

        swBom.SheetName = "Sheet1";

+

+

+

        IEdmSWBomColumn swColTmp;

+

        swColTmp = swBom.InsertColumn(0, "PART NUMBER");

+

        swColTmp.Flags = LVCFMT_CENTER;

+

        swColTmp.Width = 120;

+

        swColTmp.Type = 8;

+

+

        swColTmp = swBom.InsertColumn(1, "DESCRIPTION");

+

        swColTmp.Flags = LVCFMT_CENTER;

+

        swColTmp.Width = 231;

+

        swColTmp.CustomPropName = "Description";

+

+

        swColTmp = swBom.InsertColumn(2, "WEIGHT");

+

        swColTmp.Flags = LVCFMT_CENTER;

+

        swColTmp.Width = 71;

+

        swColTmp.CustomPropName = "Weight";

+

+

        swColTmp = swBom.InsertColumn(3, "VENDOR");

+

        swColTmp.Flags = LVCFMT_CENTER;

+

        swColTmp.Width = 132;

+

        swColTmp.CustomPropName = "Vendor";

+

+

        swColTmp = swBom.InsertColumn(4, "QTY.");

+

        swColTmp.Flags = LVCFMT_RIGHT;

+

        swColTmp.Width = 71;

+

        swColTmp.Type = 6;

+

+

        swColTmp = swBom.InsertColumn(0, "ITEM NO."); // insert at first position; reorders previous indexing

+

        swColTmp.Flags = LVCFMT_CENTER;

+

        swColTmp.Width = 71;

+

        swColTmp.Type = 7;

+

+

+

        IEdmSWBomRow swRow = swBom.InsertRow(0);

+

        swRow.DocID = 1556;

+

        swRow.Configuration = "Default";

+

        swRow.Version = 1;

+

        swRow.ProjectID = 7;

+

        //swRow.ComponentRep = "SW-100200-2<Default>@Bill of Materials1/SW-100217-1<Default>@SW-100200/SW-201831-1<Default>@SW-100217";

+

+

+

        swBom.GetCell(0, 0).Text = "1";  //Item number

+

        swBom.GetCell(0, 1).Text = "SW-201831";  //Part number

+

        swBom.GetCell(0, 2).Text = "BASE"; //Description

+

        swBom.GetCell(0, 3).Text = "3696.33"; //Weight

+

        swBom.GetCell(0, 5).Text = "1"; //Quantity

        //Add the new SOLIDWORKS BOM to document with ID=1553 and Version=9

+

+

        bomMgr.AddSWBom(1553, 7, 9, (EdmSWBom)swBom);

+

+

        sb.AppendFormat("{0} sucessfully added.", swBom.Name).AppendLine();

+

      }

+

      catch (System.Runtime.InteropServices.COMException ex)

+

      {

+

        var errorType = typeof(EdmResultErrorCodes_e);

+

        if (Enum.IsDefined(errorType, ex.ErrorCode))

+

          sb.AppendFormat("Edm error occurred: {0}", Enum.GetName(errorType, ex.ErrorCode)).AppendLine();

+

        else

+

          sb.AppendLine("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);

+

      }

+

      catch (Exception ex)

+

      {

+

        sb.AppendFormat("Error occurred: {0}", ex.Message).AppendLine();

+

      }

+

+

      Console.WriteLine(sb.ToString());

+

      Console.WriteLine("Please press any key to exit");

+

      Console.ReadKey();

+

    }

+

  }

+

}

+
+ +

Remarks

This interface extends IEdmBomMgr2 by providing the ability to:

+
    +
  • create a SOLIDWORKS BOM with rows and columns not tied to a fixed layout. +
  • add a SOLIDWORKS BOM to a non-SOLIDWORKS document in the vault.
+

To access this interface, call IEdmVault7::CreateUtility with eType = EdmUtility.EdmUtil_BomMgr and then cast the returned object to IEdmBomMgr3.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_members.html new file mode 100644 index 0000000..2ea6550 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmBomMgr3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomMgr3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddSWBomAdds the specified SOLIDWORKS BOM to the specified document.  
 MethodCreateEmptySWBomCreates an empty SOLIDWORKS BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_methods.html new file mode 100644 index 0000000..10c67a5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmBomMgr3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomMgr3 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddSWBomAdds the specified SOLIDWORKS BOM to the specified document.  
 MethodCreateEmptySWBomCreates an empty SOLIDWORKS BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~AddSWBom.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~AddSWBom.html new file mode 100644 index 0000000..f77d58f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~AddSWBom.html @@ -0,0 +1,176 @@ + + + + + + AddSWBom Method (IEdmBomMgr3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddSWBom Method (IEdmBomMgr3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomMgr3 Interface + : AddSWBom Method (IEdmBomMgr3)
+ +
+ + + +
+ +
+ + +
+
+
lDocumentID
+
ID of document
+
+
+
lProjectID
+
ID of project where document resides
+
+
+
lDocRevNr
+
Version number of document
+
+
+
poSWBom
+
IEdmSWBom
+
+ +
+ +
+ + +
+
+ Adds the specified SOLIDWORKS BOM to the specified document. + + +

Syntax

Visual Basic 
Sub AddSWBom( _
+   ByVal lDocumentID As System.Integer, _
+   ByVal lProjectID As System.Integer, _
+   ByVal lDocRevNr As System.Integer, _
+   ByVal poSWBom As EdmSWBom _
+) 
+
C# 
void AddSWBom( 
+   System.int lDocumentID,
+   System.int lProjectID,
+   System.int lDocRevNr,
+   EdmSWBom poSWBom
+)
+
C++/CLI 
void AddSWBom( 
+&   System.int lDocumentID,
+&   System.int lProjectID,
+&   System.int lDocRevNr,
+&   EdmSWBom^ poSWBom
+) 
+ +

Parameters

lDocumentID
+
ID of document
lProjectID
+
ID of project where document resides
lDocRevNr
+
Version number of document
poSWBom
+
IEdmSWBom
+ +
+ + +

Example

See the IEdmBomMgr3 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~CreateEmptySWBom.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~CreateEmptySWBom.html new file mode 100644 index 0000000..d0b8070 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr3~CreateEmptySWBom.html @@ -0,0 +1,140 @@ + + + + + + CreateEmptySWBom Method (IEdmBomMgr3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateEmptySWBom Method (IEdmBomMgr3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomMgr3 Interface + : CreateEmptySWBom Method (IEdmBomMgr3)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Creates an empty SOLIDWORKS BOM. + + +

Syntax

Visual Basic 
Function CreateEmptySWBom() As EdmSWBom
+
C# 
EdmSWBom CreateEmptySWBom()
+
C++/CLI 
EdmSWBom^ CreateEmptySWBom(); 
+ + + +

Return Value

IEdmSWBom
+ + +

Example

See the IEdmBomMgr3 examples. +
+ +

Remarks

After calling this method, call IEdmBomMgr3::AddSWBom to add a new SOLIDWORKS BOM to an existing document.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_members.html new file mode 100644 index 0000000..32468aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBomMgr Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomMgr.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetBomLayoutsObsolete. Superseded by IEdmBomMgr2::GetBomLayouts2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_methods.html new file mode 100644 index 0000000..1472fc8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBomMgr Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomMgr Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomMgr Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomMgr members.

+

Public Methods

+ +
 NameDescription
 MethodGetBomLayoutsObsolete. Superseded by IEdmBomMgr2::GetBomLayouts2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr~GetBomLayouts.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr~GetBomLayouts.html new file mode 100644 index 0000000..bd06c0d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomMgr~GetBomLayouts.html @@ -0,0 +1,155 @@ + + + + + + GetBomLayouts Method (IEdmBomMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetBomLayouts Method (IEdmBomMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomMgr Interface + : GetBomLayouts Method (IEdmBomMgr)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetLayouts
+
Array of EdmBomLayout structures; one structure for each BOM layout
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmBomMgr2::GetBomLayouts2. + + +

Syntax

Visual Basic 
Sub GetBomLayouts( _
+   ByRef ppoRetLayouts() As EdmBomLayout _
+) 
+
C# 
void GetBomLayouts( 
+   out EdmBomLayout[] ppoRetLayouts
+)
+
C++/CLI 
void GetBomLayouts( 
+&   [Out] array<EdmBomLayout>^ ppoRetLayouts
+) 
+ +

Parameters

ppoRetLayouts
+
Array of EdmBomLayout structures; one structure for each BOM layout
+ +
+ + +

Example

See the IEdmBomMgr examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView.html new file mode 100644 index 0000000..7aabf47 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView.html @@ -0,0 +1,141 @@ + + + + + + IEdmBomView Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomView Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a Bill of Materials (BOM) view.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomView 
+
C# 
public interface IEdmBomView 
+
C++/CLI 
public interface class IEdmBomView 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2.html new file mode 100644 index 0000000..52c66d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2.html @@ -0,0 +1,141 @@ + + + + + + IEdmBomView2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomView2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a Bill of Materials (BOM) view.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomView2 
+   Inherits IEdmBomView 
+
C# 
public interface IEdmBomView2 : IEdmBomView  
+
C++/CLI 
public interface class IEdmBomView2 : public IEdmBomView  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmBomView by adding the ability to insert a row in a named bill of materials. +
  • is extended by IEdmBomView3.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_members.html new file mode 100644 index 0000000..6233b5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBomView2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomView2.

+ + +

Public Methods

+ +
 NameDescription
 MethodInsertRowInserts a row into this named BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_methods.html new file mode 100644 index 0000000..72a9c0d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBomView2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomView2 members.

+

Public Methods

+ +
 NameDescription
 MethodInsertRowInserts a row into this named BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2~InsertRow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2~InsertRow.html new file mode 100644 index 0000000..aa18818 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView2~InsertRow.html @@ -0,0 +1,174 @@ + + + + + + InsertRow Method (IEdmBomView2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InsertRow Method (IEdmBomView2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView2 Interface + : InsertRow Method (IEdmBomView2)
+ +
+ + + +
+ +
+ + +
+
+
poRow
+
IEdmBomCell; existing row
+
+
+
eInsertOption
+
Where the new BOM row is inserted with respect to poRow as defined in EdmBomInsertRowOption
+
+
+
ppoNewRow
+
IEdmBomCell
+
+ +
+ +
+ + +
+
+ Inserts a row into this named BOM. + + +

Syntax

Visual Basic 
Sub InsertRow( _
+   ByVal poRow As EdmBomCell, _
+   ByVal eInsertOption As EdmBomInsertRowOption, _
+   ByRef ppoNewRow As EdmBomCell _
+) 
+
C# 
void InsertRow( 
+   EdmBomCell poRow,
+   EdmBomInsertRowOption eInsertOption,
+   out EdmBomCell ppoNewRow
+)
+
C++/CLI 
void InsertRow( 
+&   EdmBomCell^ poRow,
+&   EdmBomInsertRowOption eInsertOption,
+&   [Out] EdmBomCell^ ppoNewRow
+) 
+ +

Parameters

poRow
+
IEdmBomCell; existing row
eInsertOption
+
Where the new BOM row is inserted with respect to poRow as defined in EdmBomInsertRowOption
ppoNewRow
+
IEdmBomCell
+ +
+ + + + +

Example

+

Remarks

This method is valid only for named BOMs.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3.html new file mode 100644 index 0000000..095be3e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3.html @@ -0,0 +1,141 @@ + + + + + + IEdmBomView3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView3 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomView3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a Bill of Materials (BOM) view.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomView3 
+   Inherits IEdmBomViewIEdmBomView2 
+
C# 
public interface IEdmBomView3 : IEdmBomViewIEdmBomView2  
+
C++/CLI 
public interface class IEdmBomView3 : public IEdmBomViewIEdmBomView2  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmBomView2 by adding the ability to save the BOM to a comma separated values (CSV) file. +
  • is extended by IEdmBomView4.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_members.html new file mode 100644 index 0000000..0636ca5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBomView3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomView3.

+ + +

Public Methods

+ +
 NameDescription
 MethodSaveToCSVSaves this BOM to a comma separated values (CSV) file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_methods.html new file mode 100644 index 0000000..f44e26b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBomView3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomView3 members.

+

Public Methods

+ +
 NameDescription
 MethodSaveToCSVSaves this BOM to a comma separated values (CSV) file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3~SaveToCSV.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3~SaveToCSV.html new file mode 100644 index 0000000..7491875 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView3~SaveToCSV.html @@ -0,0 +1,160 @@ + + + + + + SaveToCSV Method (IEdmBomView3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SaveToCSV Method (IEdmBomView3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView3 Interface + : SaveToCSV Method (IEdmBomView3)
+ +
+ + + +
+ +
+ + +
+
+
bsFilePath
+
Path and file name (*.CSV) to which to save this BOM
+
+
+
bCreateLevelColumn
+
True to include a level column in the CSV file for an indented BOM, false to not
+
+ +
+ +
+ + +
+
+ Saves this BOM to a comma separated values (CSV) file. + + +

Syntax

Visual Basic 
Sub SaveToCSV( _
+   ByVal bsFilePath As System.String, _
+   ByVal bCreateLevelColumn As System.Boolean _
+) 
+
C# 
void SaveToCSV( 
+   System.string bsFilePath,
+   System.bool bCreateLevelColumn
+)
+
C++/CLI 
void SaveToCSV( 
+&   System.String^ bsFilePath,
+&   System.bool bCreateLevelColumn
+) 
+ +

Parameters

bsFilePath
+
Path and file name (*.CSV) to which to save this BOM
bCreateLevelColumn
+
True to include a level column in the CSV file for an indented BOM, false to not
+ +
+ + +

Example

See the IEdmBomView3 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4.html new file mode 100644 index 0000000..b0e4597 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4.html @@ -0,0 +1,137 @@ + + + + + + IEdmBomView4 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView4 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmBomView4 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a Bill of Materials (BOM) view.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmBomView4 
+   Inherits IEdmBomViewIEdmBomView2IEdmBomView3 
+
C# 
public interface IEdmBomView4 : IEdmBomViewIEdmBomView2IEdmBomView3  
+
C++/CLI 
public interface class IEdmBomView4 : public IEdmBomViewIEdmBomView2IEdmBomView3  
+
+ + + + +

Remarks

This interface extends IEdmBomView3 by adding the ability to rename a named BOM.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_members.html new file mode 100644 index 0000000..da63af8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmBomView4 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView4 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView4 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomView4.

+ + +

Public Methods

+ +
 NameDescription
 MethodRenameRenames this named BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_methods.html new file mode 100644 index 0000000..4fb743e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmBomView4 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView4 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView4 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomView4 members.

+

Public Methods

+ +
 NameDescription
 MethodRenameRenames this named BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4~Rename.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4~Rename.html new file mode 100644 index 0000000..ad62baa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView4~Rename.html @@ -0,0 +1,227 @@ + + + + + + Rename Method (IEdmBomView4) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rename Method (IEdmBomView4)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView4 Interface + : Rename Method (IEdmBomView4)
+ +
+ + + +
+ +
+ + +
+
+
bsFileName
+
New file name of named BOM
+
+ +
+ +
+ + +
+
+ Renames this named BOM. + + +

Syntax

Visual Basic 
Sub Rename( _
+   ByVal bsFileName As System.String _
+) 
+
C# 
void Rename( 
+   System.string bsFileName
+)
+
C++/CLI 
void Rename( 
+&   System.String^ bsFileName
+) 
+ +

Parameters

bsFileName
+
New file name of named BOM
+ +
+ + +

Example

//Preconditions:

+

//1. Create a C# console application in Visual Studio.

+

//2. Add references EPDM.Interop.epdm and EPDM.Interop.EPDMResultCode to the project.

+

//3. Copy the code below to Program.cs.

+

//4. Change the namespace to match your project name.

+

//5. Add an assembly with a named BOM to your vault.

+

//6. Ensure that parameters of Login, and GetFileFromPath match your vault.

+

//7. Modify the Rename method’s parameter to rename your assembly’s named BOM.

+

//

+

//Postconditions:

+

//1. Refresh your vault view.

+

//2. Select the assembly with the named BOM in the vault.

+

//3. Observe the renamed BOM in the BOM dropdown on the Bill of Materials tab.

+

 

+

//Program.cs:

+

using System;

+

using EPDM.Interop.epdm;
using EPDM.Interop.EPDMResultCode;

+

using System.Windows.Forms;

+

+

namespace project_name

+

{

+

    class Program

+

    {

+

        static IEdmVault5 vault1 = null;

+

        static IEdmFile7 aFile;

+

        static string userName = "Admin";

+

+

        static void Main(string[] args)

+

        {

+

+

            try

+

            {

+

                vault1 = new EdmVault5();

+

                if (!vault1.IsLoggedIn)

+

                    vault1.Login(userName, "password", "JEB12");

+

+

                IEdmVault7 vault7 = (IEdmVault7)vault1;

+

+

                IEdmFolder5 ppoRetParentFolder;

+

                aFile = (IEdmFile7)vault1.GetFileFromPath("C:\\Users\\J4M\\Desktop\\JEB12\\test3.sldasm", out ppoRetParentFolder);

+

+

                EdmBomInfo[] derivedBOMs = null;

+

                aFile.GetDerivedBOMs(out derivedBOMs);

+

+

                int bomId = derivedBOMs[0].mlBomID;

+

                IEdmBom bom = (IEdmBom)vault7.GetObject(EdmObjectType.EdmObject_BOM, bomId);

+

+

                EdmBomVersion[] ppoVersions = null;

+

                bom.GetVersions(out ppoVersions);

+

                IEdmBomView4 bomView = (IEdmBomView4)bom.GetView(ppoVersions[ppoVersions.Length - 1].mlVersion);

+

+

                bomView.Rename("test3_renamed.sldasm.1.BOM");

+

+

                Console.WriteLine("BOM successfully renamed");

+

                Console.WriteLine("Press any key to exit");

+

                Console.ReadKey();

+

            }

+

            catch (System.Runtime.InteropServices.COMException ex)

+

            {

+

                var errorType = typeof(EdmResultErrorCodes_e);

+

                if (Enum.IsDefined(errorType, ex.ErrorCode))

+

                    MessageBox.Show(String.Format("Error occurred: {0}", Enum.GetName(errorType, ex.ErrorCode)));

+

                else

+

                    MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);

+

            }

+

            catch (Exception ex)

+

            {

+

                MessageBox.Show(ex.Message);

+

            }

+

        }

+

    }

+

}

+

 

+
+ +

Remarks

Named BOMs are saved as:

+

     file_name.sldext.version.BOM

+

Be sure to use the correct format when specifying bsFileName. For example, if you get assembly.sldasm, then to rename its BOM set bsFileName to:

+

    assembly_renamed.sldasm.1.BOM

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2022
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_members.html new file mode 100644 index 0000000..f917134 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmBomView Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBomView.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodCommitSaves the BOM content.  
 MethodGetColumnsGets the column definitions for this BOM.  
 MethodGetRowsGets the row definitions for this BOM.  
 MethodSetRowsAdds new rows or reorders existing rows in this BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_methods.html new file mode 100644 index 0000000..e9528ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmBomView Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBomView Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBomView Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBomView members.

+

Public Methods

+ + + + +
 NameDescription
 MethodCommitSaves the BOM content.  
 MethodGetColumnsGets the column definitions for this BOM.  
 MethodGetRowsGets the row definitions for this BOM.  
 MethodSetRowsAdds new rows or reorders existing rows in this BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~Commit.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~Commit.html new file mode 100644 index 0000000..69e839c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~Commit.html @@ -0,0 +1,173 @@ + + + + + + Commit Method (IEdmBomView) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Commit Method (IEdmBomView)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView Interface + : Commit Method (IEdmBomView)
+ +
+ + + +
+ +
+ + +
+
+
bsSaveAsBomName
+
Name of new BOM in which to save the BOM content; empty string to save changes to an existing BOM
+
+
+
pbsErrorMessage
+
Error message
+
+
+
plFocusNodeID
+
ID of node to which to set focus
+
+ +
+ +
+ + +
+
+ Saves the BOM content. + + +

Syntax

Visual Basic 
Function Commit( _
+   ByVal bsSaveAsBomName As System.String, _
+   ByRef pbsErrorMessage As System.String, _
+   ByRef plFocusNodeID As System.Integer _
+) As System.Integer
+
C# 
System.int Commit( 
+   System.string bsSaveAsBomName,
+   out System.string pbsErrorMessage,
+   out System.int plFocusNodeID
+)
+
C++/CLI 
System.int Commit( 
+&   System.String^ bsSaveAsBomName,
+&   [Out] System.String^ pbsErrorMessage,
+&   [Out] System.int plFocusNodeID
+) 
+ +

Parameters

bsSaveAsBomName
+
Name of new BOM in which to save the BOM content; empty string to save changes to an existing BOM
pbsErrorMessage
+
Error message
plFocusNodeID
+
ID of node to which to set focus
+ +

Return Value

Return codes
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetColumns.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetColumns.html new file mode 100644 index 0000000..241e645 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetColumns.html @@ -0,0 +1,155 @@ + + + + + + GetColumns Method (IEdmBomView) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetColumns Method (IEdmBomView)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView Interface + : GetColumns Method (IEdmBomView)
+ +
+ + + +
+ +
+ + +
+
+
ppoColumns
+
Array of EdmBomColumn structures; one structure for each BOM column
+
+ +
+ +
+ + +
+
+ Gets the column definitions for this BOM. + + +

Syntax

Visual Basic 
Sub GetColumns( _
+   ByRef ppoColumns() As EdmBomColumn _
+) 
+
C# 
void GetColumns( 
+   out EdmBomColumn[] ppoColumns
+)
+
C++/CLI 
void GetColumns( 
+&   [Out] array<EdmBomColumn>^ ppoColumns
+) 
+ +

Parameters

ppoColumns
+
Array of EdmBomColumn structures; one structure for each BOM column
+ +
+ + +

Example

See the IEdmBomView examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetRows.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetRows.html new file mode 100644 index 0000000..62b583e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~GetRows.html @@ -0,0 +1,155 @@ + + + + + + GetRows Method (IEdmBomView) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRows Method (IEdmBomView)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView Interface + : GetRows Method (IEdmBomView)
+ +
+ + + +
+ +
+ + +
+
+
ppoRows
+
Array of IEdmBomCells; one interface for each BOM row
+
+ +
+ +
+ + +
+
+ Gets the row definitions for this BOM. + + +

Syntax

Visual Basic 
Sub GetRows( _
+   ByRef ppoRows() As System.Object _
+) 
+
C# 
void GetRows( 
+   out System.object[] ppoRows
+)
+
C++/CLI 
void GetRows( 
+&   [Out] System.array<Object^>^ ppoRows
+) 
+ +

Parameters

ppoRows
+
Array of IEdmBomCells; one interface for each BOM row
+ +
+ + +

Example

See the IEdmBomView examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~SetRows.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~SetRows.html new file mode 100644 index 0000000..af6d2ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBomView~SetRows.html @@ -0,0 +1,155 @@ + + + + + + SetRows Method (IEdmBomView) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetRows Method (IEdmBomView)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBomView Interface + : SetRows Method (IEdmBomView)
+ +
+ + + +
+ +
+ + +
+
+
poRows
+
Array of ordered IEdmBomCell interfaces; one interface for each BOM row
+
+ +
+ +
+ + +
+
+ Adds new rows or reorders existing rows in this BOM. + + +

Syntax

Visual Basic 
Sub SetRows( _
+   ByVal poRows() As System.Object _
+) 
+
C# 
void SetRows( 
+   System.object[] poRows
+)
+
C++/CLI 
void SetRows( 
+&   System.array<Object^>^ poRows
+) 
+ +

Parameters

poRows
+
Array of ordered IEdmBomCell interfaces; one interface for each BOM row
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_members.html new file mode 100644 index 0000000..f87cb32 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_members.html @@ -0,0 +1,123 @@ + + + + + + IEdmBom Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBom Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBom Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmBom.

+

Public Properties

+ + + + + +
 NameDescription
 PropertyCheckOutUserIDGets the ID of the user who has this BOM checked out.  
 PropertyCurrentStateGets the current workflow state of this BOM.  
 PropertyCurrentVersionGets the current version number of this BOM.  
 PropertyFileIDGets the unique ID of the file used to generate this BOM.  
 PropertyIsCheckedOutGets whether this BOM is checked out.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodChangeStateChanges the workflow state of this BOM.  
 MethodCheckInChecks in this BOM.  
 MethodCheckOutChecks out this BOM.  
 MethodDeleteDeletes this BOM.  
 MethodGetVersionsGets the versions of this BOM.  
 MethodGetViewGets the BOM view for the specified BOM version. The BOM view allows you to read and manipulate the contents of the BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_methods.html new file mode 100644 index 0000000..bed9135 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmBom Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBom Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBom Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBom members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodChangeStateChanges the workflow state of this BOM.  
 MethodCheckInChecks in this BOM.  
 MethodCheckOutChecks out this BOM.  
 MethodDeleteDeletes this BOM.  
 MethodGetVersionsGets the versions of this BOM.  
 MethodGetViewGets the BOM view for the specified BOM version. The BOM view allows you to read and manipulate the contents of the BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_properties.html new file mode 100644 index 0000000..1af93f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmBom Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmBom Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmBom Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmBom members.

+

Public Properties

+ + + + + +
 NameDescription
 PropertyCheckOutUserIDGets the ID of the user who has this BOM checked out.  
 PropertyCurrentStateGets the current workflow state of this BOM.  
 PropertyCurrentVersionGets the current version number of this BOM.  
 PropertyFileIDGets the unique ID of the file used to generate this BOM.  
 PropertyIsCheckedOutGets whether this BOM is checked out.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~ChangeState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~ChangeState.html new file mode 100644 index 0000000..da9fb37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~ChangeState.html @@ -0,0 +1,179 @@ + + + + + + ChangeState Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState Method (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : ChangeState Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+
poStateIdOrName
+
Name or ID of new workflow state
+
+
+
bsComment
+
Comment to append to the history of this BOM
+
+
+
lParentWnd
+
Parent window handle; passed to registered add-ins
+
+
+
lEdmStateFlags
+
Combination of EdmStateFlags bits
+
+ +
+ +
+ + +
+
+ Changes the workflow state of this BOM. + + +

Syntax

Visual Basic 
Sub ChangeState( _
+   ByVal poStateIdOrName As System.Object, _
+   ByVal bsComment As System.String, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lEdmStateFlags As System.Integer _
+) 
+
C# 
void ChangeState( 
+   System.object poStateIdOrName,
+   System.string bsComment,
+   System.int lParentWnd,
+   System.int lEdmStateFlags
+)
+
C++/CLI 
void ChangeState( 
+&   System.Object^ poStateIdOrName,
+&   System.String^ bsComment,
+&   System.int lParentWnd,
+&   System.int lEdmStateFlags
+) 
+ +

Parameters

poStateIdOrName
+
Name or ID of new workflow state
bsComment
+
Comment to append to the history of this BOM
lParentWnd
+
Parent window handle; passed to registered add-ins
lEdmStateFlags
+
Combination of EdmStateFlags bits
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckIn.html new file mode 100644 index 0000000..151f3cb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckIn.html @@ -0,0 +1,155 @@ + + + + + + CheckIn Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CheckIn Method (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : CheckIn Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment to add to the history of this BOM
+
+ +
+ +
+ + +
+
+ Checks in this BOM. + + +

Syntax

Visual Basic 
Sub CheckIn( _
+   ByVal bsComment As System.String _
+) 
+
C# 
void CheckIn( 
+   System.string bsComment
+)
+
C++/CLI 
void CheckIn( 
+&   System.String^ bsComment
+) 
+ +

Parameters

bsComment
+
Comment to add to the history of this BOM
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOut.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOut.html new file mode 100644 index 0000000..579c3d4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOut.html @@ -0,0 +1,143 @@ + + + + + + CheckOut Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CheckOut Method (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : CheckOut Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Checks out this BOM. + + +

Syntax

Visual Basic 
Sub CheckOut() 
+
C# 
void CheckOut()
+
C++/CLI 
void CheckOut(); 
+ + + +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOutUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOutUserID.html new file mode 100644 index 0000000..446fc79 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CheckOutUserID.html @@ -0,0 +1,147 @@ + + + + + + CheckOutUserID Property (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CheckOutUserID Property (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : CheckOutUserID Property (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who has this BOM checked out. + + +

Syntax

Visual Basic 
ReadOnly Property CheckOutUserID As System.Integer
+
C# 
System.int CheckOutUserID {get;}
+
C++/CLI 
property System.int CheckOutUserID {
+   System.int get();
+}
+ + + +

Property Value

ID of the user who has this BOM checked out; 0 if not checked out
+ + +

Example

See the IEdmBom examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentState.html new file mode 100644 index 0000000..28d595c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentState.html @@ -0,0 +1,147 @@ + + + + + + CurrentState Property (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CurrentState Property (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : CurrentState Property (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the current workflow state of this BOM. + + +

Syntax

Visual Basic 
ReadOnly Property CurrentState As IEdmState6
+
C# 
IEdmState6 CurrentState {get;}
+
C++/CLI 
property IEdmState6^ CurrentState {
+   IEdmState6^ get();
+}
+ + + +

Property Value

IEdmState6
+ + +

Example

See the IEdmBom examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentVersion.html new file mode 100644 index 0000000..d4731cc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~CurrentVersion.html @@ -0,0 +1,147 @@ + + + + + + CurrentVersion Property (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CurrentVersion Property (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : CurrentVersion Property (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the current version number of this BOM. + + +

Syntax

Visual Basic 
ReadOnly Property CurrentVersion As System.Integer
+
C# 
System.int CurrentVersion {get;}
+
C++/CLI 
property System.int CurrentVersion {
+   System.int get();
+}
+ + + +

Property Value

Current version number of this BOM
+ + +

Example

See the IEdmBom examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~Delete.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~Delete.html new file mode 100644 index 0000000..abc9cf4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~Delete.html @@ -0,0 +1,143 @@ + + + + + + Delete Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Delete Method (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : Delete Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Deletes this BOM. + + +

Syntax

Visual Basic 
Sub Delete() 
+
C# 
void Delete()
+
C++/CLI 
void Delete(); 
+ + + +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~FileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~FileID.html new file mode 100644 index 0000000..7b99fb4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~FileID.html @@ -0,0 +1,147 @@ + + + + + + FileID Property (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileID Property (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : FileID Property (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the unique ID of the file used to generate this BOM. + + +

Syntax

Visual Basic 
ReadOnly Property FileID As System.Integer
+
C# 
System.int FileID {get;}
+
C++/CLI 
property System.int FileID {
+   System.int get();
+}
+ + + +

Property Value

File ID
+ + +

Example

See the IEdmBom examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetVersions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetVersions.html new file mode 100644 index 0000000..54179bd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetVersions.html @@ -0,0 +1,155 @@ + + + + + + GetVersions Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVersions Method (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : GetVersions Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+
ppoVersions
+
Array of EdmBomVersion structures; one structure for each BOM version; the structure of the oldest version is at the beginning of the array
+
+ +
+ +
+ + +
+
+ Gets the versions of this BOM. + + +

Syntax

Visual Basic 
Sub GetVersions( _
+   ByRef ppoVersions() As EdmBomVersion _
+) 
+
C# 
void GetVersions( 
+   out EdmBomVersion[] ppoVersions
+)
+
C++/CLI 
void GetVersions( 
+&   [Out] array<EdmBomVersion>^ ppoVersions
+) 
+ +

Parameters

ppoVersions
+
Array of EdmBomVersion structures; one structure for each BOM version; the structure of the oldest version is at the beginning of the array
+ +
+ + +

Example

See the IEdmBom examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetView.html new file mode 100644 index 0000000..cc3cef3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~GetView.html @@ -0,0 +1,157 @@ + + + + + + GetView Method (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetView Method (IEdmBom)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : GetView Method (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+
lVersionNo
+
Version of the BOM whose view you want
+
+ +
+ +
+ + +
+
+ Gets the BOM view for the specified BOM version. The BOM view allows you to read and manipulate the contents of the BOM. + + +

Syntax

Visual Basic 
Function GetView( _
+   Optional ByVal lVersionNo As System.Integer _
+) As EdmBomView
+
C# 
EdmBomView GetView( 
+   System.int lVersionNo
+)
+
C++/CLI 
EdmBomView^ GetView( 
+&   System.int lVersionNo
+) 
+ +

Parameters

lVersionNo
+
Version of the BOM whose view you want
+ +

Return Value

IEdmBomView
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~IsCheckedOut.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~IsCheckedOut.html new file mode 100644 index 0000000..7b85e6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmBom~IsCheckedOut.html @@ -0,0 +1,147 @@ + + + + + + IsCheckedOut Property (IEdmBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsCheckedOut Property (IEdmBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmBom Interface + : IsCheckedOut Property (IEdmBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this BOM is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property IsCheckedOut As System.Boolean
+
C# 
System.bool IsCheckedOut {get;}
+
C++/CLI 
property System.bool IsCheckedOut {
+   System.bool get();
+}
+ + + +

Property Value

True if this BOM is checked out, false if not
+ + +

Example

See the IEdmBom examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback.html new file mode 100644 index 0000000..cc19cee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback.html @@ -0,0 +1,155 @@ + + + + + + IEdmCallback Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCallback Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Monitors the progress of a supported API operation.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCallback 
+
C# 
public interface IEdmCallback 
+
C++/CLI 
public interface class IEdmCallback 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

This callback interface works only with API methods that provide a poCallback argument. For example:

+ +

To use this interface:

+
    +
  1. Create a new class. +
  2. Implement all of the methods of IEdmCallback in the new class. +
  3. Call one of the API methods whose progress you want to monitor, setting its poCallback argument to a pointer to the new class.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6.html new file mode 100644 index 0000000..42a9c69 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6.html @@ -0,0 +1,146 @@ + + + + + + IEdmCallback6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCallback6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Monitors the progress of a supported API operation.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCallback6 
+
C# 
public interface IEdmCallback6 
+
C++/CLI 
public interface class IEdmCallback6 
+
+ + + +

Example

+

Remarks

This interface inherits from IUnknown. See Using and Implementing IUnknown (COM).

+

This callback interface works only with methods that provide a poCallback argument. For example: 

+ +

To use this interface:

+
    +
  1. Create a new class. +
  2. Implement all of the methods of IEdmCallback6 in the new class. +
  3. Call one of the methods whose progress you want to monitor, setting its poCallback argument to a pointer to the new class.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_members.html new file mode 100644 index 0000000..4155f72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmCallback6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCallback6.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodMsgBoxDisplays a message box.  
 MethodResolveResolves multiple errors.  
 MethodSetProgressSets the current progress bar position.  
 MethodSetProgressRangeSets the maximum value for a progress bar.  
 MethodSetStatusMessageDisplays a message to the user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_methods.html new file mode 100644 index 0000000..3f6f9c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmCallback6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCallback6 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodMsgBoxDisplays a message box.  
 MethodResolveResolves multiple errors.  
 MethodSetProgressSets the current progress bar position.  
 MethodSetProgressRangeSets the maximum value for a progress bar.  
 MethodSetStatusMessageDisplays a message to the user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~MsgBox.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~MsgBox.html new file mode 100644 index 0000000..bb699f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~MsgBox.html @@ -0,0 +1,180 @@ + + + + + + MsgBox Method (IEdmCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MsgBox Method (IEdmCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback6 Interface + : MsgBox Method (IEdmCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Handle of the parent window
+
+
+
lMsgID
+
ID of the message to be shown (see Remarks)
+
+
+
bsMsg
+
Message to be displayed
+
+
+
eType
+
Message box type as defined in EdmMBoxType
+
+ +
+ +
+ + +
+
+ Displays a message box. + + +

Syntax

Visual Basic 
Function MsgBox( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lMsgID As System.Integer, _
+   ByVal bsMsg As System.String, _
+   Optional ByVal eType As EdmMBoxType _
+) As EdmMBoxResult
+
C# 
EdmMBoxResult MsgBox( 
+   System.int lParentWnd,
+   System.int lMsgID,
+   System.string bsMsg,
+   EdmMBoxType eType
+)
+
C++/CLI 
EdmMBoxResult MsgBox( 
+&   System.int lParentWnd,
+&   System.int lMsgID,
+&   System.String^ bsMsg,
+&   EdmMBoxType eType
+) 
+ +

Parameters

lParentWnd
+
Handle of the parent window
lMsgID
+
ID of the message to be shown (see Remarks)
bsMsg
+
Message to be displayed
eType
+
Message box type as defined in EdmMBoxType
+ +

Return Value

Message box result as defined in EdmMBoxResult
+ + +

Example

See the IEdmCallback6 examples. +
+ +

Remarks

For callbacks during add operations, IMsgID is one of the values defined in EdmAddCallbackMsgID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • <any error code>: The calling method terminated.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~Resolve.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~Resolve.html new file mode 100644 index 0000000..3bf1409 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~Resolve.html @@ -0,0 +1,194 @@ + + + + + + Resolve Method (IEdmCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Resolve Method (IEdmCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback6 Interface + : Resolve Method (IEdmCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Handle of the parent window
+
+
+
ppoItems
+
Array of EdmCmdData structures; one structure for each item that needs to be resolved (see Remarks)
+
+ +
+ +
+ + +
+
+ Resolves multiple errors. + + +

Syntax

Visual Basic 
Sub Resolve( _
+   ByVal lParentWnd As System.Integer, _
+   ByRef ppoItems() As EdmCmdData _
+) 
+
C# 
void Resolve( 
+   System.int lParentWnd,
+   out EdmCmdData[] ppoItems
+)
+
C++/CLI 
void Resolve( 
+&   System.int lParentWnd,
+&   [Out] array<EdmCmdData>^ ppoItems
+) 
+ +

Parameters

lParentWnd
+
Handle of the parent window
ppoItems
+
Array of EdmCmdData structures; one structure for each item that needs to be resolved (see Remarks)
+ +
+ + +

Example

See the IEdmCallback6 examples. +
+ +

Remarks

SOLIDWORKS PDM Professional continues to call this method until all errors are resolved or until this method returns an error code. If you do not properly implement this method to return an error code, you may cause your program to hang.

+

Contents of each ppoItem EdmCmdData structure:

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MemberDirectionContents
mlObjectID1InputID of the source file that is being copied; 0 if the file is copied from outside the vault
mlObjectID2InputID of the source file's parent folder; 0 if the file is copied from outside the vault
mbsStrData1InputPath to the source file
mbsStrData2InputPath to the destination file
mlLongData1InputCombination of EdmResolveReason bits telling why this method is called
mlLongData2OutputCombination of EdmResolveAction bits telling SOLIDWORKS PDM Professional how to proceed

+

The ppoItems array may contain items that do not need to be resolved. The mlLongData1 struct members for those items are zero.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgress.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgress.html new file mode 100644 index 0000000..0a33d7f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgress.html @@ -0,0 +1,171 @@ + + + + + + SetProgress Method (IEdmCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgress Method (IEdmCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback6 Interface + : SetProgress Method (IEdmCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lBarIndex
+
0-based index of the progress bar
+
+
+
lPos
+
Current position
+
+
+
bsMsg
+
Message to be displayed
+
+ +
+ +
+ + +
+
+ Sets the current progress bar position. + + +

Syntax

Visual Basic 
Function SetProgress( _
+   ByVal lBarIndex As System.Integer, _
+   ByVal lPos As System.Integer, _
+   ByVal bsMsg As System.String _
+) As System.Boolean
+
C# 
System.bool SetProgress( 
+   System.int lBarIndex,
+   System.int lPos,
+   System.string bsMsg
+)
+
C++/CLI 
System.bool SetProgress( 
+&   System.int lBarIndex,
+&   System.int lPos,
+&   System.String^ bsMsg
+) 
+ +

Parameters

lBarIndex
+
0-based index of the progress bar
lPos
+
Current position
bsMsg
+
Message to be displayed
+ +

Return Value

True to continue, false to cancel
+ + +

Example

See the IEdmCallback6 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • <any error code>: The calling method terminated.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgressRange.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgressRange.html new file mode 100644 index 0000000..476b9da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetProgressRange.html @@ -0,0 +1,163 @@ + + + + + + SetProgressRange Method (IEdmCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressRange Method (IEdmCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback6 Interface + : SetProgressRange Method (IEdmCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lBarIndex
+
0-based index of the progress bar
+
+
+
lMax
+
Maximum value for the progress bar; minimum value is always 0
+
+ +
+ +
+ + +
+
+ Sets the maximum value for a progress bar. + + +

Syntax

Visual Basic 
Sub SetProgressRange( _
+   ByVal lBarIndex As System.Integer, _
+   ByVal lMax As System.Integer _
+) 
+
C# 
void SetProgressRange( 
+   System.int lBarIndex,
+   System.int lMax
+)
+
C++/CLI 
void SetProgressRange( 
+&   System.int lBarIndex,
+&   System.int lMax
+) 
+ +

Parameters

lBarIndex
+
0-based index of the progress bar
lMax
+
Maximum value for the progress bar; minimum value is always 0
+ +
+ + +

Example

See the IEdmCallback6 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • <any error code>: The calling method terminated.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetStatusMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetStatusMessage.html new file mode 100644 index 0000000..3cb6dac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback6~SetStatusMessage.html @@ -0,0 +1,163 @@ + + + + + + SetStatusMessage Method (IEdmCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetStatusMessage Method (IEdmCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback6 Interface + : SetStatusMessage Method (IEdmCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lBarIndex
+
0-based index of the progress bar
+
+
+
bsMessage
+
Message to display
+
+ +
+ +
+ + +
+
+ Displays a message to the user. + + +

Syntax

Visual Basic 
Sub SetStatusMessage( _
+   ByVal lBarIndex As System.Integer, _
+   ByVal bsMessage As System.String _
+) 
+
C# 
void SetStatusMessage( 
+   System.int lBarIndex,
+   System.string bsMessage
+)
+
C++/CLI 
void SetStatusMessage( 
+&   System.int lBarIndex,
+&   System.String^ bsMessage
+) 
+ +

Parameters

lBarIndex
+
0-based index of the progress bar
bsMessage
+
Message to display
+ +
+ + +

Example

See the IEdmCallback6 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • <any error code>: The calling method terminated.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8.html new file mode 100644 index 0000000..d25237d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8.html @@ -0,0 +1,136 @@ + + + + + + IEdmCallback8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCallback8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Monitors the progress of a supported API operation.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCallback8 
+   Inherits IEdmCallback6 
+
C# 
public interface IEdmCallback8 : IEdmCallback6  
+
C++/CLI 
public interface class IEdmCallback8 : public IEdmCallback6  
+
+ + + + +

Remarks

This interface extends IEdmCallback6 by providing the ability to specify minor progress parameters.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_members.html new file mode 100644 index 0000000..efede5e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmCallback8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCallback8.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodChangeMinorProgressVisibilityChange whether to display minor progress of this callback.  
 MethodSetMinorMaxSets the maximum minor progress of this callback.  
 MethodSetMinorProgressSets the current minor progress bar position.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_methods.html new file mode 100644 index 0000000..1254ddb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmCallback8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCallback8 members.

+

Public Methods

+ + + +
 NameDescription
 MethodChangeMinorProgressVisibilityChange whether to display minor progress of this callback.  
 MethodSetMinorMaxSets the maximum minor progress of this callback.  
 MethodSetMinorProgressSets the current minor progress bar position.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~ChangeMinorProgressVisibility.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~ChangeMinorProgressVisibility.html new file mode 100644 index 0000000..f65473e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~ChangeMinorProgressVisibility.html @@ -0,0 +1,152 @@ + + + + + + ChangeMinorProgressVisibility Method (IEdmCallback8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeMinorProgressVisibility Method (IEdmCallback8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback8 Interface + : ChangeMinorProgressVisibility Method (IEdmCallback8)
+ +
+ + + +
+ +
+ + +
+
+
bShow
+
True to display minor progress, false to not
+
+ +
+ +
+ + +
+
+ Change whether to display minor progress of this callback. + + +

Syntax

Visual Basic 
Sub ChangeMinorProgressVisibility( _
+   ByVal bShow As System.Boolean _
+) 
+
C# 
void ChangeMinorProgressVisibility( 
+   System.bool bShow
+)
+
C++/CLI 
void ChangeMinorProgressVisibility( 
+&   System.bool bShow
+) 
+ +

Parameters

bShow
+
True to display minor progress, false to not
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorMax.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorMax.html new file mode 100644 index 0000000..2d72601 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorMax.html @@ -0,0 +1,152 @@ + + + + + + SetMinorMax Method (IEdmCallback8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetMinorMax Method (IEdmCallback8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback8 Interface + : SetMinorMax Method (IEdmCallback8)
+ +
+ + + +
+ +
+ + +
+
+
dwMax
+
Maximum minor progress
+
+ +
+ +
+ + +
+
+ Sets the maximum minor progress of this callback. + + +

Syntax

Visual Basic 
Sub SetMinorMax( _
+   ByVal dwMax As System.UInteger _
+) 
+
C# 
void SetMinorMax( 
+   System.uint dwMax
+)
+
C++/CLI 
void SetMinorMax( 
+&   System.uint dwMax
+) 
+ +

Parameters

dwMax
+
Maximum minor progress
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorProgress.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorProgress.html new file mode 100644 index 0000000..e46e7e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback8~SetMinorProgress.html @@ -0,0 +1,160 @@ + + + + + + SetMinorProgress Method (IEdmCallback8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetMinorProgress Method (IEdmCallback8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback8 Interface + : SetMinorProgress Method (IEdmCallback8)
+ +
+ + + +
+ +
+ + +
+
+
oMsg
+
Message to be displayed
+
+
+
dwProgress
+
Progress
+
+ +
+ +
+ + +
+
+ Sets the current minor progress bar position. + + +

Syntax

Visual Basic 
Sub SetMinorProgress( _
+   ByVal oMsg As System.String, _
+   ByVal dwProgress As System.UInteger _
+) 
+
C# 
void SetMinorProgress( 
+   System.string oMsg,
+   System.uint dwProgress
+)
+
C++/CLI 
void SetMinorProgress( 
+&   System.String^ oMsg,
+&   System.uint dwProgress
+) 
+ +

Parameters

oMsg
+
Message to be displayed
dwProgress
+
Progress
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_members.html new file mode 100644 index 0000000..aada83a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmCallback Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCallback.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodSetModifiedFlagIndicates that the contents of a document have changed.  
 MethodSetProgressPosSets the current position in the progress bar.  
 MethodSetProgressRangeSets the minimum and maximum values in the progress bar.  
 MethodSetStatusMessageDisplays a message to the user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_methods.html new file mode 100644 index 0000000..6f83856 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmCallback Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCallback Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCallback Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCallback members.

+

Public Methods

+ + + + +
 NameDescription
 MethodSetModifiedFlagIndicates that the contents of a document have changed.  
 MethodSetProgressPosSets the current position in the progress bar.  
 MethodSetProgressRangeSets the minimum and maximum values in the progress bar.  
 MethodSetStatusMessageDisplays a message to the user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetModifiedFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetModifiedFlag.html new file mode 100644 index 0000000..fcf27d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetModifiedFlag.html @@ -0,0 +1,143 @@ + + + + + + SetModifiedFlag Method (IEdmCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetModifiedFlag Method (IEdmCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback Interface + : SetModifiedFlag Method (IEdmCallback)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Indicates that the contents of a document have changed. + + +

Syntax

Visual Basic 
Sub SetModifiedFlag() 
+
C# 
void SetModifiedFlag()
+
C++/CLI 
void SetModifiedFlag(); 
+ + + +
+ + +

Example

See the IEdmCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressPos.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressPos.html new file mode 100644 index 0000000..3871d49 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressPos.html @@ -0,0 +1,156 @@ + + + + + + SetProgressPos Method (IEdmCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressPos Method (IEdmCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback Interface + : SetProgressPos Method (IEdmCallback)
+ +
+ + + +
+ +
+ + +
+
+
lPos
+
Current position in the progress bar
+
+ +
+ +
+ + +
+
+ Sets the current position in the progress bar. + + +

Syntax

Visual Basic 
Sub SetProgressPos( _
+   ByVal lPos As System.Integer _
+) 
+
C# 
void SetProgressPos( 
+   System.int lPos
+)
+
C++/CLI 
void SetProgressPos( 
+&   System.int lPos
+) 
+ +

Parameters

lPos
+
Current position in the progress bar
+ +
+ + +

Example

See the IEdmCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_CANCELLED_BY_USER: Cancel the operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressRange.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressRange.html new file mode 100644 index 0000000..886eafc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetProgressRange.html @@ -0,0 +1,164 @@ + + + + + + SetProgressRange Method (IEdmCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressRange Method (IEdmCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback Interface + : SetProgressRange Method (IEdmCallback)
+ +
+ + + +
+ +
+ + +
+
+
lMin
+
Minimum value in the progress bar
+
+
+
lMax
+
Maximum value in the progress bar
+
+ +
+ +
+ + +
+
+ Sets the minimum and maximum values in the progress bar. + + +

Syntax

Visual Basic 
Sub SetProgressRange( _
+   ByVal lMin As System.Integer, _
+   ByVal lMax As System.Integer _
+) 
+
C# 
void SetProgressRange( 
+   System.int lMin,
+   System.int lMax
+)
+
C++/CLI 
void SetProgressRange( 
+&   System.int lMin,
+&   System.int lMax
+) 
+ +

Parameters

lMin
+
Minimum value in the progress bar
lMax
+
Maximum value in the progress bar
+ +
+ + +

Example

See the IEdmCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_CANCELLED_BY_USER: Cancel the operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetStatusMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetStatusMessage.html new file mode 100644 index 0000000..9ff47a6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCallback~SetStatusMessage.html @@ -0,0 +1,155 @@ + + + + + + SetStatusMessage Method (IEdmCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetStatusMessage Method (IEdmCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCallback Interface + : SetStatusMessage Method (IEdmCallback)
+ +
+ + + +
+ +
+ + +
+
+
bsMessage
+
Message to display
+
+ +
+ +
+ + +
+
+ Displays a message to the user. + + +

Syntax

Visual Basic 
Sub SetStatusMessage( _
+   ByVal bsMessage As System.String _
+) 
+
C# 
void SetStatusMessage( 
+   System.string bsMessage
+)
+
C++/CLI 
void SetStatusMessage( 
+&   System.String^ bsMessage
+) 
+ +

Parameters

bsMessage
+
Message to display
+ +
+ + +

Example

See the IEdmCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_CANCELLED_BY_USER: Cancel the operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5.html new file mode 100644 index 0000000..ad0abfa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5.html @@ -0,0 +1,145 @@ + + + + + + IEdmCard5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCard5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCard5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmCard5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmCard5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+ +

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_Card.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_members.html new file mode 100644 index 0000000..f593adc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmCard5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCard5.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodGetControlGets a card control with the specified ID.  
 MethodGetControlIDGets the ID of the control that is connected to the specified variable in this card.  
 MethodGetFirstControlPositionStarts an enumeration of the controls in this data card.  
 MethodGetNextControlGets the next control in the enumeration.  
 MethodGetSizeGets the size of this data card.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_methods.html new file mode 100644 index 0000000..bdfdf5b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmCard5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCard5 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodGetControlGets a card control with the specified ID.  
 MethodGetControlIDGets the ID of the control that is connected to the specified variable in this card.  
 MethodGetFirstControlPositionStarts an enumeration of the controls in this data card.  
 MethodGetNextControlGets the next control in the enumeration.  
 MethodGetSizeGets the size of this data card.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControl.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControl.html new file mode 100644 index 0000000..521bf88 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControl.html @@ -0,0 +1,157 @@ + + + + + + GetControl Method (IEdmCard5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetControl Method (IEdmCard5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard5 Interface + : GetControl Method (IEdmCard5)
+ +
+ + + +
+ +
+ + +
+
+
lControlID
+
ID of card control to get
+
+ +
+ +
+ + +
+
+ Gets a card control with the specified ID. + + +

Syntax

Visual Basic 
Function GetControl( _
+   ByVal lControlID As System.Integer _
+) As IEdmCardControl5
+
C# 
IEdmCardControl5 GetControl( 
+   System.int lControlID
+)
+
C++/CLI 
IEdmCardControl5^ GetControl( 
+&   System.int lControlID
+) 
+ +

Parameters

lControlID
+
ID of card control to get
+ +

Return Value

IEdmCardControl5
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: The supplied control is invalid. +
  • E_EDM_DATABASE_ACCESS: The supplied control ID is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControlID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControlID.html new file mode 100644 index 0000000..c9039af --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetControlID.html @@ -0,0 +1,157 @@ + + + + + + GetControlID Method (IEdmCard5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetControlID Method (IEdmCard5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard5 Interface + : GetControlID Method (IEdmCard5)
+ +
+ + + +
+ +
+ + +
+
+
poVariableNameOrID
+
ID or name of the variable for which to get the control ID
+
+ +
+ +
+ + +
+
+ Gets the ID of the control that is connected to the specified variable in this card. + + +

Syntax

Visual Basic 
Function GetControlID( _
+   ByRef poVariableNameOrID As System.Object _
+) As System.Integer
+
C# 
System.int GetControlID( 
+   ref System.object poVariableNameOrID
+)
+
C++/CLI 
System.int GetControlID( 
+&   System.Object^% poVariableNameOrID
+) 
+ +

Parameters

poVariableNameOrID
+
ID or name of the variable for which to get the control ID
+ +

Return Value

Control ID; 0 if the variable isn't used by any control in this card
+ + + + + +

Remarks

If more than one control is connected to the same variable, there is no way of knowing for which control this method returns an ID.

+

The returned ID can be passed to IEdmCard5::GetControl or IEdmVault5::GetObject in order to obtain IEdmCardControl5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetFirstControlPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetFirstControlPosition.html new file mode 100644 index 0000000..6f212bf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetFirstControlPosition.html @@ -0,0 +1,148 @@ + + + + + + GetFirstControlPosition Method (IEdmCard5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstControlPosition Method (IEdmCard5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard5 Interface + : GetFirstControlPosition Method (IEdmCard5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the controls in this data card. + + +

Syntax

Visual Basic 
Function GetFirstControlPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstControlPosition()
+
C++/CLI 
IEdmPos5^ GetFirstControlPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first control in the list
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first control to IEdmCard5::GetNextControl to get the first control in the list. Call IEdmCard5::GetNextControl repeatedly to get the rest of the controls in the list.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetNextControl.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetNextControl.html new file mode 100644 index 0000000..3afbed4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetNextControl.html @@ -0,0 +1,161 @@ + + + + + + GetNextControl Method (IEdmCard5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextControl Method (IEdmCard5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard5 Interface + : GetNextControl Method (IEdmCard5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next control in the list
+
+ +
+ +
+ + +
+
+ Gets the next control in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextControl( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmCardControl5
+
C# 
IEdmCardControl5 GetNextControl( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmCardControl5^ GetNextControl( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next control in the list
+ +

Return Value

IEdmCardControl5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first control, IEdmPos5. Call IEdmCard5::GetFirstControlPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the controls.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: There are no more controls to get; IEdmPos5::IsNull is true.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetSize.html new file mode 100644 index 0000000..31bdf08 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard5~GetSize.html @@ -0,0 +1,165 @@ + + + + + + GetSize Method (IEdmCard5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSize Method (IEdmCard5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard5 Interface + : GetSize Method (IEdmCard5)
+ +
+ + + +
+ +
+ + +
+
+
plWidth
+
Width in pixels of this data card
+
+
+
plHeight
+
Height in pixels of this data card
+
+ +
+ +
+ + +
+
+ Gets the size of this data card. + + +

Syntax

Visual Basic 
Sub GetSize( _
+   ByRef plWidth As System.Integer, _
+   ByRef plHeight As System.Integer _
+) 
+
C# 
void GetSize( 
+   out System.int plWidth,
+   out System.int plHeight
+)
+
C++/CLI 
void GetSize( 
+&   [Out] System.int plWidth,
+&   [Out] System.int plHeight
+) 
+ +

Parameters

plWidth
+
Width in pixels of this data card
plHeight
+
Height in pixels of this data card
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6.html new file mode 100644 index 0000000..a99f200 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6.html @@ -0,0 +1,139 @@ + + + + + + IEdmCard6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCard6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCard6 
+   Inherits IEdmCard5IEdmObject5 
+
C# 
public interface IEdmCard6 : IEdmCard5IEdmObject5  
+
C++/CLI 
public interface class IEdmCard6 : public IEdmCard5IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmCard5 by getting the card type.

+

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_Card.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_members.html new file mode 100644 index 0000000..58f33a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCard6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCard6.

+

Public Properties

+ +
 NameDescription
 PropertyCardTypeGets the type of this data card.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_properties.html new file mode 100644 index 0000000..2f713d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmCard6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCard6 members.

+

Public Properties

+ +
 NameDescription
 PropertyCardTypeGets the type of this data card.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6~CardType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6~CardType.html new file mode 100644 index 0000000..8d2f1d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard6~CardType.html @@ -0,0 +1,147 @@ + + + + + + CardType Property (IEdmCard6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CardType Property (IEdmCard6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard6 Interface + : CardType Property (IEdmCard6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of this data card. + + +

Syntax

Visual Basic 
ReadOnly Property CardType As EdmCardType
+
C# 
EdmCardType CardType {get;}
+
C++/CLI 
property EdmCardType CardType {
+   EdmCardType get();
+}
+ + + +

Property Value

Type of data card as defined in EdmCardType
+ + +

Example

See the IEdmCard6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7.html new file mode 100644 index 0000000..b2fe249 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7.html @@ -0,0 +1,149 @@ + + + + + + IEdmCard7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCard7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCard7 
+   Inherits IEdmCard5IEdmCard6IEdmObject5 
+
C# 
public interface IEdmCard7 : IEdmCard5IEdmCard6IEdmObject5  
+
C++/CLI 
public interface class IEdmCard7 : public IEdmCard5IEdmCard6IEdmObject5  
+
+ +

Example

// C# code snippet

+

// Taken from IEdmCard6 example and modified

+

        IEdmVault5 vault1 = null;
        
IEdmFile5 aFile;
        
IEdmFolder5 aFolder;
        
IEdmCard7 aCard;
        
IEdmCardControl7 aControl;
        
int plWidth;
        
int plHeight;
        
int plX;
        
int plY;
        
int plParentCtrlID;
        
int plPageNo;
        
object poMin = null;
        
object poMax = null;
        
int varType;
        
int contType;
        
string fileExt;
        
int cardID;
        
string str;
 
...

+

public void GetCardControls_Click(System.Object sender, System.EventArgs e)
        {
 
            
try
            {
                
IEdmVault7 vault2 = null;
                
if (vault1 == null)
                {
                    vault1 = 
new EdmVault5();
                }

                vault2 = (
IEdmVault9)vault1;
                
if (!vault1.IsLoggedIn)
                {
                    vault1.LoginAuto(VaultsComboBox.Text, 
this.Handle.ToInt32());
                }
 
 
                
if ((aFile != null))
                {
                    
// Get the selected file's data card
                    aCard = (
IEdmCard7)aFolder.GetCard(fileExt);
                    cardID = aFolder.GetCardID(fileExt);
 
                    aCard.GetSize(
out plWidth, out plHeight);
                    str = 
"File: " + aFile.Name + Constants.vbLf + "Card ID: " + cardID + ", EdmCardType: " + aCard.CardType + ", Width: " + plWidth + ", Height: " + plHeight;
                    
MessageBox.Show(str);

+

 

+

                    // Get all controls in the data card
 
                   object [] CardControlsArray =  null;
                    aCard.GetAllControls(out CardControlsArray);

+


                    for(int i=0; i < CardControlsArray.size(); i++)
                    {

+

                        object aTmpControl = CardControlsArray[i];

+

                        aControl  = (IEdmCardControl7) aTmpControl;

+

                        contType = (int)aControl.ControlType;

+

                        bool ret = false;
                        
string[] variableItemsList = null;
                        
if (((contType == 7) | (contType == 8) | (contType == 9) | (contType == 10)))
                        {
                            str = 
"List values associated with drop-down card control: " + aControl.VariableID.ToString();
                            ret = aControl.GetControlVariableList(aFile.ID
out variableItemsList);
 
                            
foreach (string listValue in variableItemsList)
                            {
                                str = str + 
Constants.vbLf + listValue;
                            }
                            
MessageBox.Show(str);
                        }

 
                        
// Get the edit box controls on the card
                        
if (contType == 4)
                        {
                            str = 
"";
                            aControl.GetParentInfo(
out plParentCtrlID, out plPageNo);
                            aControl.GetPosition(
out plX, out plY, out plWidth, out plHeight);
                            varType = (
int)aControl.GetValidation(out poMin, out poMax);
 
                            str = 
"Card control: " + aControl.Name;
                            str = str + 
Constants.vbLf + "Variable ID: " + aControl.VariableID + Constants.vbLf + "EdmCardControlType: " + contType + Constants.vbLf + "Is multi-line? " + aControl.IsMultiLine + Constants.vbLf + "Is read-only? " + aControl.IsReadOnly + Constants.vbLf + "Show in preview? " + aControl.ShowInPreview;
                            str = str + 
Constants.vbLf + "Location on card: [" + plX + ", " + plY + "], Width: " + plWidth + ", Height: " + plHeight;
                            str = str + 
Constants.vbLf + "Parent control ID (0, if none): " + plParentCtrlID;
                            str = str + 
Constants.vbLf + "Tab index: " + plPageNo;
                            str = str + 
Constants.vbLf + "EdmVariableType: " + varType;

+

                            str = str + Constants.vbLf + "Updates all configurations? " + aControl.UpdatesAllConfigurations.ToString();
 

+


                            
MessageBox.Show(str);
                        }
                    }
                }
            }
            
catch (System.Runtime.InteropServices.COMException ex)
            {
                
MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
            }
            
catch (Exception ex)
            {
                
MessageBox.Show(ex.Message);
            }
 
        }

+
+ +

Remarks

This interface extends IEdmCard6 by providing the ability to get all controls in the file or folder data card.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_members.html new file mode 100644 index 0000000..c6f517a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCard7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCard7.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetAllControlsGets all controls in this file or folder data card.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_methods.html new file mode 100644 index 0000000..f7b0de7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCard7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCard7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCard7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCard7 members.

+

Public Methods

+ +
 NameDescription
 MethodGetAllControlsGets all controls in this file or folder data card.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7~GetAllControls.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7~GetAllControls.html new file mode 100644 index 0000000..7b016aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCard7~GetAllControls.html @@ -0,0 +1,152 @@ + + + + + + GetAllControls Method (IEdmCard7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAllControls Method (IEdmCard7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCard7 Interface + : GetAllControls Method (IEdmCard7)
+ +
+ + + +
+ +
+ + +
+
+
ppControlsList
+
Array of IEdmCardControl5
+
+ +
+ +
+ + +
+
+ Gets all controls in this file or folder data card. + + +

Syntax

Visual Basic 
Sub GetAllControls( _
+   ByRef ppControlsList() As System.Object _
+) 
+
C# 
void GetAllControls( 
+   out System.object[] ppControlsList
+)
+
C++/CLI 
void GetAllControls( 
+&   [Out] System.array<Object^>^ ppControlsList
+) 
+ +

Parameters

ppControlsList
+
Array of IEdmCardControl5
+ +
+ + +

Example

See the IEdmCard7 example. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5.html new file mode 100644 index 0000000..639babd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5.html @@ -0,0 +1,142 @@ + + + + + + IEdmCardControl5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardControl5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a control in a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardControl5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmCardControl5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmCardControl5 : public IEdmObject5  
+
+ + + + +

Remarks

This interface:

+ +

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_CardControl.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_members.html new file mode 100644 index 0000000..3e35168 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_members.html @@ -0,0 +1,120 @@ + + + + + + IEdmCardControl5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardControl5.

+

Public Properties

+ + + + + +
 NameDescription
 PropertyControlTypeGets the type of this control.  
 PropertyIsMultiLineGets whether this edit box is handles multiple lines.  
 PropertyIsReadOnlyGets whether this control is read-only.  
 PropertyShowInPreviewGets whether the contents of this control display in the preview.  
 PropertyVariableIDGets the ID of the variable to which this control is connected.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodGetButtonCommandGets the command string that is executed when a button is clicked in the Card Editor.  
 MethodGetParentInfoGets the parent control of this control.  
 MethodGetPositionGets the dimensions and position of this control.  
 MethodGetValidationGets the input validation criteria for this control.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_methods.html new file mode 100644 index 0000000..d1190bd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmCardControl5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardControl5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetButtonCommandGets the command string that is executed when a button is clicked in the Card Editor.  
 MethodGetParentInfoGets the parent control of this control.  
 MethodGetPositionGets the dimensions and position of this control.  
 MethodGetValidationGets the input validation criteria for this control.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_properties.html new file mode 100644 index 0000000..df9fa2d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5_properties.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardControl5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardControl5 members.

+

Public Properties

+ + + + + +
 NameDescription
 PropertyControlTypeGets the type of this control.  
 PropertyIsMultiLineGets whether this edit box is handles multiple lines.  
 PropertyIsReadOnlyGets whether this control is read-only.  
 PropertyShowInPreviewGets whether the contents of this control display in the preview.  
 PropertyVariableIDGets the ID of the variable to which this control is connected.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ControlType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ControlType.html new file mode 100644 index 0000000..fa9bc10 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ControlType.html @@ -0,0 +1,147 @@ + + + + + + ControlType Property (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ControlType Property (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : ControlType Property (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of this control. + + +

Syntax

Visual Basic 
ReadOnly Property ControlType As EdmCardControlType
+
C# 
EdmCardControlType ControlType {get;}
+
C++/CLI 
property EdmCardControlType ControlType {
+   EdmCardControlType get();
+}
+ + + +

Property Value

Type of control as defined in EdmCardControlType
+ + +

Example

See the IEdmCardControl6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetButtonCommand.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetButtonCommand.html new file mode 100644 index 0000000..8375a11 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetButtonCommand.html @@ -0,0 +1,157 @@ + + + + + + GetButtonCommand Method (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetButtonCommand Method (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : GetButtonCommand Method (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Gets the command string that is executed when a button is clicked in the Card Editor. + + +

Syntax

Visual Basic 
Function GetButtonCommand( _
+   ByVal lParentWnd As System.Integer _
+) As System.String
+
C# 
System.string GetButtonCommand( 
+   System.int lParentWnd
+)
+
C++/CLI 
System.String^ GetButtonCommand( 
+&   System.int lParentWnd
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
+ +

Return Value

Command string
+ + + + + +

Remarks

If the button is linked to a program that is not found, this method launches a dialog box in which the user can browse to the missing EXE file. If the user clicks Cancel in the dialog box, HRESULT = E_EDM_CANCELLED_BY_USER is returned by this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: The supplied control is not a push-button. Call IEdmCardControl5::ControlType first to verify whether the control is a push-button. +
  • E_EDM_CANCELLED_BY_USER: The user clicked Cancel in the dialog box.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetParentInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetParentInfo.html new file mode 100644 index 0000000..1688455 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetParentInfo.html @@ -0,0 +1,163 @@ + + + + + + GetParentInfo Method (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetParentInfo Method (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : GetParentInfo Method (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+
plParentCtrlID
+
ID of the parent control; 0 if there is no parent control
+
+
+
plPageNo
+
0-based index of the tab control on which this control is located
+
+ +
+ +
+ + +
+
+ Gets the parent control of this control. + + +

Syntax

Visual Basic 
Sub GetParentInfo( _
+   ByRef plParentCtrlID As System.Integer, _
+   ByRef plPageNo As System.Integer _
+) 
+
C# 
void GetParentInfo( 
+   out System.int plParentCtrlID,
+   out System.int plPageNo
+)
+
C++/CLI 
void GetParentInfo( 
+&   [Out] System.int plParentCtrlID,
+&   [Out] System.int plPageNo
+) 
+ +

Parameters

plParentCtrlID
+
ID of the parent control; 0 if there is no parent control
plPageNo
+
0-based index of the tab control on which this control is located
+ +
+ + +

Example

See the IEdmCardControl6 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The control does not have a parent.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetPosition.html new file mode 100644 index 0000000..9102c01 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetPosition.html @@ -0,0 +1,179 @@ + + + + + + GetPosition Method (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetPosition Method (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : GetPosition Method (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+
plX
+
X-coordinate of the top-left corner of the control
+
+
+
plY
+
Y-coordinate of the top-left corner of the control
+
+
+
plWidth
+
Width of the control in pixels
+
+
+
plHeight
+
Height of the control in pixels
+
+ +
+ +
+ + +
+
+ Gets the dimensions and position of this control. + + +

Syntax

Visual Basic 
Sub GetPosition( _
+   ByRef plX As System.Integer, _
+   ByRef plY As System.Integer, _
+   ByRef plWidth As System.Integer, _
+   ByRef plHeight As System.Integer _
+) 
+
C# 
void GetPosition( 
+   out System.int plX,
+   out System.int plY,
+   out System.int plWidth,
+   out System.int plHeight
+)
+
C++/CLI 
void GetPosition( 
+&   [Out] System.int plX,
+&   [Out] System.int plY,
+&   [Out] System.int plWidth,
+&   [Out] System.int plHeight
+) 
+ +

Parameters

plX
+
X-coordinate of the top-left corner of the control
plY
+
Y-coordinate of the top-left corner of the control
plWidth
+
Width of the control in pixels
plHeight
+
Height of the control in pixels
+ +
+ + +

Example

See the IEdmCardControl6 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetValidation.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetValidation.html new file mode 100644 index 0000000..fa18cc5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~GetValidation.html @@ -0,0 +1,164 @@ + + + + + + GetValidation Method (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetValidation Method (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : GetValidation Method (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+
poMin
+
Minimum limit; minimum number of characters in a control of type, EdmVariableType.EdmVarType_Text
+
+
+
poMax
+
Maximum limit for this control's value; maximum number of characters in a control of type, EdmVariableType.EdmVarType_Text
+
+ +
+ +
+ + +
+
+ Gets the input validation criteria for this control. + + +

Syntax

Visual Basic 
Function GetValidation( _
+   ByRef poMin As System.Object, _
+   ByRef poMax As System.Object _
+) As EdmVariableType
+
C# 
EdmVariableType GetValidation( 
+   out System.object poMin,
+   out System.object poMax
+)
+
C++/CLI 
EdmVariableType GetValidation( 
+&   [Out] System.Object^ poMin,
+&   [Out] System.Object^ poMax
+) 
+ +

Parameters

poMin
+
Minimum limit; minimum number of characters in a control of type, EdmVariableType.EdmVarType_Text
poMax
+
Maximum limit for this control's value; maximum number of characters in a control of type, EdmVariableType.EdmVarType_Text
+ +

Return Value

Data type to validate as defined in EdmVariableType
+ + +

Example

See the IEdmCardControl6 examples. +
+ +

Remarks

If a card control has input validation, the user is unable to click OK or Apply until all validation conditions are met.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsMultiLine.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsMultiLine.html new file mode 100644 index 0000000..b47d3b3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsMultiLine.html @@ -0,0 +1,147 @@ + + + + + + IsMultiLine Property (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsMultiLine Property (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : IsMultiLine Property (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this edit box is handles multiple lines. + + +

Syntax

Visual Basic 
ReadOnly Property IsMultiLine As System.Boolean
+
C# 
System.bool IsMultiLine {get;}
+
C++/CLI 
property System.bool IsMultiLine {
+   System.bool get();
+}
+ + + +

Property Value

True if this edit box handles multiple lines, false if not
+ + +

Example

See the IEdmCardControl6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsReadOnly.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsReadOnly.html new file mode 100644 index 0000000..d28849b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~IsReadOnly.html @@ -0,0 +1,147 @@ + + + + + + IsReadOnly Property (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsReadOnly Property (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : IsReadOnly Property (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this control is read-only. + + +

Syntax

Visual Basic 
ReadOnly Property IsReadOnly As System.Boolean
+
C# 
System.bool IsReadOnly {get;}
+
C++/CLI 
property System.bool IsReadOnly {
+   System.bool get();
+}
+ + + +

Property Value

True if this control is read-only, false if not
+ + +

Example

See the IEdmCardControl6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ShowInPreview.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ShowInPreview.html new file mode 100644 index 0000000..3e53c09 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~ShowInPreview.html @@ -0,0 +1,147 @@ + + + + + + ShowInPreview Property (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowInPreview Property (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : ShowInPreview Property (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the contents of this control display in the preview. + + +

Syntax

Visual Basic 
ReadOnly Property ShowInPreview As System.Boolean
+
C# 
System.bool ShowInPreview {get;}
+
C++/CLI 
property System.bool ShowInPreview {
+   System.bool get();
+}
+ + + +

Property Value

True to display the contents of this control in the preview
+ + +

Example

See the IEdmCardControl6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~VariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~VariableID.html new file mode 100644 index 0000000..1410f04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl5~VariableID.html @@ -0,0 +1,147 @@ + + + + + + VariableID Property (IEdmCardControl5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableID Property (IEdmCardControl5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl5 Interface + : VariableID Property (IEdmCardControl5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the variable to which this control is connected. + + +

Syntax

Visual Basic 
ReadOnly Property VariableID As System.Integer
+
C# 
System.int VariableID {get;}
+
C++/CLI 
property System.int VariableID {
+   System.int get();
+}
+ + + +

Property Value

ID of the variable to which this control is connected; 0, if the control is not connected to a variable
+ + +

Example

See the IEdmCardControl6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6.html new file mode 100644 index 0000000..132d769 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6.html @@ -0,0 +1,142 @@ + + + + + + IEdmCardControl6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardControl6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a control in a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardControl6 
+   Inherits IEdmCardControl5IEdmObject5 
+
C# 
public interface IEdmCardControl6 : IEdmCardControl5IEdmObject5  
+
C++/CLI 
public interface class IEdmCardControl6 : public IEdmCardControl5IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+ +

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_CardControl.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_members.html new file mode 100644 index 0000000..1b0c031 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardControl6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardControl6.

+

Public Properties

+ +
 NameDescription
 PropertyUpdatesAllConfigurationsGets whether this edit box control updates all configuration tabs of the file data card.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_properties.html new file mode 100644 index 0000000..9a1811a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmCardControl6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardControl6 members.

+

Public Properties

+ +
 NameDescription
 PropertyUpdatesAllConfigurationsGets whether this edit box control updates all configuration tabs of the file data card.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6~UpdatesAllConfigurations.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6~UpdatesAllConfigurations.html new file mode 100644 index 0000000..fa3a6a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl6~UpdatesAllConfigurations.html @@ -0,0 +1,150 @@ + + + + + + UpdatesAllConfigurations Property (IEdmCardControl6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdatesAllConfigurations Property (IEdmCardControl6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl6 Interface + : UpdatesAllConfigurations Property (IEdmCardControl6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this edit box control updates all configuration tabs of the file data card. + + +

Syntax

Visual Basic 
ReadOnly Property UpdatesAllConfigurations As System.Boolean
+
C# 
System.bool UpdatesAllConfigurations {get;}
+
C++/CLI 
property System.bool UpdatesAllConfigurations {
+   System.bool get();
+}
+ + + +

Property Value

True to update all configuration tabs, false to not
+ + +

Example

See the IEdmCardControl6 examples. +
+ +

Remarks

This property:

+
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP02
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7.html new file mode 100644 index 0000000..487c2b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7.html @@ -0,0 +1,139 @@ + + + + + + IEdmCardControl7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardControl7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a control in a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardControl7 
+   Inherits IEdmCardControl5IEdmCardControl6IEdmObject5 
+
C# 
public interface IEdmCardControl7 : IEdmCardControl5IEdmCardControl6IEdmObject5  
+
C++/CLI 
public interface class IEdmCardControl7 : public IEdmCardControl5IEdmCardControl6IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmCardControl6 by providing the ability to get the list of items in a list control on the data card.

+

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_CardControl. 

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_members.html new file mode 100644 index 0000000..c20be71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardControl7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardControl7.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetControlVariableListGets the list values associated with this drop-down list card control.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_methods.html new file mode 100644 index 0000000..93dd994 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCardControl7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardControl7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardControl7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardControl7 members.

+

Public Methods

+ +
 NameDescription
 MethodGetControlVariableListGets the list values associated with this drop-down list card control.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7~GetControlVariableList.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7~GetControlVariableList.html new file mode 100644 index 0000000..b4e586b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardControl7~GetControlVariableList.html @@ -0,0 +1,171 @@ + + + + + + GetControlVariableList Method (IEdmCardControl7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetControlVariableList Method (IEdmCardControl7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardControl7 Interface + : GetControlVariableList Method (IEdmCardControl7)
+ +
+ + + +
+ +
+ + +
+
+
lDocumentID
+
ID of the file
+
+
+
ppVariableItemsList
+
Array of list values; empty if the card control is not associated with a list (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the list values associated with this drop-down list card control. + + +

Syntax

Visual Basic 
Function GetControlVariableList( _
+   ByVal lDocumentID As System.Integer, _
+   ByRef ppVariableItemsList() As System.String _
+) As System.Boolean
+
C# 
System.bool GetControlVariableList( 
+   System.int lDocumentID,
+   out System.string[] ppVariableItemsList
+)
+
C++/CLI 
System.bool GetControlVariableList( 
+&   System.int lDocumentID,
+&   [Out] System.array<String^>^ ppVariableItemsList
+) 
+ +

Parameters

lDocumentID
+
ID of the file
ppVariableItemsList
+
Array of list values; empty if the card control is not associated with a list (see Remarks)
+ +

Return Value

True if retrieving the list is successful, false if not
+ + +

Example

See the IEdmCardControl7 examples. +
+ +

Remarks

This method is valid only if IEdmCardControl5::ControlType is set to EdmCardControlType:

+
    +
  • EdmCtrl_ComboboxDropdown +
  • EdmCtrl_ComboboxDroplist +
  • EdmCtrl_ComboboxSimple +
  • EdmCtrl_Listbox
+

This method supports the following items that appear in the Admin tool > Card Editor when you double-click on a droplist, dropdown, or listbox card control:

+
    +
  • Free text +
  • Controlled by variable +
  • Special value > User list or Group list
+

This method does not support add-in lists.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5.html new file mode 100644 index 0000000..095bae4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5.html @@ -0,0 +1,140 @@ + + + + + + IEdmCardView5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardView5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a window containing a file or folder data card that you can edit.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardView5 
+
C# 
public interface IEdmCardView5 
+
C++/CLI 
public interface class IEdmCardView5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_members.html new file mode 100644 index 0000000..d05c4ce --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmCardView5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardView5.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodGetCardSizeGets the size of the file or folder data card.  
 MethodGetCardWindowGets the handle of the window that contains the file or folder data card.  
 MethodSaveDataSaves the data entered by the user in this card view to the file and database.  
 MethodShowWindowSets whether to show or hide the card view window.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_methods.html new file mode 100644 index 0000000..095240f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmCardView5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardView5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetCardSizeGets the size of the file or folder data card.  
 MethodGetCardWindowGets the handle of the window that contains the file or folder data card.  
 MethodSaveDataSaves the data entered by the user in this card view to the file and database.  
 MethodShowWindowSets whether to show or hide the card view window.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardSize.html new file mode 100644 index 0000000..ca4bed0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardSize.html @@ -0,0 +1,163 @@ + + + + + + GetCardSize Method (IEdmCardView5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCardSize Method (IEdmCardView5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView5 Interface + : GetCardSize Method (IEdmCardView5)
+ +
+ + + +
+ +
+ + +
+
+
plWidth
+
Width of the card in pixels
+
+
+
plHeight
+
Height of the card in pixels
+
+ +
+ +
+ + +
+
+ Gets the size of the file or folder data card. + + +

Syntax

Visual Basic 
Sub GetCardSize( _
+   ByRef plWidth As System.Integer, _
+   ByRef plHeight As System.Integer _
+) 
+
C# 
void GetCardSize( 
+   out System.int plWidth,
+   out System.int plHeight
+)
+
C++/CLI 
void GetCardSize( 
+&   [Out] System.int plWidth,
+&   [Out] System.int plHeight
+) 
+ +

Parameters

plWidth
+
Width of the card in pixels
plHeight
+
Height of the card in pixels
+ +
+ + +

Example

See the IEdmCardView5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardWindow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardWindow.html new file mode 100644 index 0000000..f6299cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~GetCardWindow.html @@ -0,0 +1,143 @@ + + + + + + GetCardWindow Method (IEdmCardView5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCardWindow Method (IEdmCardView5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView5 Interface + : GetCardWindow Method (IEdmCardView5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the handle of the window that contains the file or folder data card. + + +

Syntax

Visual Basic 
Function GetCardWindow() As System.Integer
+
C# 
System.int GetCardWindow()
+
C++/CLI 
System.int GetCardWindow(); 
+ + + +

Return Value

Window handle
+ + +

Example

See the IEdmCardView5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~SaveData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~SaveData.html new file mode 100644 index 0000000..fd563b6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~SaveData.html @@ -0,0 +1,143 @@ + + + + + + SaveData Method (IEdmCardView5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SaveData Method (IEdmCardView5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView5 Interface + : SaveData Method (IEdmCardView5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Saves the data entered by the user in this card view to the file and database. + + +

Syntax

Visual Basic 
Sub SaveData() 
+
C# 
void SaveData()
+
C++/CLI 
void SaveData(); 
+ + + +
+ + +

Example

See the IEdmCardView5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_SHARE_ERROR: The file is already opened in another application.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~ShowWindow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~ShowWindow.html new file mode 100644 index 0000000..bf710e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView5~ShowWindow.html @@ -0,0 +1,155 @@ + + + + + + ShowWindow Method (IEdmCardView5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowWindow Method (IEdmCardView5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView5 Interface + : ShowWindow Method (IEdmCardView5)
+ +
+ + + +
+ +
+ + +
+
+
bShow
+
True to show the card view window, false to not
+
+ +
+ +
+ + +
+
+ Sets whether to show or hide the card view window. + + +

Syntax

Visual Basic 
Sub ShowWindow( _
+   Optional ByVal bShow As System.Boolean _
+) 
+
C# 
void ShowWindow( 
+   System.bool bShow
+)
+
C++/CLI 
void ShowWindow( 
+&   System.bool bShow
+) 
+ +

Parameters

bShow
+
True to show the card view window, false to not
+ +
+ + +

Example

See the IEdmCardView5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6.html new file mode 100644 index 0000000..2443a8f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6.html @@ -0,0 +1,141 @@ + + + + + + IEdmCardView6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardView6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a window containing a file or folder data card that you can edit.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardView6 
+   Inherits IEdmCardView5 
+
C# 
public interface IEdmCardView6 : IEdmCardView5  
+
C++/CLI 
public interface class IEdmCardView6 : public IEdmCardView5  
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61.html new file mode 100644 index 0000000..a77620a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61.html @@ -0,0 +1,141 @@ + + + + + + IEdmCardView61 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView61 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardView61 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a window containing a file or folder data card that you can edit.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardView61 
+   Inherits IEdmCardView5IEdmCardView6 
+
C# 
public interface IEdmCardView61 : IEdmCardView5IEdmCardView6  
+
C++/CLI 
public interface class IEdmCardView61 : public IEdmCardView5IEdmCardView6  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmCardView6 by adding the ability to set input focus to a certain control in the card view. +
  • is extended by IEdmCardView63.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_members.html new file mode 100644 index 0000000..d9d77a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardView61 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView61 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView61 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardView61.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetFocusSets input focus to a certain control in this card view.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_methods.html new file mode 100644 index 0000000..63f0081 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCardView61 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView61 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView61 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardView61 members.

+

Public Methods

+ +
 NameDescription
 MethodSetFocusSets input focus to a certain control in this card view.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61~SetFocus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61~SetFocus.html new file mode 100644 index 0000000..9f4a1c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView61~SetFocus.html @@ -0,0 +1,155 @@ + + + + + + SetFocus Method (IEdmCardView61) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFocus Method (IEdmCardView61)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView61 Interface + : SetFocus Method (IEdmCardView61)
+ +
+ + + +
+ +
+ + +
+
+
poVariableNameOrID
+
Name or ID of the variable to which to set focus; 0 to set focus to the first control in the card
+
+ +
+ +
+ + +
+
+ Sets input focus to a certain control in this card view. + + +

Syntax

Visual Basic 
Sub SetFocus( _
+   Optional ByRef poVariableNameOrID As System.Object _
+) 
+
C# 
void SetFocus( 
+   ref System.object poVariableNameOrID
+)
+
C++/CLI 
void SetFocus( 
+&   System.Object^% poVariableNameOrID
+) 
+ +

Parameters

poVariableNameOrID
+
Name or ID of the variable to which to set focus; 0 to set focus to the first control in the card
+ +
+ + +

Example

See the IEdmCardView61 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63.html new file mode 100644 index 0000000..949bf82 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63.html @@ -0,0 +1,141 @@ + + + + + + IEdmCardView63 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView63 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardView63 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a window containing a file or folder data card that you can edit.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardView63 
+   Inherits IEdmCardView5IEdmCardView6IEdmCardView61 
+
C# 
public interface IEdmCardView63 : IEdmCardView5IEdmCardView6IEdmCardView61  
+
C++/CLI 
public interface class IEdmCardView63 : public IEdmCardView5IEdmCardView6IEdmCardView61  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_members.html new file mode 100644 index 0000000..fd0ac98 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardView63 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView63 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView63 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardView63.

+ + +

Public Methods

+ +
 NameDescription
 MethodUpdateUpdates controls in this card view.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_methods.html new file mode 100644 index 0000000..6bb050e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCardView63 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView63 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView63 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardView63 members.

+

Public Methods

+ +
 NameDescription
 MethodUpdateUpdates controls in this card view.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63~Update.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63~Update.html new file mode 100644 index 0000000..9b8d7dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView63~Update.html @@ -0,0 +1,163 @@ + + + + + + Update Method (IEdmCardView63) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Update Method (IEdmCardView63)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView63 Interface + : Update Method (IEdmCardView63)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of update to perform as defined in EdmCardViewUpdateType
+
+
+
poArg
+
Reserved for future use
+
+ +
+ +
+ + +
+
+ Updates controls in this card view. + + +

Syntax

Visual Basic 
Sub Update( _
+   ByVal eType As EdmCardViewUpdateType, _
+   Optional ByRef poArg As System.Object _
+) 
+
C# 
void Update( 
+   EdmCardViewUpdateType eType,
+   ref System.object poArg
+)
+
C++/CLI 
void Update( 
+&   EdmCardViewUpdateType eType,
+&   System.Object^% poArg
+) 
+ +

Parameters

eType
+
Type of update to perform as defined in EdmCardViewUpdateType
poArg
+
Reserved for future use
+ +
+ + +

Example

See the IEdmCardView63 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64.html new file mode 100644 index 0000000..b069626 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64.html @@ -0,0 +1,138 @@ + + + + + + IEdmCardView64 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView64 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardView64 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to create a window containing a file or folder data card that you can edit.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardView64 
+   Inherits IEdmCardView5IEdmCardView6IEdmCardView61IEdmCardView63 
+
C# 
public interface IEdmCardView64 : IEdmCardView5IEdmCardView6IEdmCardView61IEdmCardView63  
+
C++/CLI 
public interface class IEdmCardView64 : public IEdmCardView5IEdmCardView6IEdmCardView61IEdmCardView63  
+
+ + + +

Example

+

Remarks

This interface extends IEdmCardView63 by providing methods to control the focus on this data card view.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_members.html new file mode 100644 index 0000000..0eb95f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmCardView64 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView64 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView64 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardView64.

+ + +

Public Methods

+ + +
 NameDescription
 MethodIsFocusOnDataCardGets whether focus is on this data card view.  
 MethodSetFlagIsFocusOnDataCardSets whether focus is on this data card view.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_methods.html new file mode 100644 index 0000000..3cc1e24 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmCardView64 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView64 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView64 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardView64 members.

+

Public Methods

+ + +
 NameDescription
 MethodIsFocusOnDataCardGets whether focus is on this data card view.  
 MethodSetFlagIsFocusOnDataCardSets whether focus is on this data card view.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~IsFocusOnDataCard.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~IsFocusOnDataCard.html new file mode 100644 index 0000000..12d853a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~IsFocusOnDataCard.html @@ -0,0 +1,153 @@ + + + + + + IsFocusOnDataCard Method (IEdmCardView64) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsFocusOnDataCard Method (IEdmCardView64)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView64 Interface + : IsFocusOnDataCard Method (IEdmCardView64)
+ +
+ + + +
+ +
+ + +
+
+
isFocCtrl
+
True to focus on this data card view, false to not
+
+ +
+ +
+ + +
+
+ Gets whether focus is on this data card view. + + +

Syntax

Visual Basic 
Sub IsFocusOnDataCard( _
+   ByRef isFocCtrl As System.Boolean _
+) 
+
C# 
void IsFocusOnDataCard( 
+   out System.bool isFocCtrl
+)
+
C++/CLI 
void IsFocusOnDataCard( 
+&   [Out] System.bool isFocCtrl
+) 
+ +

Parameters

isFocCtrl
+
True to focus on this data card view, false to not
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~SetFlagIsFocusOnDataCard.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~SetFlagIsFocusOnDataCard.html new file mode 100644 index 0000000..d70f591 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView64~SetFlagIsFocusOnDataCard.html @@ -0,0 +1,153 @@ + + + + + + SetFlagIsFocusOnDataCard Method (IEdmCardView64) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFlagIsFocusOnDataCard Method (IEdmCardView64)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView64 Interface + : SetFlagIsFocusOnDataCard Method (IEdmCardView64)
+ +
+ + + +
+ +
+ + +
+
+
flg
+
True to focus on this data card view, false to not
+
+ +
+ +
+ + +
+
+ Sets whether focus is on this data card view. + + +

Syntax

Visual Basic 
Sub SetFlagIsFocusOnDataCard( _
+   ByVal flg As System.Boolean _
+) 
+
C# 
void SetFlagIsFocusOnDataCard( 
+   System.bool flg
+)
+
C++/CLI 
void SetFlagIsFocusOnDataCard( 
+&   System.bool flg
+) 
+ +

Parameters

flg
+
True to focus on this data card view, false to not
+ +
+ + +

Example

See the IEdmCardView64 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_members.html new file mode 100644 index 0000000..cef9ce8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCardView6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardView6.

+ + +

Public Methods

+ +
 NameDescription
 MethodOnCancelRolls back all changes made in the card view after it is cancelled.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_methods.html new file mode 100644 index 0000000..a06ba3f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCardView6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardView6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardView6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardView6 members.

+

Public Methods

+ +
 NameDescription
 MethodOnCancelRolls back all changes made in the card view after it is cancelled.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6~OnCancel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6~OnCancel.html new file mode 100644 index 0000000..9ba30fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardView6~OnCancel.html @@ -0,0 +1,144 @@ + + + + + + OnCancel Method (IEdmCardView6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnCancel Method (IEdmCardView6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardView6 Interface + : OnCancel Method (IEdmCardView6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Rolls back all changes made in the card view after it is cancelled. + + +

Syntax

Visual Basic 
Sub OnCancel() 
+
C# 
void OnCancel()
+
C++/CLI 
void OnCancel(); 
+ + + +
+ + +

Example

See the IEdmCardView6 examples. +
+ +

Remarks

Call this method when the card view is cancelled. This method ensures that all serial numbers generated in the card (by right-clicking in edit boxes linked to serial numbers) are pushed back to the database so they can be reused. If you do not call this method, serial numbers are not restored to the database, and gaps in the serial number series occur.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6.html new file mode 100644 index 0000000..cdbaea8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6.html @@ -0,0 +1,142 @@ + + + + + + IEdmCardViewCallback6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardViewCallback6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCardViewCallback6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Handles customized loading and saving of data in a card view.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCardViewCallback6 
+
C# 
public interface IEdmCardViewCallback6 
+
C++/CLI 
public interface class IEdmCardViewCallback6 
+
+ + + +

Example

+

Remarks

This interface inherits from IUnknown. See Using and Implementing IUnknown (COM).

+

This callback interface allows you to customize how data is loaded and saved in a simple card view that is created using IEdmVault10::CreateCardViewEx2. To use this callback interface:

+
    +
  1. Create a new class. +
  2. Implement all of the methods of IEdmCardViewCallback6 in the new class. +
  3. Call IEdmVault10::CreateCardViewEx2, setting poCallback to a pointer to the new class.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_members.html new file mode 100644 index 0000000..e646191 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmCardViewCallback6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardViewCallback6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardViewCallback6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCardViewCallback6.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodGetCtrlDataGets the data to insert into a control when a card is opened.  
 MethodGetDefaultValueComponentCalled by the serial number generator to get the default value for the specified serial number component.  
 MethodOnAddInInputHandles input from an add-in when an add-in button is clicked in the card view.  
 MethodSetCtrlDataStores the control's variable data when a card is saved.  
 MethodSetModifiedFlagCalled when a card variable changes.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_methods.html new file mode 100644 index 0000000..e719998 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmCardViewCallback6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCardViewCallback6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCardViewCallback6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCardViewCallback6 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodGetCtrlDataGets the data to insert into a control when a card is opened.  
 MethodGetDefaultValueComponentCalled by the serial number generator to get the default value for the specified serial number component.  
 MethodOnAddInInputHandles input from an add-in when an add-in button is clicked in the card view.  
 MethodSetCtrlDataStores the control's variable data when a card is saved.  
 MethodSetModifiedFlagCalled when a card variable changes.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetCtrlData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetCtrlData.html new file mode 100644 index 0000000..f5dd660 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetCtrlData.html @@ -0,0 +1,217 @@ + + + + + + GetCtrlData Method (IEdmCardViewCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCtrlData Method (IEdmCardViewCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardViewCallback6 Interface + : GetCtrlData Method (IEdmCardViewCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lCardWnd
+
Window handle of the card
+
+
+
lCardID
+
ID of the card (see Remarks)
+
+
+
lControlID
+
ID of the control for which to get the value (see Remarks)
+
+
+
lVariableID
+
ID of the variable used by this control (see Remarks)
+
+
+
bsVariableName
+
Name of the variable used by this control
+
+
+
poView
+
IEdmCardView5
+
+ +
+ +
+ + +
+
+ Gets the data to insert into a control when a card is opened. + + +

Syntax

Visual Basic 
Function GetCtrlData( _
+   ByVal lCardWnd As System.Integer, _
+   ByVal lCardID As System.Integer, _
+   ByVal lControlID As System.Integer, _
+   ByVal lVariableID As System.Integer, _
+   ByVal bsVariableName As System.String, _
+   ByVal poView As IEdmCardView5 _
+) As System.Object
+
C# 
System.object GetCtrlData( 
+   System.int lCardWnd,
+   System.int lCardID,
+   System.int lControlID,
+   System.int lVariableID,
+   System.string bsVariableName,
+   IEdmCardView5 poView
+)
+
C++/CLI 
System.Object^ GetCtrlData( 
+&   System.int lCardWnd,
+&   System.int lCardID,
+&   System.int lControlID,
+&   System.int lVariableID,
+&   System.String^ bsVariableName,
+&   IEdmCardView5^ poView
+) 
+ +

Parameters

lCardWnd
+
Window handle of the card
lCardID
+
ID of the card (see Remarks)
lControlID
+
ID of the control for which to get the value (see Remarks)
lVariableID
+
ID of the variable used by this control (see Remarks)
bsVariableName
+
Name of the variable used by this control
poView
+
IEdmCardView5
+ +

Return Value

Data for the specified control
+ + +

Example

See the IEdmCardViewCallback6 examples. +
+ +

Remarks

The framework calls this method once per control when a card created with IEdmVault10::CreateCardViewEx2 is opened.

+

+ + + + + + + + + + + + + + + + + + +
Use...In a call to IEdmVault5::GetObject with eType = ...To obtain...
ICardID EdmObjectType.EdmObject_CardIEdmCard5
IControlID EdmObjectType.EdmObject_CardControlIEdmCardControl5
IVariableID EdmObjectType.EdmObject_VariableIEdmVariable5
+

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetDefaultValueComponent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetDefaultValueComponent.html new file mode 100644 index 0000000..e2c930a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~GetDefaultValueComponent.html @@ -0,0 +1,156 @@ + + + + + + GetDefaultValueComponent Method (IEdmCardViewCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDefaultValueComponent Method (IEdmCardViewCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardViewCallback6 Interface + : GetDefaultValueComponent Method (IEdmCardViewCallback6)
+ +
+ + + +
+ +
+ + +
+
+
eValue
+
Type of component for which to get a value as defined in EdmDefValComp
+
+ +
+ +
+ + +
+
+ Called by the serial number generator to get the default value for the specified serial number component. + + +

Syntax

Visual Basic 
Function GetDefaultValueComponent( _
+   ByVal eValue As EdmDefValComp _
+) As System.Object
+
C# 
System.object GetDefaultValueComponent( 
+   EdmDefValComp eValue
+)
+
C++/CLI 
System.Object^ GetDefaultValueComponent( 
+&   EdmDefValComp eValue
+) 
+ +

Parameters

eValue
+
Type of component for which to get a value as defined in EdmDefValComp
+ +

Return Value

Default value
+ + +

Example

See the IEdmCardViewCallback6 examples. +
+ +

Remarks

The user can generate a new serial number value in a card by right-clicking in the edit box linked to the serial number and selecting New Serial Number from the context menu. The serial number generator calls this method if it needs additional information in order to create the serial number. Implement this method to override the default behavior.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~OnAddInInput.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~OnAddInInput.html new file mode 100644 index 0000000..e081d61 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~OnAddInInput.html @@ -0,0 +1,157 @@ + + + + + + OnAddInInput Method (IEdmCardViewCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnAddInInput Method (IEdmCardViewCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardViewCallback6 Interface + : OnAddInInput Method (IEdmCardViewCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lFlags
+
Combination of EdmCardFlag bits from a button's add-in (see Remarks)
+
+ +
+ +
+ + +
+
+ Handles input from an add-in when an add-in button is clicked in the card view. + + +

Syntax

Visual Basic 
Sub OnAddInInput( _
+   ByVal lFlags As System.Integer _
+) 
+
C# 
void OnAddInInput( 
+   System.int lFlags
+)
+
C++/CLI 
void OnAddInInput( 
+&   System.int lFlags
+) 
+ +

Parameters

lFlags
+
Combination of EdmCardFlag bits from a button's add-in (see Remarks)
+ +
+ + +

Example

See the IEdmCardViewCallback6 examples. +
+ +

Remarks

When an add-in's button is clicked in a card view, IEdmAddIn5::OnCmd is called. lFlags contains the same data that is returned in ppoData (EdmCmdData::mlLongData1) of IEdmAddIn5::OnCmd.

+

This method allows you to act on the information provided by the button's add-in.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetCtrlData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetCtrlData.html new file mode 100644 index 0000000..9b74d5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetCtrlData.html @@ -0,0 +1,225 @@ + + + + + + SetCtrlData Method (IEdmCardViewCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetCtrlData Method (IEdmCardViewCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardViewCallback6 Interface + : SetCtrlData Method (IEdmCardViewCallback6)
+ +
+ + + +
+ +
+ + +
+
+
lCardWnd
+
Window handle of the card
+
+
+
lCardID
+
ID of the card (see Remarks)
+
+
+
lControlID
+
ID of the control for which to get the value (see Remarks)
+
+
+
lVariableID
+
ID of the variable used by this control (see Remarks)
+
+
+
bsVariableName
+
Name of the variable used by this control
+
+
+
poView
+
IEdmCardView5
+
+
+
poValue
+
Control variable data to save
+
+ +
+ +
+ + +
+
+ Stores the control's variable data when a card is saved. + + +

Syntax

Visual Basic 
Sub SetCtrlData( _
+   ByVal lCardWnd As System.Integer, _
+   ByVal lCardID As System.Integer, _
+   ByVal lControlID As System.Integer, _
+   ByVal lVariableID As System.Integer, _
+   ByVal bsVariableName As System.String, _
+   ByVal poView As IEdmCardView5, _
+   ByRef poValue As System.Object _
+) 
+
C# 
void SetCtrlData( 
+   System.int lCardWnd,
+   System.int lCardID,
+   System.int lControlID,
+   System.int lVariableID,
+   System.string bsVariableName,
+   IEdmCardView5 poView,
+   ref System.object poValue
+)
+
C++/CLI 
void SetCtrlData( 
+&   System.int lCardWnd,
+&   System.int lCardID,
+&   System.int lControlID,
+&   System.int lVariableID,
+&   System.String^ bsVariableName,
+&   IEdmCardView5^ poView,
+&   System.Object^% poValue
+) 
+ +

Parameters

lCardWnd
+
Window handle of the card
lCardID
+
ID of the card (see Remarks)
lControlID
+
ID of the control for which to get the value (see Remarks)
lVariableID
+
ID of the variable used by this control (see Remarks)
bsVariableName
+
Name of the variable used by this control
poView
+
IEdmCardView5
poValue
+
Control variable data to save
+ +
+ + +

Example

See the IEdmCardViewCallback6 examples. +
+ +

Remarks

The framework calls this method once per control when a card created with IEdmVault10::CreateCardViewEx2 is saved.

+

+ + + + + + + + + + + + + + + + + + +
Use...In a call to IEdmVault5::GetObject with eType = ...To obtain...
ICardID EdmObjectType.EdmObject_CardIEdmCard5
IControlID EdmObjectType.EdmObject_CardControlIEdmCardControl5
IVariableID EdmObjectType.EdmObject_VariableIEdmVariable5
+

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetModifiedFlag.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetModifiedFlag.html new file mode 100644 index 0000000..c53169a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCardViewCallback6~SetModifiedFlag.html @@ -0,0 +1,144 @@ + + + + + + SetModifiedFlag Method (IEdmCardViewCallback6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetModifiedFlag Method (IEdmCardViewCallback6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCardViewCallback6 Interface + : SetModifiedFlag Method (IEdmCardViewCallback6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Called when a card variable changes. + + +

Syntax

Visual Basic 
Sub SetModifiedFlag() 
+
C# 
void SetModifiedFlag()
+
C++/CLI 
void SetModifiedFlag(); 
+ + + +
+ + +

Example

See the IEdmCardViewCallback6 examples. +
+ +

Remarks

You can implement this method, for instance, to enable Save when the card changes.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6.html new file mode 100644 index 0000000..8c673a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6.html @@ -0,0 +1,141 @@ + + + + + + IEdmCategory6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategory6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCategory6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a category.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCategory6 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmCategory6 : IEdmObject5  
+
C++/CLI 
public interface class IEdmCategory6 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5.

+

To access this interface, call IEdmVault5::GetObject with eType = EdmObjectType.EdmObject_Category.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_members.html new file mode 100644 index 0000000..ef186f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCategory6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategory6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCategory6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCategory6.

+

Public Properties

+ +
 NameDescription
 PropertyDescriptionGets the description of the category.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_properties.html new file mode 100644 index 0000000..ad7e956 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmCategory6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategory6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCategory6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCategory6 members.

+

Public Properties

+ +
 NameDescription
 PropertyDescriptionGets the description of the category.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6~Description.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6~Description.html new file mode 100644 index 0000000..36a6c68 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategory6~Description.html @@ -0,0 +1,147 @@ + + + + + + Description Property (IEdmCategory6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Description Property (IEdmCategory6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCategory6 Interface + : Description Property (IEdmCategory6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the description of the category. + + +

Syntax

Visual Basic 
ReadOnly Property Description As System.String
+
C# 
System.string Description {get;}
+
C++/CLI 
property System.String^ Description {
+   System.String^ get();
+}
+ + + +

Property Value

Description of the category
+ + +

Example

See the IEdmCategory6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6.html new file mode 100644 index 0000000..db2ccf0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6.html @@ -0,0 +1,140 @@ + + + + + + IEdmCategoryMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategoryMgr6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCategoryMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access all of the categories that have been set up in a vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCategoryMgr6 
+
C# 
public interface IEdmCategoryMgr6 
+
C++/CLI 
public interface class IEdmCategoryMgr6 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To access this interface, call IEdmVault7::CreateUtility with eType = EdmUtility.EdmUtil_CategoryMgr.

+

Files in SOLIDWORKS PDM Professional can be categorized according to certain criteria such as card properties, file extensions, etc. The categories are set up using SOLIDWORKS PDM Professional’s administration tool.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_members.html new file mode 100644 index 0000000..cba1d18 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmCategoryMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategoryMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCategoryMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCategoryMgr6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetFirstCategoryPositionStarts an enumeration of the categories in the vault.  
 MethodGetNextCategoryGets the next category in the enumeration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_methods.html new file mode 100644 index 0000000..3c0e7b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmCategoryMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCategoryMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCategoryMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCategoryMgr6 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFirstCategoryPositionStarts an enumeration of the categories in the vault.  
 MethodGetNextCategoryGets the next category in the enumeration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetFirstCategoryPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetFirstCategoryPosition.html new file mode 100644 index 0000000..f0a9c11 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetFirstCategoryPosition.html @@ -0,0 +1,144 @@ + + + + + + GetFirstCategoryPosition Method (IEdmCategoryMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstCategoryPosition Method (IEdmCategoryMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCategoryMgr6 Interface + : GetFirstCategoryPosition Method (IEdmCategoryMgr6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the categories in the vault. + + +

Syntax

Visual Basic 
Function GetFirstCategoryPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstCategoryPosition()
+
C++/CLI 
IEdmPos5^ GetFirstCategoryPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first category in the list
+ + +

Example

See the IEdmCategoryMgr6 examples. +
+ +

Remarks

After calling this method, call IEdmCategoryMgr6::GetNextCategory.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetNextCategory.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetNextCategory.html new file mode 100644 index 0000000..270e1e3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCategoryMgr6~GetNextCategory.html @@ -0,0 +1,157 @@ + + + + + + GetNextCategory Method (IEdmCategoryMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextCategory Method (IEdmCategoryMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCategoryMgr6 Interface + : GetNextCategory Method (IEdmCategoryMgr6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next category in the list
+
+ +
+ +
+ + +
+
+ Gets the next category in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextCategory( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmCategory6
+
C# 
IEdmCategory6 GetNextCategory( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmCategory6^ GetNextCategory( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next category in the list
+ +

Return Value

IEdmCategory6
+ + +

Example

See the IEdmCategoryMgr6 examples. +
+ +

Remarks

To obtain the position of the first category in the list, call IEdmCategoryMgr6::GetFirstCategoryPosition.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the categories.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: No more categories can be accessed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache.html new file mode 100644 index 0000000..942b65e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache.html @@ -0,0 +1,146 @@ + + + + + + IEdmClearLocalCache Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmClearLocalCache 
+
C# 
public interface IEdmClearLocalCache 
+
C++/CLI 
public interface class IEdmClearLocalCache 
+
+ + + +

Example

+

Remarks

This interface:

+ +

This interface provides the same functionality as the Clear Local Cache command that you can run from the context menu of a folder in File Explorer.

+

To clear the local cache:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, passing EdmUtility.EdmUtil_ClearLocalCache as a parameter. +
  2. Call IEdmClearLocalCache::AddFileByPath or IEdmClearLocalCache::AddFolder one or more times, specifying the files and folders that you want to clear. +
  3. Call IEdmClearLocalCache::CommitClear to clear the local cache.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2.html new file mode 100644 index 0000000..2ae9613 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2.html @@ -0,0 +1,139 @@ + + + + + + IEdmClearLocalCache2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmClearLocalCache2 
+   Inherits IEdmClearLocalCache 
+
C# 
public interface IEdmClearLocalCache2 : IEdmClearLocalCache  
+
C++/CLI 
public interface class IEdmClearLocalCache2 : public IEdmClearLocalCache  
+
+ +

Example

See the IEdmClearLocalCache examples. +
+ +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_members.html new file mode 100644 index 0000000..52f484f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmClearLocalCache2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache2 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmClearLocalCache2.

+

Public Properties

+ +
 NameDescription
 PropertyIgnoreToolboxFilesGets or sets whether to not remove Toolbox Library parts from the cache.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_properties.html new file mode 100644 index 0000000..184f2d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmClearLocalCache2 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache2 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmClearLocalCache2 members.

+

Public Properties

+ +
 NameDescription
 PropertyIgnoreToolboxFilesGets or sets whether to not remove Toolbox Library parts from the cache.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2~IgnoreToolboxFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2~IgnoreToolboxFiles.html new file mode 100644 index 0000000..71d1d6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache2~IgnoreToolboxFiles.html @@ -0,0 +1,148 @@ + + + + + + IgnoreToolboxFiles Property (IEdmClearLocalCache2) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IgnoreToolboxFiles Property (IEdmClearLocalCache2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmClearLocalCache2 Interface + : IgnoreToolboxFiles Property (IEdmClearLocalCache2)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to not remove Toolbox Library parts from the cache. + + +

Syntax

Visual Basic 
Property IgnoreToolboxFiles As System.Boolean
+
C# 
System.bool IgnoreToolboxFiles {get; set;}
+
C++/CLI 
property System.bool IgnoreToolboxFiles {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to not remove Toolbox Library parts, false to remove them
+ + +

Example

See the IEdmClearLocalCache examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3.html new file mode 100644 index 0000000..a38390b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3.html @@ -0,0 +1,136 @@ + + + + + + IEdmClearLocalCache3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmClearLocalCache3 
+   Inherits IEdmClearLocalCacheIEdmClearLocalCache2 
+
C# 
public interface IEdmClearLocalCache3 : IEdmClearLocalCacheIEdmClearLocalCache2  
+
C++/CLI 
public interface class IEdmClearLocalCache3 : public IEdmClearLocalCacheIEdmClearLocalCache2  
+
+ +

Example

See the IEdmClearLocalCache examples. +
+ +

Remarks

This interface extends IEdmClearLocalCache2.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_members.html new file mode 100644 index 0000000..d02950b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmClearLocalCache3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache3 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmClearLocalCache3.

+

Public Properties

+ +
 NameDescription
 PropertyUseAutoClearCacheOptionGets or sets whether to use the Clear Cache setting for the logged-in user.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_properties.html new file mode 100644 index 0000000..4ca5234 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmClearLocalCache3 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache3 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmClearLocalCache3 members.

+

Public Properties

+ +
 NameDescription
 PropertyUseAutoClearCacheOptionGets or sets whether to use the Clear Cache setting for the logged-in user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3~UseAutoClearCacheOption.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3~UseAutoClearCacheOption.html new file mode 100644 index 0000000..2e8dfe6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache3~UseAutoClearCacheOption.html @@ -0,0 +1,148 @@ + + + + + + UseAutoClearCacheOption Property (IEdmClearLocalCache3) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UseAutoClearCacheOption Property (IEdmClearLocalCache3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmClearLocalCache3 Interface + : UseAutoClearCacheOption Property (IEdmClearLocalCache3)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to use the Clear Cache setting for the logged-in user. + + +

Syntax

Visual Basic 
Property UseAutoClearCacheOption As System.Boolean
+
C# 
System.bool UseAutoClearCacheOption {get; set;}
+
C++/CLI 
property System.bool UseAutoClearCacheOption {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to use the Clear Cache setting, false to not
+ + +

Example

See the IEdmClearLocalCache examples. +
+ + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_members.html new file mode 100644 index 0000000..a616848 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmClearLocalCache Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmClearLocalCache.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodAddFileByPathAdds the specified file to the batch of files and folders to clear from the local cache.  
 MethodAddFolderAdds the specified folder to the batch of files and folders to clear from the local cache.  
 MethodCommitClearClears the files and folders specified by IEdmClearLocalCache::AddFilebyPath and IEdmClearLocalCache::AddFolder from the local cache.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_methods.html new file mode 100644 index 0000000..94bd97b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmClearLocalCache Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmClearLocalCache Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmClearLocalCache Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmClearLocalCache members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddFileByPathAdds the specified file to the batch of files and folders to clear from the local cache.  
 MethodAddFolderAdds the specified folder to the batch of files and folders to clear from the local cache.  
 MethodCommitClearClears the files and folders specified by IEdmClearLocalCache::AddFilebyPath and IEdmClearLocalCache::AddFolder from the local cache.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFileByPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFileByPath.html new file mode 100644 index 0000000..9f086c2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFileByPath.html @@ -0,0 +1,158 @@ + + + + + + AddFileByPath Method (IEdmClearLocalCache) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileByPath Method (IEdmClearLocalCache)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmClearLocalCache Interface + : AddFileByPath Method (IEdmClearLocalCache)
+ +
+ + + +
+ +
+ + +
+
+
bsFilePath
+
Path and filename of the file to clear
+
+ +
+ +
+ + +
+
+ Adds the specified file to the batch of files and folders to clear from the local cache. + + +

Syntax

Visual Basic 
Sub AddFileByPath( _
+   ByVal bsFilePath As System.String _
+) 
+
C# 
void AddFileByPath( 
+   System.string bsFilePath
+)
+
C++/CLI 
void AddFileByPath( 
+&   System.String^ bsFilePath
+) 
+ +

Parameters

bsFilePath
+
Path and filename of the file to clear
+ +
+ + + + +

Example

+

Remarks

After calling this method, you must call IEdmClearLocalCache::CommitClear to actually clear the file from the cache.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFolder.html new file mode 100644 index 0000000..d434d07 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~AddFolder.html @@ -0,0 +1,164 @@ + + + + + + AddFolder Method (IEdmClearLocalCache) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmClearLocalCache)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmClearLocalCache Interface + : AddFolder Method (IEdmClearLocalCache)
+ +
+ + + +
+ +
+ + +
+
+
oFolderIDorPath
+
ID or path of the folder to clear from the cache
+
+
+
bRecursive
+
True to clear subfolders, false to not
+
+ +
+ +
+ + +
+
+ Adds the specified folder to the batch of files and folders to clear from the local cache. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal oFolderIDorPath As System.Object, _
+   Optional ByVal bRecursive As System.Boolean _
+) 
+
C# 
void AddFolder( 
+   System.object oFolderIDorPath,
+   System.bool bRecursive
+)
+
C++/CLI 
void AddFolder( 
+&   System.Object^ oFolderIDorPath,
+&   System.bool bRecursive
+) 
+ +

Parameters

oFolderIDorPath
+
ID or path of the folder to clear from the cache
bRecursive
+
True to clear subfolders, false to not
+ +
+ + + + + +

Remarks

After calling this method, you must call IEdmClearLocalCache::CommitClear to actually clear the folder from the cache.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~CommitClear.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~CommitClear.html new file mode 100644 index 0000000..ef52113 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmClearLocalCache~CommitClear.html @@ -0,0 +1,157 @@ + + + + + + CommitClear Method (IEdmClearLocalCache) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommitClear Method (IEdmClearLocalCache)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmClearLocalCache Interface + : CommitClear Method (IEdmClearLocalCache)
+ +
+ + + +
+ +
+ + +
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to provide progress feedback to the user
+
+ +
+ +
+ + +
+
+ Clears the files and folders specified by IEdmClearLocalCache::AddFilebyPath and IEdmClearLocalCache::AddFolder from the local cache. + + +

Syntax

Visual Basic 
Sub CommitClear( _
+   Optional ByVal poCallback As EdmCallback _
+) 
+
C# 
void CommitClear( 
+   EdmCallback poCallback
+)
+
C++/CLI 
void CommitClear( 
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

poCallback
+
Optional pointer to a class that implements IEdmCallback to provide progress feedback to the user
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5.html new file mode 100644 index 0000000..ca86d8d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5.html @@ -0,0 +1,154 @@ + + + + + + IEdmCmdMgr5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add menu commands, toolbar buttons, and command hooks to SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCmdMgr5 
+
C# 
public interface IEdmCmdMgr5 
+
C++/CLI 
public interface class IEdmCmdMgr5 
+
+ + + +

Example

+

Remarks

This interface:

+ +

A pointer to this interface is provided by SOLIDWORKS PDM Professional when it loads an add-in. IEdmAddIn5::GetAddInInfo's poCmdMgr contains a pointer to this interface. Within your implementation of IEdmAddIn5::GetAddInInfo, use this pointer to call:

+ +

to SOLIDWORKS PDM Professional.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_members.html new file mode 100644 index 0000000..1b64f1e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmCmdMgr5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCmdMgr5.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodAddCmdAdds a toolbar button to the File Explorer Tools menu and a menu command to the right-click context-sensitive menu of SOLIDWORKS PDM Professional vault files and folders.  
 MethodAddHookAdds a hook that makes SOLIDWORKS PDM Professional call this add-in's implementation of IEdmAddIn5::OnCmd whenever the specified events occur.  
 MethodAddToolbarImage

Registers an image with a toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

 
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_methods.html new file mode 100644 index 0000000..7aed204 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmCmdMgr5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCmdMgr5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddCmdAdds a toolbar button to the File Explorer Tools menu and a menu command to the right-click context-sensitive menu of SOLIDWORKS PDM Professional vault files and folders.  
 MethodAddHookAdds a hook that makes SOLIDWORKS PDM Professional call this add-in's implementation of IEdmAddIn5::OnCmd whenever the specified events occur.  
 MethodAddToolbarImage

Registers an image with a toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

 
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddCmd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddCmd.html new file mode 100644 index 0000000..6d18ba3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddCmd.html @@ -0,0 +1,214 @@ + + + + + + AddCmd Method (IEdmCmdMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddCmd Method (IEdmCmdMgr5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCmdMgr5 Interface + : AddCmd Method (IEdmCmdMgr5)
+ +
+ + + +
+ +
+ + +
+
+
lCmdID
+
Command ID (see Remarks)
+
+
+
bsMenuString
+
Text to show in the menu
+
+
+
lEdmMenuFlags
+
Optional combination of EdmMenuFlags
+
+
+
bsStatusBarHelp
+
Optional text to show in the File Explorer status bar when the user highlights the menu entry in the right-click context menu
+
+
+
bsToolbarToolTip
+
Optional message to display when the cursor is located over the command's toolbar button
+
+
+
lToolbarButtonIndex
+
Optional index of a toolbar button in a resource image (see Remarks)
+
+
+
lToolbarImageID
+
Optional ID of the image to use as a toolbar button (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds a toolbar button to the File Explorer Tools menu and a menu command to the right-click context-sensitive menu of SOLIDWORKS PDM Professional vault files and folders. + + +

Syntax

Visual Basic 
Sub AddCmd( _
+   ByVal lCmdID As System.Integer, _
+   ByVal bsMenuString As System.String, _
+   Optional ByVal lEdmMenuFlags As System.Integer, _
+   Optional ByVal bsStatusBarHelp As System.String, _
+   Optional ByVal bsToolbarToolTip As System.String, _
+   Optional ByVal lToolbarButtonIndex As System.Integer, _
+   Optional ByVal lToolbarImageID As System.Integer _
+) 
+
C# 
void AddCmd( 
+   System.int lCmdID,
+   System.string bsMenuString,
+   System.int lEdmMenuFlags,
+   System.string bsStatusBarHelp,
+   System.string bsToolbarToolTip,
+   System.int lToolbarButtonIndex,
+   System.int lToolbarImageID
+)
+
C++/CLI 
void AddCmd( 
+&   System.int lCmdID,
+&   System.String^ bsMenuString,
+&   System.int lEdmMenuFlags,
+&   System.String^ bsStatusBarHelp,
+&   System.String^ bsToolbarToolTip,
+&   System.int lToolbarButtonIndex,
+&   System.int lToolbarImageID
+) 
+ +

Parameters

lCmdID
+
Command ID (see Remarks)
bsMenuString
+
Text to show in the menu
lEdmMenuFlags
+
Optional combination of EdmMenuFlags
bsStatusBarHelp
+
Optional text to show in the File Explorer status bar when the user highlights the menu entry in the right-click context menu
bsToolbarToolTip
+
Optional message to display when the cursor is located over the command's toolbar button
lToolbarButtonIndex
+
Optional index of a toolbar button in a resource image (see Remarks)
lToolbarImageID
+
Optional ID of the image to use as a toolbar button (see Remarks)
+ +
+ + + + + +

Remarks

Call this method in your implementation of IEdmAddIn5::GetAddInInfo to:

+
    +
  • Add command buttons to the File Explorer toolbar. Before calling IEdmCmdMgr5::AddCmd, call IEdmCmdMgr5::AddToolbarImage to register an image with the toolbar button you want to add. +
  • Add menu commands to the File Explorer Tools menu. +
  • Add menu commands to the right-click context menu of files or folders in the SOLIDWORKS PDM Professional vault.
+

lCmdID can be any value. SOLIDWORKS PDM Professional passes it to your implementation of IEdmAddIn5::OnCmd via EdmCmd::mlCmdID.

+

lToolbarButtonIndex is the index of the toolbar image in a resource image that contains several images.

+

lToolbarImageID is the same as the lImageID parameter of IEdmCmdMgr5::AddToolbarImage.

+

NOTE: Menu commands and toolbar buttons added using this method display only when the user browses a SOLIDWORKS PDM Professional file vault. They do not display for ordinary Windows folders.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddHook.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddHook.html new file mode 100644 index 0000000..2afb013 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddHook.html @@ -0,0 +1,163 @@ + + + + + + AddHook Method (IEdmCmdMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddHook Method (IEdmCmdMgr5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCmdMgr5 Interface + : AddHook Method (IEdmCmdMgr5)
+ +
+ + + +
+ +
+ + +
+
+
eCmdType
+
Types of event that trigger IEdmAddIn5::OnCmd as defined in EdmCmdType
+
+
+
poReserved
+
Null; reserved for future use
+
+ +
+ +
+ + +
+
+ Adds a hook that makes SOLIDWORKS PDM Professional call this add-in's implementation of IEdmAddIn5::OnCmd whenever the specified events occur. + + +

Syntax

Visual Basic 
Sub AddHook( _
+   ByVal eCmdType As EdmCmdType, _
+   Optional ByVal poReserved As System.Object _
+) 
+
C# 
void AddHook( 
+   EdmCmdType eCmdType,
+   System.object poReserved
+)
+
C++/CLI 
void AddHook( 
+&   EdmCmdType eCmdType,
+&   System.Object^ poReserved
+) 
+ +

Parameters

eCmdType
+
Types of event that trigger IEdmAddIn5::OnCmd as defined in EdmCmdType
poReserved
+
Null; reserved for future use
+ +
+ + +

Example

See IEdmCmdMgr5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddToolbarImage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddToolbarImage.html new file mode 100644 index 0000000..210c02f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr5~AddToolbarImage.html @@ -0,0 +1,215 @@ + + + + + + AddToolbarImage Method (IEdmCmdMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddToolbarImage Method (IEdmCmdMgr5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCmdMgr5 Interface + : AddToolbarImage Method (IEdmCmdMgr5)
+ +
+ + + +
+ +
+ + +
+
+
lHandleOrResourceID
+
Resource ID if bIsHandle = false; handle to a bitmap (bIsIcon = false) or icon (bIsIcon = true) if bIsHandle = true
+
+
+
lButtonCount
+
Number of buttons in the bitmap or icon
+
+
+
eState
+
State of the toolbar button (see Remarks)
+
+
+
bIsIcon
+
True if the image is an icon; false if it is a bitmap (see Remarks)
+
+
+
bIsHandle
+
True if lHandleOrResourceID is a handle, false if it is a resource ID
+
+
+
lBackgroundColorRGB
+
RGB value of the background color (see Remarks)
+
+
+
lImageID
+
ID of the image (see Remarks)
+
+ +
+ +
+ + +
+
+

Registers an image with a toolbar button.

+

NOTE: This method does not work in Windows Vista and later Windows operating systems.

+ + +

Syntax

Visual Basic 
Sub AddToolbarImage( _
+   ByVal lHandleOrResourceID As System.Integer, _
+   ByVal lButtonCount As System.Integer, _
+   ByVal eState As EdmButtonState, _
+   Optional ByVal bIsIcon As System.Boolean, _
+   Optional ByVal bIsHandle As System.Boolean, _
+   Optional ByVal lBackgroundColorRGB As System.Integer, _
+   Optional ByVal lImageID As System.Integer _
+) 
+
C# 
void AddToolbarImage( 
+   System.int lHandleOrResourceID,
+   System.int lButtonCount,
+   EdmButtonState eState,
+   System.bool bIsIcon,
+   System.bool bIsHandle,
+   System.int lBackgroundColorRGB,
+   System.int lImageID
+)
+
C++/CLI 
void AddToolbarImage( 
+&   System.int lHandleOrResourceID,
+&   System.int lButtonCount,
+&   EdmButtonState eState,
+&   System.bool bIsIcon,
+&   System.bool bIsHandle,
+&   System.int lBackgroundColorRGB,
+&   System.int lImageID
+) 
+ +

Parameters

lHandleOrResourceID
+
Resource ID if bIsHandle = false; handle to a bitmap (bIsIcon = false) or icon (bIsIcon = true) if bIsHandle = true
lButtonCount
+
Number of buttons in the bitmap or icon
eState
+
State of the toolbar button (see Remarks)
bIsIcon
+
True if the image is an icon; false if it is a bitmap (see Remarks)
bIsHandle
+
True if lHandleOrResourceID is a handle, false if it is a resource ID
lBackgroundColorRGB
+
RGB value of the background color (see Remarks)
lImageID
+
ID of the image (see Remarks)
+ +
+ + +

Example

For a more complete description of how to use this method, see Creating a menu command.

+

The following snippet creates a toolbar button and adds a command in the File Explorer Tools menu. The button uses one icon (resource ID=101) for the cold (standard) state and another one (resource ID=102) for the hot (focus) state. Both icon files must be added using Visual Basic's resource editor before running this snippet:

+

Private Sub IEdmAddIn5_GetAddInInfo(poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5)

+
+


...
poCmdMgr.AddToolbarImage 101, 1, BState_Cold, True, False, 12632256, 1
poCmdMgr.AddToolbarImage 102, 1, BState_Hot, True, False, 12632256, 1
poCmdMgr.AddCmd 1, "My Command", EdmMenu_NeverInContextMenu Or EdmMenu_HasToolbarButton, "String to show in the statusbar", "Tooltip on my command", 0, 1

+


End Sub

+
+ +

Remarks

Call this method from your add-in's implementation of IEdmAddIn5::GetAddInInfo to create a toolbar button.

+

Images can be either bitmaps (*.BMP) or icons (*.ICO). A bitmap contains one or more buttons of the same size. An icon contains only one button.

+

Unlike icons, bitmaps do not contain transparent regions. In order to get transparency in bitmaps, specify in lBackgroundColorRGB the RGB color of the bitmap that should be replaced by the background color.

+

When you add "hot" buttons (eState = EdmButtonState.BState_Hot), they must be assigned the same image ID as the corresponding "cold" buttons (eState = EdmButtonState.BState_Cold). Additionally, if the images contain several toolbar buttons, the buttons must be ordered the same way in both images.

+

Toolbar buttons in File Explorer can have several different sizes depending on the operating system version, Internet Explorer version, and user preferences. To make the image compatible, use this method to add several versions of an image using the same image ID but with different image sizes. SOLIDWORKS PDM Professional chooses the image that best matches the system settings. If the image doesn't exactly match the button size, PDM either resizes it (if the button is smaller than the image) or centers it in the button (if the button is bigger than the image).

+

After calling this method to create a toolbar button, call IEdmCmdMgr5::AddCmd setting lToolbarImageID to this method's lImageID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6.html new file mode 100644 index 0000000..32bff62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6.html @@ -0,0 +1,145 @@ + + + + + + IEdmCmdMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add menu commands, toolbar buttons, and command hooks to SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCmdMgr6 
+   Inherits IEdmCmdMgr5 
+
C# 
public interface IEdmCmdMgr6 : IEdmCmdMgr5  
+
C++/CLI 
public interface class IEdmCmdMgr6 : public IEdmCmdMgr5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmCmdMgr5 by providing the ability to add a custom tab to a vault view before it is opened in File Explorer.

+

A pointer to this interface is provided by SOLIDWORKS PDM Professional when it loads an add-in. IEdmAddIn5::GetAddInInfo's poCmdMgr contains a pointer to this interface. Within your implementation of IEdmAddIn5::GetAddInInfo, use this pointer to call:

+ +

to SOLIDWORKS PDM Professional.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_members.html new file mode 100644 index 0000000..3008047 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmCmdMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCmdMgr6.

+ + +

Public Methods

+ +
 NameDescription
 MethodAddVaultViewTabAdds the specified tab to the right of the tabs in the bottom panel of a vault view before opening it in File Explorer.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_methods.html new file mode 100644 index 0000000..cc23cc3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmCmdMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCmdMgr6 members.

+

Public Methods

+ +
 NameDescription
 MethodAddVaultViewTabAdds the specified tab to the right of the tabs in the bottom panel of a vault view before opening it in File Explorer.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6~AddVaultViewTab.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6~AddVaultViewTab.html new file mode 100644 index 0000000..17391ed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdMgr6~AddVaultViewTab.html @@ -0,0 +1,184 @@ + + + + + + AddVaultViewTab Method (IEdmCmdMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddVaultViewTab Method (IEdmCmdMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCmdMgr6 Interface + : AddVaultViewTab Method (IEdmCmdMgr6)
+ +
+ + + +
+ +
+ + +
+
+
hWnd
+
Handle of the .NET control to display in the tab
+
+
+
bsName
+
Name of the tab
+
+
+
bsIconPath
+
Full path and filename of the 16X16 PNG image to display next to bsName on the tab
+
+
+
bsToolTip
+
Tool tip for the tab
+
+
+
bsUniqueID
+
Unique ID for this control
+
+ +
+ +
+ + +
+
+ Adds the specified tab to the right of the tabs in the bottom panel of a vault view before opening it in File Explorer. + + +

Syntax

Visual Basic 
Sub AddVaultViewTab( _
+   ByVal hWnd As System.Long, _
+   ByVal bsName As System.String, _
+   ByVal bsIconPath As System.String, _
+   ByVal bsToolTip As System.String, _
+   ByVal bsUniqueID As System.String _
+) 
+
C# 
void AddVaultViewTab( 
+   System.long hWnd,
+   System.string bsName,
+   System.string bsIconPath,
+   System.string bsToolTip,
+   System.string bsUniqueID
+)
+
C++/CLI 
void AddVaultViewTab( 
+&   System.int64 hWnd,
+&   System.String^ bsName,
+&   System.String^ bsIconPath,
+&   System.String^ bsToolTip,
+&   System.String^ bsUniqueID
+) 
+ +

Parameters

hWnd
+
Handle of the .NET control to display in the tab
bsName
+
Name of the tab
bsIconPath
+
Full path and filename of the 16X16 PNG image to display next to bsName on the tab
bsToolTip
+
Tool tip for the tab
bsUniqueID
+
Unique ID for this control
+ +
+ + +

Example

See the IEdmCmdMgr6 examples. +
+ +

Remarks

Call this method in your add-in's implementation of IEdmAddIn5::OnCmd where you handle the EdmCmdType.EdmCmd_PreExploreInit notification.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode.html new file mode 100644 index 0000000..995443e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode.html @@ -0,0 +1,138 @@ + + + + + + IEdmCmdNode Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdNode Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmCmdNode Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file changing state.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmCmdNode 
+
C# 
public interface IEdmCmdNode 
+
C++/CLI 
public interface class IEdmCmdNode 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

A pointer to this interface is provided by SOLIDWORKS PDM Professional when one of the add-in's hooks or menu commands is executed. IEdmAddIn5::OnCmd's ppoData (EdmCmdData.mpoExtra) contains the pointer to the interface. Within your implementation of IEdmAddIn5::OnCmd, use this pointer to get the properties of the file changing state.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_members.html new file mode 100644 index 0000000..4da52c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmCmdNode Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdNode Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdNode Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmCmdNode.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetPropertyGets the specified property for the file changing state.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_methods.html new file mode 100644 index 0000000..d9a4dbd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmCmdNode Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmCmdNode Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmCmdNode Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmCmdNode members.

+

Public Methods

+ +
 NameDescription
 MethodGetPropertyGets the specified property for the file changing state.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode~GetProperty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode~GetProperty.html new file mode 100644 index 0000000..567a595 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmCmdNode~GetProperty.html @@ -0,0 +1,163 @@ + + + + + + GetProperty Method (IEdmCmdNode) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetProperty Method (IEdmCmdNode)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmCmdNode Interface + : GetProperty Method (IEdmCmdNode)
+ +
+ + + +
+ +
+ + +
+
+
eProperty
+
Type of property to retrieve as defined in EdmCmdNodeProp
+
+
+
oArg
+
Null; reserved for future use
+
+ +
+ +
+ + +
+
+ Gets the specified property for the file changing state. + + +

Syntax

Visual Basic 
Function GetProperty( _
+   ByVal eProperty As EdmCmdNodeProp, _
+   Optional ByVal oArg As System.Object _
+) As System.Object
+
C# 
System.object GetProperty( 
+   EdmCmdNodeProp eProperty,
+   System.object oArg
+)
+
C++/CLI 
System.Object^ GetProperty( 
+&   EdmCmdNodeProp eProperty,
+&   System.Object^ oArg
+) 
+ +

Parameters

eProperty
+
Type of property to retrieve as defined in EdmCmdNodeProp
oArg
+
Null; reserved for future use
+ +

Return Value

Property value
+ + +

Example

See the IEdmCmdNode examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData.html new file mode 100644 index 0000000..669bdc9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData.html @@ -0,0 +1,138 @@ + + + + + + IEdmData Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmData Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmData Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the properties of an object created by a template.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmData 
+
C# 
public interface IEdmData 
+
C++/CLI 
public interface class IEdmData 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

IEdmTemplate53::RunEx executes a template to create one or more files or folders. It returns an array of these interfaces, one for each file or folder, in its ppoRetData parameter.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_members.html new file mode 100644 index 0000000..73948e3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmData Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmData Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmData Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmData.

+

Public Properties

+ +
 NameDescription
 PropertyTypeGets or sets the type of this data object.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetGets a data object property value.  
 MethodSetSets one of the data object properties to a new value.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_methods.html new file mode 100644 index 0000000..7d6d01e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmData Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmData Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmData Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmData members.

+

Public Methods

+ + +
 NameDescription
 MethodGetGets a data object property value.  
 MethodSetSets one of the data object properties to a new value.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_properties.html new file mode 100644 index 0000000..f77b9f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmData Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmData Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmData Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmData members.

+

Public Properties

+ +
 NameDescription
 PropertyTypeGets or sets the type of this data object.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Get.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Get.html new file mode 100644 index 0000000..5aa2eed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Get.html @@ -0,0 +1,157 @@ + + + + + + Get Method (IEdmData) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Get Method (IEdmData)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmData Interface + : Get Method (IEdmData)
+ +
+ + + +
+ +
+ + +
+
+
eKey
+
ID of property to retrieve as defined in EdmDataPropertyType
+
+ +
+ +
+ + +
+
+ Gets a data object property value. + + +

Syntax

Visual Basic 
Function Get( _
+   ByVal eKey As EdmDataPropertyType _
+) As System.Object
+
C# 
System.object Get( 
+   EdmDataPropertyType eKey
+)
+
C++/CLI 
System.Object^ Get( 
+&   EdmDataPropertyType eKey
+) 
+ +

Parameters

eKey
+
ID of property to retrieve as defined in EdmDataPropertyType
+ +

Return Value

Property value or empty if not found
+ + +

Example

See the IEdmData examples. +
+ +

Remarks

C++ programmers must remember to intialize the VARIANT struct for poValue with a call to VariantInit before calling the routine and release the returned data with a call to VariantClear.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Set.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Set.html new file mode 100644 index 0000000..536c0ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Set.html @@ -0,0 +1,164 @@ + + + + + + Set Method (IEdmData) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Set Method (IEdmData)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmData Interface + : Set Method (IEdmData)
+ +
+ + + +
+ +
+ + +
+
+
eKey
+
ID of property to update as defined in EdmDataPropertyType
+
+
+
poValue
+
New value of property
+
+ +
+ +
+ + +
+
+ Sets one of the data object properties to a new value. + + +

Syntax

Visual Basic 
Sub Set( _
+   ByVal eKey As EdmDataPropertyType, _
+   ByRef poValue As System.Object _
+) 
+
C# 
void Set( 
+   EdmDataPropertyType eKey,
+   ref System.object poValue
+)
+
C++/CLI 
void Set( 
+&   EdmDataPropertyType eKey,
+&   System.Object^% poValue
+) 
+ +

Parameters

eKey
+
ID of property to update as defined in EdmDataPropertyType
poValue
+
New value of property
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Type.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Type.html new file mode 100644 index 0000000..8d62071 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmData~Type.html @@ -0,0 +1,148 @@ + + + + + + Type Property (IEdmData) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Type Property (IEdmData)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmData Interface + : Type Property (IEdmData)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the type of this data object. + + +

Syntax

Visual Basic 
Property Type As EdmDataType
+
C# 
EdmDataType Type {get; set;}
+
C++/CLI 
property EdmDataType Type {
+   EdmDataType get();
+   void set ( &   EdmDataType value);
+}
+ + + +

Property Value

Type of data object as defined in EdmDataType
+ + +

Example

See the IEdmData examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5.html new file mode 100644 index 0000000..3d0a92c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5.html @@ -0,0 +1,146 @@ + + + + + + IEdmDictionary5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmDictionary5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmDictionary5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access key-value pairs of data in the SOLIDWORKS PDM Professional database.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmDictionary5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmDictionary5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmDictionary5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5. Call IEdmObject5::Name to get the name of the dictionary.

+

To access this interface, call IEdmVault5::GetObject, setting eType to EdmObjectType.EdmObject_Dictionary.

+

A dictionary in SOLIDWORKS PDM Professional stores data as key-value pairs. Each key is mapped to exactly one value. Both keys and values can be searched using this interface.

+

Note: Instead of using dictionaries, you can also use IEdmEnumeratorVariable5 to store data in card variables that are connected to files and folders. One advantage of this is that if the data is logically linked to files or folders, the data is deleted and copied whenever the files or folders are deleted or copied.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_members.html new file mode 100644 index 0000000..46b6ad5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_members.html @@ -0,0 +1,127 @@ + + + + + + IEdmDictionary5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmDictionary5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmDictionary5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmDictionary5.

+ + +

Public Methods

+ + + + + + + + + + + + + + + + + +
 NameDescription
 MethodLongFindKeysStarts an enumeration of all of the key-value pairs that have integer keys in the specified range.  
 MethodLongFindValuesStarts an enumeration of all of the key-value pairs that have integer keys whose values contain the specified text.  
 MethodLongGetAtGets the value for the specified integer key.  
 MethodLongGetFirstPositionStarts an enumeration of all of the key-value pairs that have integer keys.  
 MethodLongGetNextAssocGets the key-value pair at the next position of an enumeration.  
 MethodLongRemoveAtDeletes the specified integer key and its value.  
 MethodLongSetAtSets the value for the specified integer key.  
 MethodLongTestAndSetAtCreates the specified integer key if it does not exist and sets its value.  
 MethodRemoveDictionaryRemoves this dictionary and all of its data from the SOLIDWORKS PDM Professional database.  
 MethodStringFindKeysStarts an enumeration of all the key-value pairs whose string keys contain the specified text.  
 MethodStringFindValuesStarts an enumeration of all of the key-value pairs that have string keys whose values contain the specified text.  
 MethodStringGetAtGets the value for the specified string key.  
 MethodStringGetFirstPositionStarts an enumeration of all of the key-value pairs that have string keys.  
 MethodStringGetNextAssocGets the key-value pair at the next position of an enumeration.  
 MethodStringRemoveAtDeletes the specified string key and its value.  
 MethodStringSetAtSets the value for the specified string key.  
 MethodStringTestAndSetAtCreates the specified string key if it does not exist and sets its value.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_methods.html new file mode 100644 index 0000000..1421254 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5_methods.html @@ -0,0 +1,119 @@ + + + + + + IEdmDictionary5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmDictionary5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmDictionary5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmDictionary5 members.

+

Public Methods

+ + + + + + + + + + + + + + + + + +
 NameDescription
 MethodLongFindKeysStarts an enumeration of all of the key-value pairs that have integer keys in the specified range.  
 MethodLongFindValuesStarts an enumeration of all of the key-value pairs that have integer keys whose values contain the specified text.  
 MethodLongGetAtGets the value for the specified integer key.  
 MethodLongGetFirstPositionStarts an enumeration of all of the key-value pairs that have integer keys.  
 MethodLongGetNextAssocGets the key-value pair at the next position of an enumeration.  
 MethodLongRemoveAtDeletes the specified integer key and its value.  
 MethodLongSetAtSets the value for the specified integer key.  
 MethodLongTestAndSetAtCreates the specified integer key if it does not exist and sets its value.  
 MethodRemoveDictionaryRemoves this dictionary and all of its data from the SOLIDWORKS PDM Professional database.  
 MethodStringFindKeysStarts an enumeration of all the key-value pairs whose string keys contain the specified text.  
 MethodStringFindValuesStarts an enumeration of all of the key-value pairs that have string keys whose values contain the specified text.  
 MethodStringGetAtGets the value for the specified string key.  
 MethodStringGetFirstPositionStarts an enumeration of all of the key-value pairs that have string keys.  
 MethodStringGetNextAssocGets the key-value pair at the next position of an enumeration.  
 MethodStringRemoveAtDeletes the specified string key and its value.  
 MethodStringSetAtSets the value for the specified string key.  
 MethodStringTestAndSetAtCreates the specified string key if it does not exist and sets its value.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindKeys.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindKeys.html new file mode 100644 index 0000000..f4ffce3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindKeys.html @@ -0,0 +1,169 @@ + + + + + + LongFindKeys Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongFindKeys Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongFindKeys Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
lMinKey
+
Minimum key
+
+
+
lMaxKey
+
Maximum key
+
+ +
+ +
+ + +
+
+ Starts an enumeration of all of the key-value pairs that have integer keys in the specified range. + + +

Syntax

Visual Basic 
Function LongFindKeys( _
+   ByVal lMinKey As System.Integer, _
+   ByVal lMaxKey As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 LongFindKeys( 
+   System.int lMinKey,
+   System.int lMaxKey
+)
+
C++/CLI 
IEdmPos5^ LongFindKeys( 
+&   System.int lMinKey,
+&   System.int lMaxKey
+) 
+ +

Parameters

lMinKey
+
Minimum key
lMaxKey
+
Maximum key
+ +

Return Value

IEdmPos5; position of the first key in the search result
+ + + + +

Example

+

Remarks

After calling this method, call IEdmDictionary5::LongGetNextAssoc repeatedly to enumerate the rest of the key-value pairs in the search result.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindValues.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindValues.html new file mode 100644 index 0000000..0c38945 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongFindValues.html @@ -0,0 +1,162 @@ + + + + + + LongFindValues Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongFindValues Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongFindValues Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsValueSubString
+
Text to search for
+
+ +
+ +
+ + +
+
+ Starts an enumeration of all of the key-value pairs that have integer keys whose values contain the specified text. + + +

Syntax

Visual Basic 
Function LongFindValues( _
+   ByVal bsValueSubString As System.String _
+) As IEdmPos5
+
C# 
IEdmPos5 LongFindValues( 
+   System.string bsValueSubString
+)
+
C++/CLI 
IEdmPos5^ LongFindValues( 
+&   System.String^ bsValueSubString
+) 
+ +

Parameters

bsValueSubString
+
Text to search for
+ +

Return Value

IEdmPos5; position of the first key in the search result
+ + + + +

Example

+

Remarks

After calling this method, call IEdmDictionary5::LongGetNextAssoc repeatedly to enumerate the rest of the key-value pairs in the search result.

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetAt.html new file mode 100644 index 0000000..9c53cc2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetAt.html @@ -0,0 +1,169 @@ + + + + + + LongGetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongGetAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongGetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
lKey
+
Key for which to get a value
+
+
+
pbsRetValue
+
Value for the specified key
+
+ +
+ +
+ + +
+
+ Gets the value for the specified integer key. + + +

Syntax

Visual Basic 
Function LongGetAt( _
+   ByVal lKey As System.Integer, _
+   ByRef pbsRetValue As System.String _
+) As System.Boolean
+
C# 
System.bool LongGetAt( 
+   System.int lKey,
+   out System.string pbsRetValue
+)
+
C++/CLI 
System.bool LongGetAt( 
+&   System.int lKey,
+&   [Out] System.String^ pbsRetValue
+) 
+ +

Parameters

lKey
+
Key for which to get a value
pbsRetValue
+
Value for the specified key
+ +

Return Value

True if the key was found, false if not
+ + + + +

Example

+

Remarks

C++ programmers must release the returned string by calling SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The key was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetFirstPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetFirstPosition.html new file mode 100644 index 0000000..09b0af5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetFirstPosition.html @@ -0,0 +1,148 @@ + + + + + + LongGetFirstPosition Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongGetFirstPosition Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongGetFirstPosition Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of all of the key-value pairs that have integer keys. + + +

Syntax

Visual Basic 
Function LongGetFirstPosition() As IEdmPos5
+
C# 
IEdmPos5 LongGetFirstPosition()
+
C++/CLI 
IEdmPos5^ LongGetFirstPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first key-value pair
+ + + + +

Example

+

Remarks

After calling this method, pass the position of the first key-value pair to IEdmDictionary5::LongGetNextAssoc to get the first key-value pair in the search result. Then call IEdmDictionary5::LongGetNextAssoc repeatedly to get the rest of the key-value pairs in the search result.

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetNextAssoc.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetNextAssoc.html new file mode 100644 index 0000000..93f145f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongGetNextAssoc.html @@ -0,0 +1,183 @@ + + + + + + LongGetNextAssoc Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongGetNextAssoc Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongGetNextAssoc Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next key-value pair (see Remarks)
+
+
+
plRetKey
+
Key in the next pair
+
+
+
pbsRetValue
+
Value in the next pair
+
+ +
+ +
+ + +
+
+ Gets the key-value pair at the next position of an enumeration. + + +

Syntax

Visual Basic 
Sub LongGetNextAssoc( _
+   ByVal poPos As IEdmPos5, _
+   ByRef plRetKey As System.Integer, _
+   ByRef pbsRetValue As System.String _
+) 
+
C# 
void LongGetNextAssoc( 
+   IEdmPos5 poPos,
+   out System.int plRetKey,
+   out System.string pbsRetValue
+)
+
C++/CLI 
void LongGetNextAssoc( 
+&   IEdmPos5^ poPos,
+&   [Out] System.int plRetKey,
+&   [Out] System.String^ pbsRetValue
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next key-value pair (see Remarks)
plRetKey
+
Key in the next pair
pbsRetValue
+
Value in the next pair
+ +
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first key-value pair. Call one of the following to obtain IEdmPos5 for the position of the first pair:

+ +

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the key-value pairs.

+

Between calls, you should call IEdmPos5::IsNull to verify that you have not gone past the last key-value pair.

+

C++ programmers must release the returned string by calling SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
+

 

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongRemoveAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongRemoveAt.html new file mode 100644 index 0000000..25c87f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongRemoveAt.html @@ -0,0 +1,159 @@ + + + + + + LongRemoveAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongRemoveAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongRemoveAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
lKey
+
Key to delete
+
+ +
+ +
+ + +
+
+ Deletes the specified integer key and its value. + + +

Syntax

Visual Basic 
Sub LongRemoveAt( _
+   ByVal lKey As System.Integer _
+) 
+
C# 
void LongRemoveAt( 
+   System.int lKey
+)
+
C++/CLI 
void LongRemoveAt( 
+&   System.int lKey
+) 
+ +

Parameters

lKey
+
Key to delete
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongSetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongSetAt.html new file mode 100644 index 0000000..3f48723 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongSetAt.html @@ -0,0 +1,168 @@ + + + + + + LongSetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongSetAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongSetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
lKey
+
Key whose value to set
+
+
+
bsValue
+
New value
+
+ +
+ +
+ + +
+
+ Sets the value for the specified integer key. + + +

Syntax

Visual Basic 
Sub LongSetAt( _
+   ByVal lKey As System.Integer, _
+   ByVal bsValue As System.String _
+) 
+
C# 
void LongSetAt( 
+   System.int lKey,
+   System.string bsValue
+)
+
C++/CLI 
void LongSetAt( 
+&   System.int lKey,
+&   System.String^ bsValue
+) 
+ +

Parameters

lKey
+
Key whose value to set
bsValue
+
New value
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongTestAndSetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongTestAndSetAt.html new file mode 100644 index 0000000..e3d5c45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~LongTestAndSetAt.html @@ -0,0 +1,168 @@ + + + + + + LongTestAndSetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LongTestAndSetAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : LongTestAndSetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
lKey
+
Key for which to set a value
+
+
+
bsValue
+
New value
+
+ +
+ +
+ + +
+
+ Creates the specified integer key if it does not exist and sets its value. + + +

Syntax

Visual Basic 
Function LongTestAndSetAt( _
+   ByVal lKey As System.Integer, _
+   ByVal bsValue As System.String _
+) As System.Boolean
+
C# 
System.bool LongTestAndSetAt( 
+   System.int lKey,
+   System.string bsValue
+)
+
C++/CLI 
System.bool LongTestAndSetAt( 
+&   System.int lKey,
+&   System.String^ bsValue
+) 
+ +

Parameters

lKey
+
Key for which to set a value
bsValue
+
New value
+ +

Return Value

True if the value of a new key is successfully set, false otherwise
+ + + + +

Example

+

Remarks

The testing and the setting are both performed in a single operation. A test-and-set function like this can be useful if you need a semaphore to synchronize several clients accessing the same data.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~RemoveDictionary.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~RemoveDictionary.html new file mode 100644 index 0000000..7e4be9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~RemoveDictionary.html @@ -0,0 +1,145 @@ + + + + + + RemoveDictionary Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveDictionary Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : RemoveDictionary Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Removes this dictionary and all of its data from the SOLIDWORKS PDM Professional database. + + +

Syntax

Visual Basic 
Sub RemoveDictionary() 
+
C# 
void RemoveDictionary()
+
C++/CLI 
void RemoveDictionary(); 
+ + + +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindKeys.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindKeys.html new file mode 100644 index 0000000..294709b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindKeys.html @@ -0,0 +1,161 @@ + + + + + + StringFindKeys Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringFindKeys Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringFindKeys Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsKeySubString
+
Text to search for
+
+ +
+ +
+ + +
+
+ Starts an enumeration of all the key-value pairs whose string keys contain the specified text. + + +

Syntax

Visual Basic 
Function StringFindKeys( _
+   ByVal bsKeySubString As System.String _
+) As IEdmPos5
+
C# 
IEdmPos5 StringFindKeys( 
+   System.string bsKeySubString
+)
+
C++/CLI 
IEdmPos5^ StringFindKeys( 
+&   System.String^ bsKeySubString
+) 
+ +

Parameters

bsKeySubString
+
Text to search for
+ +

Return Value

IEdmPos5; position of the first key-value pair in the search result
+ + + + +

Example

+

Remarks

After calling this method, call IEdmDictionary5::StringGetNextAssoc repeatedly to enumerate the rest of the key-value pairs in the search result.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindValues.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindValues.html new file mode 100644 index 0000000..d45cdb4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringFindValues.html @@ -0,0 +1,162 @@ + + + + + + StringFindValues Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringFindValues Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringFindValues Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsValueSubString
+
Text to search for
+
+ +
+ +
+ + +
+
+ Starts an enumeration of all of the key-value pairs that have string keys whose values contain the specified text. + + +

Syntax

Visual Basic 
Function StringFindValues( _
+   ByVal bsValueSubString As System.String _
+) As IEdmPos5
+
C# 
IEdmPos5 StringFindValues( 
+   System.string bsValueSubString
+)
+
C++/CLI 
IEdmPos5^ StringFindValues( 
+&   System.String^ bsValueSubString
+) 
+ +

Parameters

bsValueSubString
+
Text to search for
+ +

Return Value

IEdmPos5; position of the first key-value pair in the search result
+ + + + +

Example

+

Remarks

After calling this method, call IEdmDictionary5::StringGetNextAssoc repeatedly to enumerate the rest of the key-value pairs in the search result.

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetAt.html new file mode 100644 index 0000000..fb1675d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetAt.html @@ -0,0 +1,169 @@ + + + + + + StringGetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringGetAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringGetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsKey
+
Key for which to get a value
+
+
+
pbsRetValue
+
Value for the specified key
+
+ +
+ +
+ + +
+
+ Gets the value for the specified string key. + + +

Syntax

Visual Basic 
Function StringGetAt( _
+   ByVal bsKey As System.String, _
+   ByRef pbsRetValue As System.String _
+) As System.Boolean
+
C# 
System.bool StringGetAt( 
+   System.string bsKey,
+   out System.string pbsRetValue
+)
+
C++/CLI 
System.bool StringGetAt( 
+&   System.String^ bsKey,
+&   [Out] System.String^ pbsRetValue
+) 
+ +

Parameters

bsKey
+
Key for which to get a value
pbsRetValue
+
Value for the specified key
+ +

Return Value

True if the key was found, false if not
+ + + + +

Example

+

Remarks

C++ programmers must release the returned string by calling SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The key was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetFirstPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetFirstPosition.html new file mode 100644 index 0000000..8994341 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetFirstPosition.html @@ -0,0 +1,148 @@ + + + + + + StringGetFirstPosition Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringGetFirstPosition Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringGetFirstPosition Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of all of the key-value pairs that have string keys. + + +

Syntax

Visual Basic 
Function StringGetFirstPosition() As IEdmPos5
+
C# 
IEdmPos5 StringGetFirstPosition()
+
C++/CLI 
IEdmPos5^ StringGetFirstPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first key-value pair
+ + + + +

Example

+

Remarks

After calling this method, pass the position of the first key-value pair to IEdmDictionary5::StringGetNextAssoc to get the first key-value pair in the search result. Then call IEdmDictionary5::StringGetNextAssoc repeatedly to get the rest of the key-value pairs in the search result.

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetNextAssoc.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetNextAssoc.html new file mode 100644 index 0000000..6ce8e37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringGetNextAssoc.html @@ -0,0 +1,184 @@ + + + + + + StringGetNextAssoc Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringGetNextAssoc Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringGetNextAssoc Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next key-value pair (see Remarks)
+
+
+
pbsRetKey
+
Key in the next pair
+
+
+
pbsRetValue
+
Value in the next pair
+
+ +
+ +
+ + +
+
+ Gets the key-value pair at the next position of an enumeration. + + +

Syntax

Visual Basic 
Sub StringGetNextAssoc( _
+   ByVal poPos As IEdmPos5, _
+   ByRef pbsRetKey As System.String, _
+   ByRef pbsRetValue As System.String _
+) 
+
C# 
void StringGetNextAssoc( 
+   IEdmPos5 poPos,
+   out System.string pbsRetKey,
+   out System.string pbsRetValue
+)
+
C++/CLI 
void StringGetNextAssoc( 
+&   IEdmPos5^ poPos,
+&   [Out] System.String^ pbsRetKey,
+&   [Out] System.String^ pbsRetValue
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next key-value pair (see Remarks)
pbsRetKey
+
Key in the next pair
pbsRetValue
+
Value in the next pair
+ +
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first key-value pair. Call one of the following to obtain IEdmPos5 for the position of the first pair:

+ +

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the key-value pairs.

+

Between calls, you should call IEdmPos5::IsNull to verify that you have not gone past the last key-value pair.

+

C++ programmers must release the returned strings by calling SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringRemoveAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringRemoveAt.html new file mode 100644 index 0000000..4ef19a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringRemoveAt.html @@ -0,0 +1,159 @@ + + + + + + StringRemoveAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringRemoveAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringRemoveAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsKey
+
Key to remove
+
+ +
+ +
+ + +
+
+ Deletes the specified string key and its value. + + +

Syntax

Visual Basic 
Sub StringRemoveAt( _
+   ByVal bsKey As System.String _
+) 
+
C# 
void StringRemoveAt( 
+   System.string bsKey
+)
+
C++/CLI 
void StringRemoveAt( 
+&   System.String^ bsKey
+) 
+ +

Parameters

bsKey
+
Key to remove
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringSetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringSetAt.html new file mode 100644 index 0000000..3a5521d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringSetAt.html @@ -0,0 +1,166 @@ + + + + + + StringSetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringSetAt Method (IEdmDictionary5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringSetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsKey
+
Key whose value to set
+
+
+
bsValue
+
New value
+
+ +
+ +
+ + +
+
+ Sets the value for the specified string key. + + +

Syntax

Visual Basic 
Sub StringSetAt( _
+   ByVal bsKey As System.String, _
+   ByVal bsValue As System.String _
+) 
+
C# 
void StringSetAt( 
+   System.string bsKey,
+   System.string bsValue
+)
+
C++/CLI 
void StringSetAt( 
+&   System.String^ bsKey,
+&   System.String^ bsValue
+) 
+ +

Parameters

bsKey
+
Key whose value to set
bsValue
+
New value
+ +
+ + +

Example

See the examples for IEdmDictionary5. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringTestAndSetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringTestAndSetAt.html new file mode 100644 index 0000000..5fbc284 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmDictionary5~StringTestAndSetAt.html @@ -0,0 +1,169 @@ + + + + + + StringTestAndSetAt Method (IEdmDictionary5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StringTestAndSetAt Method (IEdmDictionary5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmDictionary5 Interface + : StringTestAndSetAt Method (IEdmDictionary5)
+ +
+ + + +
+ +
+ + +
+
+
bsKey
+
Key for which to set a value
+
+
+
bsValue
+
New value
+
+ +
+ +
+ + +
+
+ Creates the specified string key if it does not exist and sets its value. + + +

Syntax

Visual Basic 
Function StringTestAndSetAt( _
+   ByVal bsKey As System.String, _
+   ByVal bsValue As System.String _
+) As System.Boolean
+
C# 
System.bool StringTestAndSetAt( 
+   System.string bsKey,
+   System.string bsValue
+)
+
C++/CLI 
System.bool StringTestAndSetAt( 
+&   System.String^ bsKey,
+&   System.String^ bsValue
+) 
+ +

Parameters

bsKey
+
Key for which to set a value
bsValue
+
New value
+ +

Return Value

True if the value of a new key is successfully set, false if not
+ + + + +

Example

+

Remarks

The testing and setting are both performed in a single operation. A test-and-set function like this is useful when you need a semaphore to synchronize several clients accessing the same data. See the example in IEdmDictionary5::LongTestAndSetAt.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum.html new file mode 100644 index 0000000..818bee1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum.html @@ -0,0 +1,137 @@ + + + + + + IEdmEnum Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnum Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnum Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access and enumerate a list of elements.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnum 
+
C# 
public interface IEdmEnum 
+
C++/CLI 
public interface class IEdmEnum 
+
+ + + +

Example

+ +

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_members.html new file mode 100644 index 0000000..b3e21f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmEnum Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnum Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnum Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnum.

+

Public Properties

+ + +
 NameDescription
 PropertyCountGets the number of elements in the list.  
 PropertyCurrentGets the element at the enumeration cursor.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodGetAtGets the element at the specified position in the list.  
 MethodGetEnumeratorGets a pointer to this interface.  
 MethodMoveNextForwards the enumeration cursor to the next element in the list.  
 MethodResetResets the enumerator's cursor to the position before the first element in the list.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_methods.html new file mode 100644 index 0000000..6ccb100 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmEnum Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnum Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnum Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnum members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetAtGets the element at the specified position in the list.  
 MethodGetEnumeratorGets a pointer to this interface.  
 MethodMoveNextForwards the enumeration cursor to the next element in the list.  
 MethodResetResets the enumerator's cursor to the position before the first element in the list.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_properties.html new file mode 100644 index 0000000..48848a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmEnum Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnum Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnum Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnum members.

+

Public Properties

+ + +
 NameDescription
 PropertyCountGets the number of elements in the list.  
 PropertyCurrentGets the element at the enumeration cursor.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5.html new file mode 100644 index 0000000..26cf63f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5.html @@ -0,0 +1,147 @@ + + + + + + IEdmEnumeratorCustomReference5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access custom file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorCustomReference5 
+
C# 
public interface IEdmEnumeratorCustomReference5 
+
C++/CLI 
public interface class IEdmEnumeratorCustomReference5 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To use this interface:

+
    +
  1. Get the file to which you want to add references from the vault using IEdmVault5::GetFileFromPath. +
  2. Cast the IEdmFile5 object returned in step 1 to IEdmEnumeratorCustomReference5. +
  3. Get a pointer to the file reference using IEdmVault5::GetFileFromPath. +
  4. Call IEdmEnumeratorCustomReference::AddReference to add the file reference in step 3 to the file in step 1.
+

In the SOLIDWORKS PDM Professional user interface, you handle file references in the Contains page of the Properties dialog box. Using the API, you can perform the same file reference tasks that you do in the user interface, for example, adding, removing, and viewing file references. File references can be checked in like any other file in SOLIDWORKS PDM Professional.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_members.html new file mode 100644 index 0000000..d4db33d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmEnumeratorCustomReference5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorCustomReference5.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodAddReferenceObsolete. Superseded by IEdmEnumeratorCustomReference6::AddReference2.  
 MethodGetFirstRefPositionStarts an enumeration of custom file references.  
 MethodGetNextRefObsolete. Supserseded by IEdmEnumeratorCustomReference6::GetNextRef2.  
 MethodRemoveReferenceRemoves the specified custom file reference from this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_methods.html new file mode 100644 index 0000000..9971835 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmEnumeratorCustomReference5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorCustomReference5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodAddReferenceObsolete. Superseded by IEdmEnumeratorCustomReference6::AddReference2.  
 MethodGetFirstRefPositionStarts an enumeration of custom file references.  
 MethodGetNextRefObsolete. Supserseded by IEdmEnumeratorCustomReference6::GetNextRef2.  
 MethodRemoveReferenceRemoves the specified custom file reference from this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~AddReference.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~AddReference.html new file mode 100644 index 0000000..8fa6b55 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~AddReference.html @@ -0,0 +1,163 @@ + + + + + + AddReference Method (IEdmEnumeratorCustomReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReference Method (IEdmEnumeratorCustomReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference5 Interface + : AddReference Method (IEdmEnumeratorCustomReference5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of referenced file
+
+
+
lFolderID
+
ID of parent folder of referenced file
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmEnumeratorCustomReference6::AddReference2. + + +

Syntax

Visual Basic 
Sub AddReference( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer _
+) 
+
C# 
void AddReference( 
+   System.int lFileID,
+   System.int lFolderID
+)
+
C++/CLI 
void AddReference( 
+&   System.int lFileID,
+&   System.int lFolderID
+) 
+ +

Parameters

lFileID
+
ID of referenced file
lFolderID
+
ID of parent folder of referenced file
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: File is not checked out.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetFirstRefPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetFirstRefPosition.html new file mode 100644 index 0000000..ddd7b1c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetFirstRefPosition.html @@ -0,0 +1,145 @@ + + + + + + GetFirstRefPosition Method (IEdmEnumeratorCustomReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstRefPosition Method (IEdmEnumeratorCustomReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference5 Interface + : GetFirstRefPosition Method (IEdmEnumeratorCustomReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of custom file references. + + +

Syntax

Visual Basic 
Function GetFirstRefPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstRefPosition()
+
C++/CLI 
IEdmPos5^ GetFirstRefPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first custom file reference
+ + +

Example

See the IEdmEnumeratorCustomReference5 examples. +
+ +

Remarks

After calling this method, pass the position of the first custom file reference to IEdmEnumeratorCustomReference5::GetNextRef to get the first custom file reference. Then call IEdmEnumeratorCustomReference5::GetNextRef repeatedly to get the rest of the custom file references.

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetNextRef.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetNextRef.html new file mode 100644 index 0000000..fc1ece6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~GetNextRef.html @@ -0,0 +1,174 @@ + + + + + + GetNextRef Method (IEdmEnumeratorCustomReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextRef Method (IEdmEnumeratorCustomReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference5 Interface + : GetNextRef Method (IEdmEnumeratorCustomReference5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next custom file reference
+
+
+
plFileID
+
ID of the referenced file
+
+
+
plFolderID
+
ID of the parent folder of the referenced file
+
+ +
+ +
+ + +
+
+ Obsolete. Supserseded by IEdmEnumeratorCustomReference6::GetNextRef2. + + +

Syntax

Visual Basic 
Function GetNextRef( _
+   ByVal poPos As IEdmPos5, _
+   ByRef plFileID As System.Integer, _
+   ByRef plFolderID As System.Integer _
+) As System.String
+
C# 
System.string GetNextRef( 
+   IEdmPos5 poPos,
+   out System.int plFileID,
+   out System.int plFolderID
+)
+
C++/CLI 
System.String^ GetNextRef( 
+&   IEdmPos5^ poPos,
+&   [Out] System.int plFileID,
+&   [Out] System.int plFolderID
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next custom file reference
plFileID
+
ID of the referenced file
plFolderID
+
ID of the parent folder of the referenced file
+ +

Return Value

Path name of the referenced file
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first custom file reference, IEdmPos5. Call IEdmEnumeratorCustomReference5::GetFirstRefPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the custom file references.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~RemoveReference.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~RemoveReference.html new file mode 100644 index 0000000..9da2faf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference5~RemoveReference.html @@ -0,0 +1,163 @@ + + + + + + RemoveReference Method (IEdmEnumeratorCustomReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveReference Method (IEdmEnumeratorCustomReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference5 Interface + : RemoveReference Method (IEdmEnumeratorCustomReference5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to remove
+
+
+
lFolderID
+
ID of the file's parent folder
+
+ +
+ +
+ + +
+
+ Removes the specified custom file reference from this file. + + +

Syntax

Visual Basic 
Sub RemoveReference( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer _
+) 
+
C# 
void RemoveReference( 
+   System.int lFileID,
+   System.int lFolderID
+)
+
C++/CLI 
void RemoveReference( 
+&   System.int lFileID,
+&   System.int lFolderID
+) 
+ +

Parameters

lFileID
+
ID of file to remove
lFolderID
+
ID of the file's parent folder
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: The file is not checked out.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6.html new file mode 100644 index 0000000..4816f4c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6.html @@ -0,0 +1,141 @@ + + + + + + IEdmEnumeratorCustomReference6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access user-defined file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorCustomReference6 
+   Inherits IEdmEnumeratorCustomReference5 
+
C# 
public interface IEdmEnumeratorCustomReference6 : IEdmEnumeratorCustomReference5  
+
C++/CLI 
public interface class IEdmEnumeratorCustomReference6 : public IEdmEnumeratorCustomReference5  
+
+ + + +

Example

+ +

Accessors

This interface:

+
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_members.html new file mode 100644 index 0000000..2011a0c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmEnumeratorCustomReference6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorCustomReference6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddReference2Obsolete. Superseded by IEdmEnumeratorCustomReference7::AddReference3.  
 MethodGetNextRef2Gets the custom file reference at the next position of an enumeration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_methods.html new file mode 100644 index 0000000..fef0c8e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmEnumeratorCustomReference6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorCustomReference6 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddReference2Obsolete. Superseded by IEdmEnumeratorCustomReference7::AddReference3.  
 MethodGetNextRef2Gets the custom file reference at the next position of an enumeration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~AddReference2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~AddReference2.html new file mode 100644 index 0000000..235101d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~AddReference2.html @@ -0,0 +1,171 @@ + + + + + + AddReference2 Method (IEdmEnumeratorCustomReference6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReference2 Method (IEdmEnumeratorCustomReference6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference6 Interface + : AddReference2 Method (IEdmEnumeratorCustomReference6)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of referenced file
+
+
+
lFolderID
+
ID of parent folder of referenced file
+
+
+
lQuantity
+
Number of times the referenced file is referenced
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmEnumeratorCustomReference7::AddReference3. + + +

Syntax

Visual Basic 
Sub AddReference2( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer, _
+   ByVal lQuantity As System.Integer _
+) 
+
C# 
void AddReference2( 
+   System.int lFileID,
+   System.int lFolderID,
+   System.int lQuantity
+)
+
C++/CLI 
void AddReference2( 
+&   System.int lFileID,
+&   System.int lFolderID,
+&   System.int lQuantity
+) 
+ +

Parameters

lFileID
+
ID of referenced file
lFolderID
+
ID of parent folder of referenced file
lQuantity
+
Number of times the referenced file is referenced
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: File is not checked out.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~GetNextRef2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~GetNextRef2.html new file mode 100644 index 0000000..a151cb4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference6~GetNextRef2.html @@ -0,0 +1,189 @@ + + + + + + GetNextRef2 Method (IEdmEnumeratorCustomReference6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextRef2 Method (IEdmEnumeratorCustomReference6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference6 Interface + : GetNextRef2 Method (IEdmEnumeratorCustomReference6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next custom file reference
+
+
+
plFileID
+
ID of the referenced file
+
+
+
plFolderID
+
ID of the parent folder of the referenced file
+
+
+
pbsRetPath
+
Path name of the referenced file
+
+
+
plQuantity
+
Number of times the referenced file is referenced
+
+ +
+ +
+ + +
+
+ Gets the custom file reference at the next position of an enumeration. + + +

Syntax

Visual Basic 
Sub GetNextRef2( _
+   ByVal poPos As IEdmPos5, _
+   ByRef plFileID As System.Integer, _
+   ByRef plFolderID As System.Integer, _
+   ByRef pbsRetPath As System.String, _
+   ByRef plQuantity As System.Integer _
+) 
+
C# 
void GetNextRef2( 
+   IEdmPos5 poPos,
+   out System.int plFileID,
+   out System.int plFolderID,
+   out System.string pbsRetPath,
+   out System.int plQuantity
+)
+
C++/CLI 
void GetNextRef2( 
+&   IEdmPos5^ poPos,
+&   [Out] System.int plFileID,
+&   [Out] System.int plFolderID,
+&   [Out] System.String^ pbsRetPath,
+&   [Out] System.int plQuantity
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next custom file reference
plFileID
+
ID of the referenced file
plFolderID
+
ID of the parent folder of the referenced file
pbsRetPath
+
Path name of the referenced file
plQuantity
+
Number of times the referenced file is referenced
+ +
+ + +

Example

See the IEdmEnumeratorCustomReference6 examples. +
+ +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first custom file reference, IEdmPos5. Call IEdmEnumeratorCustomReference5::GetFirstRefPosition to obtain IEdmPos5.

+

After this method is called the first time, poPos is automatically incremented every time it is called.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7.html new file mode 100644 index 0000000..896d37a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7.html @@ -0,0 +1,138 @@ + + + + + + IEdmEnumeratorCustomReference7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access user-defined file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorCustomReference7 
+   Inherits IEdmEnumeratorCustomReference5IEdmEnumeratorCustomReference6 
+
C# 
public interface IEdmEnumeratorCustomReference7 : IEdmEnumeratorCustomReference5IEdmEnumeratorCustomReference6  
+
C++/CLI 
public interface class IEdmEnumeratorCustomReference7 : public IEdmEnumeratorCustomReference5IEdmEnumeratorCustomReference6  
+
+ + + +

Example

+

Remarks

This interface extends IEdmEnumeratorCustomReference6 by adding the ability to specify whether to display this custom reference in a BOM.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_members.html new file mode 100644 index 0000000..f488e56 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmEnumeratorCustomReference7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorCustomReference7.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodAddReference3Adds a custom file reference to this file.  
 MethodGetShowInBOMGets whether the specified file's user-defined file references are shown in a BOM.  
 MethodSetShowInBOMSets whether to show the specified file's user-defined file references in a BOM.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_methods.html new file mode 100644 index 0000000..dc4661f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmEnumeratorCustomReference7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorCustomReference7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorCustomReference7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorCustomReference7 members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddReference3Adds a custom file reference to this file.  
 MethodGetShowInBOMGets whether the specified file's user-defined file references are shown in a BOM.  
 MethodSetShowInBOMSets whether to show the specified file's user-defined file references in a BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~AddReference3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~AddReference3.html new file mode 100644 index 0000000..cd1b5c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~AddReference3.html @@ -0,0 +1,179 @@ + + + + + + AddReference3 Method (IEdmEnumeratorCustomReference7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddReference3 Method (IEdmEnumeratorCustomReference7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference7 Interface + : AddReference3 Method (IEdmEnumeratorCustomReference7)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of referenced file
+
+
+
lFolderID
+
ID of parent folder of referenced file
+
+
+
lQuantity
+
Number of times the referenced file is referenced
+
+
+
bShowInBOM
+
True to show this file reference in the BOM, false to not
+
+ +
+ +
+ + +
+
+ Adds a custom file reference to this file. + + +

Syntax

Visual Basic 
Sub AddReference3( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer, _
+   ByVal lQuantity As System.Integer, _
+   Optional ByVal bShowInBOM As System.Boolean _
+) 
+
C# 
void AddReference3( 
+   System.int lFileID,
+   System.int lFolderID,
+   System.int lQuantity,
+   System.bool bShowInBOM
+)
+
C++/CLI 
void AddReference3( 
+&   System.int lFileID,
+&   System.int lFolderID,
+&   System.int lQuantity,
+&   System.bool bShowInBOM
+) 
+ +

Parameters

lFileID
+
ID of referenced file
lFolderID
+
ID of parent folder of referenced file
lQuantity
+
Number of times the referenced file is referenced
bShowInBOM
+
True to show this file reference in the BOM, false to not
+ +
+ + +

Example

See the IEdmEnumeratorCustomReference7 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: File is not checked out.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~GetShowInBOM.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~GetShowInBOM.html new file mode 100644 index 0000000..a298b50 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~GetShowInBOM.html @@ -0,0 +1,163 @@ + + + + + + GetShowInBOM Method (IEdmEnumeratorCustomReference7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetShowInBOM Method (IEdmEnumeratorCustomReference7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference7 Interface + : GetShowInBOM Method (IEdmEnumeratorCustomReference7)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of referenced file
+
+
+
lFolderID
+
ID of parent folder of referenced file
+
+ +
+ +
+ + +
+
+ Gets whether the specified file's user-defined file references are shown in a BOM. + + +

Syntax

Visual Basic 
Function GetShowInBOM( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer _
+) As System.Boolean
+
C# 
System.bool GetShowInBOM( 
+   System.int lFileID,
+   System.int lFolderID
+)
+
C++/CLI 
System.bool GetShowInBOM( 
+&   System.int lFileID,
+&   System.int lFolderID
+) 
+ +

Parameters

lFileID
+
ID of referenced file
lFolderID
+
ID of parent folder of referenced file
+ +

Return Value

True if the specified file's user-defined file references are shown in a BOM, false if not
+ + + + +

Example

+   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~SetShowInBOM.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~SetShowInBOM.html new file mode 100644 index 0000000..0296919 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorCustomReference7~SetShowInBOM.html @@ -0,0 +1,169 @@ + + + + + + SetShowInBOM Method (IEdmEnumeratorCustomReference7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetShowInBOM Method (IEdmEnumeratorCustomReference7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorCustomReference7 Interface + : SetShowInBOM Method (IEdmEnumeratorCustomReference7)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of referenced file
+
+
+
lFolderID
+
ID of parent folder of referenced file
+
+
+
bShowInBOM
+
True to show the specified file's user-defined file references in a BOM, false to not
+
+ +
+ +
+ + +
+
+ Sets whether to show the specified file's user-defined file references in a BOM. + + +

Syntax

Visual Basic 
Sub SetShowInBOM( _
+   ByVal lFileID As System.Integer, _
+   ByVal lFolderID As System.Integer, _
+   ByVal bShowInBOM As System.Boolean _
+) 
+
C# 
void SetShowInBOM( 
+   System.int lFileID,
+   System.int lFolderID,
+   System.bool bShowInBOM
+)
+
C++/CLI 
void SetShowInBOM( 
+&   System.int lFileID,
+&   System.int lFolderID,
+&   System.bool bShowInBOM
+) 
+ +

Parameters

lFileID
+
ID of referenced file
lFolderID
+
ID of parent folder of referenced file
bShowInBOM
+
True to show the specified file's user-defined file references in a BOM, false to not
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10.html new file mode 100644 index 0000000..e7cf981 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10.html @@ -0,0 +1,138 @@ + + + + + + IEdmEnumeratorVariable10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable10 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable10 
+   Inherits IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7IEdmEnumeratorVariable8IEdmEnumeratorVariable9 
+ +
C++/CLI 
public interface class IEdmEnumeratorVariable10 : public IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7IEdmEnumeratorVariable8IEdmEnumeratorVariable9  
+
+ + + + +

Remarks

This interface extends IEdmEnumeratorVariable9.

+

See the Remarks for IEdmEnumeratorVariable5.

+

If you want to update variables in several files or folders, use IEdmBatchUpdate2, which is more efficient than this interface.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_members.html new file mode 100644 index 0000000..be37a8a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmEnumeratorVariable10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable10.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetVar2Gets the value of the specified variable from this file or folder.  
 MethodGetVarAsTextGets the value of the specified variable in text format from this file or folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_methods.html new file mode 100644 index 0000000..f8725a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmEnumeratorVariable10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable10 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetVar2Gets the value of the specified variable from this file or folder.  
 MethodGetVarAsTextGets the value of the specified variable in text format from this file or folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVar2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVar2.html new file mode 100644 index 0000000..14fb1f0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVar2.html @@ -0,0 +1,186 @@ + + + + + + GetVar2 Method (IEdmEnumeratorVariable10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVar2 Method (IEdmEnumeratorVariable10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable10 Interface + : GetVar2 Method (IEdmEnumeratorVariable10)
+ +
+ + + +
+ +
+ + +
+
+
bsVarName
+
Name of variable to read
+
+
+
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
+
+
+
lFolderID
+
ID of parent folder
+
+
+
poRetValue
+
Variable value; data type as specified in IEdmVariable5::VariableType (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the value of the specified variable from this file or folder. + + +

Syntax

Visual Basic 
Function GetVar2( _
+   ByVal bsVarName As System.String, _
+   ByVal bsCfgName As System.String, _
+   ByVal lFolderID As System.Integer, _
+   ByRef poRetValue As System.Object _
+) As System.Boolean
+
C# 
System.bool GetVar2( 
+   System.string bsVarName,
+   System.string bsCfgName,
+   System.int lFolderID,
+   out System.object poRetValue
+)
+
C++/CLI 
System.bool GetVar2( 
+&   System.String^ bsVarName,
+&   System.String^ bsCfgName,
+&   System.int lFolderID,
+&   [Out] System.Object^ poRetValue
+) 
+ +

Parameters

bsVarName
+
Name of variable to read
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
lFolderID
+
ID of parent folder
poRetValue
+
Variable value; data type as specified in IEdmVariable5::VariableType (see Remarks)
+ +

Return Value

True if the variable is found, false if not
+ + + + + +

Remarks

To specify bsCfgName:

+
    +
  • Call IEdmFile5::GetConfigurations to get the available configuration names for this file. +
  • If this method is used in your add-in's implementation of IEdmAddIn5::OnCmd, then a list of configuration names for the data card is returned in ppoData that can be cast to EdmCmdData. EdmCmdData.mpoExtra contains an IEdmStrLst5 of configuration names.
+

C++ users must initialize the VARIANT struct of poRetValue with a call to VariantInit before calling this method. They also must free the contents of the struct with a call to VariantClear. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable was not found. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVarAsText.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVarAsText.html new file mode 100644 index 0000000..92cc4a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable10~GetVarAsText.html @@ -0,0 +1,186 @@ + + + + + + GetVarAsText Method (IEdmEnumeratorVariable10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVarAsText Method (IEdmEnumeratorVariable10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable10 Interface + : GetVarAsText Method (IEdmEnumeratorVariable10)
+ +
+ + + +
+ +
+ + +
+
+
bsVarName
+
Name of variable to read
+
+
+
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
+
+
+
lFolderID
+
ID of parent folder
+
+
+
poRetValue
+
Variable value in text format
+
+ +
+ +
+ + +
+
+ Gets the value of the specified variable in text format from this file or folder. + + +

Syntax

Visual Basic 
Function GetVarAsText( _
+   ByVal bsVarName As System.String, _
+   ByVal bsCfgName As System.String, _
+   ByVal lFolderID As System.Integer, _
+   ByRef poRetValue As System.Object _
+) As System.Boolean
+
C# 
System.bool GetVarAsText( 
+   System.string bsVarName,
+   System.string bsCfgName,
+   System.int lFolderID,
+   out System.object poRetValue
+)
+
C++/CLI 
System.bool GetVarAsText( 
+&   System.String^ bsVarName,
+&   System.String^ bsCfgName,
+&   System.int lFolderID,
+&   [Out] System.Object^ poRetValue
+) 
+ +

Parameters

bsVarName
+
Name of variable to read
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
lFolderID
+
ID of parent folder
poRetValue
+
Variable value in text format
+ +

Return Value

True if the variable is found, false if not
+ + + + + +

Remarks

To specify bsCfgName:

+
    +
  • Call IEdmFile5::GetConfigurations to get the available configuration names for this file. +
  • If this method is used in your add-in's implementation of IEdmAddIn5::OnCmd, then a list of configuration names for the data card is returned in ppoData that can be cast to EdmCmdData. EdmCmdData.mpoExtra contains an IEdmStrLst5 of configuration names.
+

C++ users must initialize the VARIANT struct of poRetValue with a call to VariantInit before calling this method. They also must free the contents of the struct with a call to VariantClear. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable was not found. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5.html new file mode 100644 index 0000000..5de7dad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5.html @@ -0,0 +1,149 @@ + + + + + + IEdmEnumeratorVariable5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable5 
+
C# 
public interface IEdmEnumeratorVariable5 
+
C++/CLI 
public interface class IEdmEnumeratorVariable5 
+
+ + + +

Example

+

Remarks

This interface:

+ +

The IEdmEnumeratorVariablen interface is a pointer to a file. If this pointer is not released, then other operations on the file can fail with a sharing violation. The recommendation in SOLIDWORKS PDM Professional 2008 and later is to always call IEdmEnumeratorVariable8::CloseFile when you are finished updating a file to make it possible for other applications and API functions to access the file. This replaces the earlier work-around to explicitly clear IEdmEnumeratorVariable pointers (set them to Nothing in Visual Basic and call Marshal.ReleaseComObject in .NET).

+

IEdmEnumeratorVariablen interfaces on the following do not need calls to IEdmEnumeratorVariable8::CloseFile:

+
    +
  • folders (cast IEdmFolder5 to this interface) +
  • file data cards (for add-ins, this interface is stored in EdmCmd::mpoExtra of the poCmd argument returned in IEdmAddIn5::OnCmd only when EdmCmd::meCmdType = EdmCmdType.EdmCmd_CardButton or EdmCmdType.EdmCmd_CardInput)
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_members.html new file mode 100644 index 0000000..53fbd59 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmEnumeratorVariable5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable5.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodFlushSaves data to a file or folder.  
 MethodGetThumbnailGets a preview bitmap of the current file.  
 MethodGetUpdateVarsGets values for the variables that can be updated in this file.  
 MethodGetVarObsolete. Superseded by IEdmEnumeratorVariable10::GetVar2.  
 MethodSetVarSets the value of the specified variable in this file or folder.  
 MethodStoreValuesFromDatabaseCopies file data card data from the SOLIDWORKS PDM Professional database to the file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_methods.html new file mode 100644 index 0000000..e8e389e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmEnumeratorVariable5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable5 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodFlushSaves data to a file or folder.  
 MethodGetThumbnailGets a preview bitmap of the current file.  
 MethodGetUpdateVarsGets values for the variables that can be updated in this file.  
 MethodGetVarObsolete. Superseded by IEdmEnumeratorVariable10::GetVar2.  
 MethodSetVarSets the value of the specified variable in this file or folder.  
 MethodStoreValuesFromDatabaseCopies file data card data from the SOLIDWORKS PDM Professional database to the file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~Flush.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~Flush.html new file mode 100644 index 0000000..7134274 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~Flush.html @@ -0,0 +1,144 @@ + + + + + + Flush Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Flush Method (IEdmEnumeratorVariable5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : Flush Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Saves data to a file or folder. + + +

Syntax

Visual Basic 
Sub Flush() 
+
C# 
void Flush()
+
C++/CLI 
void Flush(); 
+ + + +
+ + +

Example

See the example for IEdmEnumeratorVariable8. +
+ +

Remarks

You must call this method after calling IEdmEnumeratorVariable5::SetVar to ensure that new data gets properly saved.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_SHARE_ERROR: The file is opened exclusively in another application.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetThumbnail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetThumbnail.html new file mode 100644 index 0000000..3238488 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetThumbnail.html @@ -0,0 +1,147 @@ + + + + + + GetThumbnail Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetThumbnail Method (IEdmEnumeratorVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : GetThumbnail Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets a preview bitmap of the current file. + + +

Syntax

Visual Basic 
Function GetThumbnail() As IEdmBitmap5
+
C# 
IEdmBitmap5 GetThumbnail()
+
C++/CLI 
IEdmBitmap5^ GetThumbnail(); 
+ + + +

Return Value

IEdmBitmap5; Null if the file does not support bitmap previews
+ + + + +

Example

+

Remarks

This method supports only DWG files that are cached.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmBitmap5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file does not support bitmap previews.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetUpdateVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetUpdateVars.html new file mode 100644 index 0000000..25e4fef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetUpdateVars.html @@ -0,0 +1,167 @@ + + + + + + GetUpdateVars Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetUpdateVars Method (IEdmEnumeratorVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : GetUpdateVars Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of the file's parent folder
+
+
+
ppoRetVariables
+
Array of IEdmVariableValue5; one interface for each variable value
+
+ +
+ +
+ + +
+
+ Gets values for the variables that can be updated in this file. + + +

Syntax

Visual Basic 
Sub GetUpdateVars( _
+   ByVal lFolderID As System.Integer, _
+   ByRef ppoRetVariables() As System.Object _
+) 
+
C# 
void GetUpdateVars( 
+   System.int lFolderID,
+   out System.object[] ppoRetVariables
+)
+
C++/CLI 
void GetUpdateVars( 
+&   System.int lFolderID,
+&   [Out] System.array<Object^>^ ppoRetVariables
+) 
+ +

Parameters

lFolderID
+
ID of the file's parent folder
ppoRetVariables
+
Array of IEdmVariableValue5; one interface for each variable value
+ +
+ + + + +

Example

+

Remarks

C++ users must call SafeArrayDestroy to free the returned array elements.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: The file is not checked out. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetVar.html new file mode 100644 index 0000000..4dfa737 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~GetVar.html @@ -0,0 +1,177 @@ + + + + + + GetVar Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVar Method (IEdmEnumeratorVariable5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : GetVar Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+
bsVarName
+
Name of variable to read
+
+
+
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
+
+
+
poRetValue
+
Variable value; data type as specified in IEdmVariable5::VariableType (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmEnumeratorVariable10::GetVar2. + + +

Syntax

Visual Basic 
Function GetVar( _
+   ByVal bsVarName As System.String, _
+   ByVal bsCfgName As System.String, _
+   ByRef poRetValue As System.Object _
+) As System.Boolean
+
C# 
System.bool GetVar( 
+   System.string bsVarName,
+   System.string bsCfgName,
+   out System.object poRetValue
+)
+
C++/CLI 
System.bool GetVar( 
+&   System.String^ bsVarName,
+&   System.String^ bsCfgName,
+&   [Out] System.Object^ poRetValue
+) 
+ +

Parameters

bsVarName
+
Name of variable to read
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations (see Remarks)
poRetValue
+
Variable value; data type as specified in IEdmVariable5::VariableType (see Remarks)
+ +

Return Value

True if the variable is found, false if not
+ + + + + +

Remarks

To specify bsCfgName:

+
    +
  • Call IEdmFile5::GetConfigurations to get the available configuration names for this file. +
  • If this method is used in your add-in's implementation of IEdmAddIn5::OnCmd, then a list of configuration names for the data card is returned in ppoData that can be cast to EdmCmdData. EdmCmdData.mpoExtra contains an IEdmStrLst5 of configuration names.
+

C++ users must initialize the VARIANT struct of poRetValue with a call to VariantInit before calling this method. They also must free the contents of the struct with a call to VariantClear. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable was not found. 
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~SetVar.html new file mode 100644 index 0000000..a5553bf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~SetVar.html @@ -0,0 +1,191 @@ + + + + + + SetVar Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmEnumeratorVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : SetVar Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+
bsVarName
+
Name of variable to write
+
+
+
bsCfgName
+
Name of configuration or layout to which to store the variable value; empty string for folders and file types that do not support configurations
+
+
+
poValue
+
Variable value
+
+
+
bOnlyIfPartOfCard
+
True to store the variable only if it is part of the file or folder data card, false to store the variable as hidden data if it is not part of the file or folder data card
+
+ +
+ +
+ + +
+
+ Sets the value of the specified variable in this file or folder. + + +

Syntax

Visual Basic 
Sub SetVar( _
+   ByVal bsVarName As System.String, _
+   ByVal bsCfgName As System.String, _
+   ByRef poValue As System.Object, _
+   Optional ByVal bOnlyIfPartOfCard As System.Boolean _
+) 
+
C# 
void SetVar( 
+   System.string bsVarName,
+   System.string bsCfgName,
+   ref System.object poValue,
+   System.bool bOnlyIfPartOfCard
+)
+
C++/CLI 
void SetVar( 
+&   System.String^ bsVarName,
+&   System.String^ bsCfgName,
+&   System.Object^% poValue,
+&   System.bool bOnlyIfPartOfCard
+) 
+ +

Parameters

bsVarName
+
Name of variable to write
bsCfgName
+
Name of configuration or layout to which to store the variable value; empty string for folders and file types that do not support configurations
poValue
+
Variable value
bOnlyIfPartOfCard
+
True to store the variable only if it is part of the file or folder data card, false to store the variable as hidden data if it is not part of the file or folder data card
+ +
+ + + + +

Example

+

Remarks

To specify bsCfgName:

+
    +
  • Call IEdmFile5::GetConfigurations to get the available configuration names for this file. +
  • If this method is used in your add-in's implementation of IEdmAddIn5::OnCmd, then a list of configuration names for the data card is returned in ppoData that can be cast to EdmCmdData. EdmCmdData.mpoExtra contains an IEdmStrLst5 of configuration names.
+

After calling this method to update the variables that can be updated, you must call IEdmEnumeratorVariable5::Flush or IEdmEnumeratorVariable8::CloseFile with the bFlush argument set to true in order to ensure that the changes are saved properly to the file or folder.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable was not found, and bOnlyIfPartOfCard is true. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: The file is not checked out.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~StoreValuesFromDatabase.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~StoreValuesFromDatabase.html new file mode 100644 index 0000000..c6eaef2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable5~StoreValuesFromDatabase.html @@ -0,0 +1,174 @@ + + + + + + StoreValuesFromDatabase Method (IEdmEnumeratorVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StoreValuesFromDatabase Method (IEdmEnumeratorVariable5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable5 Interface + : StoreValuesFromDatabase Method (IEdmEnumeratorVariable5)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of the file's parent folder
+
+
+
bOnlyMissingValues
+
True to only copy variables without a value, false to copy all variables
+
+
+
poProgressCb
+
Not used
+
+ +
+ +
+ + +
+
+ Copies file data card data from the SOLIDWORKS PDM Professional database to the file. + + +

Syntax

Visual Basic 
Sub StoreValuesFromDatabase( _
+   ByVal lFolderID As System.Integer, _
+   ByVal bOnlyMissingValues As System.Boolean, _
+   Optional ByVal poProgressCb As EdmCallback _
+) 
+
C# 
void StoreValuesFromDatabase( 
+   System.int lFolderID,
+   System.bool bOnlyMissingValues,
+   EdmCallback poProgressCb
+)
+
C++/CLI 
void StoreValuesFromDatabase( 
+&   System.int lFolderID,
+&   System.bool bOnlyMissingValues,
+&   EdmCallback^ poProgressCb
+) 
+ +

Parameters

lFolderID
+
ID of the file's parent folder
bOnlyMissingValues
+
True to only copy variables without a value, false to copy all variables
poProgressCb
+
Not used
+ +
+ + + + + +

Remarks

This method corresponds to the SOLIDWORKS PDM Professional user interface right-click menu command, Update File Attributes from Database.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_FILE: The file format is not recognized. +
  • E_EDM_FILE_SHARE_ERROR: The file is exclusively opened in another application. +
  • E_EDM_IO_ERROR: Error writing data to the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6.html new file mode 100644 index 0000000..6a73b58 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6.html @@ -0,0 +1,141 @@ + + + + + + IEdmEnumeratorVariable6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable6 
+   Inherits IEdmEnumeratorVariable5 
+
C# 
public interface IEdmEnumeratorVariable6 : IEdmEnumeratorVariable5  
+
C++/CLI 
public interface class IEdmEnumeratorVariable6 : public IEdmEnumeratorVariable5  
+
+ +

Example

See the example for IEdmEnumeratorVariable8. +
+ +

Remarks

This interface:

+ +

See the Remarks for IEdmEnumeratorVariable5.

+

If you want to update variables in several files or folders, use IEdmBatchUpdate2, which is more efficient than this interface.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_members.html new file mode 100644 index 0000000..3d3e108 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmEnumeratorVariable6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable6.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetVarFromDbReads a variable from the SOLIDWORKS PDM Professional database.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_methods.html new file mode 100644 index 0000000..c9212fb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmEnumeratorVariable6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable6 members.

+

Public Methods

+ +
 NameDescription
 MethodGetVarFromDbReads a variable from the SOLIDWORKS PDM Professional database.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6~GetVarFromDb.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6~GetVarFromDb.html new file mode 100644 index 0000000..fa0d337 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable6~GetVarFromDb.html @@ -0,0 +1,172 @@ + + + + + + GetVarFromDb Method (IEdmEnumeratorVariable6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVarFromDb Method (IEdmEnumeratorVariable6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable6 Interface + : GetVarFromDb Method (IEdmEnumeratorVariable6)
+ +
+ + + +
+ +
+ + +
+
+
bsVarName
+
Name of variable to read
+
+
+
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations
+
+
+
poRetValue
+
Variable value
+
+ +
+ +
+ + +
+
+ Reads a variable from the SOLIDWORKS PDM Professional database. + + +

Syntax

Visual Basic 
Function GetVarFromDb( _
+   ByVal bsVarName As System.String, _
+   ByVal bsCfgName As System.String, _
+   ByRef poRetValue As System.Object _
+) As System.Boolean
+
C# 
System.bool GetVarFromDb( 
+   System.string bsVarName,
+   System.string bsCfgName,
+   out System.object poRetValue
+)
+
C++/CLI 
System.bool GetVarFromDb( 
+&   System.String^ bsVarName,
+&   System.String^ bsCfgName,
+&   [Out] System.Object^ poRetValue
+) 
+ +

Parameters

bsVarName
+
Name of variable to read
bsCfgName
+
Name of configuration or layout from which to get the variable value; empty string for folders and file types that do not support configurations
poRetValue
+
Variable value
+ +

Return Value

True if a variable is found, false if not
+ + + + + +

Remarks

To read a variable from a checked out file, call IEdmEnumeratorVariable5::GetVar.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable is not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7.html new file mode 100644 index 0000000..1a0c845 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7.html @@ -0,0 +1,141 @@ + + + + + + IEdmEnumeratorVariable7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable7 
+   Inherits IEdmEnumeratorVariable5IEdmEnumeratorVariable6 
+
C# 
public interface IEdmEnumeratorVariable7 : IEdmEnumeratorVariable5IEdmEnumeratorVariable6  
+
C++/CLI 
public interface class IEdmEnumeratorVariable7 : public IEdmEnumeratorVariable5IEdmEnumeratorVariable6  
+
+ +

Example

See the example for IEdmEnumeratorVariable8. +
+ +

Remarks

This interface:

+ +

See the Remarks for IEdmEnumeratorVariable5.

+

If you want to update variables in several files or folders, use IEdmBatchUpdate2, which is more efficient than this interface.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_members.html new file mode 100644 index 0000000..6f8eb6d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmEnumeratorVariable7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable7.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGenerateDefaultValuesGenerates all default values that have not been generated before.  
 MethodGetSerNoVarGets the IDs of all variables that have the specified serial number.  
 MethodGetVersionVarsGets the values of variables of the specified version directly from the database.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_methods.html new file mode 100644 index 0000000..7278b18 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmEnumeratorVariable7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable7 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGenerateDefaultValuesGenerates all default values that have not been generated before.  
 MethodGetSerNoVarGets the IDs of all variables that have the specified serial number.  
 MethodGetVersionVarsGets the values of variables of the specified version directly from the database.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GenerateDefaultValues.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GenerateDefaultValues.html new file mode 100644 index 0000000..045e01e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GenerateDefaultValues.html @@ -0,0 +1,172 @@ + + + + + + GenerateDefaultValues Method (IEdmEnumeratorVariable7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GenerateDefaultValues Method (IEdmEnumeratorVariable7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable7 Interface + : GenerateDefaultValues Method (IEdmEnumeratorVariable7)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of the file's parent folder
+
+
+
bWriteValuesToFile
+
True to write values to the file, false to write only to the database
+
+
+
ppoRetVariables
+
Array of IEdmVariableValue6 interfaces; one interface for each variable value generated (see Remarks)
+
+ +
+ +
+ + +
+
+ Generates all default values that have not been generated before. + + +

Syntax

Visual Basic 
Function GenerateDefaultValues( _
+   ByVal lFolderID As System.Integer, _
+   ByVal bWriteValuesToFile As System.Boolean, _
+   ByRef ppoRetVariables() As System.Object _
+) As System.Boolean
+
C# 
System.bool GenerateDefaultValues( 
+   System.int lFolderID,
+   System.bool bWriteValuesToFile,
+   out System.object[] ppoRetVariables
+)
+
C++/CLI 
System.bool GenerateDefaultValues( 
+&   System.int lFolderID,
+&   System.bool bWriteValuesToFile,
+&   [Out] System.array<Object^>^ ppoRetVariables
+) 
+ +

Parameters

lFolderID
+
ID of the file's parent folder
bWriteValuesToFile
+
True to write values to the file, false to write only to the database
ppoRetVariables
+
Array of IEdmVariableValue6 interfaces; one interface for each variable value generated (see Remarks)
+ +

Return Value

True if values were generated, false if not
+ + + + + +

Remarks

If bWriteValuesToFile is false, then the caller is responsible for writing the values to the file.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: No values needed to be generated.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetSerNoVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetSerNoVar.html new file mode 100644 index 0000000..cd6cfca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetSerNoVar.html @@ -0,0 +1,171 @@ + + + + + + GetSerNoVar Method (IEdmEnumeratorVariable7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSerNoVar Method (IEdmEnumeratorVariable7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable7 Interface + : GetSerNoVar Method (IEdmEnumeratorVariable7)
+ +
+ + + +
+ +
+ + +
+
+
bsSerNoName
+
Serial number of variables to find
+
+
+
lFolderID
+
ID of the file's parent folder; 0 if the file is not shared
+
+
+
ppoRetIDs
+
Array of IDs of variables with bSerNoName
+
+ +
+ +
+ + +
+
+ Gets the IDs of all variables that have the specified serial number. + + +

Syntax

Visual Basic 
Sub GetSerNoVar( _
+   ByVal bsSerNoName As System.String, _
+   ByVal lFolderID As System.Integer, _
+   ByRef ppoRetIDs() As System.Integer _
+) 
+
C# 
void GetSerNoVar( 
+   System.string bsSerNoName,
+   System.int lFolderID,
+   out System.int[] ppoRetIDs
+)
+
C++/CLI 
void GetSerNoVar( 
+&   System.String^ bsSerNoName,
+&   System.int lFolderID,
+&   [Out] System.array<int>^ ppoRetIDs
+) 
+ +

Parameters

bsSerNoName
+
Serial number of variables to find
lFolderID
+
ID of the file's parent folder; 0 if the file is not shared
ppoRetIDs
+
Array of IDs of variables with bSerNoName
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetVersionVars.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetVersionVars.html new file mode 100644 index 0000000..c3c0fd2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable7~GetVersionVars.html @@ -0,0 +1,191 @@ + + + + + + GetVersionVars Method (IEdmEnumeratorVariable7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVersionVars Method (IEdmEnumeratorVariable7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable7 Interface + : GetVersionVars Method (IEdmEnumeratorVariable7)
+ +
+ + + +
+ +
+ + +
+
+
oVersion
+
Version number of variables to get; 0 to get the latest version
+
+
+
lFolderID
+
ID of the file's parent folder; 0 if the file is not shared
+
+
+
ppoRetVariables
+
Array of IEdmVariableValue6 interfaces; one interface for each variable value
+
+
+
ppoRetConfigs
+
Array of configuration or layout names
+
+
+
poRetData
+
EdmGetVarData; extra information about the file
+
+ +
+ +
+ + +
+
+ Gets the values of variables of the specified version directly from the database. + + +

Syntax

Visual Basic 
Sub GetVersionVars( _
+   ByVal oVersion As System.Object, _
+   ByVal lFolderID As System.Integer, _
+   ByRef ppoRetVariables() As System.Object, _
+   ByRef ppoRetConfigs() As System.String, _
+   ByRef poRetData As EdmGetVarData _
+) 
+
C# 
void GetVersionVars( 
+   System.object oVersion,
+   System.int lFolderID,
+   out System.object[] ppoRetVariables,
+   out System.string[] ppoRetConfigs,
+   out EdmGetVarData poRetData
+)
+
C++/CLI 
void GetVersionVars( 
+&   System.Object^ oVersion,
+&   System.int lFolderID,
+&   [Out] System.array<Object^>^ ppoRetVariables,
+&   [Out] System.array<String^>^ ppoRetConfigs,
+&   [Out] EdmGetVarData poRetData
+) 
+ +

Parameters

oVersion
+
Version number of variables to get; 0 to get the latest version
lFolderID
+
ID of the file's parent folder; 0 if the file is not shared
ppoRetVariables
+
Array of IEdmVariableValue6 interfaces; one interface for each variable value
ppoRetConfigs
+
Array of configuration or layout names
poRetData
+
EdmGetVarData; extra information about the file
+ +
+ + + + +

Example

+

Remarks

In previous versions of the API, you had to call IEdmFile5::GetFileCopy get a local copy of a file and then call IEdmFile5::GetEnumeratorVariable to read variables. This method is more efficient, because it retrieves the variable values directly from the database, removing the need to retrieve the file first.

+

When retrieving several variables, it is more efficient to use this method instead of multiple calls to IEdmEnumeratorVariable5::GetVar.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html new file mode 100644 index 0000000..5ab4bc3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html @@ -0,0 +1,143 @@ + + + + + + IEdmEnumeratorVariable8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable8 
+   Inherits IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7 
+
C# 
public interface IEdmEnumeratorVariable8 : IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7  
+
C++/CLI 
public interface class IEdmEnumeratorVariable8 : public IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7  
+
+ + + +

Example

+

Remarks

This interface:

+ +

See the Remarks for IEdmEnumeratorVariable5.

+

If you want to update variables in several files or folders, use IEdmBatchUpdate2, which is more efficient than this interface.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_members.html new file mode 100644 index 0000000..196f9c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmEnumeratorVariable8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable8.

+ + +

Public Methods

+ +
 NameDescription
 MethodCloseFileCloses the file that is open for access by this interface.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_methods.html new file mode 100644 index 0000000..93fcab9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmEnumeratorVariable8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable8 members.

+

Public Methods

+ +
 NameDescription
 MethodCloseFileCloses the file that is open for access by this interface.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8~CloseFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8~CloseFile.html new file mode 100644 index 0000000..e4242db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8~CloseFile.html @@ -0,0 +1,158 @@ + + + + + + CloseFile Method (IEdmEnumeratorVariable8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CloseFile Method (IEdmEnumeratorVariable8)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable8 Interface + : CloseFile Method (IEdmEnumeratorVariable8)
+ +
+ + + +
+ +
+ + +
+
+
bFlush
+
True to call IEdmEnumeratorVariable5::Flush before closing the file, false to not
+
+ +
+ +
+ + +
+
+ Closes the file that is open for access by this interface. + + +

Syntax

Visual Basic 
Sub CloseFile( _
+   ByVal bFlush As System.Boolean _
+) 
+
C# 
void CloseFile( 
+   System.bool bFlush
+)
+
C++/CLI 
void CloseFile( 
+&   System.bool bFlush
+) 
+ +

Parameters

bFlush
+
True to call IEdmEnumeratorVariable5::Flush before closing the file, false to not
+ +
+ + + + +

Example

+

Remarks

After closing the file using this method, none of the other methods in this interface work.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9.html new file mode 100644 index 0000000..78631b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9.html @@ -0,0 +1,141 @@ + + + + + + IEdmEnumeratorVariable9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable9 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVariable9 
+   Inherits IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7IEdmEnumeratorVariable8 
+ +
C++/CLI 
public interface class IEdmEnumeratorVariable9 : public IEdmEnumeratorVariable5IEdmEnumeratorVariable6IEdmEnumeratorVariable7IEdmEnumeratorVariable8  
+
+ + + + +

Remarks

This interface:

+ +

See the Remarks for IEdmEnumeratorVariable5.

+

If you want to update variables in several files or folders, use IEdmBatchUpdate2, which is more efficient than this interface.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_members.html new file mode 100644 index 0000000..6ac0f5c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmEnumeratorVariable9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVariable9.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetValueVariablesSets the values of file variables.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_methods.html new file mode 100644 index 0000000..a0d8a64 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmEnumeratorVariable9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVariable9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVariable9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVariable9 members.

+

Public Methods

+ +
 NameDescription
 MethodSetValueVariablesSets the values of file variables.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9~SetValueVariables.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9~SetValueVariables.html new file mode 100644 index 0000000..2ab3a77 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable9~SetValueVariables.html @@ -0,0 +1,176 @@ + + + + + + SetValueVariables Method (IEdmEnumeratorVariable9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetValueVariables Method (IEdmEnumeratorVariable9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVariable9 Interface + : SetValueVariables Method (IEdmEnumeratorVariable9)
+ +
+ + + +
+ +
+ + +
+
+
poVarNamesList
+
IEdmStrLst5; list of variable names
+
+
+
poVarValuesList
+
IEdmStrLst5; list of values for variable names in poVarNamesList
+
+
+
bsCfgName
+
Configuration name
+
+
+
bOnlyIfPartOfCard
+
True to set the variable only if the variable is part of the data card, false to always set the variable (see Remarks)
+
+ +
+ +
+ + +
+
+ Sets the values of file variables. + + +

Syntax

Visual Basic 
Sub SetValueVariables( _
+   ByVal poVarNamesList As EdmStrLst5, _
+   ByVal poVarValuesList As EdmStrLst5, _
+   ByVal bsCfgName As System.String, _
+   Optional ByVal bOnlyIfPartOfCard As System.Boolean _
+) 
+
C# 
void SetValueVariables( 
+   EdmStrLst5 poVarNamesList,
+   EdmStrLst5 poVarValuesList,
+   System.string bsCfgName,
+   System.bool bOnlyIfPartOfCard
+)
+
C++/CLI 
void SetValueVariables( 
+&   EdmStrLst5^ poVarNamesList,
+&   EdmStrLst5^ poVarValuesList,
+&   System.String^ bsCfgName,
+&   System.bool bOnlyIfPartOfCard
+) 
+ +

Parameters

poVarNamesList
+
IEdmStrLst5; list of variable names
poVarValuesList
+
IEdmStrLst5; list of values for variable names in poVarNamesList
bsCfgName
+
Configuration name
bOnlyIfPartOfCard
+
True to set the variable only if the variable is part of the data card, false to always set the variable (see Remarks)
+ +
+ + + + + +

Remarks

This method can write the value to the file if the variable is mapped to a custom property.
  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5.html new file mode 100644 index 0000000..c6f3663 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5.html @@ -0,0 +1,142 @@ + + + + + + IEdmEnumeratorVersion5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the versions and revisions of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVersion5 
+
C# 
public interface IEdmEnumeratorVersion5 
+
C++/CLI 
public interface class IEdmEnumeratorVersion5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To access this interface, cast an IEdmFile5 object to this interface.

+

A new version of a file is created every time the file has been modified and checked in. Versions are denoted by numbers (1,2,3,..,N). In addition to versions, users can also set up revisions. Revisions are user-friendly names that can be set on versions of files.

+

This interface is extended by IEdmEnumeratorVersion6.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_members.html new file mode 100644 index 0000000..54ba4b7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_members.html @@ -0,0 +1,124 @@ + + + + + + IEdmEnumeratorVersion5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVersion5.

+

Public Properties

+ + + +
 NameDescription
 PropertyLabelCountGets the number of labels set on this file.  
 PropertyRevisionCountGets the number of revisions of this file.  
 PropertyVersionCountGets the number of versions of this file.  
Top
+ +

Public Methods

+ + + + + + + + + + +
 NameDescription
 MethodCreateLabelSets a label on the latest version of this file.  
 MethodGetFileCopyRetrieves a copy of a file with the specified version from the archive and deposits it in the specified folder.  
 MethodGetFirstLabelPositionStarts an enumeration of the labels set on this file.  
 MethodGetFirstRevisionPositionStarts an enumeration of the revisions set on this file.  
 MethodGetFirstVersionPositionStarts an enumeration of the versions of this file.  
 MethodGetNextLabelGets the label at the next position of this enumeration.  
 MethodGetNextRevisionGets the revision at the next position of this enumeration.  
 MethodGetNextVersionGets the version at the next position of this enumeration.  
 MethodGetVersionGets a version object with the specified version number.  
 MethodRollbackObsolete. Superseded by IEdmEnumeratorVersion6::Rollback2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_methods.html new file mode 100644 index 0000000..4dd755e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_methods.html @@ -0,0 +1,112 @@ + + + + + + IEdmEnumeratorVersion5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVersion5 members.

+

Public Methods

+ + + + + + + + + + +
 NameDescription
 MethodCreateLabelSets a label on the latest version of this file.  
 MethodGetFileCopyRetrieves a copy of a file with the specified version from the archive and deposits it in the specified folder.  
 MethodGetFirstLabelPositionStarts an enumeration of the labels set on this file.  
 MethodGetFirstRevisionPositionStarts an enumeration of the revisions set on this file.  
 MethodGetFirstVersionPositionStarts an enumeration of the versions of this file.  
 MethodGetNextLabelGets the label at the next position of this enumeration.  
 MethodGetNextRevisionGets the revision at the next position of this enumeration.  
 MethodGetNextVersionGets the version at the next position of this enumeration.  
 MethodGetVersionGets a version object with the specified version number.  
 MethodRollbackObsolete. Superseded by IEdmEnumeratorVersion6::Rollback2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_properties.html new file mode 100644 index 0000000..587e842 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmEnumeratorVersion5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVersion5 members.

+

Public Properties

+ + + +
 NameDescription
 PropertyLabelCountGets the number of labels set on this file.  
 PropertyRevisionCountGets the number of revisions of this file.  
 PropertyVersionCountGets the number of versions of this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~CreateLabel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~CreateLabel.html new file mode 100644 index 0000000..5d02571 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~CreateLabel.html @@ -0,0 +1,165 @@ + + + + + + CreateLabel Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateLabel Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : CreateLabel Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
Name of label; maximum 255 characters
+
+
+
bsComment
+
Label comment; maximum 2000 characters
+
+ +
+ +
+ + +
+
+ Sets a label on the latest version of this file. + + +

Syntax

Visual Basic 
Function CreateLabel( _
+   ByVal bsName As System.String, _
+   ByVal bsComment As System.String _
+) As System.Integer
+
C# 
System.int CreateLabel( 
+   System.string bsName,
+   System.string bsComment
+)
+
C++/CLI 
System.int CreateLabel( 
+&   System.String^ bsName,
+&   System.String^ bsComment
+) 
+ +

Parameters

bsName
+
Name of label; maximum 255 characters
bsComment
+
Label comment; maximum 2000 characters
+ +

Return Value

ID of the label
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFileCopy.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFileCopy.html new file mode 100644 index 0000000..20fa703 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFileCopy.html @@ -0,0 +1,190 @@ + + + + + + GetFileCopy Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileCopy Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetFileCopy Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle; 0 if none
+
+
+
poVersionNoOrRevisionName
+
Version number or revision string; 0 or "" to get the latest version
+
+
+
poPathOrFolderID
+
Optional ID or path of the folder where to deposit the file; default is to deposit in all of its parent folders (see Remarks
+
+
+
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGet_MakeReadOnly
+
+
+
bsNewName
+
Optional new name for the retrieved file; "" indicates to use the file's current name
+
+ +
+ +
+ + +
+
+ Retrieves a copy of a file with the specified version from the archive and deposits it in the specified folder. + + +

Syntax

Visual Basic 
Sub GetFileCopy( _
+   ByVal lParentWnd As System.Integer, _
+   ByRef poVersionNoOrRevisionName As System.Object, _
+   Optional ByRef poPathOrFolderID As System.Object, _
+   Optional ByVal lEdmGetFlags As System.Integer, _
+   Optional ByVal bsNewName As System.String _
+) 
+
C# 
void GetFileCopy( 
+   System.int lParentWnd,
+   ref System.object poVersionNoOrRevisionName,
+   ref System.object poPathOrFolderID,
+   System.int lEdmGetFlags,
+   System.string bsNewName
+)
+
C++/CLI 
void GetFileCopy( 
+&   System.int lParentWnd,
+&   System.Object^% poVersionNoOrRevisionName,
+&   System.Object^% poPathOrFolderID,
+&   System.int lEdmGetFlags,
+&   System.String^ bsNewName
+) 
+ +

Parameters

lParentWnd
+
Parent window handle; 0 if none
poVersionNoOrRevisionName
+
Version number or revision string; 0 or "" to get the latest version
poPathOrFolderID
+
Optional ID or path of the folder where to deposit the file; default is to deposit in all of its parent folders (see Remarks
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGet_MakeReadOnly
bsNewName
+
Optional new name for the retrieved file; "" indicates to use the file's current name
+ +
+ + +

Example

See the example for IEdmFile5::GetFileCopy. +
+ +

Remarks

If you specify a folder ID of 0 in poPathOrFolderID, SOLIDWORKS PDM Professional deposits the file in all of the folders it is shared to. If you specify a path in poPathOrFolderID, it can either be a file path or a folder path. Folder paths must be terminated by a backslash ('\').

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: The file is not found in the vault. +
  • E_EDM_PERMISSION_DENIED: The user is not permitted to see the specified version of the file.  +
  • E_EDM_INVALID_REVISION_NUMBER: The revision is not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstLabelPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstLabelPosition.html new file mode 100644 index 0000000..feb8f48 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstLabelPosition.html @@ -0,0 +1,145 @@ + + + + + + GetFirstLabelPosition Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstLabelPosition Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetFirstLabelPosition Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the labels set on this file. + + +

Syntax

Visual Basic 
Function GetFirstLabelPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstLabelPosition()
+
C++/CLI 
IEdmPos5^ GetFirstLabelPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first label set on this file
+ + + + + +

Remarks

After calling this method, pass the returned first label position to IEdmEnumeratorVersion5::GetNextLabel to get the first label set on this file. Call IEdmEnumeratorVersion5::GetNextLabel repeatedly to get the rest of the labels set on this file.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstRevisionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstRevisionPosition.html new file mode 100644 index 0000000..df22d7f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstRevisionPosition.html @@ -0,0 +1,145 @@ + + + + + + GetFirstRevisionPosition Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstRevisionPosition Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetFirstRevisionPosition Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the revisions set on this file. + + +

Syntax

Visual Basic 
Function GetFirstRevisionPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstRevisionPosition()
+
C++/CLI 
IEdmPos5^ GetFirstRevisionPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first revision set on this file
+ + + + + +

Remarks

After calling this method, pass the returned first revision position to IEdmEnumeratorVersion5::GetNextRevision to get the first revision. Then call IEdmEnumeratorVersion5::GetNextRevision repeatedly to get the rest of the revisions set on this file.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstVersionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstVersionPosition.html new file mode 100644 index 0000000..6b877a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetFirstVersionPosition.html @@ -0,0 +1,147 @@ + + + + + + GetFirstVersionPosition Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstVersionPosition Method (IEdmEnumeratorVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetFirstVersionPosition Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the versions of this file. + + +

Syntax

Visual Basic 
Function GetFirstVersionPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstVersionPosition()
+
C++/CLI 
IEdmPos5^ GetFirstVersionPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first version of this file
+ + + + +

Example

+

Remarks

After calling this method, pass the returned first version position to IEdmEnumeratorVersion5::GetNextVersion to get the first version. Then call IEdmEnumeratorVersion5::GetNextVersion to get the rest of the versions of this file.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextLabel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextLabel.html new file mode 100644 index 0000000..578a1ed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextLabel.html @@ -0,0 +1,159 @@ + + + + + + GetNextLabel Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextLabel Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetNextLabel Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next label
+
+ +
+ +
+ + +
+
+ Gets the label at the next position of this enumeration. + + +

Syntax

Visual Basic 
Function GetNextLabel( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmLabel5
+
C# 
IEdmLabel5 GetNextLabel( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmLabel5^ GetNextLabel( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next label
+ +

Return Value

IEdmLabel5
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first label, IEdmPos5. Call IEdmEnumeratorVersion5::GetFirstLabelPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the labels.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextRevision.html new file mode 100644 index 0000000..b9eef65 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextRevision.html @@ -0,0 +1,159 @@ + + + + + + GetNextRevision Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextRevision Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetNextRevision Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next revision
+
+ +
+ +
+ + +
+
+ Gets the revision at the next position of this enumeration. + + +

Syntax

Visual Basic 
Function GetNextRevision( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmRevision5
+
C# 
IEdmRevision5 GetNextRevision( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmRevision5^ GetNextRevision( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next revision
+ +

Return Value

IEdmRevision5
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first revision, IEdmPos5. Call IEdmEnumeratorVersion5::GetFirstRevisionPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the revisions.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextVersion.html new file mode 100644 index 0000000..45ea6db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetNextVersion.html @@ -0,0 +1,161 @@ + + + + + + GetNextVersion Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextVersion Method (IEdmEnumeratorVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetNextVersion Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next version
+
+ +
+ +
+ + +
+
+ Gets the version at the next position of this enumeration. + + +

Syntax

Visual Basic 
Function GetNextVersion( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmVersion5
+
C# 
IEdmVersion5 GetNextVersion( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmVersion5^ GetNextVersion( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next version
+ +

Return Value

IEdmVersion5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first version, IEdmPos5. Call IEdmEnumeratorVersion5::GetFirstVersionPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the versions.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetVersion.html new file mode 100644 index 0000000..b0c7400 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~GetVersion.html @@ -0,0 +1,157 @@ + + + + + + GetVersion Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVersion Method (IEdmEnumeratorVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : GetVersion Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
lVersionNo
+
Number of version to get
+
+ +
+ +
+ + +
+
+ Gets a version object with the specified version number. + + +

Syntax

Visual Basic 
Function GetVersion( _
+   ByVal lVersionNo As System.Integer _
+) As IEdmVersion5
+
C# 
IEdmVersion5 GetVersion( 
+   System.int lVersionNo
+)
+
C++/CLI 
IEdmVersion5^ GetVersion( 
+&   System.int lVersionNo
+) 
+ +

Parameters

lVersionNo
+
Number of version to get
+ +

Return Value

IEdmVersion5
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_REVISION_NUMBER: The version number is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~LabelCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~LabelCount.html new file mode 100644 index 0000000..0cc61fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~LabelCount.html @@ -0,0 +1,147 @@ + + + + + + LabelCount Property (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LabelCount Property (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : LabelCount Property (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of labels set on this file. + + +

Syntax

Visual Basic 
ReadOnly Property LabelCount As System.Integer
+
C# 
System.int LabelCount {get;}
+
C++/CLI 
property System.int LabelCount {
+   System.int get();
+}
+ + + +

Property Value

Number of labels
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~RevisionCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~RevisionCount.html new file mode 100644 index 0000000..65f9206 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~RevisionCount.html @@ -0,0 +1,147 @@ + + + + + + RevisionCount Property (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RevisionCount Property (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : RevisionCount Property (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of revisions of this file. + + +

Syntax

Visual Basic 
ReadOnly Property RevisionCount As System.Integer
+
C# 
System.int RevisionCount {get;}
+
C++/CLI 
property System.int RevisionCount {
+   System.int get();
+}
+ + + +

Property Value

Number of revisions
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~Rollback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~Rollback.html new file mode 100644 index 0000000..d620567 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~Rollback.html @@ -0,0 +1,160 @@ + + + + + + Rollback Method (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback Method (IEdmEnumeratorVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : Rollback Method (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+
lVersionNo
+
Version number to which to roll this file back (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmEnumeratorVersion6::Rollback2. + + +

Syntax

Visual Basic 
Sub Rollback( _
+   ByVal lVersionNo As System.Integer _
+) 
+
C# 
void Rollback( 
+   System.int lVersionNo
+)
+
C++/CLI 
void Rollback( 
+&   System.int lVersionNo
+) 
+ +

Parameters

lVersionNo
+
Version number to which to roll this file back (see Remarks)
+ +
+ + + + + +

Remarks

This method destroys all versions after the version specified by lVersionNo. There is no undoing of the operation short of restoring a backup of the entire database and file archives.

+

After this method completes successfully, lVersionNo is the new latest version of the file.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_REVISION_NUMBER: The specified version number is out of bounds.  +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~VersionCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~VersionCount.html new file mode 100644 index 0000000..ca1018d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion5~VersionCount.html @@ -0,0 +1,149 @@ + + + + + + VersionCount Property (IEdmEnumeratorVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionCount Property (IEdmEnumeratorVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion5 Interface + : VersionCount Property (IEdmEnumeratorVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of versions of this file. + + +

Syntax

Visual Basic 
ReadOnly Property VersionCount As System.Integer
+
C# 
System.int VersionCount {get;}
+
C++/CLI 
property System.int VersionCount {
+   System.int get();
+}
+ + + +

Property Value

Number of versions
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6.html new file mode 100644 index 0000000..f0f599b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6.html @@ -0,0 +1,139 @@ + + + + + + IEdmEnumeratorVersion6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the versions and revisions of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVersion6 
+   Inherits IEdmEnumeratorVersion5 
+
C# 
public interface IEdmEnumeratorVersion6 : IEdmEnumeratorVersion5  
+
C++/CLI 
public interface class IEdmEnumeratorVersion6 : public IEdmEnumeratorVersion5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_members.html new file mode 100644 index 0000000..cdc0d04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmEnumeratorVersion6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVersion6.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmEnumeratorVersion7::Rollback3.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_methods.html new file mode 100644 index 0000000..6e87e29 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmEnumeratorVersion6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVersion6 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmEnumeratorVersion7::Rollback3.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6~Rollback2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6~Rollback2.html new file mode 100644 index 0000000..dd69035 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion6~Rollback2.html @@ -0,0 +1,168 @@ + + + + + + Rollback2 Method (IEdmEnumeratorVersion6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback2 Method (IEdmEnumeratorVersion6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion6 Interface + : Rollback2 Method (IEdmEnumeratorVersion6)
+ +
+ + + +
+ +
+ + +
+
+
lVersionNo
+
Version number to which to roll this file back (see Remarks)
+
+
+
bsComment
+
Comment for the rollback
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmEnumeratorVersion7::Rollback3. + + +

Syntax

Visual Basic 
Sub Rollback2( _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsComment As System.String _
+) 
+
C# 
void Rollback2( 
+   System.int lVersionNo,
+   System.string bsComment
+)
+
C++/CLI 
void Rollback2( 
+&   System.int lVersionNo,
+&   System.String^ bsComment
+) 
+ +

Parameters

lVersionNo
+
Version number to which to roll this file back (see Remarks)
bsComment
+
Comment for the rollback
+ +
+ + + + + +

Remarks

This method destroys all versions after the version specified by lVersionNo. There is no undoing of the operation short of restoring a backup of the entire database and file archives.

+

After this method completes successfully, lVersionNo is the new latest version of the file.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_REVISION_NUMBER: The specified version number is out of bounds.  +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7.html new file mode 100644 index 0000000..2b9ba85 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7.html @@ -0,0 +1,138 @@ + + + + + + IEdmEnumeratorVersion7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the versions and revisions of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmEnumeratorVersion7 
+   Inherits IEdmEnumeratorVersion5IEdmEnumeratorVersion6 
+
C# 
public interface IEdmEnumeratorVersion7 : IEdmEnumeratorVersion5IEdmEnumeratorVersion6  
+
C++/CLI 
public interface class IEdmEnumeratorVersion7 : public IEdmEnumeratorVersion5IEdmEnumeratorVersion6  
+
+ + + +

Example

+

Remarks

This interface extends IEdmEnumeratorVersion6.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_members.html new file mode 100644 index 0000000..6622101 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmEnumeratorVersion7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmEnumeratorVersion7.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback3Rolls this file back to the specified version.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_methods.html new file mode 100644 index 0000000..a2d1af4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmEnumeratorVersion7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmEnumeratorVersion7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmEnumeratorVersion7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmEnumeratorVersion7 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback3Rolls this file back to the specified version.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7~Rollback3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7~Rollback3.html new file mode 100644 index 0000000..eb7026b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVersion7~Rollback3.html @@ -0,0 +1,176 @@ + + + + + + Rollback3 Method (IEdmEnumeratorVersion7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback3 Method (IEdmEnumeratorVersion7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnumeratorVersion7 Interface + : Rollback3 Method (IEdmEnumeratorVersion7)
+ +
+ + + +
+ +
+ + +
+
+
lVersionNo
+
Version number to which to roll this file back (see Remarks)
+
+
+
bsComment
+
Comment for the rollback
+
+
+
vbRedirectParentRefs
+
True to roll back the file with parent references, false to roll back the file without parent references
+
+ +
+ +
+ + +
+
+ Rolls this file back to the specified version. + + +

Syntax

Visual Basic 
Sub Rollback3( _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsComment As System.String, _
+   ByVal vbRedirectParentRefs As System.Boolean _
+) 
+
C# 
void Rollback3( 
+   System.int lVersionNo,
+   System.string bsComment,
+   System.bool vbRedirectParentRefs
+)
+
C++/CLI 
void Rollback3( 
+&   System.int lVersionNo,
+&   System.String^ bsComment,
+&   System.bool vbRedirectParentRefs
+) 
+ +

Parameters

lVersionNo
+
Version number to which to roll this file back (see Remarks)
bsComment
+
Comment for the rollback
vbRedirectParentRefs
+
True to roll back the file with parent references, false to roll back the file without parent references
+ +
+ + + + + +

Remarks

This method destroys all versions after the version specified by lVersionNo. There is no undoing of the operation short of restoring a backup of the entire database and file archives.

+

After this method completes successfully, lVersionNo is the new latest version of the file.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_REVISION_NUMBER: The specified version number is out of bounds.  +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Count.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Count.html new file mode 100644 index 0000000..b49b02e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Count.html @@ -0,0 +1,147 @@ + + + + + + Count Property (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Count Property (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : Count Property (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of elements in the list. + + +

Syntax

Visual Basic 
ReadOnly Property Count As System.Integer
+
C# 
System.int Count {get;}
+
C++/CLI 
property System.int Count {
+   System.int get();
+}
+ + + +

Property Value

Number of elements in the list
+ + +

Example

See the IEdmEnum examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Current.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Current.html new file mode 100644 index 0000000..b4b213c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Current.html @@ -0,0 +1,147 @@ + + + + + + Current Property (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Current Property (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : Current Property (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the element at the enumeration cursor. + + +

Syntax

Visual Basic 
ReadOnly Property Current As System.Object
+
C# 
System.object Current {get;}
+
C++/CLI 
property System.Object^ Current {
+   System.Object^ get();
+}
+ + + +

Property Value

Element at the cursor
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetAt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetAt.html new file mode 100644 index 0000000..1dbf0ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetAt.html @@ -0,0 +1,156 @@ + + + + + + GetAt Method (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetAt Method (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : GetAt Method (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+
lIndex
+
Zero-based index of the element to retrieve
+
+ +
+ +
+ + +
+
+ Gets the element at the specified position in the list. + + +

Syntax

Visual Basic 
Function GetAt( _
+   ByVal lIndex As System.Integer _
+) As System.Object
+
C# 
System.object GetAt( 
+   System.int lIndex
+)
+
C++/CLI 
System.Object^ GetAt( 
+&   System.int lIndex
+) 
+ +

Parameters

lIndex
+
Zero-based index of the element to retrieve
+ +

Return Value

Element at the specified position
+ + + + + +

Remarks

To enumerate a list, call IEdmEnum::MoveNext and IEdmEnum::Current, both of which are more efficient than this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: The specified index is outside the range of this list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetEnumerator.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetEnumerator.html new file mode 100644 index 0000000..adb09b7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~GetEnumerator.html @@ -0,0 +1,140 @@ + + + + + + GetEnumerator Method (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetEnumerator Method (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : GetEnumerator Method (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets a pointer to this interface. + + +

Syntax

Visual Basic 
Function GetEnumerator() As IEdmEnum
+
C# 
IEdmEnum GetEnumerator()
+
C++/CLI 
IEdmEnum^ GetEnumerator(); 
+ + + +

Return Value

IEdmEnum
+ + + + + +

Remarks

This method is used implicitly in the For Each command loops of .NET programs.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~MoveNext.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~MoveNext.html new file mode 100644 index 0000000..724af00 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~MoveNext.html @@ -0,0 +1,145 @@ + + + + + + MoveNext Method (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MoveNext Method (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : MoveNext Method (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Forwards the enumeration cursor to the next element in the list. + + +

Syntax

Visual Basic 
Function MoveNext() As System.Boolean
+
C# 
System.bool MoveNext()
+
C++/CLI 
System.bool MoveNext(); 
+ + + +

Return Value

True if the cursor moved to the next element successfully, false if not
+ + + + + +

Remarks

This method is used implicitly in the For Each command loops of .NET programs.

+

After calling this method, call IEdmEnum::Current to access the element currently pointed to by the enumerator's cursor.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Reset.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Reset.html new file mode 100644 index 0000000..61f28d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnum~Reset.html @@ -0,0 +1,144 @@ + + + + + + Reset Method (IEdmEnum) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Reset Method (IEdmEnum)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmEnum Interface + : Reset Method (IEdmEnum)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Resets the enumerator's cursor to the position before the first element in the list. + + +

Syntax

Visual Basic 
Sub Reset() 
+
C# 
void Reset()
+
C++/CLI 
void Reset(); 
+ + + +
+ + + + + +

Remarks

After calling this method, you must call IEdmEnum::MoveNext before you can call IEdmEnum::Current to get the first element in the list.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10.html new file mode 100644 index 0000000..e816d70 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10.html @@ -0,0 +1,140 @@ + + + + + + IEdmFile10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile10 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile10 
+   Inherits IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+
C# 
public interface IEdmFile10 : IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
C++/CLI 
public interface class IEdmFile10 : public IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmFile9 by supporting password-protected workflow transitions. +
  • is extended by IEdmFile11.
+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_members.html new file mode 100644 index 0000000..89f5f33 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile10.

+ + +

Public Methods

+ +
 NameDescription
 MethodChangeState2Obsolete. Superseded by IEdmFile13::ChangeState3.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_methods.html new file mode 100644 index 0000000..ca254cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile10 members.

+

Public Methods

+ +
 NameDescription
 MethodChangeState2Obsolete. Superseded by IEdmFile13::ChangeState3.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10~ChangeState2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10~ChangeState2.html new file mode 100644 index 0000000..1c81ea3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile10~ChangeState2.html @@ -0,0 +1,206 @@ + + + + + + ChangeState2 Method (IEdmFile10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState2 Method (IEdmFile10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile10 Interface + : ChangeState2 Method (IEdmFile10)
+ +
+ + + +
+ +
+ + +
+
+
poStateIdOrName
+

Workflow state ID or name or IEdmState5 to which this file transitions (see Remarks)

+
+
+
lFolderID
+
ID of the file's active parent folder
+
+
+
bsComment
+
Comment saved to the transition history
+
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
+
+
+
bsPasswd
+

Optional password of user executing the transition

+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile13::ChangeState3. + + +

Syntax

Visual Basic 
Sub ChangeState2( _
+   ByRef poStateIdOrName As System.Object, _
+   ByVal lFolderID As System.Integer, _
+   ByVal bsComment As System.String, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lEdmStateFlags As System.Integer, _
+   Optional ByVal bsPasswd As System.String _
+) 
+
C# 
void ChangeState2( 
+   ref System.object poStateIdOrName,
+   System.int lFolderID,
+   System.string bsComment,
+   System.int lParentWnd,
+   System.int lEdmStateFlags,
+   System.string bsPasswd
+)
+
C++/CLI 
void ChangeState2( 
+&   System.Object^% poStateIdOrName,
+&   System.int lFolderID,
+&   System.String^ bsComment,
+&   System.int lParentWnd,
+&   System.int lEdmStateFlags,
+&   System.String^ bsPasswd
+) 
+ +

Parameters

poStateIdOrName
+

Workflow state ID or name or IEdmState5 to which this file transitions (see Remarks)

lFolderID
+
ID of the file's active parent folder
bsComment
+
Comment saved to the transition history
lParentWnd
+
Parent window handle
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
bsPasswd
+

Optional password of user executing the transition

+ +
+ + + + + +

Remarks

The difference between this method and the now obsolete IEdmFile5::ChangeState is that this method requires a user password.

+

There must be a transition between the current state and poStateIdOrName, or this method fails.

+

It is possible to create multiple workflows with two or more states having the same name. If poStateIdOrName contains the name of the destination state instead of its ID, and if several transitions from the file’s current state lead to new states all having the same name, SOLIDWORKS PDM Professional randomly selects one of them. To be sure to which state the file transitions, specify a state ID in poStateIdOrName.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_STATECHANGE_FAILED: The password is invalid. +
  • E_EDM_TRANSITION_ACTION_FAILED: One of the transition actions set up in the workflow failed. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the EdmCmdType.EdmCmd_PreState hooks did not permit the operation. +
  • E_EDM_FILE_IS_LOCKED: The file is checked out. Changing state is only permitted on checked-in files. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks permission to change state. +
  • E_EDM_CONDITIONS_NOT_MET: The conditions set up in the Workflow Editor for this transition were not met. +
  • E_EDM_STATE_NOT_FOUND: There is no transition going from the file's current state to the specified state.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP02
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11.html new file mode 100644 index 0000000..7545806 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11.html @@ -0,0 +1,142 @@ + + + + + + IEdmFile11 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile11 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile11 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile11 
+   Inherits IEdmFile10IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+
C# 
public interface IEdmFile11 : IEdmFile10IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
C++/CLI 
public interface class IEdmFile11 : public IEdmFile10IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface extends:

+
    +
  • extends IEdmFile10 by providing the ability to get whether a file is in a private state. +
  • is extended by IEdmFile12.
+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_members.html new file mode 100644 index 0000000..5d27ddd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile11 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile11 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile11 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile11.

+

Public Properties

+ +
 NameDescription
 PropertyPrivateStateFileGets whether this file is in a private state.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_properties.html new file mode 100644 index 0000000..1e6fe6d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmFile11 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile11 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile11 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile11 members.

+

Public Properties

+ +
 NameDescription
 PropertyPrivateStateFileGets whether this file is in a private state.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11~PrivateStateFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11~PrivateStateFile.html new file mode 100644 index 0000000..fad34d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile11~PrivateStateFile.html @@ -0,0 +1,152 @@ + + + + + + PrivateStateFile Property (IEdmFile11) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
PrivateStateFile Property (IEdmFile11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile11 Interface + : PrivateStateFile Property (IEdmFile11)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this file is in a private state. + + +

Syntax

Visual Basic 
ReadOnly Property PrivateStateFile As System.Boolean
+
C# 
System.bool PrivateStateFile {get;}
+
C++/CLI 
property System.bool PrivateStateFile {
+   System.bool get();
+}
+ + + +

Property Value

True if this file is in a private state, false if not
+ + + + +

Example

+

Remarks

Files in a private state:

+
    +
  • are accessible only to the user adding them and the SOLIDWORKS PDM Professional Admin user. +
  • have no assigned workflow or category.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP02
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12.html new file mode 100644 index 0000000..a1e93be --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12.html @@ -0,0 +1,142 @@ + + + + + + IEdmFile12 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile12 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile12 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile12 
+   Inherits IEdmFile10IEdmFile11IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+
C# 
public interface IEdmFile12 : IEdmFile10IEdmFile11IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
C++/CLI 
public interface class IEdmFile12 : public IEdmFile10IEdmFile11IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmFile11 by providing the ability to get the local version of a file.  +
  • is extended by IEdmFile13.
+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_members.html new file mode 100644 index 0000000..ea10592 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile12 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile12 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile12 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile12.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetLocalVersionNo2Gets the version number of the local copy of this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_methods.html new file mode 100644 index 0000000..c101f83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile12 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile12 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile12 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile12 members.

+

Public Methods

+ +
 NameDescription
 MethodGetLocalVersionNo2Gets the version number of the local copy of this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12~GetLocalVersionNo2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12~GetLocalVersionNo2.html new file mode 100644 index 0000000..54cd165 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile12~GetLocalVersionNo2.html @@ -0,0 +1,165 @@ + + + + + + GetLocalVersionNo2 Method (IEdmFile12) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalVersionNo2 Method (IEdmFile12)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile12 Interface + : GetLocalVersionNo2 Method (IEdmFile12)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of a folder, full file path, or folder path of the local copy of this file (see Remarks)
+
+
+
pbLocalOverwrittenVersionObsolete
+
True if the file in the user's local cache is obsolete, false if it is valid (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the version number of the local copy of this file. + + +

Syntax

Visual Basic 
Function GetLocalVersionNo2( _
+   ByRef poPathOrFolderID As System.Object, _
+   ByRef pbLocalOverwrittenVersionObsolete As System.Boolean _
+) As System.Integer
+
C# 
System.int GetLocalVersionNo2( 
+   ref System.object poPathOrFolderID,
+   out System.bool pbLocalOverwrittenVersionObsolete
+)
+
C++/CLI 
System.int GetLocalVersionNo2( 
+&   System.Object^% poPathOrFolderID,
+&   [Out] System.bool pbLocalOverwrittenVersionObsolete
+) 
+ +

Parameters

poPathOrFolderID
+
ID of a folder, full file path, or folder path of the local copy of this file (see Remarks)
pbLocalOverwrittenVersionObsolete
+
True if the file in the user's local cache is obsolete, false if it is valid (see Remarks)
+ +

Return Value

Version number; -1 if the local copy does not match any version in the archive
+ + + + + +

Remarks

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

pbLocalOverwrittenVersionObsolete gets whether a file in a user's local cache is obsolete because the file was overwritten by another user who checked out the file, modified the file, and checked in the file.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13.html new file mode 100644 index 0000000..4d7da9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13.html @@ -0,0 +1,144 @@ + + + + + + IEdmFile13 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile13 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile13 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile13 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+
C# 
public interface IEdmFile13 : IEdmFile10IEdmFile11IEdmFile12IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
C++/CLI 
public interface class IEdmFile13 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+

extends IEdmFile12 by providing the ability to:

+
    +
  • select which transition to use when changing state. +
  • get a thumbnail, if available, of a file.
+

is extended by IEdmFile14.

+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_members.html new file mode 100644 index 0000000..8a64009 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmFile13 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile13 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile13 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile13.

+ + +

Public Methods

+ + +
 NameDescription
 MethodChangeState3Changes the workflow state of this file.  
 MethodGetThumbnailObsolete. Superseded by IEdmFile15::GetThumbnail2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_methods.html new file mode 100644 index 0000000..baa4c45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmFile13 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile13 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile13 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile13 members.

+

Public Methods

+ + +
 NameDescription
 MethodChangeState3Changes the workflow state of this file.  
 MethodGetThumbnailObsolete. Superseded by IEdmFile15::GetThumbnail2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~ChangeState3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~ChangeState3.html new file mode 100644 index 0000000..3e67cf1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~ChangeState3.html @@ -0,0 +1,211 @@ + + + + + + ChangeState3 Method (IEdmFile13) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState3 Method (IEdmFile13)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile13 Interface + : ChangeState3 Method (IEdmFile13)
+ +
+ + + +
+ +
+ + +
+
+
poStateIdOrName
+
Workflow state ID or name or IEdmState5 to which this file transitions
+
+
+
poTransitionIdOrName
+
ID or name of the workflow transition to use to change states (see Remarks)
+
+
+
lFolderID
+
ID of the file's active parent folder
+
+
+
bsComment
+
Comment saved to the transition history
+
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
+
+
+
bsPasswd
+
Password of user executing the transition (see Remarks)
+
+ +
+ +
+ + +
+
+ Changes the workflow state of this file. + + +

Syntax

Visual Basic 
Sub ChangeState3( _
+   ByRef poStateIdOrName As System.Object, _
+   ByRef poTransitionIdOrName As System.Object, _
+   ByVal lFolderID As System.Integer, _
+   ByVal bsComment As System.String, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lEdmStateFlags As System.Integer, _
+   Optional ByVal bsPasswd As System.String _
+) 
+
C# 
void ChangeState3( 
+   ref System.object poStateIdOrName,
+   ref System.object poTransitionIdOrName,
+   System.int lFolderID,
+   System.string bsComment,
+   System.int lParentWnd,
+   System.int lEdmStateFlags,
+   System.string bsPasswd
+)
+
C++/CLI 
void ChangeState3( 
+&   System.Object^% poStateIdOrName,
+&   System.Object^% poTransitionIdOrName,
+&   System.int lFolderID,
+&   System.String^ bsComment,
+&   System.int lParentWnd,
+&   System.int lEdmStateFlags,
+&   System.String^ bsPasswd
+) 
+ +

Parameters

poStateIdOrName
+
Workflow state ID or name or IEdmState5 to which this file transitions
poTransitionIdOrName
+
ID or name of the workflow transition to use to change states (see Remarks)
lFolderID
+
ID of the file's active parent folder
bsComment
+
Comment saved to the transition history
lParentWnd
+
Parent window handle
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
bsPasswd
+
Password of user executing the transition (see Remarks)
+ +
+ + +

Example

See the IEdmFile13 examples. +
+ +

Remarks

Specify poTransitionIdOrName to unambiguously specify how to transition to the new state specified by poStateIdOrName.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_STATECHANGE_FAILED: The password is invalid. +
  • E_EDM_TRANSITION_ACTION_FAILED: One of the transition actions set up in the workflow failed. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the EdmCmdType.EdmCmd_PreState hooks did not permit the operation. +
  • E_EDM_FILE_IS_LOCKED: The file is checked out. Changing state is only permitted on checked-in files. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks permission to change state. +
  • E_EDM_CONDITIONS_NOT_MET: The conditions set up in the Workflow Editor for this transition were not met. +
  • E_EDM_STATE_NOT_FOUND: There is no transition going from the file's current state to the specified state.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~GetThumbnail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~GetThumbnail.html new file mode 100644 index 0000000..97901b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile13~GetThumbnail.html @@ -0,0 +1,149 @@ + + + + + + GetThumbnail Method (IEdmFile13) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetThumbnail Method (IEdmFile13)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile13 Interface + : GetThumbnail Method (IEdmFile13)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile15::GetThumbnail2. + + +

Syntax

Visual Basic 
Function GetThumbnail() As System.Object
+
C# 
System.object GetThumbnail()
+
C++/CLI 
System.Object^ GetThumbnail(); 
+ + + +

Return Value

IPicture
+ + +

Example

'This code snippet demonstrates how to convert the IPicture object returned by this method to a usable bitmap.

+

VB.NET:

Imports stdole
+Imports System
+Imports System.Drawing
+Imports System.Windows.Forms
+
Module Module1

Sub Main() +
       ...
+
       Dim objBitMap As Object = aFile.GetThumbnail
Dim imgPreview As System.Drawing.Image = PictureDispConverter.Convert(objBitMap)
imgPreview.Save(sExtractDir + sFilename + ".bmp", Drawing.Imaging.ImageFormat.Bmp)
imgPreview.Dispose()

End Sub

End Module


'Class1
Public Class PictureDispConverter

Inherits System.Windows.Forms.AxHost

Public Sub New()
MyBase.New("GUID_format5_value")
End Sub

Public Shared Function Convert(ByVal objIDispImage As Object) As System.Drawing.Image
Dim objPicture As System.Drawing.Image
objPicture = CType(System.Windows.Forms.AxHost.GetPictureFromIPicture(objIDispImage), System.Drawing.Image)
Return objPicture
End Function

End Class +
+
+ +

Remarks

If a thumbnail of this file is not available, this method returns Nothing or null.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14.html new file mode 100644 index 0000000..62ef698 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14.html @@ -0,0 +1,142 @@ + + + + + + IEdmFile14 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile14 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile14 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile14 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+
C# 
public interface IEdmFile14 : IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
C++/CLI 
public interface class IEdmFile14 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface

+

extends IEdmFile13 by:

+
    +
  • providing the ability to generate configuration values for drawings or files lacking properties at the configuration level. +
  • getting the ID of the vault view in which a file is checked out.
+

is extended by IEdmFile15.

+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_members.html new file mode 100644 index 0000000..814cdb4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmFile14 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile14 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile14 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile14.

+

Public Properties

+ +
 NameDescription
 PropertyLockedOnViewIDGets the ID of the vault view in which this file is checked out.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodGenerateDefaultConfigValuesGenerates default configuration data for the specified drawing or file that lacks properties at the configuration level.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_methods.html new file mode 100644 index 0000000..67f608d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile14 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile14 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile14 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile14 members.

+

Public Methods

+ +
 NameDescription
 MethodGenerateDefaultConfigValuesGenerates default configuration data for the specified drawing or file that lacks properties at the configuration level.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_properties.html new file mode 100644 index 0000000..9f8f6c5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmFile14 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile14 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile14 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile14 members.

+

Public Properties

+ +
 NameDescription
 PropertyLockedOnViewIDGets the ID of the vault view in which this file is checked out.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~GenerateDefaultConfigValues.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~GenerateDefaultConfigValues.html new file mode 100644 index 0000000..8ab9dc1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~GenerateDefaultConfigValues.html @@ -0,0 +1,191 @@ + + + + + + GenerateDefaultConfigValues Method (IEdmFile14) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GenerateDefaultConfigValues Method (IEdmFile14)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile14 Interface + : GenerateDefaultConfigValues Method (IEdmFile14)
+ +
+ + + +
+ +
+ + +
+
+
lOldFileID
+
ID of drawing or file that lacks properties at the configuration level
+
+
+
bsOldConfigName
+
Name of configuration whose values to copy (see Remarks)
+
+
+
bsNewConfigName
+
Name of the configuration to which to copy values (see Remarks)
+
+
+
bsActiveConfig
+
Name of the active configuration (see Remarks)
+
+
+
bOnlyForUpdateAllFlag
+
True to copy values only for controls for which IEdmCardControl6::UpdatesAllConfigurations is set to true, false to copy values for all variables associated with this file
+
+ +
+ +
+ + +
+
+ Generates default configuration data for the specified drawing or file that lacks properties at the configuration level. + + +

Syntax

Visual Basic 
Sub GenerateDefaultConfigValues( _
+   ByVal lOldFileID As System.Integer, _
+   ByVal bsOldConfigName As System.String, _
+   ByVal bsNewConfigName As System.String, _
+   ByVal bsActiveConfig As System.String, _
+   ByVal bOnlyForUpdateAllFlag As System.Boolean _
+) 
+
C# 
void GenerateDefaultConfigValues( 
+   System.int lOldFileID,
+   System.string bsOldConfigName,
+   System.string bsNewConfigName,
+   System.string bsActiveConfig,
+   System.bool bOnlyForUpdateAllFlag
+)
+
C++/CLI 
void GenerateDefaultConfigValues( 
+&   System.int lOldFileID,
+&   System.String^ bsOldConfigName,
+&   System.String^ bsNewConfigName,
+&   System.String^ bsActiveConfig,
+&   System.bool bOnlyForUpdateAllFlag
+) 
+ +

Parameters

lOldFileID
+
ID of drawing or file that lacks properties at the configuration level
bsOldConfigName
+
Name of configuration whose values to copy (see Remarks)
bsNewConfigName
+
Name of the configuration to which to copy values (see Remarks)
bsActiveConfig
+
Name of the active configuration (see Remarks)
bOnlyForUpdateAllFlag
+
True to copy values only for controls for which IEdmCardControl6::UpdatesAllConfigurations is set to true, false to copy values for all variables associated with this file
+ +
+ + + + +

Example

+

Remarks

This method:

+
    +
  • is valid only for files with data card variables. +
  • copies values from bsOldConfigName to bsNewConfigName. If it encounters a null control variable in bsOldConfigName, it takes the value from bsActiveConfig instead.
+

Use IEdmFile5::GetConfigurations to populate the configuration parameters.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~LockedOnViewID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~LockedOnViewID.html new file mode 100644 index 0000000..aa04de5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile14~LockedOnViewID.html @@ -0,0 +1,149 @@ + + + + + + LockedOnViewID Property (IEdmFile14) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedOnViewID Property (IEdmFile14)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile14 Interface + : LockedOnViewID Property (IEdmFile14)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the vault view in which this file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedOnViewID As System.String
+
C# 
System.string LockedOnViewID {get;}
+
C++/CLI 
property System.String^ LockedOnViewID {
+   System.String^ get();
+}
+ + + +

Property Value

Vault view ID
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15.html new file mode 100644 index 0000000..548cfef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15.html @@ -0,0 +1,140 @@ + + + + + + IEdmFile15 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile15 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile15 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile15 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+ +
C++/CLI 
public interface class IEdmFile15 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface:

+ +

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_members.html new file mode 100644 index 0000000..ea44fe1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile15 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile15 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile15 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile15.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetThumbnail2Obsolete. Superseded by IEdmFile18::GetThumbnail3.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_methods.html new file mode 100644 index 0000000..b995af1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile15 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile15 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile15 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile15 members.

+

Public Methods

+ +
 NameDescription
 MethodGetThumbnail2Obsolete. Superseded by IEdmFile18::GetThumbnail3.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15~GetThumbnail2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15~GetThumbnail2.html new file mode 100644 index 0000000..ea9f773 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile15~GetThumbnail2.html @@ -0,0 +1,154 @@ + + + + + + GetThumbnail2 Method (IEdmFile15) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetThumbnail2 Method (IEdmFile15)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile15 Interface + : GetThumbnail2 Method (IEdmFile15)
+ +
+ + + +
+ +
+ + +
+
+
lVersion
+
Version of the file whose thumbnail to retrieve
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile18::GetThumbnail3. + + +

Syntax

Visual Basic 
Function GetThumbnail2( _
+   ByVal lVersion As System.Integer _
+) As System.Object
+
C# 
System.object GetThumbnail2( 
+   System.int lVersion
+)
+
C++/CLI 
System.Object^ GetThumbnail2( 
+&   System.int lVersion
+) 
+ +

Parameters

lVersion
+
Version of the file whose thumbnail to retrieve
+ +

Return Value

IPicture
+ + + + +

Example

+

Remarks

If a thumbnail of this file is not available, this method returns Nothing or null.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16.html new file mode 100644 index 0000000..b5a0ce3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16.html @@ -0,0 +1,140 @@ + + + + + + IEdmFile16 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile16 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile16 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile16 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+ +
C++/CLI 
public interface class IEdmFile16 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface:

+ +

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_members.html new file mode 100644 index 0000000..d68407f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile16 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile16 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile16 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile16.

+ + +

Public Methods

+ +
 NameDescription
 MethodCreateLabelCreates a label with the specified name and description for this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_methods.html new file mode 100644 index 0000000..114aaac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile16 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile16 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile16 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile16 members.

+

Public Methods

+ +
 NameDescription
 MethodCreateLabelCreates a label with the specified name and description for this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16~CreateLabel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16~CreateLabel.html new file mode 100644 index 0000000..d76eedd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile16~CreateLabel.html @@ -0,0 +1,168 @@ + + + + + + CreateLabel Method (IEdmFile16) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateLabel Method (IEdmFile16)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile16 Interface + : CreateLabel Method (IEdmFile16)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
Name of the label; maximum of 255 characters
+
+
+
bsDescription
+
Label description to show in the history dialog box; maximum of 2000 characters
+
+ +
+ +
+ + +
+
+ Creates a label with the specified name and description for this file. + + +

Syntax

Visual Basic 
Function CreateLabel( _
+   ByVal bsName As System.String, _
+   ByVal bsDescription As System.String _
+) As System.Integer
+
C# 
System.int CreateLabel( 
+   System.string bsName,
+   System.string bsDescription
+)
+
C++/CLI 
System.int CreateLabel( 
+&   System.String^ bsName,
+&   System.String^ bsDescription
+) 
+ +

Parameters

bsName
+
Name of the label; maximum of 255 characters
bsDescription
+
Label description to show in the history dialog box; maximum of 2000 characters
+ +

Return Value

ID of the file label
+ + + + +

Example

+

Remarks

Use IEdmVault5::GetObject to get the IEdmLabel5 object for this label.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments in invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17.html new file mode 100644 index 0000000..6e94a71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17.html @@ -0,0 +1,140 @@ + + + + + + IEdmFile17 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile17 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile17 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile17 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile16IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+ +
C++/CLI 
public interface class IEdmFile17 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile16IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmFile16 by allowing you to determine whether a file has cut list items. +
  • is extended by IEdmFile18.
+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_members.html new file mode 100644 index 0000000..d8e95ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile17 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile17 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile17 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile17.

+

Public Properties

+ +
 NameDescription
 PropertyHasCutlistItemsGets whether this file has cut list items.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_properties.html new file mode 100644 index 0000000..6b22f4a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmFile17 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile17 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile17 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile17 members.

+

Public Properties

+ +
 NameDescription
 PropertyHasCutlistItemsGets whether this file has cut list items.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17~HasCutlistItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17~HasCutlistItems.html new file mode 100644 index 0000000..ebff957 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile17~HasCutlistItems.html @@ -0,0 +1,149 @@ + + + + + + HasCutlistItems Property (IEdmFile17) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasCutlistItems Property (IEdmFile17)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile17 Interface + : HasCutlistItems Property (IEdmFile17)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this file has cut list items. + + +

Syntax

Visual Basic 
ReadOnly Property HasCutlistItems As System.Boolean
+
C# 
System.bool HasCutlistItems {get;}
+
C++/CLI 
property System.bool HasCutlistItems {
+   System.bool get();
+}
+ + + +

Property Value

True if the file has cut list items, false if not
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18.html new file mode 100644 index 0000000..f92477d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18.html @@ -0,0 +1,137 @@ + + + + + + IEdmFile18 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile18 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile18 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile18 
+   Inherits IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile16IEdmFile17IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5 
+ +
C++/CLI 
public interface class IEdmFile18 : public IEdmFile10IEdmFile11IEdmFile12IEdmFile13IEdmFile14IEdmFile15IEdmFile16IEdmFile17IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmFile9IEdmObject5  
+
+ + + + +

Remarks

This interface extends IEdmFile17 by allowing you to retrieve a file's thumbnail handle.

+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_members.html new file mode 100644 index 0000000..818868a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile18 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile18 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile18 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile18.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetThumbnail3Gets this file's thumbnail handle.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_methods.html new file mode 100644 index 0000000..38e5252 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile18 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile18 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile18 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile18 members.

+

Public Methods

+ +
 NameDescription
 MethodGetThumbnail3Gets this file's thumbnail handle.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18~GetThumbnail3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18~GetThumbnail3.html new file mode 100644 index 0000000..efa1f28 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile18~GetThumbnail3.html @@ -0,0 +1,154 @@ + + + + + + GetThumbnail3 Method (IEdmFile18) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetThumbnail3 Method (IEdmFile18)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile18 Interface + : GetThumbnail3 Method (IEdmFile18)
+ +
+ + + +
+ +
+ + +
+
+
lVersion
+
Version of the file whose thumbnail to retrieve
+
+ +
+ +
+ + +
+
+ Gets this file's thumbnail handle. + + +

Syntax

Visual Basic 
Function GetThumbnail3( _
+   ByVal lVersion As System.Integer _
+) As System.Integer
+
C# 
System.int GetThumbnail3( 
+   System.int lVersion
+)
+
C++/CLI 
System.int GetThumbnail3( 
+&   System.int lVersion
+) 
+ +

Parameters

lVersion
+
Version of the file whose thumbnail to retrieve
+ +

Return Value

Thumbnail handle
+ + + + +

Example

+   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2023 SP01
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5.html new file mode 100644 index 0000000..4af0989 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5.html @@ -0,0 +1,153 @@ + + + + + + IEdmFile5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmFile5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmFile5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmObject5. +
  • is extended by IEdmFile6 which provides the ability to move, rename, and categorize files.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_members.html new file mode 100644 index 0000000..fc228d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_members.html @@ -0,0 +1,145 @@ + + + + + + IEdmFile5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile5.

+

Public Properties

+ + + + + + + + + + + + + + +
 NameDescription
 PropertyCurrentRevisionGets the file's current revision.  
 PropertyCurrentStateGets the file's current workflow state.  
 PropertyCurrentVersionGets the file's current version number.  
 PropertyIDGets the database ID of this file.  
 PropertyIsLockedGets whether the file is checked out.  
 PropertyLockedByUserGets the user who has the file checked out.  
 PropertyLockedByUserIDGets the ID of the user who has the file checked out.  
 PropertyLockedInFolderGets the folder in which this file is checked out.  
 PropertyLockedInFolderIDGets the ID of the folder in which this file is checked out.  
 PropertyLockedOnComputerGets the name of the computer to which the file is checked out.  
 PropertyLockPathGets the full path to the checked-out file.  
 PropertyNameGets the name of the file.  
 PropertyObjectTypeGets the type of object.  
 PropertyVaultGets the file vault to which this file belongs.  
Top
+ +

Public Methods

+ + + + + + + + + + + + + + + + + + + + +
 NameDescription
 MethodChangeStateObsolete. Superseded by IEdmFile10::ChangeState2.  
 MethodGetConfigurationsGets a list of names of the configurations for the specified version of this file.  
 MethodGetEnumeratorVariableGets an interface to this file's data card variables.  
 MethodGetFileCopyGets a copy of the file with the specified version from the archive and deposits it in the specified location.  
 MethodGetFirstFolderPositionStarts an enumeration of the parent folders of this file.  
 MethodGetLocalFileDateGets the date and timestamp of a local copy of this file.  
 MethodGetLocalFileSizeObsolete. Superseded by IEdmFile9::GetLocalFileSize2.  
 MethodGetLocalPathGets the full path to this file in the specified parent folder.  
 MethodGetLocalRevisionNameGets the revision name of the local copy of this file.  
 MethodGetLocalVersionNoObsolete. Superseded by IEdmFile12::GetLocalVersionNo2.  
 MethodGetNextFolderGets the next parent folder of this file.  
 MethodGetReferenceTreeGets an interface to the files that reference or are referenced by this file.  
 MethodGetRevisionGeneratorInfoGets information about this file for the revision generator.  
 MethodIncrementRevisionCreates a new revision of this file.  
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodLockFileChecks out this file from the vault to which the user is currently logged in.  
 MethodRefreshRefreshes the file.  
 MethodRenameObsolete. Superseded by IEdmFile6::RenameEx.  
 MethodUndoLockFileRemoves the check-out of a file without saving changes to the archive.  
 MethodUnlockFileChecks in this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_methods.html new file mode 100644 index 0000000..8d538a7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_methods.html @@ -0,0 +1,122 @@ + + + + + + IEdmFile5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile5 members.

+

Public Methods

+ + + + + + + + + + + + + + + + + + + + +
 NameDescription
 MethodChangeStateObsolete. Superseded by IEdmFile10::ChangeState2.  
 MethodGetConfigurationsGets a list of names of the configurations for the specified version of this file.  
 MethodGetEnumeratorVariableGets an interface to this file's data card variables.  
 MethodGetFileCopyGets a copy of the file with the specified version from the archive and deposits it in the specified location.  
 MethodGetFirstFolderPositionStarts an enumeration of the parent folders of this file.  
 MethodGetLocalFileDateGets the date and timestamp of a local copy of this file.  
 MethodGetLocalFileSizeObsolete. Superseded by IEdmFile9::GetLocalFileSize2.  
 MethodGetLocalPathGets the full path to this file in the specified parent folder.  
 MethodGetLocalRevisionNameGets the revision name of the local copy of this file.  
 MethodGetLocalVersionNoObsolete. Superseded by IEdmFile12::GetLocalVersionNo2.  
 MethodGetNextFolderGets the next parent folder of this file.  
 MethodGetReferenceTreeGets an interface to the files that reference or are referenced by this file.  
 MethodGetRevisionGeneratorInfoGets information about this file for the revision generator.  
 MethodIncrementRevisionCreates a new revision of this file.  
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodLockFileChecks out this file from the vault to which the user is currently logged in.  
 MethodRefreshRefreshes the file.  
 MethodRenameObsolete. Superseded by IEdmFile6::RenameEx.  
 MethodUndoLockFileRemoves the check-out of a file without saving changes to the archive.  
 MethodUnlockFileChecks in this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_properties.html new file mode 100644 index 0000000..e50f8cc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5_properties.html @@ -0,0 +1,120 @@ + + + + + + IEdmFile5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile5 members.

+

Public Properties

+ + + + + + + + + + + + + + +
 NameDescription
 PropertyCurrentRevisionGets the file's current revision.  
 PropertyCurrentStateGets the file's current workflow state.  
 PropertyCurrentVersionGets the file's current version number.  
 PropertyIDGets the database ID of this file.  
 PropertyIsLockedGets whether the file is checked out.  
 PropertyLockedByUserGets the user who has the file checked out.  
 PropertyLockedByUserIDGets the ID of the user who has the file checked out.  
 PropertyLockedInFolderGets the folder in which this file is checked out.  
 PropertyLockedInFolderIDGets the ID of the folder in which this file is checked out.  
 PropertyLockedOnComputerGets the name of the computer to which the file is checked out.  
 PropertyLockPathGets the full path to the checked-out file.  
 PropertyNameGets the name of the file.  
 PropertyObjectTypeGets the type of object.  
 PropertyVaultGets the file vault to which this file belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ChangeState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ChangeState.html new file mode 100644 index 0000000..1f6eb31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ChangeState.html @@ -0,0 +1,197 @@ + + + + + + ChangeState Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeState Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : ChangeState Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poStateIdOrName
+
Workflow state ID or name or IEdmState5 to which this file transitions (see Remarks)
+
+
+
lFolderID
+
ID of the file's active parent folder
+
+
+
bsComment
+
Comment saved to the transition history
+
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile10::ChangeState2. + + +

Syntax

Visual Basic 
Sub ChangeState( _
+   ByRef poStateIdOrName As System.Object, _
+   ByVal lFolderID As System.Integer, _
+   ByVal bsComment As System.String, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lEdmStateFlags As System.Integer _
+) 
+
C# 
void ChangeState( 
+   ref System.object poStateIdOrName,
+   System.int lFolderID,
+   System.string bsComment,
+   System.int lParentWnd,
+   System.int lEdmStateFlags
+)
+
C++/CLI 
void ChangeState( 
+&   System.Object^% poStateIdOrName,
+&   System.int lFolderID,
+&   System.String^ bsComment,
+&   System.int lParentWnd,
+&   System.int lEdmStateFlags
+) 
+ +

Parameters

poStateIdOrName
+
Workflow state ID or name or IEdmState5 to which this file transitions (see Remarks)
lFolderID
+
ID of the file's active parent folder
bsComment
+
Comment saved to the transition history
lParentWnd
+
Parent window handle
lEdmStateFlags
+
Optional combination of EdmStateFlags bits; default is EdmStateFlags.EdmState_Simple
+ +
+ + + + + +

Remarks

There must be a transition between the current state and poStateIdOrName, or this method fails.

+

It is possible to create multiple workflows with two or more states having the same name. If poStateIdOrName contains the name of the destination state instead of its ID, and if several transitions from the file’s current state lead to new states all having the same name, SOLIDWORKS PDM Professional randomly selects one of them. To be sure to which state the file transitions, specify a state ID in poStateIdOrName.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_TRANSITION_ACTION_FAILED: One of the transition actions set up in the workflow failed. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the EdmCmdType.EdmCmd_PreState hooks did not permit the operation. +
  • E_EDM_FILE_IS_LOCKED: The file is checked out. Changing state is only permitted on checked-in files. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks permission to change state. +
  • E_EDM_CONDITIONS_NOT_MET: The conditions set up in the Workflow Editor for this transition were not met. +
  • E_EDM_STATE_NOT_FOUND: There is no transition going from the file's current state to the specified state.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentRevision.html new file mode 100644 index 0000000..fd42565 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentRevision.html @@ -0,0 +1,149 @@ + + + + + + CurrentRevision Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CurrentRevision Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : CurrentRevision Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's current revision. + + +

Syntax

Visual Basic 
ReadOnly Property CurrentRevision As System.String
+
C# 
System.string CurrentRevision {get;}
+
C++/CLI 
property System.String^ CurrentRevision {
+   System.String^ get();
+}
+ + + +

Property Value

Current revision of the file
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentState.html new file mode 100644 index 0000000..d5a3ba7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentState.html @@ -0,0 +1,149 @@ + + + + + + CurrentState Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CurrentState Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : CurrentState Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's current workflow state. + + +

Syntax

Visual Basic 
ReadOnly Property CurrentState As IEdmState5
+
C# 
IEdmState5 CurrentState {get;}
+
C++/CLI 
property IEdmState5^ CurrentState {
+   IEdmState5^ get();
+}
+ + + +

Property Value

Current workflow state of the file
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentVersion.html new file mode 100644 index 0000000..fb0b876 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~CurrentVersion.html @@ -0,0 +1,149 @@ + + + + + + CurrentVersion Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CurrentVersion Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : CurrentVersion Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's current version number. + + +

Syntax

Visual Basic 
ReadOnly Property CurrentVersion As System.Integer
+
C# 
System.int CurrentVersion {get;}
+
C++/CLI 
property System.int CurrentVersion {
+   System.int get();
+}
+ + + +

Property Value

Current version number of the file
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetConfigurations.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetConfigurations.html new file mode 100644 index 0000000..6089276 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetConfigurations.html @@ -0,0 +1,160 @@ + + + + + + GetConfigurations Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetConfigurations Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetConfigurations Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poVersionNoOrRevisionName
+
Version number or revision name; 0 or empty string to get configurations for the latest version of this file
+
+ +
+ +
+ + +
+
+ Gets a list of names of the configurations for the specified version of this file. + + +

Syntax

Visual Basic 
Function GetConfigurations( _
+   Optional ByRef poVersionNoOrRevisionName As System.Object _
+) As EdmStrLst5
+
C# 
EdmStrLst5 GetConfigurations( 
+   ref System.object poVersionNoOrRevisionName
+)
+
C++/CLI 
EdmStrLst5^ GetConfigurations( 
+&   System.Object^% poVersionNoOrRevisionName
+) 
+ +

Parameters

poVersionNoOrRevisionName
+
Version number or revision name; 0 or empty string to get configurations for the latest version of this file
+ +

Return Value

IEdmStrList5
+ + + + +

Example

+

Remarks

Some file types, such as files from AutoCAD and SOLIDWORKS, can contain several configurations or layouts. These configurations are visible as pages in the SOLIDWORKS PDM Professional file data cards.

+

C++ users not using smart pointer wrapper functions must release the returned interface, IEdmStrLst5.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user does not have read-access to the specified version or revision.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetEnumeratorVariable.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetEnumeratorVariable.html new file mode 100644 index 0000000..56ff569 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetEnumeratorVariable.html @@ -0,0 +1,160 @@ + + + + + + GetEnumeratorVariable Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetEnumeratorVariable Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetEnumeratorVariable Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
bsOptionalPath
+
Optional; full file path to the file to access; if not specified, uses location where this file is checked out (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets an interface to this file's data card variables. + + +

Syntax

Visual Basic 
Function GetEnumeratorVariable( _
+   Optional ByVal bsOptionalPath As System.String _
+) As IEdmEnumeratorVariable5
+
C# 
IEdmEnumeratorVariable5 GetEnumeratorVariable( 
+   System.string bsOptionalPath
+)
+
C++/CLI 
IEdmEnumeratorVariable5^ GetEnumeratorVariable( 
+&   System.String^ bsOptionalPath
+) 
+ +

Parameters

bsOptionalPath
+
Optional; full file path to the file to access; if not specified, uses location where this file is checked out (see Remarks)
+ +

Return Value

IEdmEnumeratorVariable5
+ + + + +

Example

+

Remarks

You must check out a file in order to write variables in its data card.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: File not found on the specified path.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFileCopy.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFileCopy.html new file mode 100644 index 0000000..48382ed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFileCopy.html @@ -0,0 +1,194 @@ + + + + + + GetFileCopy Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileCopy Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetFileCopy Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
poVersionNoOrRevisionName
+
Version number or revision name of the file to get; 0 or "" to get the latest version
+
+
+
poPathOrFolderID
+
Optional folder ID or path where to deposit the file; default is to deposit the file in all of its parent folders (see Remarks)
+
+
+
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
+
+
+
bsNewName
+
Optional new name of the copy of this file; empty string to use the file's current name
+
+ +
+ +
+ + +
+
+ Gets a copy of the file with the specified version from the archive and deposits it in the specified location. + + +

Syntax

Visual Basic 
Sub GetFileCopy( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByRef poVersionNoOrRevisionName As System.Object, _
+   Optional ByRef poPathOrFolderID As System.Object, _
+   Optional ByVal lEdmGetFlags As System.Integer, _
+   Optional ByVal bsNewName As System.String _
+) 
+
C# 
void GetFileCopy( 
+   System.int lParentWnd,
+   ref System.object poVersionNoOrRevisionName,
+   ref System.object poPathOrFolderID,
+   System.int lEdmGetFlags,
+   System.string bsNewName
+)
+
C++/CLI 
void GetFileCopy( 
+&   System.int lParentWnd,
+&   System.Object^% poVersionNoOrRevisionName,
+&   System.Object^% poPathOrFolderID,
+&   System.int lEdmGetFlags,
+&   System.String^ bsNewName
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
poVersionNoOrRevisionName
+
Version number or revision name of the file to get; 0 or "" to get the latest version
poPathOrFolderID
+
Optional folder ID or path where to deposit the file; default is to deposit the file in all of its parent folders (see Remarks)
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
bsNewName
+
Optional new name of the copy of this file; empty string to use the file's current name
+ +
+ + + + +

Example

+

Remarks

If poPathOrFolderID = 0, then the file is copied to all folders to which this file is shared. If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

To retrieve several files, use IEdmBatchGet, which is more efficient than calling this method several times.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_REVISION_NUMBER: The revision was not found.   +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks permission to see the specified version of the file. +
  • E_EDM_FILE_NOT_FOUND: The file was not found in the vault.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFirstFolderPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFirstFolderPosition.html new file mode 100644 index 0000000..16efd7a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetFirstFolderPosition.html @@ -0,0 +1,148 @@ + + + + + + GetFirstFolderPosition Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFolderPosition Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetFirstFolderPosition Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the parent folders of this file. + + +

Syntax

Visual Basic 
Function GetFirstFolderPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstFolderPosition()
+
C++/CLI 
IEdmPos5^ GetFirstFolderPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first parent folder
+ + + + +

Example

+

Remarks

Files can be shared between several folders in SOLIDWORKS PDM Professional. Call IEdmFolder5::AddFileShared to share a file between several folders.

+

After calling this method to get the postion of the first parent folder in the list, call IEdmFile5::GetNextFolder to get the parent folders. 

+

C++ programmers not using smart-pointer wrapper functions must release the returned pointer to IEdmPos5.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileDate.html new file mode 100644 index 0000000..5ee21b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileDate.html @@ -0,0 +1,164 @@ + + + + + + GetLocalFileDate Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalFileDate Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetLocalFileDate Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of the folder, full file path, or a folder path (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the date and timestamp of a local copy of this file. + + +

Syntax

Visual Basic 
Function GetLocalFileDate( _
+   ByRef poPathOrFolderID As System.Object _
+) As System.Object
+
C# 
System.object GetLocalFileDate( 
+   ref System.object poPathOrFolderID
+)
+
C++/CLI 
System.Object^ GetLocalFileDate( 
+&   System.Object^% poPathOrFolderID
+) 
+ +

Parameters

poPathOrFolderID
+
ID of the folder, full file path, or a folder path (see Remarks)
+ +

Return Value

Date and timestamp; Null if the local file is missing
+ + + + +

Example

+

Remarks

The date and timestamp of a file in SOLIDWORKS PDM Professional is adjusted to be backwards compatible with File Allocation Table (FAT) file systems. For example, a file's timestamp is always displayed in even seconds.

+

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

If you don't need the IEdmFile5 interface for some other task, it is much more efficient to use Win32 API functions to retrieve the date and timestamp of the file.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file does not exist in the specified location.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileSize.html new file mode 100644 index 0000000..abfde1d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalFileSize.html @@ -0,0 +1,160 @@ + + + + + + GetLocalFileSize Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalFileSize Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetLocalFileSize Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of the folder, a full file path, or a folder path (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile9::GetLocalFileSize2. + + +

Syntax

Visual Basic 
Function GetLocalFileSize( _
+   ByRef poPathOrFolderID As System.Object _
+) As System.Integer
+
C# 
System.int GetLocalFileSize( 
+   ref System.object poPathOrFolderID
+)
+
C++/CLI 
System.int GetLocalFileSize( 
+&   System.Object^% poPathOrFolderID
+) 
+ +

Parameters

poPathOrFolderID
+
ID of the folder, a full file path, or a folder path (see Remarks)
+ +

Return Value

Size in bytes; -1 if the local file is missing
+ + + + + +

Remarks

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The local copy of the file is missing.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalPath.html new file mode 100644 index 0000000..38b67cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalPath.html @@ -0,0 +1,161 @@ + + + + + + GetLocalPath Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalPath Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetLocalPath Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentFolderID
+
ID of parent folder (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the full path to this file in the specified parent folder. + + +

Syntax

Visual Basic 
Function GetLocalPath( _
+   ByVal lParentFolderID As System.Integer _
+) As System.String
+
C# 
System.string GetLocalPath( 
+   System.int lParentFolderID
+)
+
C++/CLI 
System.String^ GetLocalPath( 
+&   System.int lParentFolderID
+) 
+ +

Parameters

lParentFolderID
+
ID of parent folder (see Remarks)
+ +

Return Value

Full path to this file in the parent folder
+ + + + +

Example

+

Remarks

This method does not verify the existence of the file in lParentFolderID. It only concatenates the path of the specified folder and this file's name.

+

You can obtain all of the parent folders of this file by calling IEdmFile5::GetFirstFolderPosition and IEdmFile5::GetNextFolder.

+

C++ users not using bstr_t wrapper functions must free the returned string with a call to SysFreeString.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FOLDER_NOT_FOUND: The folder ID is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalRevisionName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalRevisionName.html new file mode 100644 index 0000000..4fa3975 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalRevisionName.html @@ -0,0 +1,163 @@ + + + + + + GetLocalRevisionName Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalRevisionName Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetLocalRevisionName Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of the folder, full file path or the folder path of the local copy of this file (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the revision name of the local copy of this file. + + +

Syntax

Visual Basic 
Function GetLocalRevisionName( _
+   ByRef poPathOrFolderID As System.Object _
+) As System.String
+
C# 
System.string GetLocalRevisionName( 
+   ref System.object poPathOrFolderID
+)
+
C++/CLI 
System.String^ GetLocalRevisionName( 
+&   System.Object^% poPathOrFolderID
+) 
+ +

Parameters

poPathOrFolderID
+
ID of the folder, full file path or the folder path of the local copy of this file (see Remarks)
+ +

Return Value

Revision name; "" if the file does not exist locally, or no revisions matches the local version
+ + + + +

Example

+

Remarks

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

Revisions are "named versions" that can be set up using the Workflow Editor.

+

C++ users not using bstr_t wrapper functions must free the returned string with a call to SysFreeString.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file does not exist locally, or no revision matches the local version.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalVersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalVersionNo.html new file mode 100644 index 0000000..d714b4f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetLocalVersionNo.html @@ -0,0 +1,160 @@ + + + + + + GetLocalVersionNo Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalVersionNo Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetLocalVersionNo Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of a folder, full file path, or folder path of the local copy of this file (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile12::GetLocalVersionNo2. + + +

Syntax

Visual Basic 
Function GetLocalVersionNo( _
+   ByRef poPathOrFolderID As System.Object _
+) As System.Integer
+
C# 
System.int GetLocalVersionNo( 
+   ref System.object poPathOrFolderID
+)
+
C++/CLI 
System.int GetLocalVersionNo( 
+&   System.Object^% poPathOrFolderID
+) 
+ +

Parameters

poPathOrFolderID
+
ID of a folder, full file path, or folder path of the local copy of this file (see Remarks)
+ +

Return Value

Version number; -1 if the local copy does not match any version in the archive
+ + + + +

Example

+

Remarks

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetNextFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetNextFolder.html new file mode 100644 index 0000000..0e9d5ad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetNextFolder.html @@ -0,0 +1,161 @@ + + + + + + GetNextFolder Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFolder Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetNextFolder Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
poPosition
+
IEdmPos5; position of next parent folder of this file
+
+ +
+ +
+ + +
+
+ Gets the next parent folder of this file. + + +

Syntax

Visual Basic 
Function GetNextFolder( _
+   ByVal poPosition As IEdmPos5 _
+) As IEdmFolder5
+
C# 
IEdmFolder5 GetNextFolder( 
+   IEdmPos5 poPosition
+)
+
C++/CLI 
IEdmFolder5^ GetNextFolder( 
+&   IEdmPos5^ poPosition
+) 
+ +

Parameters

poPosition
+
IEdmPos5; position of next parent folder of this file
+ +

Return Value

IEdmFolder5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first parent folder, IEdmPos5. Call IEdmFile5::GetFirstFolderPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the folders.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmFolder5.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetReferenceTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetReferenceTree.html new file mode 100644 index 0000000..42af9a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetReferenceTree.html @@ -0,0 +1,169 @@ + + + + + + GetReferenceTree Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetReferenceTree Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetReferenceTree Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentFolderID
+
ID of the file's parent folder (see Remarks)
+
+
+
lVersionNo
+
Version of the file for which to get references; 0 to get the latest version
+
+ +
+ +
+ + +
+
+ Gets an interface to the files that reference or are referenced by this file. + + +

Syntax

Visual Basic 
Function GetReferenceTree( _
+   ByVal lParentFolderID As System.Integer, _
+   Optional ByVal lVersionNo As System.Integer _
+) As IEdmReference5
+
C# 
IEdmReference5 GetReferenceTree( 
+   System.int lParentFolderID,
+   System.int lVersionNo
+)
+
C++/CLI 
IEdmReference5^ GetReferenceTree( 
+&   System.int lParentFolderID,
+&   System.int lVersionNo
+) 
+ +

Parameters

lParentFolderID
+
ID of the file's parent folder (see Remarks)
lVersionNo
+
Version of the file for which to get references; 0 to get the latest version
+ +

Return Value

IEdmReference5
+ + + + +

Example

+

Remarks

Some file types, such as files from AutoCAD, SOLIDWORKS, MS Word, etc., contain references to other files. You can also set up your own references via SOLIDWORKS PDM Professional's User Defined File References dialog box. SOLIDWORKS PDM Professional manages all of these references for you, and they appear in the check-in dialog box in the form of a reference tree.

+

To specify lParentFolderID, inspect all of the parent folders of this file by calling IEdmFile5::GetFirstFolderPosition and IEdmFile5::GetNextFolder.

+

Use IEdmReference5 that is returned in ppoRetRoot to enumerate referenced files and referencing files and set up user-defined references.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmReference5.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetRevisionGeneratorInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetRevisionGeneratorInfo.html new file mode 100644 index 0000000..3dc162c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~GetRevisionGeneratorInfo.html @@ -0,0 +1,156 @@ + + + + + + GetRevisionGeneratorInfo Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionGeneratorInfo Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : GetRevisionGeneratorInfo Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
pbIncrementMenu
+
True if there should be an Increment Revision menu item in the context menu of this file, false if not
+
+ +
+ +
+ + +
+
+ Gets information about this file for the revision generator. + + +

Syntax

Visual Basic 
Function GetRevisionGeneratorInfo( _
+   ByRef pbIncrementMenu As System.Boolean _
+) As System.Boolean
+
C# 
System.bool GetRevisionGeneratorInfo( 
+   out System.bool pbIncrementMenu
+)
+
C++/CLI 
System.bool GetRevisionGeneratorInfo( 
+&   [Out] System.bool pbIncrementMenu
+) 
+ +

Parameters

pbIncrementMenu
+
True if there should be an Increment Revision menu item in the context menu of this file, false if not
+ +

Return Value

True if there is a revision number generator set up for the file's current state in the workflow, false if not
+ + + + + +

Remarks

This method exists mainly for internal purposes.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_REV_GEN_LIST_STOP: It is not possible to increment revision on this file, because SOLIDWORKS PDM Professional has reached the end of the revision list that was set up in the Workflow Editor.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ID.html new file mode 100644 index 0000000..235b97d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ID.html @@ -0,0 +1,147 @@ + + + + + + ID Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ID Property (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : ID Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of this file. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property ID As System.Integer
+
C# 
new System.int ID {get;}
+
C++/CLI 
new property System.int ID {
+   System.int get();
+}
+ + + +

Property Value

Database ID of this file
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IncrementRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IncrementRevision.html new file mode 100644 index 0000000..a0ed394 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IncrementRevision.html @@ -0,0 +1,182 @@ + + + + + + IncrementRevision Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IncrementRevision Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : IncrementRevision Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lFolderID
+
ID of the file's parent folder (see Remarks)
+
+
+
bsComment
+
Comment to store in revision history
+
+
+
lEdmIncRevFlags
+
Optional combination of EdmIncRevFlags bits; default is EdmIncRevFlags.EdmIncRev_Simple
+
+ +
+ +
+ + +
+
+ Creates a new revision of this file. + + +

Syntax

Visual Basic 
Sub IncrementRevision( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lFolderID As System.Integer, _
+   ByVal bsComment As System.String, _
+   Optional ByVal lEdmIncRevFlags As System.Integer _
+) 
+
C# 
void IncrementRevision( 
+   System.int lParentWnd,
+   System.int lFolderID,
+   System.string bsComment,
+   System.int lEdmIncRevFlags
+)
+
C++/CLI 
void IncrementRevision( 
+&   System.int lParentWnd,
+&   System.int lFolderID,
+&   System.String^ bsComment,
+&   System.int lEdmIncRevFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lFolderID
+
ID of the file's parent folder (see Remarks)
bsComment
+
Comment to store in revision history
lEdmIncRevFlags
+
Optional combination of EdmIncRevFlags bits; default is EdmIncRevFlags.EdmIncRev_Simple
+ +
+ + + + + +

Remarks

Every time you check in a file in SOLIDWORKS PDM Professional, a new version of it is created. Versions are denoted by numbers: 1,2,3...N. In addition to versions you can also have revisions, which can be described as labels for certain versions. Revision numbers are generated by revision number generators which are set up in the Workflow Editor. Revisions let each company specify their own numbering system.

+

To specify lFolderID, inspect all of the parent folders of this file by calling IEdmFile5::GetFirstFolderPosition and IEdmFile5::GetNextFolder.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_IS_LOCKED: To increment revision of a file, the file must not be checked out. +
  • E_EDM_END_OF_REV_GEN_LIST_STOP: It is not possible to increment revision on this file, because SOLIDWORKS PDM Professional has reached the end of the revision list that was set up in the Workflow Editor.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsKindOf.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsKindOf.html new file mode 100644 index 0000000..d1f08c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsKindOf.html @@ -0,0 +1,154 @@ + + + + + + IsKindOf Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsKindOf Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : IsKindOf Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+
+ +
+ +
+ + +
+
+ Checks whether the object is of a certain type. + + +

Syntax

Visual Basic 
Function IsKindOf( _
+   ByVal __MIDL__IEdmObject50000 As EdmObjectType _
+) As System.Boolean
+
C# 
System.bool IsKindOf( 
+   EdmObjectType __MIDL__IEdmObject50000
+)
+
C++/CLI 
System.bool IsKindOf( 
+&   EdmObjectType __MIDL__IEdmObject50000
+) 
+ +

Parameters

__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+ +

Return Value

True if the object is of the specified type, false if not
+ + + + + +

Remarks

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK indicates that the method successfully executed.
  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsLocked.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsLocked.html new file mode 100644 index 0000000..c2b4544 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~IsLocked.html @@ -0,0 +1,151 @@ + + + + + + IsLocked Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsLocked Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : IsLocked Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property IsLocked As System.Boolean
+
C# 
System.bool IsLocked {get;}
+
C++/CLI 
property System.bool IsLocked {
+   System.bool get();
+}
+ + + +

Property Value

True if the file is checked out, false if not
+ + + + +

Example

+

Remarks

In a multi-user implementation, a file can be checked in and out by others while you are working on it. Before using this property, call IEdmFile5::Refresh to ensure this property gets the correct checkout status.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockFile.html new file mode 100644 index 0000000..63c8d85 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockFile.html @@ -0,0 +1,179 @@ + + + + + + LockFile Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockFile Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockFile Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentFolderID
+
ID of parent folder to which to check out the file
+
+
+
lParentWnd
+
Parent window handle
+
+
+
lEdmLockFlags
+
Optional combination of EdmLockFlag bits; default is EdmLockFlag.EdmLock_Simple
+
+ +
+ +
+ + +
+
+ Checks out this file from the vault to which the user is currently logged in. + + +

Syntax

Visual Basic 
Sub LockFile( _
+   ByVal lParentFolderID As System.Integer, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lEdmLockFlags As System.Integer _
+) 
+
C# 
void LockFile( 
+   System.int lParentFolderID,
+   System.int lParentWnd,
+   System.int lEdmLockFlags
+)
+
C++/CLI 
void LockFile( 
+&   System.int lParentFolderID,
+&   System.int lParentWnd,
+&   System.int lEdmLockFlags
+) 
+ +

Parameters

lParentFolderID
+
ID of parent folder to which to check out the file
lParentWnd
+
Parent window handle
lEdmLockFlags
+
Optional combination of EdmLockFlag bits; default is EdmLockFlag.EdmLock_Simple
+ +
+ + + + +

Example

+

Remarks

When checking out several files, it is more efficient to use IEdmBatchGet than to repeatedly call this method to check out every file.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_IS_LOCKED: The file is already checked out. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to check out this file. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdType.EdmCmd_PreLock hooks did not permit the operation. +
  • E_EDM_FILE_NOT_FOUND: The file was not found in the vault.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockPath.html new file mode 100644 index 0000000..3d50c1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockPath.html @@ -0,0 +1,149 @@ + + + + + + LockPath Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockPath Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockPath Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the full path to the checked-out file. + + +

Syntax

Visual Basic 
ReadOnly Property LockPath As System.String
+
C# 
System.string LockPath {get;}
+
C++/CLI 
property System.String^ LockPath {
+   System.String^ get();
+}
+ + + +

Property Value

Full path to the checked-out file
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUser.html new file mode 100644 index 0000000..8c1ae03 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUser.html @@ -0,0 +1,149 @@ + + + + + + LockedByUser Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedByUser Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockedByUser Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the user who has the file checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedByUser As IEdmUser5
+
C# 
IEdmUser5 LockedByUser {get;}
+
C++/CLI 
property IEdmUser5^ LockedByUser {
+   IEdmUser5^ get();
+}
+ + + +

Property Value

IEdmUser5
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUserID.html new file mode 100644 index 0000000..8861d9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedByUserID.html @@ -0,0 +1,149 @@ + + + + + + LockedByUserID Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedByUserID Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockedByUserID Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who has the file checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedByUserID As System.Integer
+
C# 
System.int LockedByUserID {get;}
+
C++/CLI 
property System.int LockedByUserID {
+   System.int get();
+}
+ + + +

Property Value

ID of the user who has the file checked out
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolder.html new file mode 100644 index 0000000..7a6dfe5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolder.html @@ -0,0 +1,149 @@ + + + + + + LockedInFolder Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedInFolder Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockedInFolder Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the folder in which this file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedInFolder As IEdmFolder5
+
C# 
IEdmFolder5 LockedInFolder {get;}
+
C++/CLI 
property IEdmFolder5^ LockedInFolder {
+   IEdmFolder5^ get();
+}
+ + + +

Property Value

IEdmFolder5
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolderID.html new file mode 100644 index 0000000..775d240 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedInFolderID.html @@ -0,0 +1,149 @@ + + + + + + LockedInFolderID Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedInFolderID Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockedInFolderID Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the folder in which this file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedInFolderID As System.Integer
+
C# 
System.int LockedInFolderID {get;}
+
C++/CLI 
property System.int LockedInFolderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the folder in which this file is checked out
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedOnComputer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedOnComputer.html new file mode 100644 index 0000000..b948892 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~LockedOnComputer.html @@ -0,0 +1,149 @@ + + + + + + LockedOnComputer Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedOnComputer Property (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : LockedOnComputer Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the computer to which the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedOnComputer As System.String
+
C# 
System.string LockedOnComputer {get;}
+
C++/CLI 
property System.String^ LockedOnComputer {
+   System.String^ get();
+}
+ + + +

Property Value

Name of computer to which the file is checked out
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Name.html new file mode 100644 index 0000000..c2d6708 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Name.html @@ -0,0 +1,147 @@ + + + + + + Name Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : Name Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the file. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property Name As System.String
+
C# 
new System.string Name {get;}
+
C++/CLI 
new property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the file
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ObjectType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ObjectType.html new file mode 100644 index 0000000..8fc325c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~ObjectType.html @@ -0,0 +1,147 @@ + + + + + + ObjectType Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ObjectType Property (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : ObjectType Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of object. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property ObjectType As EdmObjectType
+
C# 
new EdmObjectType ObjectType {get;}
+
C++/CLI 
new property EdmObjectType ObjectType {
+   EdmObjectType get();
+}
+ + + +

Property Value

Type of object as defined in EdmObjectType
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Refresh.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Refresh.html new file mode 100644 index 0000000..7ac4d30 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Refresh.html @@ -0,0 +1,140 @@ + + + + + + Refresh Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Refresh Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : Refresh Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Refreshes the file. + + +

Syntax

Visual Basic 
Sub Refresh() 
+
C# 
void Refresh()
+
C++/CLI 
void Refresh(); 
+ + + +
+ + + + + +

Remarks

In a multi-user implementation, a file can be checked in and out by others while you are working on it. Call this method before calling IEdmFile5::IsLocked to obtain the correct checkout status.
  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Rename.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Rename.html new file mode 100644 index 0000000..5d280d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Rename.html @@ -0,0 +1,172 @@ + + + + + + Rename Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rename Method (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : Rename Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsName
+
New file name
+
+
+
bRenameLocalCopies
+
Optional; true to rename local copies, false to not; default is true
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFile6::RenameEx. + + +

Syntax

Visual Basic 
Sub Rename( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsName As System.String, _
+   Optional ByVal bRenameLocalCopies As System.Boolean _
+) 
+
C# 
void Rename( 
+   System.int lParentWnd,
+   System.string bsName,
+   System.bool bRenameLocalCopies
+)
+
C++/CLI 
void Rename( 
+&   System.int lParentWnd,
+&   System.String^ bsName,
+&   System.bool bRenameLocalCopies
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsName
+
New file name
bRenameLocalCopies
+
Optional; true to rename local copies, false to not; default is true
+ +
+ + + + + +

Remarks

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NAME_ALREADY_EXISTS: The specified name already exists. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to rename this file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UndoLockFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UndoLockFile.html new file mode 100644 index 0000000..54fc47f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UndoLockFile.html @@ -0,0 +1,172 @@ + + + + + + UndoLockFile Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UndoLockFile Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : UndoLockFile Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bGetLatestVersion
+
Optional; true to replace the local copy of the file with the latest from the archive, false to not; default is true
+
+ +
+ +
+ + +
+
+ Removes the check-out of a file without saving changes to the archive. + + +

Syntax

Visual Basic 
Sub UndoLockFile( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal bGetLatestVersion As System.Boolean _
+) 
+
C# 
void UndoLockFile( 
+   System.int lParentWnd,
+   System.bool bGetLatestVersion
+)
+
C++/CLI 
void UndoLockFile( 
+&   System.int lParentWnd,
+&   System.bool bGetLatestVersion
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bGetLatestVersion
+
Optional; true to replace the local copy of the file with the latest from the archive, false to not; default is true
+ +
+ + + + +

Example

+

Remarks

Before calling this method, the file must be checked out by the logged-in user.

+

IEdmBatchUnlock is more efficient than this interface for undoing the check-outs of multiple files.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: The file is not checked out or is checked out by another user. +
  • E_EDM_LOCKED_ON_OTHER_COMPUTER: The file is not checked out on the client machine where you ran this method. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the loaded EdmCmdType.EdmCmd_PreUndoLock hooks did not permit the operation. +
  • E_EDM_PERMISSION_DENIED: Undoing the check-out of this file is not permitted. You cannot undo the check-out of a file before it has been checked in at least once.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html new file mode 100644 index 0000000..8e6c5ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html @@ -0,0 +1,201 @@ + + + + + + UnlockFile Method (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UnlockFile Method (IEdmFile5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : UnlockFile Method (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsComment
+
Version comment to show in the history dialog box
+
+
+
lEdmUnlockFlags
+
Optional combination of EdmUnlockFlag bits; default is EdmUnlockFlag.EdmUnlock_Simple
+
+
+
poIEdmRefCallback
+
Optional Nothing or null
+
+ +
+ +
+ + +
+
+ Checks in this file. + + +

Syntax

Visual Basic 
Sub UnlockFile( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsComment As System.String, _
+   Optional ByVal lEdmUnlockFlags As System.Integer, _
+   Optional ByVal poIEdmRefCallback As System.Object _
+) 
+
C# 
void UnlockFile( 
+   System.int lParentWnd,
+   System.string bsComment,
+   System.int lEdmUnlockFlags,
+   System.object poIEdmRefCallback
+)
+
C++/CLI 
void UnlockFile( 
+&   System.int lParentWnd,
+&   System.String^ bsComment,
+&   System.int lEdmUnlockFlags,
+&   System.Object^ poIEdmRefCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsComment
+
Version comment to show in the history dialog box
lEdmUnlockFlags
+
Optional combination of EdmUnlockFlag bits; default is EdmUnlockFlag.EdmUnlock_Simple
poIEdmRefCallback
+
Optional Nothing or null
+ +
+ + + + +

Example

+

Remarks

If the file or its file data card contents have changed, this method creates a new version.

+

IEdmBatchUnlock is more efficient than this interface for checking in multiple files.

+

See Return Codes for the complete list of potential success and error codes. The following are just a few examples:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The method successfully executed, but as no file is modified, SOLIDWORKS PDM Professional did not create a new version. +
  • E_EDM_FILE_NOT_LOCKED_BY_YOU: The file is not checked out by the logged-in user. +
  • E_EDM_LOCKED_ON_OTHER_COMPUTER: The file is not checked out on the client machine where you tried to check it in. +
  • E_EDM_FILE_NOT_FOUND: The file is not part of the vault. +
  • E_EDM_LOCAL_FILE_NOT_FOUND: There is no copy of the file in the cache folder on the client machine. +
  • E_EDM_FILE_SHARE_ERROR: The file is open exclusively in another program. +
  • E_EDM_CANCELLED_BY_USER: Not implemented. +
  • E_EDM_INVALID_FILE: The file format is not recognized, and you have specified to not check in such files. +
  • E_EDM_MISSING_MANDATORY_VALUE: The file lacks a value for a required file data card variable. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the loaded EdmCmdType.EdmCmd_PreUndoLock hooks did not permit the operation. +
  • E_EDM_FILE_NOT_REGENERATED: The file needs to be rebuilt. +
  • E_EDM_NO_WORKFLOW: The document does not meet the conditions of any workflow. +
  • E_EDM_CIRCULAR_XREF: A cyclic file reference was detected. +
  • E_EDM_SWDRW_SETTO_USE_INDEPENDENT_REV_TABLE: An independent type revision setting is used in the drawing. +
  • E_EDM_NO_DOCTYPE: The document does not meet the conditions of any category. +
  • E_EDM_LOCKED_IN_OTHER_FOLDER: The file is checked out in another folder. +
  • E_EDM_FILE_NAME_NOT_GLOBALLY_UNIQUE: The file name is not unique. +
  • E_EDM_TOOLBOX_FILE_LOCATED_IN_NONTOOLBOX_FOLDER: Toolbox file must be located in a Toolbox folder.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Vault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Vault.html new file mode 100644 index 0000000..6ad2c09 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~Vault.html @@ -0,0 +1,147 @@ + + + + + + Vault Property (IEdmFile5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Vault Property (IEdmFile5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile5 Interface + : Vault Property (IEdmFile5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file vault to which this file belongs. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property Vault As IEdmVault5
+
C# 
new IEdmVault5 Vault {get;}
+
C++/CLI 
new property IEdmVault5^ Vault {
+   IEdmVault5^ get();
+}
+ + + +

Property Value

File vault to which this file belongs
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6.html new file mode 100644 index 0000000..fdf6df0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6.html @@ -0,0 +1,141 @@ + + + + + + IEdmFile6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile6 
+   Inherits IEdmFile5IEdmObject5 
+
C# 
public interface IEdmFile6 : IEdmFile5IEdmObject5  
+
C++/CLI 
public interface class IEdmFile6 : public IEdmFile5IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmFile5. +
  • is extended by IEdmFile7 which provides the ability to get computed and derived bills of materials and check whether a file needs to be rebuilt.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_members.html new file mode 100644 index 0000000..c4fcb40 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmFile6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile6 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile6.

+

Public Properties

+ + +
 NameDescription
 PropertyCategoryGets the category to which this file belongs.  
 PropertyCategoryIDGets the ID of the category to which this file belongs.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodMoveMoves this file to another location in the vault.  
 MethodRenameExChanges the name of this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_methods.html new file mode 100644 index 0000000..df6de59 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmFile6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile6 members.

+

Public Methods

+ + +
 NameDescription
 MethodMoveMoves this file to another location in the vault.  
 MethodRenameExChanges the name of this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_properties.html new file mode 100644 index 0000000..55d7ba5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmFile6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile6 members.

+

Public Properties

+ + +
 NameDescription
 PropertyCategoryGets the category to which this file belongs.  
 PropertyCategoryIDGets the ID of the category to which this file belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Category.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Category.html new file mode 100644 index 0000000..2f3f298 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Category.html @@ -0,0 +1,147 @@ + + + + + + Category Property (IEdmFile6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Category Property (IEdmFile6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile6 Interface + : Category Property (IEdmFile6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the category to which this file belongs. + + +

Syntax

Visual Basic 
ReadOnly Property Category As IEdmCategory6
+
C# 
IEdmCategory6 Category {get;}
+
C++/CLI 
property IEdmCategory6^ Category {
+   IEdmCategory6^ get();
+}
+ + + +

Property Value

IEdmCategory6
+ + +

Example

See the IEdmFile6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~CategoryID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~CategoryID.html new file mode 100644 index 0000000..5579b46 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~CategoryID.html @@ -0,0 +1,147 @@ + + + + + + CategoryID Property (IEdmFile6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CategoryID Property (IEdmFile6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile6 Interface + : CategoryID Property (IEdmFile6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the category to which this file belongs. + + +

Syntax

Visual Basic 
ReadOnly Property CategoryID As System.Integer
+
C# 
System.int CategoryID {get;}
+
C++/CLI 
property System.int CategoryID {
+   System.int get();
+}
+ + + +

Property Value

ID of the category of this file
+ + +

Example

See the IEdmFile6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Move.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Move.html new file mode 100644 index 0000000..f89525b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~Move.html @@ -0,0 +1,183 @@ + + + + + + Move Method (IEdmFile6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Move Method (IEdmFile6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile6 Interface + : Move Method (IEdmFile6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lParentID
+
ID of the source folder
+
+
+
lNewParentID
+
ID of the destination folder
+
+
+
lFlags
+
0; reserved
+
+ +
+ +
+ + +
+
+ Moves this file to another location in the vault. + + +

Syntax

Visual Basic 
Sub Move( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lParentID As System.Integer, _
+   ByVal lNewParentID As System.Integer, _
+   ByVal lFlags As System.Integer _
+) 
+
C# 
void Move( 
+   System.int lParentWnd,
+   System.int lParentID,
+   System.int lNewParentID,
+   System.int lFlags
+)
+
C++/CLI 
void Move( 
+&   System.int lParentWnd,
+&   System.int lParentID,
+&   System.int lNewParentID,
+&   System.int lFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lParentID
+
ID of the source folder
lNewParentID
+
ID of the destination folder
lFlags
+
0; reserved
+ +
+ + + + +

Example

+

Remarks

If the file has references, the paths of those references are updated to match the new location. If the file is being referenced by other files, the referencing files are updated to point to the new location.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid. +
  • E_EDM_MOVE_FILE_PERMISSION_DENIED: The user does not have permission to move the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~RenameEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~RenameEx.html new file mode 100644 index 0000000..50128fe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile6~RenameEx.html @@ -0,0 +1,171 @@ + + + + + + RenameEx Method (IEdmFile6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RenameEx Method (IEdmFile6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile6 Interface + : RenameEx Method (IEdmFile6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsNewName
+
New file name
+
+
+
lFlags
+
0; reserved
+
+ +
+ +
+ + +
+
+ Changes the name of this file. + + +

Syntax

Visual Basic 
Sub RenameEx( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsNewName As System.String, _
+   ByVal lFlags As System.Integer _
+) 
+
C# 
void RenameEx( 
+   System.int lParentWnd,
+   System.string bsNewName,
+   System.int lFlags
+)
+
C++/CLI 
void RenameEx( 
+&   System.int lParentWnd,
+&   System.String^ bsNewName,
+&   System.int lFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsNewName
+
New file name
lFlags
+
0; reserved
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7.html new file mode 100644 index 0000000..b0171c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7.html @@ -0,0 +1,142 @@ + + + + + + IEdmFile7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile7 
+   Inherits IEdmFile5IEdmFile6IEdmObject5 
+
C# 
public interface IEdmFile7 : IEdmFile5IEdmFile6IEdmObject5  
+
C++/CLI 
public interface class IEdmFile7 : public IEdmFile5IEdmFile6IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmFile6. +
  • is extended by IEdmFile8 which provides the ability to get the file type and update the file data card with default values when a new configuration is added by SOLIDWORKS.
+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_members.html new file mode 100644 index 0000000..1aae167 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmFile7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile7.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetComputedBOMGets an interface to a computed Bill of Materials.  
 MethodGetDerivedBOMsGets the derived Bills of Materials for this file.  
 MethodNeedsRegenerationGets whether the file with the specified version and location needs to be rebuilt in its associated CAD program.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_methods.html new file mode 100644 index 0000000..4daeb25 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmFile7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile7 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetComputedBOMGets an interface to a computed Bill of Materials.  
 MethodGetDerivedBOMsGets the derived Bills of Materials for this file.  
 MethodNeedsRegenerationGets whether the file with the specified version and location needs to be rebuilt in its associated CAD program.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetComputedBOM.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetComputedBOM.html new file mode 100644 index 0000000..8b65f7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetComputedBOM.html @@ -0,0 +1,180 @@ + + + + + + GetComputedBOM Method (IEdmFile7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetComputedBOM Method (IEdmFile7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile7 Interface + : GetComputedBOM Method (IEdmFile7)
+ +
+ + + +
+ +
+ + +
+
+
oBomLayoutNameOrID
+
Name or ID of a Bill of Materials layout (see Remarks)
+
+
+
lVersionNo
+
Version of file for which to get the Bill of Materials; 0 or -1 to use the latest version
+
+
+
bsConfiguration
+
Name of the file configuration
+
+
+
lEdmBomFlags
+
Combination of EdmBomFlag bits
+
+ +
+ +
+ + +
+
+ Gets an interface to a computed Bill of Materials. + + +

Syntax

Visual Basic 
Function GetComputedBOM( _
+   ByVal oBomLayoutNameOrID As System.Object, _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsConfiguration As System.String, _
+   ByVal lEdmBomFlags As System.Integer _
+) As EdmBomView
+
C# 
EdmBomView GetComputedBOM( 
+   System.object oBomLayoutNameOrID,
+   System.int lVersionNo,
+   System.string bsConfiguration,
+   System.int lEdmBomFlags
+)
+
C++/CLI 
EdmBomView^ GetComputedBOM( 
+&   System.Object^ oBomLayoutNameOrID,
+&   System.int lVersionNo,
+&   System.String^ bsConfiguration,
+&   System.int lEdmBomFlags
+) 
+ +

Parameters

oBomLayoutNameOrID
+
Name or ID of a Bill of Materials layout (see Remarks)
lVersionNo
+
Version of file for which to get the Bill of Materials; 0 or -1 to use the latest version
bsConfiguration
+
Name of the file configuration
lEdmBomFlags
+
Combination of EdmBomFlag bits
+ +

Return Value

IEdmBomView
+ + +

Example

See the IEdmFile7 examples. +
+ +

Remarks

To specify oBomLayoutNameOrID, use IEdmBomMgr.GetBomLayouts to enumerate the existing Bill of Materials layouts.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetDerivedBOMs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetDerivedBOMs.html new file mode 100644 index 0000000..497b045 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~GetDerivedBOMs.html @@ -0,0 +1,156 @@ + + + + + + GetDerivedBOMs Method (IEdmFile7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDerivedBOMs Method (IEdmFile7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile7 Interface + : GetDerivedBOMs Method (IEdmFile7)
+ +
+ + + +
+ +
+ + +
+
+
ppoBoms
+
Array of EdmBomInfos
+
+ +
+ +
+ + +
+
+ Gets the derived Bills of Materials for this file. + + +

Syntax

Visual Basic 
Sub GetDerivedBOMs( _
+   ByRef ppoBoms() As EdmBomInfo _
+) 
+
C# 
void GetDerivedBOMs( 
+   out EdmBomInfo[] ppoBoms
+)
+
C++/CLI 
void GetDerivedBOMs( 
+&   [Out] array<EdmBomInfo>^ ppoBoms
+) 
+ +

Parameters

ppoBoms
+
Array of EdmBomInfos
+ +
+ + +

Example

See the IEdmFile7 examples. +
+ +

Remarks

A derived Bill of Materials is also known as a named or saved Bill of Materials.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~NeedsRegeneration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~NeedsRegeneration.html new file mode 100644 index 0000000..2129ef5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile7~NeedsRegeneration.html @@ -0,0 +1,165 @@ + + + + + + NeedsRegeneration Method (IEdmFile7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
NeedsRegeneration Method (IEdmFile7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile7 Interface + : NeedsRegeneration Method (IEdmFile7)
+ +
+ + + +
+ +
+ + +
+
+
lVersion
+
File version; 0 to check the version in the local cache
+
+
+
oFolderPathOrID
+
Path or ID of the file's parent folder; valid only if lVersion is not 0
+
+ +
+ +
+ + +
+
+ Gets whether the file with the specified version and location needs to be rebuilt in its associated CAD program. + + +

Syntax

Visual Basic 
Function NeedsRegeneration( _
+   ByVal lVersion As System.Integer, _
+   Optional ByVal oFolderPathOrID As System.Object _
+) As System.Boolean
+
C# 
System.bool NeedsRegeneration( 
+   System.int lVersion,
+   System.object oFolderPathOrID
+)
+
C++/CLI 
System.bool NeedsRegeneration( 
+&   System.int lVersion,
+&   System.Object^ oFolderPathOrID
+) 
+ +

Parameters

lVersion
+
File version; 0 to check the version in the local cache
oFolderPathOrID
+
Path or ID of the file's parent folder; valid only if lVersion is not 0
+ +

Return Value

True if the file needs to be rebuilt in its associated CAD program, false if not
+ + + + + +

Remarks

If you have a drawing that references a part, and you make a model change on the part and don't rebuild the drawing in the CAD program, then the drawing shows the earlier version of the part. Use this method to check whether the drawing needs to be rebuilt with the newer version of the part in the associated CAD program.

+

Support for rebuild checks is only available for files saved with SOLIDWORKS 2009 or later.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8.html new file mode 100644 index 0000000..b1e6bc7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8.html @@ -0,0 +1,140 @@ + + + + + + IEdmFile8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile8 
+   Inherits IEdmFile5IEdmFile6IEdmFile7IEdmObject5 
+
C# 
public interface IEdmFile8 : IEdmFile5IEdmFile6IEdmFile7IEdmObject5  
+
C++/CLI 
public interface class IEdmFile8 : public IEdmFile5IEdmFile6IEdmFile7IEdmObject5  
+
+ + + + +

Remarks

This interface:

+ +

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_members.html new file mode 100644 index 0000000..42431e7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmFile8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile8 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile8.

+

Public Properties

+ +
 NameDescription
 PropertyFileTypeGets the type of this file.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodGenerateDefaultValuesForNewConfigurationPopulates the file data card with default data when a new configuration is added in SOLIDWORKS.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_methods.html new file mode 100644 index 0000000..9f4f93a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile8 members.

+

Public Methods

+ +
 NameDescription
 MethodGenerateDefaultValuesForNewConfigurationPopulates the file data card with default data when a new configuration is added in SOLIDWORKS.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_properties.html new file mode 100644 index 0000000..afda867 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmFile8 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile8 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile8 members.

+

Public Properties

+ +
 NameDescription
 PropertyFileTypeGets the type of this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~FileType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~FileType.html new file mode 100644 index 0000000..ebc1e40 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~FileType.html @@ -0,0 +1,147 @@ + + + + + + FileType Property (IEdmFile8) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileType Property (IEdmFile8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile8 Interface + : FileType Property (IEdmFile8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of this file. + + +

Syntax

Visual Basic 
ReadOnly Property FileType As EdmFileType
+
C# 
EdmFileType FileType {get;}
+
C++/CLI 
property EdmFileType FileType {
+   EdmFileType get();
+}
+ + + +

Property Value

Type of file as defined in EdmFileType
+ + +

Example

See the IEdmFile9 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~GenerateDefaultValuesForNewConfiguration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~GenerateDefaultValuesForNewConfiguration.html new file mode 100644 index 0000000..b8cac82 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile8~GenerateDefaultValuesForNewConfiguration.html @@ -0,0 +1,182 @@ + + + + + + GenerateDefaultValuesForNewConfiguration Method (IEdmFile8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GenerateDefaultValuesForNewConfiguration Method (IEdmFile8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile8 Interface + : GenerateDefaultValuesForNewConfiguration Method (IEdmFile8)
+ +
+ + + +
+ +
+ + +
+
+
bsConfiguration
+
Name of the new configuration
+
+
+
llCfgPersistID
+
SOLIDWORKS configuration ID; 0 if ID is not available (see Remarks)
+
+
+
poAux
+
Null; for internal use only
+
+
+
ppoRetVariables
+
Array of IEdmVariableValue5s for the file data card
+
+ +
+ +
+ + +
+
+ Populates the file data card with default data when a new configuration is added in SOLIDWORKS. + + +

Syntax

Visual Basic 
Sub GenerateDefaultValuesForNewConfiguration( _
+   ByVal bsConfiguration As System.String, _
+   ByVal llCfgPersistID As System.Long, _
+   ByVal poAux As System.Object, _
+   ByRef ppoRetVariables() As System.Object _
+) 
+
C# 
void GenerateDefaultValuesForNewConfiguration( 
+   System.string bsConfiguration,
+   System.long llCfgPersistID,
+   System.object poAux,
+   out System.object[] ppoRetVariables
+)
+
C++/CLI 
void GenerateDefaultValuesForNewConfiguration( 
+&   System.String^ bsConfiguration,
+&   System.int64 llCfgPersistID,
+&   System.Object^ poAux,
+&   [Out] System.array<Object^>^ ppoRetVariables
+) 
+ +

Parameters

bsConfiguration
+
Name of the new configuration
llCfgPersistID
+
SOLIDWORKS configuration ID; 0 if ID is not available (see Remarks)
poAux
+
Null; for internal use only
ppoRetVariables
+
Array of IEdmVariableValue5s for the file data card
+ +
+ + + + + +

Remarks

This method is called by the SOLIDWORKS add-in when a new configuration is added to a file. Its purpose is to populate the file data card with default data for the new configuration.

+

llCfgPersistID is a unique SOLIDWORKS API configuration ID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9.html new file mode 100644 index 0000000..138ae5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9.html @@ -0,0 +1,139 @@ + + + + + + IEdmFile9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFile9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFile9 
+   Inherits IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmObject5 
+
C# 
public interface IEdmFile9 : IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmObject5  
+
C++/CLI 
public interface class IEdmFile9 : public IEdmFile5IEdmFile6IEdmFile7IEdmFile8IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmFile8.

+

To access an item in the vault, cast this interface's object to an IEdmItem.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_members.html new file mode 100644 index 0000000..0c6c416 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFile9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFile9.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetLocalFileSize2Gets the size of a local copy of this file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_methods.html new file mode 100644 index 0000000..98d29df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFile9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFile9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFile9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFile9 members.

+

Public Methods

+ +
 NameDescription
 MethodGetLocalFileSize2Gets the size of a local copy of this file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9~GetLocalFileSize2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9~GetLocalFileSize2.html new file mode 100644 index 0000000..6182986 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile9~GetLocalFileSize2.html @@ -0,0 +1,162 @@ + + + + + + GetLocalFileSize2 Method (IEdmFile9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLocalFileSize2 Method (IEdmFile9)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFile9 Interface + : GetLocalFileSize2 Method (IEdmFile9)
+ +
+ + + +
+ +
+ + +
+
+
poPathOrFolderID
+
ID of the folder, a full file path, or a folder path (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the size of a local copy of this file. + + +

Syntax

Visual Basic 
Function GetLocalFileSize2( _
+   ByRef poPathOrFolderID As System.Object _
+) As System.Long
+
C# 
System.long GetLocalFileSize2( 
+   ref System.object poPathOrFolderID
+)
+
C++/CLI 
System.int64 GetLocalFileSize2( 
+&   System.Object^% poPathOrFolderID
+) 
+ +

Parameters

poPathOrFolderID
+
ID of the folder, a full file path, or a folder path (see Remarks)
+ +

Return Value

Size in bytes; -1 if the local file is missing
+ + + + +

Example

+

Remarks

If poPathOrFolderID is a folder path, it must be terminated by a backslash ('\').

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The local copy of the file is missing.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser.html new file mode 100644 index 0000000..64245b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser.html @@ -0,0 +1,140 @@ + + + + + + IEdmFindUser Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFindUser Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFindUser Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to search for users in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFindUser 
+
C# 
public interface IEdmFindUser 
+
C++/CLI 
public interface class IEdmFindUser 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To access this interface, call IEdmVault7::CreateUtility with eType set to EdmUtility.EdmUtil_FindUser.

+

SOLIDWORKS PDM Professional uses this interface internally when you have linked a card button to the Find User command.

+

This interface provides for both silent and interactive searches of users. Interactive searches display the same user interface that SOLIDWORKS PDM Professional displays when searching the vault for users.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_members.html new file mode 100644 index 0000000..c4b3060 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmFindUser Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFindUser Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFindUser Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFindUser.

+

Public Properties

+ +
 NameDescription
 PropertyResultGets the result of the last search for users.  
Top
+ +

Public Methods

+ + + + + +
 NameDescription
 MethodClearClears all of the search criteria created by IEdmFindUser::SetPropt for finding users.  
 MethodGetProptGets the search criteria previously set by IEdmFindUser::SetPropt for finding users.  
 MethodSetProptSets the search criteria for finding users.  
 MethodShowFindUIDisplays the Find User dialog box so the user can enter search criteria and select users from the result list.  
 MethodSilentFindSilently searches for users with search criteria specified by IEdmFindUser::SetPropt.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_methods.html new file mode 100644 index 0000000..1636f8a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmFindUser Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFindUser Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFindUser Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFindUser members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodClearClears all of the search criteria created by IEdmFindUser::SetPropt for finding users.  
 MethodGetProptGets the search criteria previously set by IEdmFindUser::SetPropt for finding users.  
 MethodSetProptSets the search criteria for finding users.  
 MethodShowFindUIDisplays the Find User dialog box so the user can enter search criteria and select users from the result list.  
 MethodSilentFindSilently searches for users with search criteria specified by IEdmFindUser::SetPropt.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_properties.html new file mode 100644 index 0000000..3034f34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmFindUser Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFindUser Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFindUser Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFindUser members.

+

Public Properties

+ +
 NameDescription
 PropertyResultGets the result of the last search for users.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Clear.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Clear.html new file mode 100644 index 0000000..16464a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Clear.html @@ -0,0 +1,143 @@ + + + + + + Clear Method (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Clear Method (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : Clear Method (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Clears all of the search criteria created by IEdmFindUser::SetPropt for finding users. + + +

Syntax

Visual Basic 
Sub Clear() 
+
C# 
void Clear()
+
C++/CLI 
void Clear(); 
+ + + +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~GetPropt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~GetPropt.html new file mode 100644 index 0000000..9a2c259 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~GetPropt.html @@ -0,0 +1,155 @@ + + + + + + GetPropt Method (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetPropt Method (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : GetPropt Method (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+
eProp
+
User property to search for as defined by EdmFindUserProp
+
+ +
+ +
+ + +
+
+ Gets the search criteria previously set by IEdmFindUser::SetPropt for finding users. + + +

Syntax

Visual Basic 
Function GetPropt( _
+   ByVal eProp As EdmFindUserProp _
+) As System.Object
+
C# 
System.object GetPropt( 
+   EdmFindUserProp eProp
+)
+
C++/CLI 
System.Object^ GetPropt( 
+&   EdmFindUserProp eProp
+) 
+ +

Parameters

eProp
+
User property to search for as defined by EdmFindUserProp
+ +

Return Value

Value of the property specified in eProp
+ + +

Example

See the IEdmFindUser examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Result.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Result.html new file mode 100644 index 0000000..190b808 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~Result.html @@ -0,0 +1,147 @@ + + + + + + Result Property (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Result Property (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : Result Property (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the result of the last search for users. + + +

Syntax

Visual Basic 
ReadOnly Property Result As IEdmEnum
+
C# 
IEdmEnum Result {get;}
+
C++/CLI 
property IEdmEnum^ Result {
+   IEdmEnum^ get();
+}
+ + + +

Property Value

IEdmEnum (see Remarks)
+ + +

Example

See the IEdmFindUser examples. +
+ +

Remarks

If IEdmFindUser::ShowFindUI is called, this property contains only the users that were selected in the search dialog box's result list.

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SetPropt.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SetPropt.html new file mode 100644 index 0000000..ed5d0c4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SetPropt.html @@ -0,0 +1,167 @@ + + + + + + SetPropt Method (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetPropt Method (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : SetPropt Method (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+
eProp
+
User property to search for as defined by EdmFindUserProp
+
+
+
oValue
+
Value of the property specified in eProp
+
+ +
+ +
+ + +
+
+ Sets the search criteria for finding users. + + +

Syntax

Visual Basic 
Sub SetPropt( _
+   ByVal eProp As EdmFindUserProp, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetPropt( 
+   EdmFindUserProp eProp,
+   System.object oValue
+)
+
C++/CLI 
void SetPropt( 
+&   EdmFindUserProp eProp,
+&   System.Object^ oValue
+) 
+ +

Parameters

eProp
+
User property to search for as defined by EdmFindUserProp
oValue
+
Value of the property specified in eProp
+ +
+ + +

Example

See the IEdmFindUser examples. +
+ +

Remarks

After calling this method, call one of the following:

+ +

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~ShowFindUI.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~ShowFindUI.html new file mode 100644 index 0000000..e74ef3d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~ShowFindUI.html @@ -0,0 +1,174 @@ + + + + + + ShowFindUI Method (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowFindUI Method (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : ShowFindUI Method (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle of the search dialog box
+
+
+
bAllowMultiSelect
+
True to permit the user to select more than one user in the search result, false to not
+
+
+
bsCaption
+
Caption for the dialog box; "" to use the default, localized caption
+
+ +
+ +
+ + +
+
+ Displays the Find User dialog box so the user can enter search criteria and select users from the result list. + + +

Syntax

Visual Basic 
Function ShowFindUI( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bAllowMultiSelect As System.Boolean, _
+   Optional ByVal bsCaption As System.String _
+) As System.Boolean
+
C# 
System.bool ShowFindUI( 
+   System.int lParentWnd,
+   System.bool bAllowMultiSelect,
+   System.string bsCaption
+)
+
C++/CLI 
System.bool ShowFindUI( 
+&   System.int lParentWnd,
+&   System.bool bAllowMultiSelect,
+&   System.String^ bsCaption
+) 
+ +

Parameters

lParentWnd
+
Parent window handle of the search dialog box
bAllowMultiSelect
+
True to permit the user to select more than one user in the search result, false to not
bsCaption
+
Caption for the dialog box; "" to use the default, localized caption
+ +

Return Value

True if a user is selected in the search result, false if the dialog box is canceled
+ + +

Example

See the IEdmFindUser examples. +
+ +

Remarks

Before calling this method, call IEdmFindUser::SetPropt to set the search criteria for finding users. The search criteria become the default values in the Find User dialog box that is launched when this method is called.

+

After successfully calling this method, the IEdmFindUser.Result property contains the users selected in the result list of the Find User dialog box.

+

SOLIDWORKS PDM Professional calls this function when you link a card button to the Find User command.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SilentFind.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SilentFind.html new file mode 100644 index 0000000..b8c5c64 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFindUser~SilentFind.html @@ -0,0 +1,144 @@ + + + + + + SilentFind Method (IEdmFindUser) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SilentFind Method (IEdmFindUser)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFindUser Interface + : SilentFind Method (IEdmFindUser)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Silently searches for users with search criteria specified by IEdmFindUser::SetPropt. + + +

Syntax

Visual Basic 
Sub SilentFind() 
+
C# 
void SilentFind()
+
C++/CLI 
void SilentFind(); 
+ + + +
+ + +

Example

See the example for IEdmFindUser. +
+ +

Remarks

The result of the search is returned in the property, IEdmFindUser.Result.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: An argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10.html new file mode 100644 index 0000000..7e51824 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10.html @@ -0,0 +1,141 @@ + + + + + + IEdmFolder10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault.
+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder10 
+   Inherits IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5 
+
C# 
public interface IEdmFolder10 : IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder10 : public IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmFolder9 by providing the ability to specify the appearance and functionality of card views. +
  • is extended by IEdmFolder11.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_members.html new file mode 100644 index 0000000..cd5ebf0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFolder10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder10.

+ + +

Public Methods

+ +
 NameDescription
 MethodCreateCardView2Creates a data card view for the specified file or folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_methods.html new file mode 100644 index 0000000..5be6928 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFolder10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder10 members.

+

Public Methods

+ +
 NameDescription
 MethodCreateCardView2Creates a data card view for the specified file or folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10~CreateCardView2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10~CreateCardView2.html new file mode 100644 index 0000000..a17629b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder10~CreateCardView2.html @@ -0,0 +1,202 @@ + + + + + + CreateCardView2 Method (IEdmFolder10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateCardView2 Method (IEdmFolder10)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder10 Interface + : CreateCardView2 Method (IEdmFolder10)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of the file for which to create a data card view; 0 to create a view only for this folder
+
+
+
lParentWindow
+
Handle of the window in which to create the data card view
+
+
+
lX
+
X coordinate where to place the data card view relative to the upper-left corner of the window
+
+
+
lY
+
Y coordinate where to place the data card view relative to the upper-left corner of the window
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to handle notifications from the data card view (see Remarks)
+
+
+
lEdmCardViewFlags
+
Appearance and functionality of the data card view as defined in EmdCardViewFlag
+
+ +
+ +
+ + +
+
+ Creates a data card view for the specified file or folder. + + +

Syntax

Visual Basic 
Function CreateCardView2( _
+   ByVal lFileID As System.Integer, _
+   ByVal lParentWindow As System.Integer, _
+   ByVal lX As System.Integer, _
+   ByVal lY As System.Integer, _
+   Optional ByVal poCallback As EdmCallback, _
+   Optional ByVal lEdmCardViewFlags As System.Integer _
+) As IEdmCardView5
+
C# 
IEdmCardView5 CreateCardView2( 
+   System.int lFileID,
+   System.int lParentWindow,
+   System.int lX,
+   System.int lY,
+   EdmCallback poCallback,
+   System.int lEdmCardViewFlags
+)
+
C++/CLI 
IEdmCardView5^ CreateCardView2( 
+&   System.int lFileID,
+&   System.int lParentWindow,
+&   System.int lX,
+&   System.int lY,
+&   EdmCallback^ poCallback,
+&   System.int lEdmCardViewFlags
+) 
+ +

Parameters

lFileID
+
ID of the file for which to create a data card view; 0 to create a view only for this folder
lParentWindow
+
Handle of the window in which to create the data card view
lX
+
X coordinate where to place the data card view relative to the upper-left corner of the window
lY
+
Y coordinate where to place the data card view relative to the upper-left corner of the window
poCallback
+
Optional pointer to a class that implements IEdmCallback to handle notifications from the data card view (see Remarks)
lEdmCardViewFlags
+
Appearance and functionality of the data card view as defined in EmdCardViewFlag
+ +

Return Value

IEdmCardView5; Nothing or null if the file does not have a data card associated with it
+ + + + +

Example

+

Remarks

If the callback is implemented for this card view:

+ +

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmCardView5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file does not have a card associated with it.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11.html new file mode 100644 index 0000000..5083239 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11.html @@ -0,0 +1,138 @@ + + + + + + IEdmFolder11 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder11 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder11 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault.
+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder11 
+   Inherits IEdmFolder10IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5 
+
C# 
public interface IEdmFolder11 : IEdmFolder10IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder11 : public IEdmFolder10IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmFolder10 by providing the ability to restore deleted items from the recycle bin to the vault view.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_members.html new file mode 100644 index 0000000..71a0e60 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmFolder11 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder11 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder11 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder11.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetDeletedItemsGets items deleted from this folder.  
 MethodRecoverDeletedItemsRestores the specified deleted items in the recycle bin to this folder in the vault view.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_methods.html new file mode 100644 index 0000000..cefc4b7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmFolder11 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder11 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder11 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder11 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetDeletedItemsGets items deleted from this folder.  
 MethodRecoverDeletedItemsRestores the specified deleted items in the recycle bin to this folder in the vault view.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~GetDeletedItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~GetDeletedItems.html new file mode 100644 index 0000000..00b810f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~GetDeletedItems.html @@ -0,0 +1,160 @@ + + + + + + GetDeletedItems Method (IEdmFolder11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDeletedItems Method (IEdmFolder11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder11 Interface + : GetDeletedItems Method (IEdmFolder11)
+ +
+ + + +
+ +
+ + +
+
+
poDeletedItems
+
Array of EdmDeletedItems
+
+
+
bRecursive
+
True to recursively restore subfolder contents, false to not
+
+ +
+ +
+ + +
+
+ Gets items deleted from this folder. + + +

Syntax

Visual Basic 
Sub GetDeletedItems( _
+   ByRef poDeletedItems() As EdmDeletedItems, _
+   Optional ByVal bRecursive As System.Boolean _
+) 
+
C# 
void GetDeletedItems( 
+   out EdmDeletedItems[] poDeletedItems,
+   System.bool bRecursive
+)
+
C++/CLI 
void GetDeletedItems( 
+&   [Out] array<EdmDeletedItems>^ poDeletedItems,
+&   System.bool bRecursive
+) 
+ +

Parameters

poDeletedItems
+
Array of EdmDeletedItems
bRecursive
+
True to recursively restore subfolder contents, false to not
+ +
+ + +

Example

See the IEdmFolder11 examples. +
+ +

Remarks

Use IEdmFolder11::RecoverDeletedItems to restore poDeletedItems to the vault view.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~RecoverDeletedItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~RecoverDeletedItems.html new file mode 100644 index 0000000..3b551c9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder11~RecoverDeletedItems.html @@ -0,0 +1,155 @@ + + + + + + RecoverDeletedItems Method (IEdmFolder11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RecoverDeletedItems Method (IEdmFolder11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder11 Interface + : RecoverDeletedItems Method (IEdmFolder11)
+ +
+ + + +
+ +
+ + +
+
+
poDeletedItems
+
Array of EdmDeletedItems
+
+ +
+ +
+ + +
+
+ Restores the specified deleted items in the recycle bin to this folder in the vault view. + + +

Syntax

Visual Basic 
Sub RecoverDeletedItems( _
+   ByVal poDeletedItems() As EdmDeletedItems _
+) 
+
C# 
void RecoverDeletedItems( 
+   EdmDeletedItems[] poDeletedItems
+)
+
C++/CLI 
void RecoverDeletedItems( 
+&   array<EdmDeletedItems>^ poDeletedItems
+) 
+ +

Parameters

poDeletedItems
+
Array of EdmDeletedItems
+ +
+ + +

Example

See the IEdmFolder11 examples. +
+ +

Remarks

Use IEdmFolder11::GetDeletedItems to populate poDeletedItems.

+

Note that you cannot use this method to recover items that have been completely destroyed using IEdmFolder7::DestroyDeletedItems.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12.html new file mode 100644 index 0000000..fa451b3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12.html @@ -0,0 +1,139 @@ + + + + + + IEdmFolder12 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder12 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder12 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder12 
+   Inherits IEdmFolder10IEdmFolder11IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5 
+
C# 
public interface IEdmFolder12 : IEdmFolder10IEdmFolder11IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder12 : public IEdmFolder10IEdmFolder11IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmFolder11 by providing the ability to specify that a new file's data card be created with a name that is either the new file's serial number or the new file's name. +
  • is extended by IEdmFolder13.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_members.html new file mode 100644 index 0000000..1ca68d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFolder12 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder12 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder12 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder12.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetFileNameSerNoFor internal use only; do not use.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_methods.html new file mode 100644 index 0000000..dd7da02 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFolder12 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder12 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder12 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder12 members.

+

Public Methods

+ +
 NameDescription
 MethodSetFileNameSerNoFor internal use only; do not use.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12~SetFileNameSerNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12~SetFileNameSerNo.html new file mode 100644 index 0000000..4e44268 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder12~SetFileNameSerNo.html @@ -0,0 +1,172 @@ + + + + + + SetFileNameSerNo Method (IEdmFolder12) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFileNameSerNo Method (IEdmFolder12)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder12 Interface + : SetFileNameSerNo Method (IEdmFolder12)
+ +
+ + + +
+ +
+ + +
+
+
oSerialNumberName
+
    +
  • File name without extension or path
+

    - or -

+
    +
  • ID of the file's serial number generator
+
+ +
+ +
+ + +
+
+ For internal use only; do not use. + + +

Syntax

Visual Basic 
Sub SetFileNameSerNo( _
+   ByVal oSerialNumberName As System.Object _
+) 
+
C# 
void SetFileNameSerNo( 
+   System.object oSerialNumberName
+)
+
C++/CLI 
void SetFileNameSerNo( 
+&   System.Object^ oSerialNumberName
+) 
+ +

Parameters

oSerialNumberName
+
    +
  • File name without extension or path
+

    - or -

+
    +
  • ID of the file's serial number generator
+ +
+ + + + + +

Remarks

This method specifies that when a file is added to the vault, its data card is created with a name that is either the added file's serial number or its name.

+

By default when files are added to the vault, file data cards are created with serial number names. To direct that an added file's data card be created with a file name instead of a serial number name, call this method specifying oSerialNumberName with a file name before calling IEdmFolder8::AddFile2 or IEdmFolder6::AddFiles.

+

If you don't call this method before calling IEdmFolder8::AddFile2 or IEdmFolder6::AddFiles, the added file and its data card are created with different serial number names. To synchronize the serial number names:

+
    +
  1. Use IEdmSerNoGen7 to generate/get the added file's serial number. +
  2. Call this method, specifying oSerialNumberName with the added file's serial number generator ID. +
  3. Repeat steps 1 and 2 for each added file. +
  4. Call IEdmFolder8::AddFile2 or IEdmFolder6::AddFiles to add the new file(s) to the vault.
+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13.html new file mode 100644 index 0000000..02ec888 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13.html @@ -0,0 +1,138 @@ + + + + + + IEdmFolder13 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder13 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder13 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder13 
+   Inherits IEdmFolder10IEdmFolder11IEdmFolder12IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5 
+ +
C++/CLI 
public interface class IEdmFolder13 : public IEdmFolder10IEdmFolder11IEdmFolder12IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmFolder9IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmFolder12 by providing the ability to destroy deleted items.
+

Accessors

See the IEdmFolder5 accessors.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_members.html new file mode 100644 index 0000000..027f42f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFolder13 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder13 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder13 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder13.

+ + +

Public Methods

+ +
 NameDescription
 MethodDestroyDeletedItems2Destroys the specified deleted items in this folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_methods.html new file mode 100644 index 0000000..73ba50f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFolder13 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder13 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder13 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder13 members.

+

Public Methods

+ +
 NameDescription
 MethodDestroyDeletedItems2Destroys the specified deleted items in this folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13~DestroyDeletedItems2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13~DestroyDeletedItems2.html new file mode 100644 index 0000000..dcba155 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder13~DestroyDeletedItems2.html @@ -0,0 +1,174 @@ + + + + + + DestroyDeletedItems2 Method (IEdmFolder13) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DestroyDeletedItems2 Method (IEdmFolder13)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder13 Interface + : DestroyDeletedItems2 Method (IEdmFolder13)
+ +
+ + + +
+ +
+ + +
+
+
poDeletedItems
+
Array of EdmDeletedItems structures; one structure for each deleted file
+
+
+
ppoFiles
+
Array of EdmFileInfo structures; one structure for each destroyed file containing information about the file
+
+
+
poErrors
+
Array of EdmBatchDelErrInfo structures; one structure for each destroyed file containing information about errors that occurred during this operation
+
+ +
+ +
+ + +
+
+ Destroys the specified deleted items in this folder. + + +

Syntax

Visual Basic 
Sub DestroyDeletedItems2( _
+   ByVal poDeletedItems() As EdmDeletedItems, _
+   ByRef ppoFiles() As EdmFileInfo, _
+   ByRef poErrors() As EdmBatchDelErrInfo _
+) 
+
C# 
void DestroyDeletedItems2( 
+   EdmDeletedItems[] poDeletedItems,
+   out EdmFileInfo[] ppoFiles,
+   out EdmBatchDelErrInfo[] poErrors
+)
+
C++/CLI 
void DestroyDeletedItems2( 
+&   array<EdmDeletedItems>^ poDeletedItems,
+&   [Out] array<EdmFileInfo>^ ppoFiles,
+&   [Out] array<EdmBatchDelErrInfo>^ poErrors
+) 
+ +

Parameters

poDeletedItems
+
Array of EdmDeletedItems structures; one structure for each deleted file
ppoFiles
+
Array of EdmFileInfo structures; one structure for each destroyed file containing information about the file
poErrors
+
Array of EdmBatchDelErrInfo structures; one structure for each destroyed file containing information about errors that occurred during this operation
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2022
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5.html new file mode 100644 index 0000000..cfed2b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5.html @@ -0,0 +1,164 @@ + + + + + + IEdmFolder5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file system folder in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmFolder5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmObject5. +
  • is extended by IEdmFolder6, which provides the ability to add files to a folder, move a folder, and rename a folder.
+

Use this interface to enumerate the files and subfolders of a folder.

+

Access the contents of a folder's data card by assigning an IEdmEnumeratorVariable5 pointer to an IEdmFolder5 object.

+

To update multiple folder data cards, use IEdmBatchUpdate2 which is more efficient than updating each folder data card using this interface.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_members.html new file mode 100644 index 0000000..5818491 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_members.html @@ -0,0 +1,140 @@ + + + + + + IEdmFolder5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder5.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyIDGets the database ID of this folder.  
 PropertyLocalPathGets the full file system path to this local folder.  
 PropertyNameGets the name of the folder.  
 PropertyObjectTypeGets the type of object.  
 PropertyParentFolderGets the interface to the parent folder of this folder.  
 PropertyVaultGets the file vault to which this folder belongs.  
Top
+ +

Public Methods

+ + + + + + + + + + + + + + + + + + + + + + + +
 NameDescription
 MethodAddFileObsolete. Superseded by IEdmFolder8::AddFile2.  
 MethodAddFileSharedShares a file in another folder with this folder.  
 MethodAddFolderCreates a subfolder in this folder.  
 MethodCopyFileObsolete. Superseded by IEdmFolder8::CopyFile2.  
 MethodCreateCardViewObsolete. Superseded by IEdmFolder10::CreateCardView2.  
 MethodCreateFolderPathCreates all subfolders in a path relative to this folder.  
 MethodCreateLabelCreates a label on this folder and its subfolders.  
 MethodDeleteFileDeletes a file having the specified ID from this folder.  
 MethodDeleteFolderDeletes the specified subfolder from this folder.  
 MethodGetCardGets the interface to a data card of a file of the specified file type or the interface to the data card of this folder.  
 MethodGetCardIDGets the ID of the data card of a file with the specified extension or the ID of the data card of this folder.  
 MethodGetFileGets the interface to a file with the specified name in this folder.  
 MethodGetFirstFilePositionStarts an enumeration of the files in this folder.  
 MethodGetFirstLabelPositionStarts an enumeration of the labels in this folder.  
 MethodGetFirstSubFolderPositionStarts an enumeration of the subfolders in this folder.  
 MethodGetNextFileGets the next file in the enumeration.  
 MethodGetNextLabelGets the next label in the enumeration.  
 MethodGetNextSubFolderGets the next subfolder in the enumeration.  
 MethodGetSubFolderGets the interface to the subfolder with the specified name.  
 MethodHasRightsObsolete. Superseded by IEdmFolder5::HasRightsEx.  
 MethodHasRightsExGets whether the user has the specified rights for the specified file in this folder.  
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodRefreshRefreshes the file listing for the folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_methods.html new file mode 100644 index 0000000..9cc3c04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_methods.html @@ -0,0 +1,125 @@ + + + + + + IEdmFolder5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder5 members.

+

Public Methods

+ + + + + + + + + + + + + + + + + + + + + + + +
 NameDescription
 MethodAddFileObsolete. Superseded by IEdmFolder8::AddFile2.  
 MethodAddFileSharedShares a file in another folder with this folder.  
 MethodAddFolderCreates a subfolder in this folder.  
 MethodCopyFileObsolete. Superseded by IEdmFolder8::CopyFile2.  
 MethodCreateCardViewObsolete. Superseded by IEdmFolder10::CreateCardView2.  
 MethodCreateFolderPathCreates all subfolders in a path relative to this folder.  
 MethodCreateLabelCreates a label on this folder and its subfolders.  
 MethodDeleteFileDeletes a file having the specified ID from this folder.  
 MethodDeleteFolderDeletes the specified subfolder from this folder.  
 MethodGetCardGets the interface to a data card of a file of the specified file type or the interface to the data card of this folder.  
 MethodGetCardIDGets the ID of the data card of a file with the specified extension or the ID of the data card of this folder.  
 MethodGetFileGets the interface to a file with the specified name in this folder.  
 MethodGetFirstFilePositionStarts an enumeration of the files in this folder.  
 MethodGetFirstLabelPositionStarts an enumeration of the labels in this folder.  
 MethodGetFirstSubFolderPositionStarts an enumeration of the subfolders in this folder.  
 MethodGetNextFileGets the next file in the enumeration.  
 MethodGetNextLabelGets the next label in the enumeration.  
 MethodGetNextSubFolderGets the next subfolder in the enumeration.  
 MethodGetSubFolderGets the interface to the subfolder with the specified name.  
 MethodHasRightsObsolete. Superseded by IEdmFolder5::HasRightsEx.  
 MethodHasRightsExGets whether the user has the specified rights for the specified file in this folder.  
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodRefreshRefreshes the file listing for the folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_properties.html new file mode 100644 index 0000000..f14ab37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmFolder5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder5 members.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyIDGets the database ID of this folder.  
 PropertyLocalPathGets the full file system path to this local folder.  
 PropertyNameGets the name of the folder.  
 PropertyObjectTypeGets the type of object.  
 PropertyParentFolderGets the interface to the parent folder of this folder.  
 PropertyVaultGets the file vault to which this folder belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFile.html new file mode 100644 index 0000000..463c174 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFile.html @@ -0,0 +1,202 @@ + + + + + + AddFile Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : AddFile Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsSrcPath
+
Path of file to copy; "" to create an empty file with name specified by bsNewFileName (see Remarks)
+
+
+
bsNewFileName
+
Optional new file name; "" to use the file name specified in bsSrcPath (see Remarks)
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFolder8::AddFile2. + + +

Syntax

Visual Basic 
Function AddFile( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsSrcPath As System.String, _
+   Optional ByVal bsNewFileName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) As System.Integer
+
C# 
System.int AddFile( 
+   System.int lParentWnd,
+   System.string bsSrcPath,
+   System.string bsNewFileName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
System.int AddFile( 
+&   System.int lParentWnd,
+&   System.String^ bsSrcPath,
+&   System.String^ bsNewFileName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsSrcPath
+
Path of file to copy; "" to create an empty file with name specified by bsNewFileName (see Remarks)
bsNewFileName
+
Optional new file name; "" to use the file name specified in bsSrcPath (see Remarks)
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +

Return Value

ID of the new file
+ + + + + +

Remarks

Use this method to:

+
    +
  • copy a file from another folder that is either inside or outside of the vault. +
  • create a new empty file.
+

Use:

+ +

To add multiple files to this folder, use IEdmFolder6::AddFiles to add them all at once, which is more efficient than adding them one at a time using this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to add files to this folder. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file with the specified name in this folder. +
  • E_EDM_INVALID_NAME: The suggested file name is invalid. +
  • E_EDM_FILE_SHARE_ERROR: The source or destination file is opened exclusively by another program. +
  • E_EDM_FILE_NOT_FOUND: The source file could not be found. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdType.EdmCmd_PreAdd hooks did not permit the operation.
+

 

+

To create a virtual document in a folder, pass an empty string as the source file. For example:

+
+
+
+
eFolder.AddFile(Me.Handle.ToInt32, '', path, 0) 
+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFileShared.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFileShared.html new file mode 100644 index 0000000..41ee22c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFileShared.html @@ -0,0 +1,168 @@ + + + + + + AddFileShared Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFileShared Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : AddFileShared Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to share
+
+
+
lParentWindow
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Shares a file in another folder with this folder. + + +

Syntax

Visual Basic 
Sub AddFileShared( _
+   ByVal lFileID As System.Integer, _
+   ByVal lParentWindow As System.Integer _
+) 
+
C# 
void AddFileShared( 
+   System.int lFileID,
+   System.int lParentWindow
+)
+
C++/CLI 
void AddFileShared( 
+&   System.int lFileID,
+&   System.int lParentWindow
+) 
+ +

Parameters

lFileID
+
ID of file to share
lParentWindow
+
Parent window handle
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file with the same name in this folder. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdData.EdmCmd_PreShare hooks did not permit the operation. +
  • E_EDM_FILE_NOT_FOUND: The source file was not found. (The ID is invalid.) +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to share the specified file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFolder.html new file mode 100644 index 0000000..480189e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~AddFolder.html @@ -0,0 +1,183 @@ + + + + + + AddFolder Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : AddFolder Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsFolderName
+
Name of the new folder
+
+
+
poData
+
IEdmFolderData5; optional additional data (see Remarks)
+
+ +
+ +
+ + +
+
+ Creates a subfolder in this folder. + + +

Syntax

Visual Basic 
Function AddFolder( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsFolderName As System.String, _
+   Optional ByVal poData As EdmFolderData _
+) As IEdmFolder5
+
C# 
IEdmFolder5 AddFolder( 
+   System.int lParentWnd,
+   System.string bsFolderName,
+   EdmFolderData poData
+)
+
C++/CLI 
IEdmFolder5^ AddFolder( 
+&   System.int lParentWnd,
+&   System.String^ bsFolderName,
+&   EdmFolderData^ poData
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsFolderName
+
Name of the new folder
poData
+
IEdmFolderData5; optional additional data (see Remarks)
+ +

Return Value

IEdmFolder5
+ + + + +

Example

+

Remarks

To create all the folders in a path in one operation, call  IEdmFolder5::CreateFolderPath.

+

To add more than one folder, use IEdmBatchAddFolders to add them all at once, which is much more efficient than using this method, which adds folders only one at a time.

+

If poData is null, the user rights and file data card for the new folder are inherited from the parent folder.

+

C++ users not using smart-pointer wrapper functions must release the returned pointer to IEdmFolder5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_NAME: The folder name contained invalid characters. +
  • E_EDM_COULD_NOT_CREATE_LOCAL_FOLDER: Could not create the new folder in the local disk cache. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file or folder with the specified name in this folder. +
  • E_EDM_FOLDER_NOT_FOUND: This folder has been deleted. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to create sub-folders here. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: The operation was not permitted by one of the installed EdmCmdData.EdmCmd_PreAddFolder hooks.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html new file mode 100644 index 0000000..7db2cb4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html @@ -0,0 +1,195 @@ + + + + + + CopyFile Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CopyFile Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : CopyFile Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to copy
+
+
+
lSrcFolderID
+
ID of folder from which to copy the file
+
+
+
lParentWnd
+
Parent window handle
+
+
+
bsNewName
+
Optional new name of the file; "" to use the original file name
+
+
+
lFlags
+
Combination of EdmCopyFlag bits
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFolder8::CopyFile2. + + +

Syntax

Visual Basic 
Function CopyFile( _
+   ByVal lFileID As System.Integer, _
+   ByVal lSrcFolderID As System.Integer, _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lFlags As System.Integer _
+) As System.Integer
+
C# 
System.int CopyFile( 
+   System.int lFileID,
+   System.int lSrcFolderID,
+   System.int lParentWnd,
+   System.string bsNewName,
+   System.int lFlags
+)
+
C++/CLI 
System.int CopyFile( 
+&   System.int lFileID,
+&   System.int lSrcFolderID,
+&   System.int lParentWnd,
+&   System.String^ bsNewName,
+&   System.int lFlags
+) 
+ +

Parameters

lFileID
+
ID of file to copy
lSrcFolderID
+
ID of folder from which to copy the file
lParentWnd
+
Parent window handle
bsNewName
+
Optional new name of the file; "" to use the original file name
lFlags
+
Combination of EdmCopyFlag bits
+ +

Return Value

ID of the new file
+ + + + +

Example

+

Remarks

This method uses the ID of a file to identify which file to copy. You can also call IEdmFolder5::AddFile, specifying the path of the file that you want to copy. IEdmFolder5::AddFile handles both source files that are inside and outside of the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file or folder with the same name in this folder. +
  • E_EDM_FILE_NOT_FOUND: The source file was not found. (The ID is invalid.) +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to copy the specified file. +
  • E_EDM_FILE_SHARE_ERROR: Cannot copy the file because it is exclusively opened in another application. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdData.EdmCmd_PreCopy hooks didn't permit the operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateCardView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateCardView.html new file mode 100644 index 0000000..9a18d44 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateCardView.html @@ -0,0 +1,192 @@ + + + + + + CreateCardView Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateCardView Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : CreateCardView Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of the file for which to create a data card view; 0 to create a view only for this folder
+
+
+
lParentWindow
+
Handle of the window in which to create the data card view
+
+
+
lX
+
X coordinate where to place the data card view relative to the upper left-hand corner of the window
+
+
+
lY
+
Y coordinate where to place the data card view relative to the upper left-hand corner of the window
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to handle notifications from the data card view (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFolder10::CreateCardView2. + + +

Syntax

Visual Basic 
Function CreateCardView( _
+   ByVal lFileID As System.Integer, _
+   ByVal lParentWindow As System.Integer, _
+   ByVal lX As System.Integer, _
+   ByVal lY As System.Integer, _
+   Optional ByVal poCallback As EdmCallback _
+) As IEdmCardView5
+
C# 
IEdmCardView5 CreateCardView( 
+   System.int lFileID,
+   System.int lParentWindow,
+   System.int lX,
+   System.int lY,
+   EdmCallback poCallback
+)
+
C++/CLI 
IEdmCardView5^ CreateCardView( 
+&   System.int lFileID,
+&   System.int lParentWindow,
+&   System.int lX,
+&   System.int lY,
+&   EdmCallback^ poCallback
+) 
+ +

Parameters

lFileID
+
ID of the file for which to create a data card view; 0 to create a view only for this folder
lParentWindow
+
Handle of the window in which to create the data card view
lX
+
X coordinate where to place the data card view relative to the upper left-hand corner of the window
lY
+
Y coordinate where to place the data card view relative to the upper left-hand corner of the window
poCallback
+
Optional pointer to a class that implements IEdmCallback to handle notifications from the data card view (see Remarks)
+ +

Return Value

IEdmCardView5; Nothing or null if the file does not have a data card associated with it
+ + + + + +

Remarks

If the callback is implemented for this card view:

+ +

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmCardView5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file does not have a card associated with it.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateFolderPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateFolderPath.html new file mode 100644 index 0000000..f731dcc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateFolderPath.html @@ -0,0 +1,173 @@ + + + + + + CreateFolderPath Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateFolderPath Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : CreateFolderPath Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path of subfolders to create
+
+
+
lParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Creates all subfolders in a path relative to this folder. + + +

Syntax

Visual Basic 
Function CreateFolderPath( _
+   ByVal bsPath As System.String, _
+   ByVal lParentWnd As System.Integer _
+) As IEdmFolder5
+
C# 
IEdmFolder5 CreateFolderPath( 
+   System.string bsPath,
+   System.int lParentWnd
+)
+
C++/CLI 
IEdmFolder5^ CreateFolderPath( 
+&   System.String^ bsPath,
+&   System.int lParentWnd
+) 
+ +

Parameters

bsPath
+
Path of subfolders to create
lParentWnd
+
Parent window handle
+ +

Return Value

IEdmFolder5; interface to the top folder
+ + + + +

Example

+

Remarks

This method does not fail if one of the subfolders in bsPath already exists.

+

This method does not specify file data cards or user rights for the new subfolders in bsPath. Instead of calling this method, call IEdmFolder5::AddFolder to create each subfolder in the path and also specify file data cards or user rights.

+

It is more efficient to use IEdmBatchAddFolders to create many folder paths at once than to use this method to create each folder path separately.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmFolder5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_NAME: The folder name contained invalid characters. +
  • E_EDM_COULD_NOT_CREATE_LOCAL_FOLDER: Could not create the new folder in the local disk cache. +
  • E_EDM_FOLDER_NOT_FOUND: This folder has been deleted. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to create sub-folders here. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: The operation was not permitted by one of the installed EdmCmdData.EdmCmd_PreAddFolder hooks.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateLabel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateLabel.html new file mode 100644 index 0000000..484f66c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CreateLabel.html @@ -0,0 +1,177 @@ + + + + + + CreateLabel Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateLabel Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : CreateLabel Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
Name of the label; maximum of 255 characters
+
+
+
bsDescription
+
Label description to show in the history dialog box; maximum of 2000 characters
+
+
+
bRecursively
+
Optionally, true to set the label recursively on subfolders, false to not; default is true
+
+ +
+ +
+ + +
+
+ Creates a label on this folder and its subfolders. + + +

Syntax

Visual Basic 
Function CreateLabel( _
+   ByVal bsName As System.String, _
+   ByVal bsDescription As System.String, _
+   Optional ByVal bRecursively As System.Boolean _
+) As System.Integer
+
C# 
System.int CreateLabel( 
+   System.string bsName,
+   System.string bsDescription,
+   System.bool bRecursively
+)
+
C++/CLI 
System.int CreateLabel( 
+&   System.String^ bsName,
+&   System.String^ bsDescription,
+&   System.bool bRecursively
+) 
+ +

Parameters

bsName
+
Name of the label; maximum of 255 characters
bsDescription
+
Label description to show in the history dialog box; maximum of 2000 characters
bRecursively
+
Optionally, true to set the label recursively on subfolders, false to not; default is true
+ +

Return Value

ID of the new label
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments in invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFile.html new file mode 100644 index 0000000..8fbd4d4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFile.html @@ -0,0 +1,179 @@ + + + + + + DeleteFile Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DeleteFile Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : DeleteFile Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lFileID
+
ID of file to delete
+
+
+
bRemoveLocalCopy
+
Optionally, true to erase the local copy of the file, false to not; default is true
+
+ +
+ +
+ + +
+
+ Deletes a file having the specified ID from this folder. + + +

Syntax

Visual Basic 
Sub DeleteFile( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lFileID As System.Integer, _
+   Optional ByVal bRemoveLocalCopy As System.Boolean _
+) 
+
C# 
void DeleteFile( 
+   System.int lParentWnd,
+   System.int lFileID,
+   System.bool bRemoveLocalCopy
+)
+
C++/CLI 
void DeleteFile( 
+&   System.int lParentWnd,
+&   System.int lFileID,
+&   System.bool bRemoveLocalCopy
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lFileID
+
ID of file to delete
bRemoveLocalCopy
+
Optionally, true to erase the local copy of the file, false to not; default is true
+ +
+ + + + +

Example

+

Remarks

If the specified file is shared to other folders, it is deleted only from this folder.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: The file ID is invalid. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: The operation is not permitted by one of the installed EdmCmdData.EdmCmd_PreDelete hooks. +
  • E_EDM_LOCKED_BY_ANOTHER_USER: The file cannot be deleted since it is checked out by another user. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFolder.html new file mode 100644 index 0000000..4134a3a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~DeleteFolder.html @@ -0,0 +1,179 @@ + + + + + + DeleteFolder Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DeleteFolder Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : DeleteFolder Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lSubfolderID
+
ID of folder to delete
+
+
+
bRemoveLocalCopy
+
Optionally true to remove the folder from the local disk, false to not; default is true
+
+ +
+ +
+ + +
+
+ Deletes the specified subfolder from this folder. + + +

Syntax

Visual Basic 
Sub DeleteFolder( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lSubfolderID As System.Integer, _
+   Optional ByVal bRemoveLocalCopy As System.Boolean _
+) 
+
C# 
void DeleteFolder( 
+   System.int lParentWnd,
+   System.int lSubfolderID,
+   System.bool bRemoveLocalCopy
+)
+
C++/CLI 
void DeleteFolder( 
+&   System.int lParentWnd,
+&   System.int lSubfolderID,
+&   System.bool bRemoveLocalCopy
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lSubfolderID
+
ID of folder to delete
bRemoveLocalCopy
+
Optionally true to remove the folder from the local disk, false to not; default is true
+ +
+ + + + +

Example

+

Remarks

This method deletes only folders that are empty.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FOLDER_NOT_FOUND: The specified ID is not a subfolder of this folder. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdData.EdmCmd_PreDeleteFolder hooks did not permit the operation. +
  • E_EDM_FOLDER_NOT_EMPTY: The folder cannot be deleted, because it has files or subfolders in it. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete the specified folder.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCard.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCard.html new file mode 100644 index 0000000..af556bd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCard.html @@ -0,0 +1,161 @@ + + + + + + GetCard Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCard Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetCard Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsExtension
+
Extension of file for which to get a data card; for example, "DWG" or "DOC" or "." to get the data card for this folder
+
+ +
+ +
+ + +
+
+ Gets the interface to a data card of a file of the specified file type or the interface to the data card of this folder. + + +

Syntax

Visual Basic 
Function GetCard( _
+   ByVal bsExtension As System.String _
+) As IEdmCard5
+
C# 
IEdmCard5 GetCard( 
+   System.string bsExtension
+)
+
C++/CLI 
IEdmCard5^ GetCard( 
+&   System.String^ bsExtension
+) 
+ +

Parameters

bsExtension
+
Extension of file for which to get a data card; for example, "DWG" or "DOC" or "." to get the data card for this folder
+ +

Return Value

IEdmCard5
+ + + + +

Example

+

Remarks

If you only need the card ID, it is faster to call IEdmfolder5::GetCardID than to call this method.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmCard5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_NAME: There is no data card matching the specified extension.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCardID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCardID.html new file mode 100644 index 0000000..9bc5567 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetCardID.html @@ -0,0 +1,158 @@ + + + + + + GetCardID Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCardID Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetCardID Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsExtension
+
Extension of file for which to get a data card ID; for example, "DWG" or "DOC" or "." to get the ID of the data card for this folder
+
+ +
+ +
+ + +
+
+ Gets the ID of the data card of a file with the specified extension or the ID of the data card of this folder. + + +

Syntax

Visual Basic 
Function GetCardID( _
+   ByVal bsExtension As System.String _
+) As System.Integer
+
C# 
System.int GetCardID( 
+   System.string bsExtension
+)
+
C++/CLI 
System.int GetCardID( 
+&   System.String^ bsExtension
+) 
+ +

Parameters

bsExtension
+
Extension of file for which to get a data card ID; for example, "DWG" or "DOC" or "." to get the ID of the data card for this folder
+ +

Return Value

ID of the data card; 0 if not found
+ + + + +

Example

+

Remarks

If you need to access the entire card, call IEdmFolder5::GetCard.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The card is not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFile.html new file mode 100644 index 0000000..ad72a7f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFile.html @@ -0,0 +1,162 @@ + + + + + + GetFile Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFile Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetFile Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsFileName
+
Name of file to get
+
+ +
+ +
+ + +
+
+ Gets the interface to a file with the specified name in this folder. + + +

Syntax

Visual Basic 
Function GetFile( _
+   ByVal bsFileName As System.String _
+) As IEdmFile5
+
C# 
IEdmFile5 GetFile( 
+   System.string bsFileName
+)
+
C++/CLI 
IEdmFile5^ GetFile( 
+&   System.String^ bsFileName
+) 
+ +

Parameters

bsFileName
+
Name of file to get
+ +

Return Value

IEdmFile5
+ + + + +

Example

+

Remarks

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmFile5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_NAME: A file with the specified name is not found. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to read the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstFilePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstFilePosition.html new file mode 100644 index 0000000..a8ddf53 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstFilePosition.html @@ -0,0 +1,148 @@ + + + + + + GetFirstFilePosition Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFilePosition Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetFirstFilePosition Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the files in this folder. + + +

Syntax

Visual Basic 
Function GetFirstFilePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstFilePosition()
+
C++/CLI 
IEdmPos5^ GetFirstFilePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first file in this folder
+ + + + +

Example

+

Remarks

After calling this method, pass the returned first file position to IEdmFolder5::GetNextFile to get the first file in the list. Then call IEdmFolder5::GetNextFile repeatedly to get the rest of the files in the list.

+

C++ users not using smart-pointer wrapper functions must release the returned pointer, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstLabelPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstLabelPosition.html new file mode 100644 index 0000000..3801c01 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstLabelPosition.html @@ -0,0 +1,147 @@ + + + + + + GetFirstLabelPosition Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstLabelPosition Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetFirstLabelPosition Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the labels in this folder. + + +

Syntax

Visual Basic 
Function GetFirstLabelPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstLabelPosition()
+
C++/CLI 
IEdmPos5^ GetFirstLabelPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first label in this folder
+ + + + +

Example

+

Remarks

After calling this method, pass the returned first label position to IEdmFolder5::GetNextLabel to get the first label in the list. Then call IEdmFolder5::GetNextFile repeatedly to get the rest of the labels in the list.

+

C++ users not using smart-pointer wrapper functions must release the returned pointer, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstSubFolderPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstSubFolderPosition.html new file mode 100644 index 0000000..2b7fdef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetFirstSubFolderPosition.html @@ -0,0 +1,150 @@ + + + + + + GetFirstSubFolderPosition Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstSubFolderPosition Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetFirstSubFolderPosition Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the subfolders in this folder. + + +

Syntax

Visual Basic 
Function GetFirstSubFolderPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstSubFolderPosition()
+
C++/CLI 
IEdmPos5^ GetFirstSubFolderPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first sub-folder in this folder
+ + + + +

Example

+

Remarks

After calling this method, pass the returned first subfolder position to IEdmFolder5::GetNextSubFolder to get the first subfolder in the list. Then call IEdmFolder5::GetNextSubFolder repeatedly to get the rest of the subfolders in the list.

+

C++ users not using smart-pointer wrapper functions must release the returned pointer, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextFile.html new file mode 100644 index 0000000..16b185b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextFile.html @@ -0,0 +1,161 @@ + + + + + + GetNextFile Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFile Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetNextFile Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
poPosition
+
IEdmPos5; position of file to retrieve (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next file in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextFile( _
+   ByVal poPosition As IEdmPos5 _
+) As IEdmFile5
+
C# 
IEdmFile5 GetNextFile( 
+   IEdmPos5 poPosition
+)
+
C++/CLI 
IEdmFile5^ GetNextFile( 
+&   IEdmPos5^ poPosition
+) 
+ +

Parameters

poPosition
+
IEdmPos5; position of file to retrieve (see Remarks)
+ +

Return Value

IEdmFile5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first file, IEdmPos5. Call IEdmFolder5::GetFirstFilePosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the files.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextLabel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextLabel.html new file mode 100644 index 0000000..48248d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextLabel.html @@ -0,0 +1,161 @@ + + + + + + GetNextLabel Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextLabel Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetNextLabel Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of label to retrieve (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next label in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextLabel( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmLabel5
+
C# 
IEdmLabel5 GetNextLabel( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmLabel5^ GetNextLabel( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of label to retrieve (see Remarks)
+ +

Return Value

IEdmLabel5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first label, IEdmPos5. Call IEdmFolder5::GetFirstLabelPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the labels.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextSubFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextSubFolder.html new file mode 100644 index 0000000..fd7a66e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetNextSubFolder.html @@ -0,0 +1,163 @@ + + + + + + GetNextSubFolder Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextSubFolder Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetNextSubFolder Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
poPosition
+
IEdmPos5; position of the subfolder to retrieve (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next subfolder in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextSubFolder( _
+   ByVal poPosition As IEdmPos5 _
+) As IEdmFolder5
+
C# 
IEdmFolder5 GetNextSubFolder( 
+   IEdmPos5 poPosition
+)
+
C++/CLI 
IEdmFolder5^ GetNextSubFolder( 
+&   IEdmPos5^ poPosition
+) 
+ +

Parameters

poPosition
+
IEdmPos5; position of the subfolder to retrieve (see Remarks)
+ +

Return Value

IEdmFolder5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first subfolder, IEdmPos5. Call IEdmFolder5::GetFirstSubFolderPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the subfolders.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetSubFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetSubFolder.html new file mode 100644 index 0000000..e885c49 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~GetSubFolder.html @@ -0,0 +1,160 @@ + + + + + + GetSubFolder Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSubFolder Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : GetSubFolder Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
bsFolderName
+
Name of subfolder to get
+
+ +
+ +
+ + +
+
+ Gets the interface to the subfolder with the specified name. + + +

Syntax

Visual Basic 
Function GetSubFolder( _
+   ByVal bsFolderName As System.String _
+) As IEdmFolder5
+
C# 
IEdmFolder5 GetSubFolder( 
+   System.string bsFolderName
+)
+
C++/CLI 
IEdmFolder5^ GetSubFolder( 
+&   System.String^ bsFolderName
+) 
+ +

Parameters

bsFolderName
+
Name of subfolder to get
+ +

Return Value

IEdmFolder5
+ + + + +

Example

+

Remarks

C++ users not using smart-pointer wrapper functions must release the returned pointer to IEdmFolder5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FOLDER_NOT_FOUND: No subfolder with the specified name is found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRights.html new file mode 100644 index 0000000..fab77b5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRights.html @@ -0,0 +1,165 @@ + + + + + + HasRights Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasRights Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : HasRights Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lRights
+
Combination of EdmRightFlags bits
+
+
+
plFileID
+
ID of file to check
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFolder5::HasRightsEx. + + +

Syntax

Visual Basic 
Sub HasRights( _
+   ByVal lRights As System.Integer, _
+   ByRef plFileID As System.Integer _
+) 
+
C# 
void HasRights( 
+   System.int lRights,
+   ref System.int plFileID
+)
+
C++/CLI 
void HasRights( 
+&   System.int lRights,
+&   System.int% plFileID
+) 
+ +

Parameters

lRights
+
Combination of EdmRightFlags bits
plFileID
+
ID of file to check
+ +
+ + + + + +

Remarks

This method is superseded by IEdmFolder5::HasRightsEx, which provides the ability to check rights on just this folder. Programs that do not need backwards compatibility with SOLIDWORKS PDM Professional 5.2 should use the new method.

+

This method takes into account both the rights set explicitly on the user and those rights that are inherited from groups of which the user is a member.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks one or more of the specified rights.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRightsEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRightsEx.html new file mode 100644 index 0000000..53b402e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~HasRightsEx.html @@ -0,0 +1,167 @@ + + + + + + HasRightsEx Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasRightsEx Method (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : HasRightsEx Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
lRights
+
Combination of EdmRightFlags bits
+
+
+
lFileID
+
Optional ID of file on which to check lRights; 0 or null to check lRights on this folder only
+
+ +
+ +
+ + +
+
+ Gets whether the user has the specified rights for the specified file in this folder. + + +

Syntax

Visual Basic 
Function HasRightsEx( _
+   ByVal lRights As System.Integer, _
+   Optional ByVal lFileID As System.Integer _
+) As System.Boolean
+
C# 
System.bool HasRightsEx( 
+   System.int lRights,
+   System.int lFileID
+)
+
C++/CLI 
System.bool HasRightsEx( 
+&   System.int lRights,
+&   System.int lFileID
+) 
+ +

Parameters

lRights
+
Combination of EdmRightFlags bits
lFileID
+
Optional ID of file on which to check lRights; 0 or null to check lRights on this folder only
+ +

Return Value

True if the user has all of the specified permissions, false if the user is missing one or more of the specified permissions
+ + + + +

Example

+

Remarks

This method takes into account both the rights set explicitly on the user and those inherited from groups of which the user is a member. Optionally, you can specify the ID of a file for which to check rights. In that case, the rights-check includes workflow rights set on the current status of the file. If no file ID is specified, or it is 0, the rights-check is performed only on this folder.

+

Note: This method is only available in SOLIDWORKS PDM Professional Version 5.3 and later. If the program must have backward compatibility with SOLIDWORKS PDM Professional 5.2, use IEdmFolder5::HasRights instead.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The user lacks one or more of the specified rights.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ID.html new file mode 100644 index 0000000..87d1a66 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ID.html @@ -0,0 +1,147 @@ + + + + + + ID Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ID Property (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : ID Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of this folder. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property ID As System.Integer
+
C# 
new System.int ID {get;}
+
C++/CLI 
new property System.int ID {
+   System.int get();
+}
+ + + +

Property Value

Database ID of the folder
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~IsKindOf.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~IsKindOf.html new file mode 100644 index 0000000..2b89de9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~IsKindOf.html @@ -0,0 +1,152 @@ + + + + + + IsKindOf Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsKindOf Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : IsKindOf Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+
__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+
+ +
+ +
+ + +
+
+ Checks whether the object is of a certain type. + + +

Syntax

Visual Basic 
Function IsKindOf( _
+   ByVal __MIDL__IEdmObject50000 As EdmObjectType _
+) As System.Boolean
+
C# 
System.bool IsKindOf( 
+   EdmObjectType __MIDL__IEdmObject50000
+)
+
C++/CLI 
System.bool IsKindOf( 
+&   EdmObjectType __MIDL__IEdmObject50000
+) 
+ +

Parameters

__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+ +
+ + + + + +

Remarks

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~LocalPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~LocalPath.html new file mode 100644 index 0000000..81960fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~LocalPath.html @@ -0,0 +1,149 @@ + + + + + + LocalPath Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LocalPath Property (IEdmFolder5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : LocalPath Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the full file system path to this local folder. + + +

Syntax

Visual Basic 
ReadOnly Property LocalPath As System.String
+
C# 
System.string LocalPath {get;}
+
C++/CLI 
property System.String^ LocalPath {
+   System.String^ get();
+}
+ + + +

Property Value

Full file system path to this folder
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Name.html new file mode 100644 index 0000000..64015cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Name.html @@ -0,0 +1,147 @@ + + + + + + Name Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : Name Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the folder. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property Name As System.String
+
C# 
new System.string Name {get;}
+
C++/CLI 
new property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the folder
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ObjectType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ObjectType.html new file mode 100644 index 0000000..1f80c14 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ObjectType.html @@ -0,0 +1,147 @@ + + + + + + ObjectType Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ObjectType Property (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : ObjectType Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of object. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property ObjectType As EdmObjectType
+
C# 
new EdmObjectType ObjectType {get;}
+
C++/CLI 
new property EdmObjectType ObjectType {
+   EdmObjectType get();
+}
+ + + +

Property Value

Type of object as defined in EdmObjectType
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ParentFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ParentFolder.html new file mode 100644 index 0000000..df33c9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~ParentFolder.html @@ -0,0 +1,147 @@ + + + + + + ParentFolder Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ParentFolder Property (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : ParentFolder Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the interface to the parent folder of this folder. + + +

Syntax

Visual Basic 
ReadOnly Property ParentFolder As IEdmFolder5
+
C# 
IEdmFolder5 ParentFolder {get;}
+
C++/CLI 
property IEdmFolder5^ ParentFolder {
+   IEdmFolder5^ get();
+}
+ + + +

Property Value

IEdmFolder5; Null if this folder is the root folder
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Refresh.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Refresh.html new file mode 100644 index 0000000..cd27703 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Refresh.html @@ -0,0 +1,140 @@ + + + + + + Refresh Method (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Refresh Method (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : Refresh Method (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Refreshes the file listing for the folder. + + +

Syntax

Visual Basic 
Sub Refresh() 
+
C# 
void Refresh()
+
C++/CLI 
void Refresh(); 
+ + + +
+ + + + + +

Remarks

In a multi-user implementation, the contents of this folder may change as you are working on it. Call this method before using other methods of this interface to ensure that you are seeing the latest state of the folder.
  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Vault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Vault.html new file mode 100644 index 0000000..934bbc7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~Vault.html @@ -0,0 +1,147 @@ + + + + + + Vault Property (IEdmFolder5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Vault Property (IEdmFolder5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder5 Interface + : Vault Property (IEdmFolder5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file vault to which this folder belongs. + + +

Syntax

Visual Basic 
Shadows ReadOnly Property Vault As IEdmVault5
+
C# 
new IEdmVault5 Vault {get;}
+
C++/CLI 
new property IEdmVault5^ Vault {
+   IEdmVault5^ get();
+}
+ + + +

Property Value

File vault to which this folder belongs
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6.html new file mode 100644 index 0000000..79be7a4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6.html @@ -0,0 +1,139 @@ + + + + + + IEdmFolder6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file system folder in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder6 
+   Inherits IEdmFolder5IEdmObject5 
+
C# 
public interface IEdmFolder6 : IEdmFolder5IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder6 : public IEdmFolder5IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmFolder5. +
  • is extended by IEdmFolder7, which adds the ability to destroy deleted items in this folder.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_members.html new file mode 100644 index 0000000..ecb726c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmFolder6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder6.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodAddFilesAdds one or more files to this folder.  
 MethodMoveMoves this folder to a new location.  
 MethodRenameRenames this folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_methods.html new file mode 100644 index 0000000..88b5ac8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmFolder6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder6 members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddFilesAdds one or more files to this folder.  
 MethodMoveMoves this folder to a new location.  
 MethodRenameRenames this folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~AddFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~AddFiles.html new file mode 100644 index 0000000..5e2f10e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~AddFiles.html @@ -0,0 +1,177 @@ + + + + + + AddFiles Method (IEdmFolder6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFiles Method (IEdmFolder6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder6 Interface + : AddFiles Method (IEdmFolder6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
ppoFiles
+
Array of EdmAddFileInfo structures; one structure for each added file
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback6 to control this add operation and obtain progress information about it
+
+ +
+ +
+ + +
+
+ Adds one or more files to this folder. + + +

Syntax

Visual Basic 
Sub AddFiles( _
+   ByVal lParentWnd As System.Integer, _
+   ByRef ppoFiles() As EdmAddFileInfo, _
+   ByVal poCallback As IEdmCallback6 _
+) 
+
C# 
void AddFiles( 
+   System.int lParentWnd,
+   out EdmAddFileInfo[] ppoFiles,
+   IEdmCallback6 poCallback
+)
+
C++/CLI 
void AddFiles( 
+&   System.int lParentWnd,
+&   [Out] array<EdmAddFileInfo>^ ppoFiles,
+&   IEdmCallback6^ poCallback
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
ppoFiles
+
Array of EdmAddFileInfo structures; one structure for each added file
poCallback
+
Optional pointer to a class that implements IEdmCallback6 to control this add operation and obtain progress information about it
+ +
+ + + + +

Example

+

Remarks

This method is more efficient than IEdmFolder5::AddFile when adding many files.

+

Before calling this method, call IFolder12::SetFileNameSerNo for each new file to specify how to create the name of the new file's data card.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_SN_FILE: The operation needs to generate serial numbers from a file but the end of the file has been reached. +
  • E_EDM_SN_FILE_NOT_FOUND: The operation needs to generate serial numbers from a file that cannot be found. +
  • E_EDM_CANCELLED_BY_USER: The operation was cancelled via the optional callback interface.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Move.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Move.html new file mode 100644 index 0000000..9eefe60 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Move.html @@ -0,0 +1,172 @@ + + + + + + Move Method (IEdmFolder6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Move Method (IEdmFolder6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder6 Interface + : Move Method (IEdmFolder6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lNewParentID
+
ID of new parent folder
+
+
+
lFlags
+
0; reserved for future use
+
+ +
+ +
+ + +
+
+ Moves this folder to a new location. + + +

Syntax

Visual Basic 
Sub Move( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lNewParentID As System.Integer, _
+   ByVal lFlags As System.Integer _
+) 
+
C# 
void Move( 
+   System.int lParentWnd,
+   System.int lNewParentID,
+   System.int lFlags
+)
+
C++/CLI 
void Move( 
+&   System.int lParentWnd,
+&   System.int lNewParentID,
+&   System.int lFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lNewParentID
+
ID of new parent folder
lFlags
+
0; reserved for future use
+ +
+ + + + + +

Remarks

If this folder contains files with external references, this method could take an extended period of time to rewrite the include paths. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Rename.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Rename.html new file mode 100644 index 0000000..b8220c3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder6~Rename.html @@ -0,0 +1,172 @@ + + + + + + Rename Method (IEdmFolder6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rename Method (IEdmFolder6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder6 Interface + : Rename Method (IEdmFolder6)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsNewName
+
New name of the folder
+
+
+
lFlags
+
0; reserved for future use
+
+ +
+ +
+ + +
+
+ Renames this folder. + + +

Syntax

Visual Basic 
Sub Rename( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsNewName As System.String, _
+   ByVal lFlags As System.Integer _
+) 
+
C# 
void Rename( 
+   System.int lParentWnd,
+   System.string bsNewName,
+   System.int lFlags
+)
+
C++/CLI 
void Rename( 
+&   System.int lParentWnd,
+&   System.String^ bsNewName,
+&   System.int lFlags
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsNewName
+
New name of the folder
lFlags
+
0; reserved for future use
+ +
+ + + + + +

Remarks

If this folder contains files with external references, this method could take an extended period of time to rewrite the include paths. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7.html new file mode 100644 index 0000000..46c0701 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7.html @@ -0,0 +1,139 @@ + + + + + + IEdmFolder7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the contents of a file system folder in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder7 
+   Inherits IEdmFolder5IEdmFolder6IEdmObject5 
+
C# 
public interface IEdmFolder7 : IEdmFolder5IEdmFolder6IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder7 : public IEdmFolder5IEdmFolder6IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmFolder6 by adding the ability to destroy deleted items in this folder. +
  • is extended by IEdmFolder8 by adding the ability to add or copy a file, which already exists in the vault, to a different folder in the vault.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_members.html new file mode 100644 index 0000000..101a39a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFolder7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder7.

+ + +

Public Methods

+ +
 NameDescription
 MethodDestroyDeletedItemsObsolete. Superseded by IEdmFolder13::DestroyDeletedItems2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_methods.html new file mode 100644 index 0000000..27646e5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFolder7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder7 members.

+

Public Methods

+ +
 NameDescription
 MethodDestroyDeletedItemsObsolete. Superseded by IEdmFolder13::DestroyDeletedItems2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7~DestroyDeletedItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7~DestroyDeletedItems.html new file mode 100644 index 0000000..181d682 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder7~DestroyDeletedItems.html @@ -0,0 +1,180 @@ + + + + + + DestroyDeletedItems Method (IEdmFolder7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DestroyDeletedItems Method (IEdmFolder7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder7 Interface + : DestroyDeletedItems Method (IEdmFolder7)
+ +
+ + + +
+ +
+ + +
+
+
bRecursive
+
True to return a list containing all of the sub-items, false to return just the root items
+
+
+
vDeleteDate
+
Latest delete date of items to destroy; items deleted after this date are not destroyed
+
+
+
ppoFiles
+
Array of EdmFileInfo structures; one structure for each destroyed file containing information about the file
+
+
+
poErrors
+
Array of EdmBatchDelErrInfo structures; one structure for each destroyed file containing information about errors that occurred during this operation
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmFolder13::DestroyDeletedItems2. + + +

Syntax

Visual Basic 
Sub DestroyDeletedItems( _
+   ByVal bRecursive As System.Boolean, _
+   ByVal vDeleteDate As System.Object, _
+   ByRef ppoFiles() As EdmFileInfo, _
+   ByRef poErrors() As EdmBatchDelErrInfo _
+) 
+
C# 
void DestroyDeletedItems( 
+   System.bool bRecursive,
+   System.object vDeleteDate,
+   out EdmFileInfo[] ppoFiles,
+   out EdmBatchDelErrInfo[] poErrors
+)
+
C++/CLI 
void DestroyDeletedItems( 
+&   System.bool bRecursive,
+&   System.Object^ vDeleteDate,
+&   [Out] array<EdmFileInfo>^ ppoFiles,
+&   [Out] array<EdmBatchDelErrInfo>^ poErrors
+) 
+ +

Parameters

bRecursive
+
True to return a list containing all of the sub-items, false to return just the root items
vDeleteDate
+
Latest delete date of items to destroy; items deleted after this date are not destroyed
ppoFiles
+
Array of EdmFileInfo structures; one structure for each destroyed file containing information about the file
poErrors
+
Array of EdmBatchDelErrInfo structures; one structure for each destroyed file containing information about errors that occurred during this operation
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 12.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8.html new file mode 100644 index 0000000..8766608 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8.html @@ -0,0 +1,143 @@ + + + + + + IEdmFolder8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault.
+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder8 
+   Inherits IEdmFolder5IEdmFolder6IEdmFolder7IEdmObject5 
+
C# 
public interface IEdmFolder8 : IEdmFolder5IEdmFolder6IEdmFolder7IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder8 : public IEdmFolder5IEdmFolder6IEdmFolder7IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmFolder7 by adding the ability to add or copy a file, which already exists in the vault, to a different folder in the vault. +
  • is extended by IEdmFolder9.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_members.html new file mode 100644 index 0000000..7bad98c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmFolder8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder8.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddFile2Adds a file to this folder.  
 MethodCopyFile2Copies a file from a different folder in the vault to this folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_methods.html new file mode 100644 index 0000000..0b6b6f4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmFolder8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder8 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddFile2Adds a file to this folder.  
 MethodCopyFile2Copies a file from a different folder in the vault to this folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~AddFile2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~AddFile2.html new file mode 100644 index 0000000..4a530cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~AddFile2.html @@ -0,0 +1,247 @@ + + + + + + AddFile2 Method (IEdmFolder8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile2 Method (IEdmFolder8)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder8 Interface + : AddFile2 Method (IEdmFolder8)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+

Parent window handle

+
+
+
bsSrcPath
+
Path of file to copy; "" to create an empty file with the name specified by bsNewFileName (see Remarks)
+
+
+
plErrorCode
+
+ + + + + + + + + +
If bsSrcPath is...Then plErrorCode is...
+

Uniquely named 

+

- or -

+

Not uniquely named and the Allow duplicate file names in this file vault option is selected for the vault

0, and the file is added to the vault
+

Not uniquely named and one of the following options is selected for the vault:

+
    +
  • Do not allow duplicate file names in this file vault
    - or - +
  • Do not allow duplicate file names of files with these extensions
+

EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY, and the file is added to the vault if you are adding the file to a different folder in the vault; otherwise, the file is not added the vault 

+
+
+
bsNewFileName
+
Optional new file name; "" to use the file name specified in bsSrcPath (see Remarks)
+
+
+
lEdmAddFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Adds a file to this folder. + + +

Syntax

Visual Basic 
Function AddFile2( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsSrcPath As System.String, _
+   ByRef plErrorCode As System.Integer, _
+   Optional ByVal bsNewFileName As System.String, _
+   Optional ByVal lEdmAddFlags As System.Integer _
+) As System.Integer
+
C# 
System.int AddFile2( 
+   System.int lParentWnd,
+   System.string bsSrcPath,
+   out System.int plErrorCode,
+   System.string bsNewFileName,
+   System.int lEdmAddFlags
+)
+
C++/CLI 
System.int AddFile2( 
+&   System.int lParentWnd,
+&   System.String^ bsSrcPath,
+&   [Out] System.int plErrorCode,
+&   System.String^ bsNewFileName,
+&   System.int lEdmAddFlags
+) 
+ +

Parameters

lParentWnd
+

Parent window handle

bsSrcPath
+
Path of file to copy; "" to create an empty file with the name specified by bsNewFileName (see Remarks)
plErrorCode
+
+ + + + + + + + + +
If bsSrcPath is...Then plErrorCode is...
+

Uniquely named 

+

- or -

+

Not uniquely named and the Allow duplicate file names in this file vault option is selected for the vault

0, and the file is added to the vault
+

Not uniquely named and one of the following options is selected for the vault:

+
    +
  • Do not allow duplicate file names in this file vault
    - or - +
  • Do not allow duplicate file names of files with these extensions
+

EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY, and the file is added to the vault if you are adding the file to a different folder in the vault; otherwise, the file is not added the vault 

bsNewFileName
+
Optional new file name; "" to use the file name specified in bsSrcPath (see Remarks)
lEdmAddFlags
+
Combination of EdmAddFlag bits
+ +

Return Value

ID of the new file
+ + + + +

Example

+

Remarks

Use this method to:

+
    +
  • add a file from outside of the vault or copy a file inside the vault. +
  • create a new empty file.
+

Use:

+ +

To add multiple files to this folder, use IEdmFolder6::AddFiles to add them all at once, which is more efficient than adding them one at a time.

+

Before calling this method, use IFolder12::SetFileNameSerNo to specify how to create the name of the new file data card.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to add files to this folder. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file with the specified name in this folder. +
  • E_EDM_INVALID_NAME: The suggested file name is invalid. +
  • E_EDM_FILE_SHARE_ERROR: The source or destination file is opened exclusively by another program. +
  • E_EDM_FILE_NOT_FOUND: The source file could not be found. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdType.EdmCmd_PreAdd hooks did not permit the operation.
+

 

+

To create a virtual document in a folder, pass an empty string as the source file. For example:

+
+
+
+
eFolder.AddFile2(Me.Handle.ToInt32, '', addFileStatus, path, 0) 
+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html new file mode 100644 index 0000000..604018a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html @@ -0,0 +1,206 @@ + + + + + + CopyFile2 Method (IEdmFolder8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CopyFile2 Method (IEdmFolder8)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder8 Interface + : CopyFile2 Method (IEdmFolder8)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of the file to copy
+
+
+
lSrcFolderID
+
ID of the folder from which to copy the file
+
+
+
lParentWnd
+
Parent window handle
+
+
+
plErrorCode
+
    +
  • 0 indicates that the file is copied +
  • EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY indicates that the file is copied if you are copying the file to a different folder in the vault; otherwise, the file is not copied
+
+
+
bsNewName
+
Optional new name of the file; "" to use the original file name
+
+
+
lFlags
+
Combination of EdmAddFlag bits
+
+ +
+ +
+ + +
+
+ Copies a file from a different folder in the vault to this folder. + + +

Syntax

Visual Basic 
Function CopyFile2( _
+   ByVal lFileID As System.Integer, _
+   ByVal lSrcFolderID As System.Integer, _
+   ByVal lParentWnd As System.Integer, _
+   ByRef plErrorCode As System.Integer, _
+   Optional ByVal bsNewName As System.String, _
+   Optional ByVal lFlags As System.Integer _
+) As System.Integer
+
C# 
System.int CopyFile2( 
+   System.int lFileID,
+   System.int lSrcFolderID,
+   System.int lParentWnd,
+   out System.int plErrorCode,
+   System.string bsNewName,
+   System.int lFlags
+)
+
C++/CLI 
System.int CopyFile2( 
+&   System.int lFileID,
+&   System.int lSrcFolderID,
+&   System.int lParentWnd,
+&   [Out] System.int plErrorCode,
+&   System.String^ bsNewName,
+&   System.int lFlags
+) 
+ +

Parameters

lFileID
+
ID of the file to copy
lSrcFolderID
+
ID of the folder from which to copy the file
lParentWnd
+
Parent window handle
plErrorCode
+
    +
  • 0 indicates that the file is copied +
  • EdmResultSuccessCodes_e.S_EDM_FILES_NOT_UNIQUE_GLOBALLY indicates that the file is copied if you are copying the file to a different folder in the vault; otherwise, the file is not copied
bsNewName
+
Optional new name of the file; "" to use the original file name
lFlags
+
Combination of EdmAddFlag bits
+ +

Return Value

ID of the new file
+ + + + +

Example

+

Remarks

This method uses the ID of a file to copy a file inside the vault. Use IEdmFolder8::AddFile2 to copy a file by its path. IEdmFolder8::AddFile2 can handle source files both inside and outside the vault.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_NAME_ALREADY_EXISTS: There is already a file or folder with the same name in this folder. +
  • E_EDM_FILE_NOT_FOUND: The source file was not found. (The ID is invalid.) +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to copy the specified file. +
  • E_EDM_FILE_SHARE_ERROR: Cannot copy the file because it is exclusively opened in another application. +
  • E_EDM_OPERATION_REFUSED_BY_PLUGIN: One of the installed EdmCmdData.EdmCmd_PreCopy hooks didn't permit the operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9.html new file mode 100644 index 0000000..9de8dbe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9.html @@ -0,0 +1,141 @@ + + + + + + IEdmFolder9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolder9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access the contents of a file system folder in the vault.
+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolder9 
+   Inherits IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmObject5 
+
C# 
public interface IEdmFolder9 : IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmObject5  
+
C++/CLI 
public interface class IEdmFolder9 : public IEdmFolder5IEdmFolder6IEdmFolder7IEdmFolder8IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmFolder8 by providing the ability to query whether the user has permission to rename a file in this folder. +
  • is extended by IEdmFolder10.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_members.html new file mode 100644 index 0000000..7065cdb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmFolder9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolder9.

+ + +

Public Methods

+ +
 NameDescription
 MethodHasRenameRightsGets whether the user has permission to rename the specified file in this folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_methods.html new file mode 100644 index 0000000..fdb376c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmFolder9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolder9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolder9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolder9 members.

+

Public Methods

+ +
 NameDescription
 MethodHasRenameRightsGets whether the user has permission to rename the specified file in this folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9~HasRenameRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9~HasRenameRights.html new file mode 100644 index 0000000..0a1f86d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder9~HasRenameRights.html @@ -0,0 +1,186 @@ + + + + + + HasRenameRights Method (IEdmFolder9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasRenameRights Method (IEdmFolder9)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolder9 Interface + : HasRenameRights Method (IEdmFolder9)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lFileID
+
ID of the file to rename
+
+
+
bsOldFileName
+
Old file name
+
+
+
bsRenamedFileName
+
New file name
+
+
+
pbSilent
+
True to silently check for permissions to rename the file (i.e., do not display message box), false to not
+
+ +
+ +
+ + +
+
+ Gets whether the user has permission to rename the specified file in this folder. + + +

Syntax

Visual Basic 
Function HasRenameRights( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lFileID As System.Integer, _
+   ByVal bsOldFileName As System.String, _
+   ByVal bsRenamedFileName As System.String, _
+   ByVal pbSilent As System.Boolean _
+) As System.Boolean
+
C# 
System.bool HasRenameRights( 
+   System.int lParentWnd,
+   System.int lFileID,
+   System.string bsOldFileName,
+   System.string bsRenamedFileName,
+   System.bool pbSilent
+)
+
C++/CLI 
System.bool HasRenameRights( 
+&   System.int lParentWnd,
+&   System.int lFileID,
+&   System.String^ bsOldFileName,
+&   System.String^ bsRenamedFileName,
+&   System.bool pbSilent
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lFileID
+
ID of the file to rename
bsOldFileName
+
Old file name
bsRenamedFileName
+
New file name
pbSilent
+
True to silently check for permissions to rename the file (i.e., do not display message box), false to not
+ +

Return Value

True if the user has permission to rename the specified file, false if not
+ + + + +

Example

+   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2016
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5.html new file mode 100644 index 0000000..5bf2fd3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5.html @@ -0,0 +1,138 @@ + + + + + + IEdmFolderData5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolderData5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmFolderData5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to specify user and group permissions and file data cards when creating a folder with IEdmFolder5::AddFolder.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmFolderData5 
+
C# 
public interface IEdmFolderData5 
+
C++/CLI 
public interface class IEdmFolderData5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

By default, user permissions and file data card definitions are inherited from the parent folder.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_members.html new file mode 100644 index 0000000..03becd3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmFolderData5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolderData5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolderData5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmFolderData5.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodClearRemoves all settings for the folder.  
 MethodSetCardSourceSets the specified file card ID to use for the specified file extensions.  
 MethodSetGroupRightsSets the specified permissions for the specified user group.  
 MethodSetUserRightsSets the specified permissions for the specified user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_methods.html new file mode 100644 index 0000000..0001052 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmFolderData5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmFolderData5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmFolderData5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmFolderData5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodClearRemoves all settings for the folder.  
 MethodSetCardSourceSets the specified file card ID to use for the specified file extensions.  
 MethodSetGroupRightsSets the specified permissions for the specified user group.  
 MethodSetUserRightsSets the specified permissions for the specified user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~Clear.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~Clear.html new file mode 100644 index 0000000..ad4ed9f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~Clear.html @@ -0,0 +1,142 @@ + + + + + + Clear Method (IEdmFolderData5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Clear Method (IEdmFolderData5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolderData5 Interface + : Clear Method (IEdmFolderData5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Removes all settings for the folder. + + +

Syntax

Visual Basic 
Sub Clear() 
+
C# 
void Clear()
+
C++/CLI 
void Clear(); 
+ + + +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetCardSource.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetCardSource.html new file mode 100644 index 0000000..648f7aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetCardSource.html @@ -0,0 +1,163 @@ + + + + + + SetCardSource Method (IEdmFolderData5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetCardSource Method (IEdmFolderData5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolderData5 Interface + : SetCardSource Method (IEdmFolderData5)
+ +
+ + + +
+ +
+ + +
+
+
lCardID
+
ID of card to use
+
+
+
bsExtensions
+
Semicolon-delimited list of extensions; e.g., "DOC;XLS"
+
+ +
+ +
+ + +
+
+ Sets the specified file card ID to use for the specified file extensions. + + +

Syntax

Visual Basic 
Sub SetCardSource( _
+   ByVal lCardID As System.Integer, _
+   Optional ByVal bsExtensions As System.String _
+) 
+
C# 
void SetCardSource( 
+   System.int lCardID,
+   System.string bsExtensions
+)
+
C++/CLI 
void SetCardSource( 
+&   System.int lCardID,
+&   System.String^ bsExtensions
+) 
+ +

Parameters

lCardID
+
ID of card to use
bsExtensions
+
Semicolon-delimited list of extensions; e.g., "DOC;XLS"
+ +
+ + +

Example

See the IEdmFolderData5 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetGroupRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetGroupRights.html new file mode 100644 index 0000000..afcc0a6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetGroupRights.html @@ -0,0 +1,164 @@ + + + + + + SetGroupRights Method (IEdmFolderData5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetGroupRights Method (IEdmFolderData5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolderData5 Interface + : SetGroupRights Method (IEdmFolderData5)
+ +
+ + + +
+ +
+ + +
+
+
lGroupID
+
ID of user group for which to set permissions
+
+
+
lEdmRightFlags
+
Combination of EdmRightFlags bits
+
+ +
+ +
+ + +
+
+ Sets the specified permissions for the specified user group. + + +

Syntax

Visual Basic 
Sub SetGroupRights( _
+   ByVal lGroupID As System.Integer, _
+   ByVal lEdmRightFlags As System.Integer _
+) 
+
C# 
void SetGroupRights( 
+   System.int lGroupID,
+   System.int lEdmRightFlags
+)
+
C++/CLI 
void SetGroupRights( 
+&   System.int lGroupID,
+&   System.int lEdmRightFlags
+) 
+ +

Parameters

lGroupID
+
ID of user group for which to set permissions
lEdmRightFlags
+
Combination of EdmRightFlags bits
+ +
+ + +

Example

See the IEdmFolderData5 examples. +
+ +

Remarks

Retrieve user groups using IEdmUserMgr5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetUserRights.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetUserRights.html new file mode 100644 index 0000000..b6f2502 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolderData5~SetUserRights.html @@ -0,0 +1,164 @@ + + + + + + SetUserRights Method (IEdmFolderData5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetUserRights Method (IEdmFolderData5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmFolderData5 Interface + : SetUserRights Method (IEdmFolderData5)
+ +
+ + + +
+ +
+ + +
+
+
lUserID
+
ID of user for which to set permissions
+
+
+
lEdmRightFlags
+
Combination of EdmRightFlags bits
+
+ +
+ +
+ + +
+
+ Sets the specified permissions for the specified user. + + +

Syntax

Visual Basic 
Sub SetUserRights( _
+   ByVal lUserID As System.Integer, _
+   ByVal lEdmRightFlags As System.Integer _
+) 
+
C# 
void SetUserRights( 
+   System.int lUserID,
+   System.int lEdmRightFlags
+)
+
C++/CLI 
void SetUserRights( 
+&   System.int lUserID,
+&   System.int lEdmRightFlags
+) 
+ +

Parameters

lUserID
+
ID of user for which to set permissions
lEdmRightFlags
+
Combination of EdmRightFlags bits
+ +
+ + +

Example

See the IEdmFolderData5 examples. +
+ +

Remarks

Retrieve users using IEdmUserMgr5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog.html new file mode 100644 index 0000000..54d4616 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog.html @@ -0,0 +1,135 @@ + + + + + + IEdmGetCSVersionDialog Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetCSVersionDialog Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmGetCSVersionDialog Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to restore files in cold storage.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmGetCSVersionDialog 
+
C# 
public interface IEdmGetCSVersionDialog 
+
C++/CLI 
public interface class IEdmGetCSVersionDialog 
+
+ + + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_members.html new file mode 100644 index 0000000..a254953 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmGetCSVersionDialog Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetCSVersionDialog Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetCSVersionDialog Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmGetCSVersionDialog.

+ + +

Public Methods

+ + +
 NameDescription
 MethodInitPopulates the Restore coldstored file version dialog with data.  
 MethodShowShows the Restore coldstored file version dialog.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_methods.html new file mode 100644 index 0000000..a0b85aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmGetCSVersionDialog Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetCSVersionDialog Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetCSVersionDialog Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmGetCSVersionDialog members.

+

Public Methods

+ + +
 NameDescription
 MethodInitPopulates the Restore coldstored file version dialog with data.  
 MethodShowShows the Restore coldstored file version dialog.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Init.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Init.html new file mode 100644 index 0000000..eece6cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Init.html @@ -0,0 +1,208 @@ + + + + + + Init Method (IEdmGetCSVersionDialog) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Init Method (IEdmGetCSVersionDialog)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetCSVersionDialog Interface + : Init Method (IEdmGetCSVersionDialog)
+ +
+ + + +
+ +
+ + +
+
+
poVault
+
IEdmVault5; pointer to the vault
+
+
+
lArcSrvID
+
Archive server ID
+
+
+
eError
+
EdmGetOpError; error code returned after getting coldstored version
+
+
+
bsFileName
+
Name of the file being restored from cold storage
+
+
+
lDocID
+
ID of the document being restored from cold storage
+
+
+
lVersionNo
+
Version number of the file being restored from cold storage
+
+
+
lDateFmt
+
SQL Server date format code (see Remarks in IEdmVault11::CreateNewVault)
+
+
+
lDisplayErrCode
+
Not implemented
+
+ +
+ +
+ + +
+
+ Populates the Restore coldstored file version dialog with data. + + +

Syntax

Visual Basic 
Sub Init( _
+   ByVal poVault As IEdmVault5, _
+   ByVal lArcSrvID As System.Integer, _
+   ByVal eError As EdmGetOpError, _
+   ByVal bsFileName As System.String, _
+   ByVal lDocID As System.Integer, _
+   ByVal lVersionNo As System.Integer, _
+   ByVal lDateFmt As System.Integer, _
+   ByVal lDisplayErrCode As System.Integer _
+) 
+
C# 
void Init( 
+   IEdmVault5 poVault,
+   System.int lArcSrvID,
+   EdmGetOpError eError,
+   System.string bsFileName,
+   System.int lDocID,
+   System.int lVersionNo,
+   System.int lDateFmt,
+   System.int lDisplayErrCode
+)
+
C++/CLI 
void Init( 
+&   IEdmVault5^ poVault,
+&   System.int lArcSrvID,
+&   EdmGetOpError eError,
+&   System.String^ bsFileName,
+&   System.int lDocID,
+&   System.int lVersionNo,
+&   System.int lDateFmt,
+&   System.int lDisplayErrCode
+) 
+ +

Parameters

poVault
+
IEdmVault5; pointer to the vault
lArcSrvID
+
Archive server ID
eError
+
EdmGetOpError; error code returned after getting coldstored version
bsFileName
+
Name of the file being restored from cold storage
lDocID
+
ID of the document being restored from cold storage
lVersionNo
+
Version number of the file being restored from cold storage
lDateFmt
+
SQL Server date format code (see Remarks in IEdmVault11::CreateNewVault)
lDisplayErrCode
+
Not implemented
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Show.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Show.html new file mode 100644 index 0000000..72f1de5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetCSVersionDialog~Show.html @@ -0,0 +1,160 @@ + + + + + + Show Method (IEdmGetCSVersionDialog) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Show Method (IEdmGetCSVersionDialog)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetCSVersionDialog Interface + : Show Method (IEdmGetCSVersionDialog)
+ +
+ + + +
+ +
+ + +
+
+
peReply
+
EdmGetOpReply; user-defined action
+
+
+
vbApplyForAll
+
True to apply peReply to all items, false to not
+
+ +
+ +
+ + +
+
+ Shows the Restore coldstored file version dialog. + + +

Syntax

Visual Basic 
Sub Show( _
+   ByRef peReply As EdmGetOpReply, _
+   ByRef vbApplyForAll As System.Boolean _
+) 
+
C# 
void Show( 
+   out EdmGetOpReply peReply,
+   out System.bool vbApplyForAll
+)
+
C++/CLI 
void Show( 
+&   [Out] EdmGetOpReply peReply,
+&   [Out] System.bool vbApplyForAll
+) 
+ +

Parameters

peReply
+
EdmGetOpReply; user-defined action
vbApplyForAll
+
True to apply peReply to all items, false to not
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback.html new file mode 100644 index 0000000..77c5291 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback.html @@ -0,0 +1,139 @@ + + + + + + IEdmGetOpCallback Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Controls and monitors IEdmBatchGet operations.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmGetOpCallback 
+
C# 
public interface IEdmGetOpCallback 
+
C++/CLI 
public interface class IEdmGetOpCallback 
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2.html new file mode 100644 index 0000000..6dd1ac7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2.html @@ -0,0 +1,139 @@ + + + + + + IEdmGetOpCallback2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Controls and monitors IEdmBatchGet operations.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmGetOpCallback2 
+   Inherits IEdmGetOpCallback 
+
C# 
public interface IEdmGetOpCallback2 : IEdmGetOpCallback  
+
C++/CLI 
public interface class IEdmGetOpCallback2 : public IEdmGetOpCallback  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_members.html new file mode 100644 index 0000000..7cc0688 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmGetOpCallback2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmGetOpCallback2.

+ + +

Public Methods

+ + +
 NameDescription
 MethodReportFailureExNotifies about a file error.  
 MethodResetResets the last reply.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_methods.html new file mode 100644 index 0000000..535142a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmGetOpCallback2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmGetOpCallback2 members.

+

Public Methods

+ + +
 NameDescription
 MethodReportFailureExNotifies about a file error.  
 MethodResetResets the last reply.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~ReportFailureEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~ReportFailureEx.html new file mode 100644 index 0000000..3c85602 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~ReportFailureEx.html @@ -0,0 +1,204 @@ + + + + + + ReportFailureEx Method (IEdmGetOpCallback2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ReportFailureEx Method (IEdmGetOpCallback2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback2 Interface + : ReportFailureEx Method (IEdmGetOpCallback2)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of the affected file
+
+
+
lVersionNo
+
Version of the affected file
+
+
+
bsPath
+
Path to the affected file
+
+
+
eError
+
Error code as defined in EdmGetOpError
+
+
+
oArg1
+
Unique 64-bit version ID
+
+
+
oArg2
+
Reserved for future use
+
+
+
oArg3
+
Reserved for future use
+
+ +
+ +
+ + +
+
+ Notifies about a file error. + + +

Syntax

Visual Basic 
Function ReportFailureEx( _
+   ByVal lFileID As System.Integer, _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsPath As System.String, _
+   ByVal eError As EdmGetOpError, _
+   ByVal oArg1 As System.Object, _
+   ByVal oArg2 As System.Object, _
+   ByVal oArg3 As System.Object _
+) As EdmGetOpReply
+
C# 
EdmGetOpReply ReportFailureEx( 
+   System.int lFileID,
+   System.int lVersionNo,
+   System.string bsPath,
+   EdmGetOpError eError,
+   System.object oArg1,
+   System.object oArg2,
+   System.object oArg3
+)
+
C++/CLI 
EdmGetOpReply ReportFailureEx( 
+&   System.int lFileID,
+&   System.int lVersionNo,
+&   System.String^ bsPath,
+&   EdmGetOpError eError,
+&   System.Object^ oArg1,
+&   System.Object^ oArg2,
+&   System.Object^ oArg3
+) 
+ +

Parameters

lFileID
+
ID of the affected file
lVersionNo
+
Version of the affected file
bsPath
+
Path to the affected file
eError
+
Error code as defined in EdmGetOpError
oArg1
+
Unique 64-bit version ID
oArg2
+
Reserved for future use
oArg3
+
Reserved for future use
+ +

Return Value

Reply with how to proceed as defined in EdmGetOpReply
+ + + + + +

Remarks

This method extends IEdmGetOpCallback::ReportFailure which does not support recovering from archive file errors.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~Reset.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~Reset.html new file mode 100644 index 0000000..6953ed3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback2~Reset.html @@ -0,0 +1,140 @@ + + + + + + Reset Method (IEdmGetOpCallback2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Reset Method (IEdmGetOpCallback2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback2 Interface + : Reset Method (IEdmGetOpCallback2)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Resets the last reply. + + +

Syntax

Visual Basic 
Sub Reset() 
+
C# 
void Reset()
+
C++/CLI 
void Reset(); 
+ + + +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3.html new file mode 100644 index 0000000..5a50a21 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3.html @@ -0,0 +1,136 @@ + + + + + + IEdmGetOpCallback3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Controls and monitors IEdmBatchGet operations.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmGetOpCallback3 
+   Inherits IEdmGetOpCallbackIEdmGetOpCallback2 
+
C# 
public interface IEdmGetOpCallback3 : IEdmGetOpCallbackIEdmGetOpCallback2  
+
C++/CLI 
public interface class IEdmGetOpCallback3 : public IEdmGetOpCallbackIEdmGetOpCallback2  
+
+ + + + +

Remarks

This interface extends IEdmGetOpCallback2.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_members.html new file mode 100644 index 0000000..e7deefe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmGetOpCallback3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmGetOpCallback3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodIsCancelPressedChecks whether the user canceled the operation.  
 MethodSetProgressMessageSets the progress bar message.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_methods.html new file mode 100644 index 0000000..ca0d855 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmGetOpCallback3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmGetOpCallback3 members.

+

Public Methods

+ + +
 NameDescription
 MethodIsCancelPressedChecks whether the user canceled the operation.  
 MethodSetProgressMessageSets the progress bar message.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~IsCancelPressed.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~IsCancelPressed.html new file mode 100644 index 0000000..ce0d214 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~IsCancelPressed.html @@ -0,0 +1,140 @@ + + + + + + IsCancelPressed Method (IEdmGetOpCallback3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsCancelPressed Method (IEdmGetOpCallback3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback3 Interface + : IsCancelPressed Method (IEdmGetOpCallback3)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Checks whether the user canceled the operation. + + +

Syntax

Visual Basic 
Sub IsCancelPressed() 
+
C# 
void IsCancelPressed()
+
C++/CLI 
void IsCancelPressed(); 
+ + + +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~SetProgressMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~SetProgressMessage.html new file mode 100644 index 0000000..c2c2c4e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback3~SetProgressMessage.html @@ -0,0 +1,152 @@ + + + + + + SetProgressMessage Method (IEdmGetOpCallback3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressMessage Method (IEdmGetOpCallback3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback3 Interface + : SetProgressMessage Method (IEdmGetOpCallback3)
+ +
+ + + +
+ +
+ + +
+
+
bsMessage
+
Progress bar message
+
+ +
+ +
+ + +
+
+ Sets the progress bar message. + + +

Syntax

Visual Basic 
Sub SetProgressMessage( _
+   ByVal bsMessage As System.String _
+) 
+
C# 
void SetProgressMessage( 
+   System.string bsMessage
+)
+
C++/CLI 
void SetProgressMessage( 
+&   System.String^ bsMessage
+) 
+ +

Parameters

bsMessage
+
Progress bar message
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_members.html new file mode 100644 index 0000000..6fbdc84 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmGetOpCallback Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmGetOpCallback.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodConfirmReplaceGets whether to replace an existing file.  
 MethodLogMessageNotifies about an error that occurred during the process.  
 MethodProgressBeginMarks the beginning of the process.  
 MethodProgressEndMarks the end of the operation.  
 MethodProgressStepUpdates the progress bar.  
 MethodReportFailureObsolete. Superseded by IEdmGetOpCallback2::ReportFailureEx.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_methods.html new file mode 100644 index 0000000..167f2c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmGetOpCallback Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmGetOpCallback Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmGetOpCallback Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmGetOpCallback members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodConfirmReplaceGets whether to replace an existing file.  
 MethodLogMessageNotifies about an error that occurred during the process.  
 MethodProgressBeginMarks the beginning of the process.  
 MethodProgressEndMarks the end of the operation.  
 MethodProgressStepUpdates the progress bar.  
 MethodReportFailureObsolete. Superseded by IEdmGetOpCallback2::ReportFailureEx.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ConfirmReplace.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ConfirmReplace.html new file mode 100644 index 0000000..82a3075 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ConfirmReplace.html @@ -0,0 +1,163 @@ + + + + + + ConfirmReplace Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ConfirmReplace Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : ConfirmReplace Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eReason
+
Reason for calling this method as defined in EdmGetConfirmReason
+
+
+
bsPath
+
Full path to the local file
+
+ +
+ +
+ + +
+
+ Gets whether to replace an existing file. + + +

Syntax

Visual Basic 
Function ConfirmReplace( _
+   ByVal eReason As EdmGetConfirmReason, _
+   ByVal bsPath As System.String _
+) As System.Boolean
+
C# 
System.bool ConfirmReplace( 
+   EdmGetConfirmReason eReason,
+   System.string bsPath
+)
+
C++/CLI 
System.bool ConfirmReplace( 
+&   EdmGetConfirmReason eReason,
+&   System.String^ bsPath
+) 
+ +

Parameters

eReason
+
Reason for calling this method as defined in EdmGetConfirmReason
bsPath
+
Full path to the local file
+ +

Return Value

True to replace an existing file, false to leave an existing file
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~LogMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~LogMessage.html new file mode 100644 index 0000000..c5081a6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~LogMessage.html @@ -0,0 +1,171 @@ + + + + + + LogMessage Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LogMessage Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : LogMessage Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eMsgID
+
Message to display to the user as defined in EdmGetOpMsg
+
+
+
hCode
+
Error code causing this method to be called
+
+
+
bsDetails
+
Reason for calling this method
+
+ +
+ +
+ + +
+
+ Notifies about an error that occurred during the process. + + +

Syntax

Visual Basic 
Sub LogMessage( _
+   ByVal eMsgID As EdmGetOpMsg, _
+   ByVal hCode As System.Integer, _
+   ByVal bsDetails As System.String _
+) 
+
C# 
void LogMessage( 
+   EdmGetOpMsg eMsgID,
+   System.int hCode,
+   System.string bsDetails
+)
+
C++/CLI 
void LogMessage( 
+&   EdmGetOpMsg eMsgID,
+&   System.int hCode,
+&   System.String^ bsDetails
+) 
+ +

Parameters

eMsgID
+
Message to display to the user as defined in EdmGetOpMsg
hCode
+
Error code causing this method to be called
bsDetails
+
Reason for calling this method
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressBegin.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressBegin.html new file mode 100644 index 0000000..218ce9d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressBegin.html @@ -0,0 +1,164 @@ + + + + + + ProgressBegin Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressBegin Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : ProgressBegin Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar as defined in EdmProgressType
+
+
+
lSteps
+
Number of times that IEdmGetOpCallback::ProgressStep is to be called
+
+ +
+ +
+ + +
+
+ Marks the beginning of the process. + + +

Syntax

Visual Basic 
Sub ProgressBegin( _
+   ByVal eType As EdmProgressType, _
+   ByVal lSteps As System.Integer _
+) 
+
C# 
void ProgressBegin( 
+   EdmProgressType eType,
+   System.int lSteps
+)
+
C++/CLI 
void ProgressBegin( 
+&   EdmProgressType eType,
+&   System.int lSteps
+) 
+ +

Parameters

eType
+
Type of progress bar as defined in EdmProgressType
lSteps
+
Number of times that IEdmGetOpCallback::ProgressStep is to be called
+ +
+ + + + + +

Remarks

Implement this method to display a progress bar. After this method is called, SOLIDWORKS PDM Professional calls IEdmGetOpCallback::ProgressStep lSteps times.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressEnd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressEnd.html new file mode 100644 index 0000000..0e705f4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressEnd.html @@ -0,0 +1,155 @@ + + + + + + ProgressEnd Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressEnd Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : ProgressEnd Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar as defined in EdmProgressType
+
+ +
+ +
+ + +
+
+ Marks the end of the operation. + + +

Syntax

Visual Basic 
Sub ProgressEnd( _
+   ByVal eType As EdmProgressType _
+) 
+
C# 
void ProgressEnd( 
+   EdmProgressType eType
+)
+
C++/CLI 
void ProgressEnd( 
+&   EdmProgressType eType
+) 
+ +

Parameters

eType
+
Type of progress bar as defined in EdmProgressType
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressStep.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressStep.html new file mode 100644 index 0000000..e275ee8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ProgressStep.html @@ -0,0 +1,172 @@ + + + + + + ProgressStep Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressStep Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : ProgressStep Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar as defined in EdmProgressType
+
+
+
bsMessage
+
Full path to the processed file
+
+
+
lProgressPos
+
New position of the progress bar pointer
+
+ +
+ +
+ + +
+
+ Updates the progress bar. + + +

Syntax

Visual Basic 
Function ProgressStep( _
+   ByVal eType As EdmProgressType, _
+   ByVal bsMessage As System.String, _
+   ByVal lProgressPos As System.Integer _
+) As System.Boolean
+
C# 
System.bool ProgressStep( 
+   EdmProgressType eType,
+   System.string bsMessage,
+   System.int lProgressPos
+)
+
C++/CLI 
System.bool ProgressStep( 
+&   EdmProgressType eType,
+&   System.String^ bsMessage,
+&   System.int lProgressPos
+) 
+ +

Parameters

eType
+
Type of progress bar as defined in EdmProgressType
bsMessage
+
Full path to the processed file
lProgressPos
+
New position of the progress bar pointer
+ +

Return Value

True to continue, false to cancel the operation
+ + + + + +

Remarks

This method is called periodically by SOLIDWORKS PDM Professional during the operation. IEdmGetOpCallback::ProgressBegin is called before this method is called. Implement this method to update a progress bar and to implement a button that, when clicked, halts the operation.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ReportFailure.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ReportFailure.html new file mode 100644 index 0000000..b0730ba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmGetOpCallback~ReportFailure.html @@ -0,0 +1,181 @@ + + + + + + ReportFailure Method (IEdmGetOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ReportFailure Method (IEdmGetOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmGetOpCallback Interface + : ReportFailure Method (IEdmGetOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of affected file
+
+
+
bsPath
+
Path to the affected file
+
+
+
hError
+
Error code
+
+
+
bsDetails
+
Detailed description of the error
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmGetOpCallback2::ReportFailureEx. + + +

Syntax

Visual Basic 
Function ReportFailure( _
+   ByVal lFileID As System.Integer, _
+   ByVal bsPath As System.String, _
+   ByVal hError As System.Integer, _
+   ByVal bsDetails As System.String _
+) As System.Boolean
+
C# 
System.bool ReportFailure( 
+   System.int lFileID,
+   System.string bsPath,
+   System.int hError,
+   System.string bsDetails
+)
+
C++/CLI 
System.bool ReportFailure( 
+&   System.int lFileID,
+&   System.String^ bsPath,
+&   System.int hError,
+&   System.String^ bsDetails
+) 
+ +

Parameters

lFileID
+
ID of affected file
bsPath
+
Path to the affected file
hError
+
Error code
bsDetails
+
Detailed description of the error
+ +

Return Value

True to continue, false to cancel the operation
+ + + + + +

Remarks

SOLIDWORKS PDM Professional calls this method when an error related to a specific file has occurred. Implement this method to display a message box to the user or to automatically process the error.

+

This method is extended by IEdmGetOpCallback2::ReportFailureEx which provides support for recovering from archive file errors.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory.html new file mode 100644 index 0000000..b1a2c69 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory.html @@ -0,0 +1,141 @@ + + + + + + IEdmHistory Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmHistory Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the history listing of files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmHistory 
+
C# 
public interface IEdmHistory 
+
C++/CLI 
public interface class IEdmHistory 
+
+ + + +

Example

+

Remarks

This interface:

+ +

To access this interface, call IEdmVault7::CreateUtility with eType set to EdmUtility.EdmUtil_History.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2.html new file mode 100644 index 0000000..33ce009 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2.html @@ -0,0 +1,140 @@ + + + + + + IEdmHistory2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmHistory2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the history listing of files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmHistory2 
+   Inherits IEdmHistory 
+
C# 
public interface IEdmHistory2 : IEdmHistory  
+
C++/CLI 
public interface class IEdmHistory2 : public IEdmHistory  
+
+ + + + +

Remarks

This interface:

+ +

To access this interface, call IEdmVault7::CreateUtility with eType set to EdmUtility.EdmUtil_History.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_members.html new file mode 100644 index 0000000..e93175d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmHistory2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmHistory2.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollbackRolls back the specified file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_methods.html new file mode 100644 index 0000000..725e1ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmHistory2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmHistory2 members.

+

Public Methods

+ +
 NameDescription
 MethodRollbackRolls back the specified file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2~Rollback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2~Rollback.html new file mode 100644 index 0000000..5e6a754 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory2~Rollback.html @@ -0,0 +1,156 @@ + + + + + + Rollback Method (IEdmHistory2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback Method (IEdmHistory2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory2 Interface + : Rollback Method (IEdmHistory2)
+ +
+ + + +
+ +
+ + +
+
+
historyItem
+
EdmHistoryItem to which to roll back
+
+ +
+ +
+ + +
+
+ Rolls back the specified file. + + +

Syntax

Visual Basic 
Sub Rollback( _
+   ByRef historyItem As EdmHistoryItem _
+) 
+
C# 
void Rollback( 
+   ref EdmHistoryItem historyItem
+)
+
C++/CLI 
void Rollback( 
+&   EdmHistoryItem% historyItem
+) 
+ +

Parameters

historyItem
+
EdmHistoryItem to which to roll back
+ +
+ + +

Example

See the IEdmHistory3 examples. +
+ +

Remarks

To populate historyItem, get the collection of history items by calling IEdmHistory::GetHistory.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3.html new file mode 100644 index 0000000..55227ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3.html @@ -0,0 +1,143 @@ + + + + + + IEdmHistory3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory3 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmHistory3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the sorted history listing of files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmHistory3 
+   Inherits IEdmHistoryIEdmHistory2 
+
C# 
public interface IEdmHistory3 : IEdmHistoryIEdmHistory2  
+
C++/CLI 
public interface class IEdmHistory3 : public IEdmHistoryIEdmHistory2  
+
+ + + +

Example

+

Remarks

This interface extends IEdmHistory2 by providing:

+
    +
  • support for Web 2 applications, +
  • the ability to get a sorted history listing, and +
  • the ability to get the event description of a history item.
+

To access this interface, call IEdmVault7::CreateUtility with eType set to EdmUtility.EdmUtil_History.

+

Accessors

IEdmVault7::CreateUtility
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_members.html new file mode 100644 index 0000000..f01abee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmHistory3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmHistory3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetEventDescriptionGets the event description for the specified history item in the specified language.  
 MethodGetSortedHistoryGets the history listing for the specified history types.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_methods.html new file mode 100644 index 0000000..4bc712c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmHistory3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmHistory3 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetEventDescriptionGets the event description for the specified history item in the specified language.  
 MethodGetSortedHistoryGets the history listing for the specified history types.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetEventDescription.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetEventDescription.html new file mode 100644 index 0000000..33e116a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetEventDescription.html @@ -0,0 +1,160 @@ + + + + + + GetEventDescription Method (IEdmHistory3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetEventDescription Method (IEdmHistory3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory3 Interface + : GetEventDescription Method (IEdmHistory3)
+ +
+ + + +
+ +
+ + +
+
+
historyItem
+
EdmHistoryItem (see Remarks)
+
+
+
eLancode
+
Localization language as defined in EdmLangCode
+
+ +
+ +
+ + +
+
+ Gets the event description for the specified history item in the specified language. + + +

Syntax

Visual Basic 
Function GetEventDescription( _
+   ByRef historyItem As EdmHistoryItem, _
+   Optional ByVal eLancode As EdmLangCode _
+) As System.String
+
C# 
System.string GetEventDescription( 
+   ref EdmHistoryItem historyItem,
+   EdmLangCode eLancode
+)
+
C++/CLI 
System.String^ GetEventDescription( 
+&   EdmHistoryItem% historyItem,
+&   EdmLangCode eLancode
+) 
+ +

Parameters

historyItem
+
EdmHistoryItem (see Remarks)
eLancode
+
Localization language as defined in EdmLangCode
+ +

Return Value

History item event description
+ + +

Example

See the IEdmHistory3 examples. +
+ +

Remarks

Before calling this method, call IEdmHistory3::GetSortedHistory to specify a historyItem.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetSortedHistory.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetSortedHistory.html new file mode 100644 index 0000000..a13321e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory3~GetSortedHistory.html @@ -0,0 +1,169 @@ + + + + + + GetSortedHistory Method (IEdmHistory3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSortedHistory Method (IEdmHistory3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory3 Interface + : GetSortedHistory Method (IEdmHistory3)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetHistory
+
Array of EdmHistoryItem structures; one structure for each history item (see Remarks)
+
+
+
lEdmHistoryTypes
+
Combination of EdmHistoryType bits; indicates the kinds of records to retrieve
+
+ +
+ +
+ + +
+
+ Gets the history listing for the specified history types. + + +

Syntax

Visual Basic 
Sub GetSortedHistory( _
+   ByRef ppoRetHistory() As EdmHistoryItem, _
+   Optional ByVal lEdmHistoryTypes As System.Integer _
+) 
+
C# 
void GetSortedHistory( 
+   out EdmHistoryItem[] ppoRetHistory,
+   System.int lEdmHistoryTypes
+)
+
C++/CLI 
void GetSortedHistory( 
+&   [Out] array<EdmHistoryItem>^ ppoRetHistory,
+&   System.int lEdmHistoryTypes
+) 
+ +

Parameters

ppoRetHistory
+
Array of EdmHistoryItem structures; one structure for each history item (see Remarks)
lEdmHistoryTypes
+
Combination of EdmHistoryType bits; indicates the kinds of records to retrieve
+ +
+ + +

Example

See the IEdmHistory3 examples. +
+ +

Remarks

This method works in both Web 2 and thick client applications.

+

Call this method after calling IEdmHistory::AddFile and IEdmHistory::AddFolder.

+

The returned array of history items in ppoRetHistory is sorted with the most recent records at the beginning.

+

Call IEdmHistory3::GetEventDescription, passing one of the EdmHistoryItem structures returned by this method, to obtain its event description.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate.html new file mode 100644 index 0000000..ac4b01f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate.html @@ -0,0 +1,143 @@ + + + + + + IEdmHistoryUpdate Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistoryUpdate Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmHistoryUpdate Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the version and revision comments of files.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmHistoryUpdate 
+
C# 
public interface IEdmHistoryUpdate 
+
C++/CLI 
public interface class IEdmHistoryUpdate 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To use this interface:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility with eType set to EdmUtility.EdmUtil_HistoryUpdate. +
  2. Call IEdmHistoryUpdate::UpdateRevisionComment one or more times to add revision comments to the batch. +
  3. Call IEdmHistoryUpdate::UpdateVersionComment one or more times to add version comments to the batch. +
  4. Call IEdmHistoryUpdate::CommitUpdates to commit the batch of changes to the database.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_members.html new file mode 100644 index 0000000..5af8b95 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmHistoryUpdate Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistoryUpdate Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistoryUpdate Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmHistoryUpdate.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodCommitUpdatesCommits all of the updates in this batch.  
 MethodUpdateRevisionCommentUpdates a revision comment.  
 MethodUpdateVersionCommentUpdates a version comment.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_methods.html new file mode 100644 index 0000000..bbf760c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmHistoryUpdate Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistoryUpdate Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistoryUpdate Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmHistoryUpdate members.

+

Public Methods

+ + + +
 NameDescription
 MethodCommitUpdatesCommits all of the updates in this batch.  
 MethodUpdateRevisionCommentUpdates a revision comment.  
 MethodUpdateVersionCommentUpdates a version comment.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~CommitUpdates.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~CommitUpdates.html new file mode 100644 index 0000000..d7fe089 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~CommitUpdates.html @@ -0,0 +1,143 @@ + + + + + + CommitUpdates Method (IEdmHistoryUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommitUpdates Method (IEdmHistoryUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistoryUpdate Interface + : CommitUpdates Method (IEdmHistoryUpdate)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Commits all of the updates in this batch. + + +

Syntax

Visual Basic 
Sub CommitUpdates() 
+
C# 
void CommitUpdates()
+
C++/CLI 
void CommitUpdates(); 
+ + + +
+ + +

Example

See the IEdmHistoryUpdate examples. +
+ +

Remarks

This method must be called after calling IEdmHistoryUpdate::UpdateVersionComment and IEdmHistoryUpdate::UpdateRevisionComment, or all updates are discarded.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateRevisionComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateRevisionComment.html new file mode 100644 index 0000000..c4010c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateRevisionComment.html @@ -0,0 +1,180 @@ + + + + + + UpdateRevisionComment Method (IEdmHistoryUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateRevisionComment Method (IEdmHistoryUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistoryUpdate Interface + : UpdateRevisionComment Method (IEdmHistoryUpdate)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file for which to update a comment
+
+
+
bsRevisionName
+
Name of revision for which to update a comment: "" for all revisions
+
+
+
lVersionNo
+
ID of version for which to update a comment; -1 for all versions
+
+
+
bsNewComment
+
New revision comment
+
+ +
+ +
+ + +
+
+ Updates a revision comment. + + +

Syntax

Visual Basic 
Sub UpdateRevisionComment( _
+   ByVal lFileID As System.Integer, _
+   ByVal bsRevisionName As System.String, _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsNewComment As System.String _
+) 
+
C# 
void UpdateRevisionComment( 
+   System.int lFileID,
+   System.string bsRevisionName,
+   System.int lVersionNo,
+   System.string bsNewComment
+)
+
C++/CLI 
void UpdateRevisionComment( 
+&   System.int lFileID,
+&   System.String^ bsRevisionName,
+&   System.int lVersionNo,
+&   System.String^ bsNewComment
+) 
+ +

Parameters

lFileID
+
ID of file for which to update a comment
bsRevisionName
+
Name of revision for which to update a comment: "" for all revisions
lVersionNo
+
ID of version for which to update a comment; -1 for all versions
bsNewComment
+
New revision comment
+ +
+ + + + + +

Remarks

After calling this method, you must call IEdmHistoryUpdate::CommitUpdates to write the change to the database.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateVersionComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateVersionComment.html new file mode 100644 index 0000000..0a71be4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistoryUpdate~UpdateVersionComment.html @@ -0,0 +1,172 @@ + + + + + + UpdateVersionComment Method (IEdmHistoryUpdate) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateVersionComment Method (IEdmHistoryUpdate)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistoryUpdate Interface + : UpdateVersionComment Method (IEdmHistoryUpdate)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file for which to update a comment
+
+
+
lVersionNo
+
ID of version for which to update a comment; -1 for all versions
+
+
+
bsNewComment
+
New version comment
+
+ +
+ +
+ + +
+
+ Updates a version comment. + + +

Syntax

Visual Basic 
Sub UpdateVersionComment( _
+   ByVal lFileID As System.Integer, _
+   ByVal lVersionNo As System.Integer, _
+   ByVal bsNewComment As System.String _
+) 
+
C# 
void UpdateVersionComment( 
+   System.int lFileID,
+   System.int lVersionNo,
+   System.string bsNewComment
+)
+
C++/CLI 
void UpdateVersionComment( 
+&   System.int lFileID,
+&   System.int lVersionNo,
+&   System.String^ bsNewComment
+) 
+ +

Parameters

lFileID
+
ID of file for which to update a comment
lVersionNo
+
ID of version for which to update a comment; -1 for all versions
bsNewComment
+
New version comment
+ +
+ + +

Example

See the IEdmHistoryUpdate examples. +
+ +

Remarks

After calling this method, you must call IEdmHistoryUpdate::CommitUpdates to write the change to the database.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_members.html new file mode 100644 index 0000000..22d756b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmHistory Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmHistory.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodAddFileAdds a file to the history listing.  
 MethodAddFolderAdds a folder to the history listing.  
 MethodGetHistoryGets the unsorted history listing for the specified history types.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_methods.html new file mode 100644 index 0000000..6fb910c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmHistory Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmHistory Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmHistory Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmHistory members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddFileAdds a file to the history listing.  
 MethodAddFolderAdds a folder to the history listing.  
 MethodGetHistoryGets the unsorted history listing for the specified history types.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFile.html new file mode 100644 index 0000000..ee069d4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFile.html @@ -0,0 +1,155 @@ + + + + + + AddFile Method (IEdmHistory) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmHistory)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory Interface + : AddFile Method (IEdmHistory)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to add
+
+ +
+ +
+ + +
+
+ Adds a file to the history listing. + + +

Syntax

Visual Basic 
Sub AddFile( _
+   ByVal lFileID As System.Integer _
+) 
+
C# 
void AddFile( 
+   System.int lFileID
+)
+
C++/CLI 
void AddFile( 
+&   System.int lFileID
+) 
+ +

Parameters

lFileID
+
ID of file to add
+ +
+ + +

Example

See the IEdmHistory examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFolder.html new file mode 100644 index 0000000..bf1f341 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~AddFolder.html @@ -0,0 +1,165 @@ + + + + + + AddFolder Method (IEdmHistory) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmHistory)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory Interface + : AddFolder Method (IEdmHistory)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of folder to add
+
+
+
lEdmFolderHistoryFlags
+
Combination of EdmFolderHistoryFlag bits (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds a folder to the history listing. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal lFolderID As System.Integer, _
+   ByVal lEdmFolderHistoryFlags As System.Integer _
+) 
+
C# 
void AddFolder( 
+   System.int lFolderID,
+   System.int lEdmFolderHistoryFlags
+)
+
C++/CLI 
void AddFolder( 
+&   System.int lFolderID,
+&   System.int lEdmFolderHistoryFlags
+) 
+ +

Parameters

lFolderID
+
ID of folder to add
lEdmFolderHistoryFlags
+
Combination of EdmFolderHistoryFlag bits (see Remarks)
+ +
+ + + + + +

Remarks

lEdmFolderHistoryFlags indicates whether subfolders are added recursively and whether files in the specified folder are added.

+

After all the files and folders have been added, call IEdmHistory::GetHistory to obtain the actual history listing.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~GetHistory.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~GetHistory.html new file mode 100644 index 0000000..22fb58e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmHistory~GetHistory.html @@ -0,0 +1,166 @@ + + + + + + GetHistory Method (IEdmHistory) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetHistory Method (IEdmHistory)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmHistory Interface + : GetHistory Method (IEdmHistory)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetHistory
+
Array of EdmHistoryItem structures; one structure for each history item (see Remarks)
+
+
+
lEdmHistoryTypes
+
Combination of EdmHistoryType bits; indicates the kinds of records to retrieve
+
+ +
+ +
+ + +
+
+ Gets the unsorted history listing for the specified history types. + + +

Syntax

Visual Basic 
Sub GetHistory( _
+   ByRef ppoRetHistory() As EdmHistoryItem, _
+   Optional ByVal lEdmHistoryTypes As System.Integer _
+) 
+
C# 
void GetHistory( 
+   out EdmHistoryItem[] ppoRetHistory,
+   System.int lEdmHistoryTypes
+)
+
C++/CLI 
void GetHistory( 
+&   [Out] array<EdmHistoryItem>^ ppoRetHistory,
+&   System.int lEdmHistoryTypes
+) 
+ +

Parameters

ppoRetHistory
+
Array of EdmHistoryItem structures; one structure for each history item (see Remarks)
lEdmHistoryTypes
+
Combination of EdmHistoryType bits; indicates the kinds of records to retrieve
+ +
+ + + + + +

Remarks

Call this method after calling IEdmHistory::AddFile and IEdmHistory::AddFolder.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage.html new file mode 100644 index 0000000..6784c1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage.html @@ -0,0 +1,138 @@ + + + + + + IEdmImage Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmImage Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmImage Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to paint an image on a window.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmImage 
+
C# 
public interface IEdmImage 
+
C++/CLI 
public interface class IEdmImage 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

User images should have a width that is 80% of its height.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_members.html new file mode 100644 index 0000000..507eb85 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmImage Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmImage Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmImage Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmImage.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetPositionGets the bounding rectangle where the image is drawn.  
 MethodPaintPaints an image on the specified device context in the specified bounding rectangle.  
 MethodRepositionChanges the bounding rectangle where to draw the image.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_methods.html new file mode 100644 index 0000000..533481a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmImage Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmImage Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmImage Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmImage members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetPositionGets the bounding rectangle where the image is drawn.  
 MethodPaintPaints an image on the specified device context in the specified bounding rectangle.  
 MethodRepositionChanges the bounding rectangle where to draw the image.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~GetPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~GetPosition.html new file mode 100644 index 0000000..6b1bd40 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~GetPosition.html @@ -0,0 +1,154 @@ + + + + + + GetPosition Method (IEdmImage) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetPosition Method (IEdmImage)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmImage Interface + : GetPosition Method (IEdmImage)
+ +
+ + + +
+ +
+ + +
+
+
poDestRect
+
EdmRect structure; contains the size and position where to draw the image
+
+ +
+ +
+ + +
+
+ Gets the bounding rectangle where the image is drawn. + + +

Syntax

Visual Basic 
Sub GetPosition( _
+   ByRef poDestRect As EdmRect _
+) 
+
C# 
void GetPosition( 
+   out EdmRect poDestRect
+)
+
C++/CLI 
void GetPosition( 
+&   [Out] EdmRect poDestRect
+) 
+ +

Parameters

poDestRect
+
EdmRect structure; contains the size and position where to draw the image
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Paint.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Paint.html new file mode 100644 index 0000000..55eb3d1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Paint.html @@ -0,0 +1,163 @@ + + + + + + Paint Method (IEdmImage) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Paint Method (IEdmImage)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmImage Interface + : Paint Method (IEdmImage)
+ +
+ + + +
+ +
+ + +
+
+
llHDC
+
Device context handle
+
+
+
poDestRect
+
EdmRect structure; contains the size and position where to draw the image; null to use the size and position of the image when it was created or the size and position that was passed in the last call to IEdmImage::Reposition
+
+ +
+ +
+ + +
+
+ Paints an image on the specified device context in the specified bounding rectangle. + + +

Syntax

Visual Basic 
Sub Paint( _
+   ByVal llHDC As System.Long, _
+   Optional ByRef poDestRect As EdmRect _
+) 
+
C# 
void Paint( 
+   System.long llHDC,
+   ref EdmRect poDestRect
+)
+
C++/CLI 
void Paint( 
+&   System.int64 llHDC,
+&   EdmRect% poDestRect
+) 
+ +

Parameters

llHDC
+
Device context handle
poDestRect
+
EdmRect structure; contains the size and position where to draw the image; null to use the size and position of the image when it was created or the size and position that was passed in the last call to IEdmImage::Reposition
+ +
+ + +

Example

See the IEdmImage examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Reposition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Reposition.html new file mode 100644 index 0000000..a6cd12d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmImage~Reposition.html @@ -0,0 +1,163 @@ + + + + + + Reposition Method (IEdmImage) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Reposition Method (IEdmImage)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmImage Interface + : Reposition Method (IEdmImage)
+ +
+ + + +
+ +
+ + +
+
+
poDestRect
+
EdmRect structure; size and position where to draw the image
+
+
+
eRefresh
+
Type of refresh of the window as defined in EdmRepaintType
+
+ +
+ +
+ + +
+
+ Changes the bounding rectangle where to draw the image. + + +

Syntax

Visual Basic 
Sub Reposition( _
+   ByRef poDestRect As EdmRect, _
+   Optional ByVal eRefresh As EdmRepaintType _
+) 
+
C# 
void Reposition( 
+   ref EdmRect poDestRect,
+   EdmRepaintType eRefresh
+)
+
C++/CLI 
void Reposition( 
+&   EdmRect% poDestRect,
+&   EdmRepaintType eRefresh
+) 
+ +

Parameters

poDestRect
+
EdmRect structure; size and position where to draw the image
eRefresh
+
Type of refresh of the window as defined in EdmRepaintType
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5.html new file mode 100644 index 0000000..7095dbd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5.html @@ -0,0 +1,138 @@ + + + + + + IEdmInbox5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmInbox5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmInbox5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the messages sent to a user.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmInbox5 
+
C# 
public interface IEdmInbox5 
+
C++/CLI 
public interface class IEdmInbox5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

To access this interface, cast an IEdmUser5 object to an IEdmInbox5 pointer.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_members.html new file mode 100644 index 0000000..0c27a57 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmInbox5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmInbox5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmInbox5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmInbox5.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetFirstMessagePositionStarts an enumeration of the messages in this inbox.  
 MethodGetNextMessageGets the next message in the enumeration.  
 MethodSendMsgEmails the current user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_methods.html new file mode 100644 index 0000000..fcacdea --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmInbox5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmInbox5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmInbox5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmInbox5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetFirstMessagePositionStarts an enumeration of the messages in this inbox.  
 MethodGetNextMessageGets the next message in the enumeration.  
 MethodSendMsgEmails the current user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetFirstMessagePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetFirstMessagePosition.html new file mode 100644 index 0000000..c3fd41a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetFirstMessagePosition.html @@ -0,0 +1,160 @@ + + + + + + GetFirstMessagePosition Method (IEdmInbox5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstMessagePosition Method (IEdmInbox5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmInbox5 Interface + : GetFirstMessagePosition Method (IEdmInbox5)
+ +
+ + + +
+ +
+ + +
+
+
lEdmGetMsgFlags
+
Combination of EdmGetMsgFlag bits indicating which messages to enumerate
+
+ +
+ +
+ + +
+
+ Starts an enumeration of the messages in this inbox. + + +

Syntax

Visual Basic 
Function GetFirstMessagePosition( _
+   Optional ByVal lEdmGetMsgFlags As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstMessagePosition( 
+   System.int lEdmGetMsgFlags
+)
+
C++/CLI 
IEdmPos5^ GetFirstMessagePosition( 
+&   System.int lEdmGetMsgFlags
+) 
+ +

Parameters

lEdmGetMsgFlags
+
Combination of EdmGetMsgFlag bits indicating which messages to enumerate
+ +

Return Value

IEdmPos5; position of the first message in the inbox
+ + + + +

Example

+

Remarks

This method only works to enumerate messages of the user currently logged in to the vault.

+

After calling this method, pass the returned first message position to IEdmInbox5::GetNextMessage to get the first message in the inbox. Then call IEdmInbox5::GetNextMessage repeatedly to get the rest of the messages in the inbox.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: You tried to access somebody else's messages.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetNextMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetNextMessage.html new file mode 100644 index 0000000..741da96 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~GetNextMessage.html @@ -0,0 +1,161 @@ + + + + + + GetNextMessage Method (IEdmInbox5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextMessage Method (IEdmInbox5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmInbox5 Interface + : GetNextMessage Method (IEdmInbox5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next message (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next message in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextMessage( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmMessage5
+
C# 
IEdmMessage5 GetNextMessage( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmMessage5^ GetNextMessage( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next message (see Remarks)
+ +

Return Value

IEdmMessage5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first message, IEdmPos5. Call IEdmInbox5::GetFirstMessagePosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the messages.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmMessage5. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~SendMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~SendMsg.html new file mode 100644 index 0000000..238724c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmInbox5~SendMsg.html @@ -0,0 +1,165 @@ + + + + + + SendMsg Method (IEdmInbox5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SendMsg Method (IEdmInbox5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmInbox5 Interface + : SendMsg Method (IEdmInbox5)
+ +
+ + + +
+ +
+ + +
+
+
bsSubject
+
Subject of the email
+
+
+
bsMessageText
+
Message detail (see Remarks)
+
+ +
+ +
+ + +
+
+ Emails the current user. + + +

Syntax

Visual Basic 
Sub SendMsg( _
+   ByVal bsSubject As System.String, _
+   ByVal bsMessageText As System.String _
+) 
+
C# 
void SendMsg( 
+   System.string bsSubject,
+   System.string bsMessageText
+)
+
C++/CLI 
void SendMsg( 
+&   System.String^ bsSubject,
+&   System.String^ bsMessageText
+) 
+ +

Parameters

bsSubject
+
Subject of the email
bsMessageText
+
Message detail (see Remarks)
+ +
+ + +

Example

See the IEdmUser5::SendMsg example. +
+ +

Remarks

It is possible to send HTML-formatted email, if the recipient uses a mail system that supports HTML. If so, then add HTML tags to the text in bsMessageText.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem.html new file mode 100644 index 0000000..21e4300 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem.html @@ -0,0 +1,143 @@ + + + + + + IEdmItem Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmItem Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmItem Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access an item.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmItem 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmItem : IEdmObject5  
+
C++/CLI 
public interface class IEdmItem : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5.

+

To access this interface, you can:

+
    +
  • Cast IEdmFileX objects to an IEdmItem pointer. +
  • Call IEdmVault5::GetObject, setting eType to EdmObjectType.EdmObject_Item.
+

See the Programming Items topic for more information.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_members.html new file mode 100644 index 0000000..0d81bf2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmItem Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmItem Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmItem Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmItem.

+

Public Properties

+ +
 NameDescription
 PropertyItemDescriptiveNameGets the descriptive name of this item.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetReferencesGets item references.  
 MethodUpdateReferencesAdds and removes references to and from this item.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_methods.html new file mode 100644 index 0000000..0bbfb37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmItem Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmItem Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmItem Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmItem members.

+

Public Methods

+ + +
 NameDescription
 MethodGetReferencesGets item references.  
 MethodUpdateReferencesAdds and removes references to and from this item.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_properties.html new file mode 100644 index 0000000..bc7b726 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmItem Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmItem Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmItem Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmItem members.

+

Public Properties

+ +
 NameDescription
 PropertyItemDescriptiveNameGets the descriptive name of this item.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~GetReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~GetReferences.html new file mode 100644 index 0000000..be22fa4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~GetReferences.html @@ -0,0 +1,167 @@ + + + + + + GetReferences Method (IEdmItem) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetReferences Method (IEdmItem)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmItem Interface + : GetReferences Method (IEdmItem)
+ +
+ + + +
+ +
+ + +
+
+
lEdmRefFlags
+
Combination of EdmRefFlags bits
+
+
+
ppoRetReferences
+
Array of EdmItemRef structures; one structure for each item reference
+
+ +
+ +
+ + +
+
+ Gets item references. + + +

Syntax

Visual Basic 
Sub GetReferences( _
+   ByVal lEdmRefFlags As System.Integer, _
+   ByRef ppoRetReferences() As EdmItemRef _
+) 
+
C# 
void GetReferences( 
+   System.int lEdmRefFlags,
+   out EdmItemRef[] ppoRetReferences
+)
+
C++/CLI 
void GetReferences( 
+&   System.int lEdmRefFlags,
+&   [Out] array<EdmItemRef>^ ppoRetReferences
+) 
+ +

Parameters

lEdmRefFlags
+
Combination of EdmRefFlags bits
ppoRetReferences
+
Array of EdmItemRef structures; one structure for each item reference
+ +
+ + +

Example

See the IEdmItem examples. +
+ +

Remarks

Call IEdmItem::UpdateReferences to add, update, or remove item references.

+

Use IEdmFile5::GetReferenceTree to enumerate item references.

+

Use IEdmBatchItemReferenceUpdate to quickly update the references of many items at the same time.

+

See the Programming Items topic for more information.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~ItemDescriptiveName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~ItemDescriptiveName.html new file mode 100644 index 0000000..b005f16 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~ItemDescriptiveName.html @@ -0,0 +1,148 @@ + + + + + + ItemDescriptiveName Property (IEdmItem) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ItemDescriptiveName Property (IEdmItem)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmItem Interface + : ItemDescriptiveName Property (IEdmItem)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the descriptive name of this item. + + +

Syntax

Visual Basic 
ReadOnly Property ItemDescriptiveName As System.String
+
C# 
System.string ItemDescriptiveName {get;}
+
C++/CLI 
property System.String^ ItemDescriptiveName {
+   System.String^ get();
+}
+ + + +

Property Value

Descriptive name of this item
+ + +

Example

See the IEdmItem examples. +
+ +

Remarks

The descriptive name of an item is based on a variable in its data card.

+

An item also has an "item ID", which is its file name counterpart, accessible via the IEdmItem::Name.

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~UpdateReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~UpdateReferences.html new file mode 100644 index 0000000..452d4b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmItem~UpdateReferences.html @@ -0,0 +1,166 @@ + + + + + + UpdateReferences Method (IEdmItem) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateReferences Method (IEdmItem)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmItem Interface + : UpdateReferences Method (IEdmItem)
+ +
+ + + +
+ +
+ + +
+
+
ppoAddReferences
+
Array of EdmItemRef structures; one structure for each item reference to add or update
+
+
+
ppoRemoveReferences
+
Array of EdmItemRef structures; one structure for each item reference to remove
+
+ +
+ +
+ + +
+
+ Adds and removes references to and from this item. + + +

Syntax

Visual Basic 
Sub UpdateReferences( _
+   ByRef ppoAddReferences() As EdmItemRef, _
+   ByRef ppoRemoveReferences() As EdmItemRef _
+) 
+
C# 
void UpdateReferences( 
+   out EdmItemRef[] ppoAddReferences,
+   out EdmItemRef[] ppoRemoveReferences
+)
+
C++/CLI 
void UpdateReferences( 
+&   [Out] array<EdmItemRef>^ ppoAddReferences,
+&   [Out] array<EdmItemRef>^ ppoRemoveReferences
+) 
+ +

Parameters

ppoAddReferences
+
Array of EdmItemRef structures; one structure for each item reference to add or update
ppoRemoveReferences
+
Array of EdmItemRef structures; one structure for each item reference to remove
+ +
+ + +

Example

See the IEdmItem examples. +
+ +

Remarks

It is more efficient to use IEdmBatchItemReferenceUpdate, if you need to update the references of several items at the same time.

+

Note that the references in argument ppoRemoveReferences are deleted after references in ppoAddReferences are created or updated. A reference present in both lists is, therefore, updated and then immediately deleted.

+

See the Programming Items topic for more information.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5.html new file mode 100644 index 0000000..d804257 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5.html @@ -0,0 +1,145 @@ + + + + + + IEdmLabel5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmLabel5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file or folder label.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmLabel5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmLabel5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmLabel5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmObject5. +
  • is extended by IEdmLabel6 which provides the ability to update the history of, delete, and rename file labels.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_members.html new file mode 100644 index 0000000..f64877f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_members.html @@ -0,0 +1,126 @@ + + + + + + IEdmLabel5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmLabel5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmLabel5.

+

Public Properties

+ + + + +
 NameDescription
 PropertyCommentGets the label comment.  
 PropertyTimeGets the date and time of label creation.  
 PropertyUserGets the user who created the label.  
 PropertyUserIDGets the ID of the user who created the label.  
Top
+ +

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodAddFileSets this label on the latest version of the specified file.  
 MethodAddFolderSets this label on the specified folder and all of the files in that folder.  
 MethodGetFirstFilePositionStarts an enumeration of the files set with this label.  
 MethodGetFirstFolderPositionStarts an enumeration of the folders set with this label.  
 MethodGetNextFileGets the next file with this label in the enumeration.  
 MethodGetNextFileIDGets the next ID of a file with this label in the enumeration.  
 MethodGetNextFolderGets the next folder with this label in the enumeration.  
 MethodGetNextFolderIDGets the next ID of a folder with this label in the enumeration.  
 MethodGetVersionNoGets the version of the specified file on which this label is set.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_methods.html new file mode 100644 index 0000000..0a12375 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_methods.html @@ -0,0 +1,113 @@ + + + + + + IEdmLabel5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmLabel5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmLabel5 members.

+

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodAddFileSets this label on the latest version of the specified file.  
 MethodAddFolderSets this label on the specified folder and all of the files in that folder.  
 MethodGetFirstFilePositionStarts an enumeration of the files set with this label.  
 MethodGetFirstFolderPositionStarts an enumeration of the folders set with this label.  
 MethodGetNextFileGets the next file with this label in the enumeration.  
 MethodGetNextFileIDGets the next ID of a file with this label in the enumeration.  
 MethodGetNextFolderGets the next folder with this label in the enumeration.  
 MethodGetNextFolderIDGets the next ID of a folder with this label in the enumeration.  
 MethodGetVersionNoGets the version of the specified file on which this label is set.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_properties.html new file mode 100644 index 0000000..b046f6c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmLabel5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmLabel5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmLabel5 members.

+

Public Properties

+ + + + +
 NameDescription
 PropertyCommentGets the label comment.  
 PropertyTimeGets the date and time of label creation.  
 PropertyUserGets the user who created the label.  
 PropertyUserIDGets the ID of the user who created the label.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFile.html new file mode 100644 index 0000000..8912429 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFile.html @@ -0,0 +1,155 @@ + + + + + + AddFile Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : AddFile Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file to set label on
+
+ +
+ +
+ + +
+
+ Sets this label on the latest version of the specified file. + + +

Syntax

Visual Basic 
Sub AddFile( _
+   ByVal lFileID As System.Integer _
+) 
+
C# 
void AddFile( 
+   System.int lFileID
+)
+
C++/CLI 
void AddFile( 
+&   System.int lFileID
+) 
+ +

Parameters

lFileID
+
ID of file to set label on
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFolder.html new file mode 100644 index 0000000..3d36b7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~AddFolder.html @@ -0,0 +1,163 @@ + + + + + + AddFolder Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFolder Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : AddFolder Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of folder on which to set this label
+
+
+
bRecursive
+
True to recursively set this label on all subfolders, false to not
+
+ +
+ +
+ + +
+
+ Sets this label on the specified folder and all of the files in that folder. + + +

Syntax

Visual Basic 
Sub AddFolder( _
+   ByVal lFolderID As System.Integer, _
+   ByVal bRecursive As System.Boolean _
+) 
+
C# 
void AddFolder( 
+   System.int lFolderID,
+   System.bool bRecursive
+)
+
C++/CLI 
void AddFolder( 
+&   System.int lFolderID,
+&   System.bool bRecursive
+) 
+ +

Parameters

lFolderID
+
ID of folder on which to set this label
bRecursive
+
True to recursively set this label on all subfolders, false to not
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Comment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Comment.html new file mode 100644 index 0000000..c01c4da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Comment.html @@ -0,0 +1,147 @@ + + + + + + Comment Property (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Comment Property (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : Comment Property (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the label comment. + + +

Syntax

Visual Basic 
ReadOnly Property Comment As System.String
+
C# 
System.string Comment {get;}
+
C++/CLI 
property System.String^ Comment {
+   System.String^ get();
+}
+ + + +

Property Value

Label comment
+ + +

Example

See the IEdmLabel5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFilePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFilePosition.html new file mode 100644 index 0000000..46e3703 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFilePosition.html @@ -0,0 +1,145 @@ + + + + + + GetFirstFilePosition Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFilePosition Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetFirstFilePosition Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the files set with this label. + + +

Syntax

Visual Basic 
Function GetFirstFilePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstFilePosition()
+
C++/CLI 
IEdmPos5^ GetFirstFilePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first file set with this label
+ + + + + +

Remarks

After calling this method, pass the returned first file position to IEdmLabel5::GetNextFile or IEdmLabel5::GetNextFileID to get the first file in the list of files set with this label. Then call IEdmLabel5::GetNextFile or IEdmLabel5::GetNextFileID repeatedly to get the rest of the files set with this label.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFolderPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFolderPosition.html new file mode 100644 index 0000000..3ee3a84 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetFirstFolderPosition.html @@ -0,0 +1,145 @@ + + + + + + GetFirstFolderPosition Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFolderPosition Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetFirstFolderPosition Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the folders set with this label. + + +

Syntax

Visual Basic 
Function GetFirstFolderPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstFolderPosition()
+
C++/CLI 
IEdmPos5^ GetFirstFolderPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first folder set with this label
+ + + + + +

Remarks

After calling this method, pass the returned first folder position to IEdmLabel5::GetNextFolder or IEdmLabel5::GetNextFolderID to get the first folder in the list of folders set with this label. Then call IEdmLabel5::GetNextFolder or IEdmLabel5::GetNextFolderID repeatedly to get the rest of the folders set with this label.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFile.html new file mode 100644 index 0000000..7c0dc88 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFile.html @@ -0,0 +1,168 @@ + + + + + + GetNextFile Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFile Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetNextFile Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next file (see Remarks)
+
+
+
plVersion
+
Version of file on which this label is set
+
+ +
+ +
+ + +
+
+ Gets the next file with this label in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextFile( _
+   ByVal poPos As IEdmPos5, _
+   ByRef plVersion As System.Integer _
+) As IEdmFile5
+
C# 
IEdmFile5 GetNextFile( 
+   IEdmPos5 poPos,
+   out System.int plVersion
+)
+
C++/CLI 
IEdmFile5^ GetNextFile( 
+&   IEdmPos5^ poPos,
+&   [Out] System.int plVersion
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next file (see Remarks)
plVersion
+
Version of file on which this label is set
+ +

Return Value

IEdmFile5
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first file with this label, IEdmPos5. Call IEdmLabel5::GetFirstFilePosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the files with this label.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

If you only need the ID of the next file with this label, call IEdmLabel5::GetNextFileID instead of this method.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmFile5. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFileID.html new file mode 100644 index 0000000..7dcc518 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFileID.html @@ -0,0 +1,166 @@ + + + + + + GetNextFileID Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFileID Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetNextFileID Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next file (see Remarks)
+
+
+
plVersion
+
Version of file on which this label is set
+
+ +
+ +
+ + +
+
+ Gets the next ID of a file with this label in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextFileID( _
+   ByVal poPos As IEdmPos5, _
+   ByRef plVersion As System.Integer _
+) As System.Integer
+
C# 
System.int GetNextFileID( 
+   IEdmPos5 poPos,
+   out System.int plVersion
+)
+
C++/CLI 
System.int GetNextFileID( 
+&   IEdmPos5^ poPos,
+&   [Out] System.int plVersion
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next file (see Remarks)
plVersion
+
Version of file on which this label is set
+ +

Return Value

ID of file on which this label is set
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first file with this label, IEdmPos5. Call IEdmLabel5::GetFirstFilePosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the file IDs.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolder.html new file mode 100644 index 0000000..3a66d44 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolder.html @@ -0,0 +1,160 @@ + + + + + + GetNextFolder Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFolder Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetNextFolder Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next folder (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next folder with this label in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextFolder( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmFolder5
+
C# 
IEdmFolder5 GetNextFolder( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmFolder5^ GetNextFolder( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next folder (see Remarks)
+ +

Return Value

IEdmFolder5
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first folder with this label, IEdmPos5. Call IEdmLabel5::GetFirstFolderPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the folders with this label.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

If you only need the ID of the next folder with this label, call IEdmLabel5::GetNextFolderID instead of this method.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmFile5. 

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolderID.html new file mode 100644 index 0000000..aafb10d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetNextFolderID.html @@ -0,0 +1,158 @@ + + + + + + GetNextFolderID Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFolderID Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetNextFolderID Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next folder (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next ID of a folder with this label in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextFolderID( _
+   ByVal poPos As IEdmPos5 _
+) As System.Integer
+
C# 
System.int GetNextFolderID( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
System.int GetNextFolderID( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next folder (see Remarks)
+ +

Return Value

ID of folder on which this label is set
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first folder with this label, IEdmPos5. Call IEdmLabel5::GetFirstFolderPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the folder IDs.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetVersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetVersionNo.html new file mode 100644 index 0000000..3b04cc7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~GetVersionNo.html @@ -0,0 +1,155 @@ + + + + + + GetVersionNo Method (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVersionNo Method (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : GetVersionNo Method (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file for which to get the version
+
+ +
+ +
+ + +
+
+ Gets the version of the specified file on which this label is set. + + +

Syntax

Visual Basic 
Function GetVersionNo( _
+   ByVal lFileID As System.Integer _
+) As System.Integer
+
C# 
System.int GetVersionNo( 
+   System.int lFileID
+)
+
C++/CLI 
System.int GetVersionNo( 
+&   System.int lFileID
+) 
+ +

Parameters

lFileID
+
ID of file for which to get the version
+ +

Return Value

Version number
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: The label is not set on the specified file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Time.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Time.html new file mode 100644 index 0000000..c351db7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~Time.html @@ -0,0 +1,147 @@ + + + + + + Time Property (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Time Property (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : Time Property (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the date and time of label creation. + + +

Syntax

Visual Basic 
ReadOnly Property Time As System.Object
+
C# 
System.object Time {get;}
+
C++/CLI 
property System.Object^ Time {
+   System.Object^ get();
+}
+ + + +

Property Value

Date and time of label creation
+ + +

Example

See the IEdmLabel5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~User.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~User.html new file mode 100644 index 0000000..2791281 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~User.html @@ -0,0 +1,147 @@ + + + + + + User Property (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
User Property (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : User Property (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the user who created the label. + + +

Syntax

Visual Basic 
ReadOnly Property User As IEdmUser5
+
C# 
IEdmUser5 User {get;}
+
C++/CLI 
property IEdmUser5^ User {
+   IEdmUser5^ get();
+}
+ + + +

Property Value

IEdmUser5
+ + +

Example

See the IEdmLabel5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~UserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~UserID.html new file mode 100644 index 0000000..aa0afe0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel5~UserID.html @@ -0,0 +1,147 @@ + + + + + + UserID Property (IEdmLabel5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserID Property (IEdmLabel5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel5 Interface + : UserID Property (IEdmLabel5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who created the label. + + +

Syntax

Visual Basic 
ReadOnly Property UserID As System.Integer
+
C# 
System.int UserID {get;}
+
C++/CLI 
property System.int UserID {
+   System.int get();
+}
+ + + +

Property Value

ID of user who created the label
+ + +

Example

See the IEdmLabel5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6.html new file mode 100644 index 0000000..cb127db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6.html @@ -0,0 +1,136 @@ + + + + + + IEdmLabel6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmLabel6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file or folder label.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmLabel6 
+   Inherits IEdmLabel5IEdmObject5 
+
C# 
public interface IEdmLabel6 : IEdmLabel5IEdmObject5  
+
C++/CLI 
public interface class IEdmLabel6 : public IEdmLabel5IEdmObject5  
+
+ + + + +

Remarks

This interface extends IEdmLabel5.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_members.html new file mode 100644 index 0000000..2309df3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmLabel6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmLabel6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmLabel6.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodChangeCommentUpdates the comment of this label.  
 MethodDeleteDeletes this label.  
 MethodRenameRenames this label.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_methods.html new file mode 100644 index 0000000..6d15ce1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmLabel6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmLabel6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmLabel6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmLabel6 members.

+

Public Methods

+ + + +
 NameDescription
 MethodChangeCommentUpdates the comment of this label.  
 MethodDeleteDeletes this label.  
 MethodRenameRenames this label.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~ChangeComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~ChangeComment.html new file mode 100644 index 0000000..9d7beaf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~ChangeComment.html @@ -0,0 +1,163 @@ + + + + + + ChangeComment Method (IEdmLabel6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ChangeComment Method (IEdmLabel6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel6 Interface + : ChangeComment Method (IEdmLabel6)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
New comment for this label
+
+
+
hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+
+ +
+ +
+ + +
+
+ Updates the comment of this label. + + +

Syntax

Visual Basic 
Sub ChangeComment( _
+   ByVal bsComment As System.String, _
+   ByVal hParentWnd As System.Integer _
+) 
+
C# 
void ChangeComment( 
+   System.string bsComment,
+   System.int hParentWnd
+)
+
C++/CLI 
void ChangeComment( 
+&   System.String^ bsComment,
+&   System.int hParentWnd
+) 
+ +

Parameters

bsComment
+
New comment for this label
hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Delete.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Delete.html new file mode 100644 index 0000000..99ab4d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Delete.html @@ -0,0 +1,155 @@ + + + + + + Delete Method (IEdmLabel6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Delete Method (IEdmLabel6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel6 Interface + : Delete Method (IEdmLabel6)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+
+ +
+ +
+ + +
+
+ Deletes this label. + + +

Syntax

Visual Basic 
Sub Delete( _
+   ByVal hParentWnd As System.Integer _
+) 
+
C# 
void Delete( 
+   System.int hParentWnd
+)
+
C++/CLI 
void Delete( 
+&   System.int hParentWnd
+) 
+ +

Parameters

hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Rename.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Rename.html new file mode 100644 index 0000000..1ff9d5a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmLabel6~Rename.html @@ -0,0 +1,163 @@ + + + + + + Rename Method (IEdmLabel6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rename Method (IEdmLabel6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmLabel6 Interface + : Rename Method (IEdmLabel6)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
New name of label
+
+
+
hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+
+ +
+ +
+ + +
+
+ Renames this label. + + +

Syntax

Visual Basic 
Sub Rename( _
+   ByVal bsName As System.String, _
+   ByVal hParentWnd As System.Integer _
+) 
+
C# 
void Rename( 
+   System.string bsName,
+   System.int hParentWnd
+)
+
C++/CLI 
void Rename( 
+&   System.String^ bsName,
+&   System.int hParentWnd
+) 
+ +

Parameters

bsName
+
New name of label
hParentWnd
+
Parent window handle; passed to add-ins that have registered the hooks, EdmCmdData.EdmCmd_PreLabelModify and EdmCmdData.EdmCmd_PostLabelModify
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5.html new file mode 100644 index 0000000..64e80ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5.html @@ -0,0 +1,139 @@ + + + + + + IEdmMenu5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmMenu5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmMenu5 
+
C# 
public interface IEdmMenu5 
+
C++/CLI 
public interface class IEdmMenu5 
+
+ + + + +

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_members.html new file mode 100644 index 0000000..64f1e02 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmMenu5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmMenu5.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodCompareCompares this IEdmMenu5 menu with another menu to see if they contain the same menu items.  
 MethodGetButtonImagesGets the toolbar-button images of a range of commands.  
 MethodGetStringGets a string for a menu item in this menu.  
 MethodGetToolbarItemIDsGets the toolbar buttons associated with the menu commands.  
 MethodOnMenuItemObsolete. Superseded by IEdmMenu7::OnMenuItem2.  
 MethodOnUpdateUIUpdates the menu based on a new selection of files and folders.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_methods.html new file mode 100644 index 0000000..3141af2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5_methods.html @@ -0,0 +1,109 @@ + + + + + + IEdmMenu5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmMenu5 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodCompareCompares this IEdmMenu5 menu with another menu to see if they contain the same menu items.  
 MethodGetButtonImagesGets the toolbar-button images of a range of commands.  
 MethodGetStringGets a string for a menu item in this menu.  
 MethodGetToolbarItemIDsGets the toolbar buttons associated with the menu commands.  
 MethodOnMenuItemObsolete. Superseded by IEdmMenu7::OnMenuItem2.  
 MethodOnUpdateUIUpdates the menu based on a new selection of files and folders.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~Compare.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~Compare.html new file mode 100644 index 0000000..4f8d0d1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~Compare.html @@ -0,0 +1,155 @@ + + + + + + Compare Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Compare Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : Compare Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
poMenu
+
Menu
+
+ +
+ +
+ + +
+
+ Compares this IEdmMenu5 menu with another menu to see if they contain the same menu items. + + +

Syntax

Visual Basic 
Function Compare( _
+   ByVal poMenu As IEdmMenu5 _
+) As System.Boolean
+
C# 
System.bool Compare( 
+   IEdmMenu5 poMenu
+)
+
C++/CLI 
System.bool Compare( 
+&   IEdmMenu5^ poMenu
+) 
+ +

Parameters

poMenu
+
Menu
+ +

Return Value

True if the objects are equal, false if not
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: Success, but the objects are different (pbEqual returned false).
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetButtonImages.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetButtonImages.html new file mode 100644 index 0000000..0ca7561 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetButtonImages.html @@ -0,0 +1,172 @@ + + + + + + GetButtonImages Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetButtonImages Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : GetButtonImages Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
hDestImageList
+
Handle of the image list (HIMAGELIST) to which to add images; the images are appended at the end of the list
+
+
+
eState
+
State of buttons to get as defined in EdmButtonState
+
+
+
poItemIDArray
+
Array of menu command IDs for which to get images
+
+ +
+ +
+ + +
+
+ Gets the toolbar-button images of a range of commands. + + +

Syntax

Visual Basic 
Sub GetButtonImages( _
+   ByVal hDestImageList As System.Integer, _
+   ByVal eState As EdmButtonState, _
+   ByVal poItemIDArray() As System.Integer _
+) 
+
C# 
void GetButtonImages( 
+   System.int hDestImageList,
+   EdmButtonState eState,
+   System.int[] poItemIDArray
+)
+
C++/CLI 
void GetButtonImages( 
+&   System.int hDestImageList,
+&   EdmButtonState eState,
+&   System.array<int>^ poItemIDArray
+) 
+ +

Parameters

hDestImageList
+
Handle of the image list (HIMAGELIST) to which to add images; the images are appended at the end of the list
eState
+
State of buttons to get as defined in EdmButtonState
poItemIDArray
+
Array of menu command IDs for which to get images
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: One of the arguments is invalid.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetString.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetString.html new file mode 100644 index 0000000..cf00e01 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetString.html @@ -0,0 +1,162 @@ + + + + + + GetString Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetString Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : GetString Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
lItemID
+
ID of menu item for which to get a string
+
+
+
eType
+
Type of string to get as defined in EdmMenuStrType
+
+ +
+ +
+ + +
+
+ Gets a string for a menu item in this menu. + + +

Syntax

Visual Basic 
Function GetString( _
+   ByVal lItemID As System.Integer, _
+   ByVal eType As EdmMenuStrType _
+) As System.String
+
C# 
System.string GetString( 
+   System.int lItemID,
+   EdmMenuStrType eType
+)
+
C++/CLI 
System.String^ GetString( 
+&   System.int lItemID,
+&   EdmMenuStrType eType
+) 
+ +

Parameters

lItemID
+
ID of menu item for which to get a string
eType
+
Type of string to get as defined in EdmMenuStrType
+ +

Return Value

String (see Remarks)
+ + + + + +

Remarks

C++ programmers must free the returned string with SysFreeString.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetToolbarItemIDs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetToolbarItemIDs.html new file mode 100644 index 0000000..09571b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~GetToolbarItemIDs.html @@ -0,0 +1,155 @@ + + + + + + GetToolbarItemIDs Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetToolbarItemIDs Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : GetToolbarItemIDs Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetID
+
Array of IDs (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the toolbar buttons associated with the menu commands. + + +

Syntax

Visual Basic 
Sub GetToolbarItemIDs( _
+   ByRef ppoRetID() As System.Integer _
+) 
+
C# 
void GetToolbarItemIDs( 
+   out System.int[] ppoRetID
+)
+
C++/CLI 
void GetToolbarItemIDs( 
+&   [Out] System.array<int>^ ppoRetID
+) 
+ +

Parameters

ppoRetID
+
Array of IDs (see Remarks)
+ +
+ + + + + +

Remarks

The toolbar buttons were added to SOLIDWORKS PDM Professional with the EdmMenuFlags.EdmMenu_HasToolbarButton flag specified in the call to IEdmCmdMgr5::AddCmd.

+

C++ programmers must remember to correctly create and destroy the returned SAFEARRAY of IDs to avoid errors.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnMenuItem.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnMenuItem.html new file mode 100644 index 0000000..77818ad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnMenuItem.html @@ -0,0 +1,189 @@ + + + + + + OnMenuItem Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnMenuItem Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : OnMenuItem Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
lItemID
+
ID of the selected menu item
+
+
+
lParentWnd
+
Parent window handle (HWND)
+
+
+
lCurrentFolderID
+
ID of the currently active folder
+
+
+
poSelFiles
+
List of selected files
+
+
+
poSelFolders
+
List of selected folders
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmMenu7::OnMenuItem2. + + +

Syntax

Visual Basic 
Function OnMenuItem( _
+   ByVal lItemID As System.Integer, _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lCurrentFolderID As System.Integer, _
+   ByVal poSelFiles As EdmSelectionList5, _
+   ByVal poSelFolders As EdmSelectionList5 _
+) As System.Integer
+
C# 
System.int OnMenuItem( 
+   System.int lItemID,
+   System.int lParentWnd,
+   System.int lCurrentFolderID,
+   EdmSelectionList5 poSelFiles,
+   EdmSelectionList5 poSelFolders
+)
+
C++/CLI 
System.int OnMenuItem( 
+&   System.int lItemID,
+&   System.int lParentWnd,
+&   System.int lCurrentFolderID,
+&   EdmSelectionList5^ poSelFiles,
+&   EdmSelectionList5^ poSelFolders
+) 
+ +

Parameters

lItemID
+
ID of the selected menu item
lParentWnd
+
Parent window handle (HWND)
lCurrentFolderID
+
ID of the currently active folder
poSelFiles
+
List of selected files
poSelFolders
+
List of selected folders
+ +

Return Value

User-interface elements that should be refreshed as defined in EdmRefreshFlag
+ + + + + +

Remarks

You should call this method when a user selects a menu item belonging to this menu.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE:  Menu item does not belong to this menu. +
  • S_EDM_MENU_ITEM_NOT_APPLICABLE: The current selection of files and folders do not satisfy the constraints set by the command author. See EdmMenuFlags sent to IEdmCmdMgr5::AddCmd.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnUpdateUI.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnUpdateUI.html new file mode 100644 index 0000000..f7b4892 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu5~OnUpdateUI.html @@ -0,0 +1,169 @@ + + + + + + OnUpdateUI Method (IEdmMenu5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnUpdateUI Method (IEdmMenu5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu5 Interface + : OnUpdateUI Method (IEdmMenu5)
+ +
+ + + +
+ +
+ + +
+
+
lSelFileCount
+
Number of selected files
+
+
+
lSelFolderCount
+
Number of selected folders
+
+
+
bAllItemsInSameFolder
+
True if all of the selected files and folders are located in the same parent folder, false if not
+
+ +
+ +
+ + +
+
+ Updates the menu based on a new selection of files and folders. + + +

Syntax

Visual Basic 
Sub OnUpdateUI( _
+   ByVal lSelFileCount As System.Integer, _
+   ByVal lSelFolderCount As System.Integer, _
+   Optional ByVal bAllItemsInSameFolder As System.Boolean _
+) 
+
C# 
void OnUpdateUI( 
+   System.int lSelFileCount,
+   System.int lSelFolderCount,
+   System.bool bAllItemsInSameFolder
+)
+
C++/CLI 
void OnUpdateUI( 
+&   System.int lSelFileCount,
+&   System.int lSelFolderCount,
+&   System.bool bAllItemsInSameFolder
+) 
+ +

Parameters

lSelFileCount
+
Number of selected files
lSelFolderCount
+
Number of selected folders
bAllItemsInSameFolder
+
True if all of the selected files and folders are located in the same parent folder, false if not
+ +
+ + + + + +

Remarks

Some items in the menu might be grayed out or removed due to the currently selected number of files and folders. This method updates the menu based on a new selection of files and folders.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6.html new file mode 100644 index 0000000..6c9eee2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6.html @@ -0,0 +1,139 @@ + + + + + + IEdmMenu6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmMenu6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmMenu6 
+   Inherits IEdmMenu5 
+
C# 
public interface IEdmMenu6 : IEdmMenu5  
+
C++/CLI 
public interface class IEdmMenu6 : public IEdmMenu5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_members.html new file mode 100644 index 0000000..4b6d3f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmMenu6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmMenu6.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetItemsGets the commands that appear on the toolbar.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_methods.html new file mode 100644 index 0000000..8f06250 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmMenu6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmMenu6 members.

+

Public Methods

+ +
 NameDescription
 MethodGetItemsGets the commands that appear on the toolbar.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6~GetItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6~GetItems.html new file mode 100644 index 0000000..08d8d53 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu6~GetItems.html @@ -0,0 +1,163 @@ + + + + + + GetItems Method (IEdmMenu6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetItems Method (IEdmMenu6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu6 Interface + : GetItems Method (IEdmMenu6)
+ +
+ + + +
+ +
+ + +
+
+
lEdmMenuFlags
+
Types of item you want returned as defined in EdmMenuFlags
+
+
+
ppoRetItems
+
Array of EdmCmdInfo structs of the returned items
+
+ +
+ +
+ + +
+
+ Gets the commands that appear on the toolbar. + + +

Syntax

Visual Basic 
Sub GetItems( _
+   ByVal lEdmMenuFlags As System.Integer, _
+   ByRef ppoRetItems() As EdmCmdInfo _
+) 
+
C# 
void GetItems( 
+   System.int lEdmMenuFlags,
+   out EdmCmdInfo[] ppoRetItems
+)
+
C++/CLI 
void GetItems( 
+&   System.int lEdmMenuFlags,
+&   [Out] array<EdmCmdInfo>^ ppoRetItems
+) 
+ +

Parameters

lEdmMenuFlags
+
Types of item you want returned as defined in EdmMenuFlags
ppoRetItems
+
Array of EdmCmdInfo structs of the returned items
+ +
+ + + + +

Example

+

Remarks

Calling IEdmMenu5::GetToolbarItemIDs, IEdmMenu5::GetButtonImages, or IEdmMenu5::GetString also gets the commands that should appear on the toolbar.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7.html new file mode 100644 index 0000000..590d3d9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7.html @@ -0,0 +1,137 @@ + + + + + + IEdmMenu7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmMenu7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmMenu7 
+   Inherits IEdmMenu5IEdmMenu6 
+
C# 
public interface IEdmMenu7 : IEdmMenu5IEdmMenu6  
+
C++/CLI 
public interface class IEdmMenu7 : public IEdmMenu5IEdmMenu6  
+
+ + + +

Example

+

Remarks

This extended interface also works with object types other than files and folders, and this interface inherits from IEdmMenu6.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_members.html new file mode 100644 index 0000000..7143560 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmMenu7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmMenu7.

+ + +

Public Methods

+ +
 NameDescription
 MethodOnMenuItem2Executes the command for the selected menu item.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_methods.html new file mode 100644 index 0000000..e6da424 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmMenu7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMenu7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMenu7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmMenu7 members.

+

Public Methods

+ +
 NameDescription
 MethodOnMenuItem2Executes the command for the selected menu item.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7~OnMenuItem2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7~OnMenuItem2.html new file mode 100644 index 0000000..a37a7c3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMenu7~OnMenuItem2.html @@ -0,0 +1,183 @@ + + + + + + OnMenuItem2 Method (IEdmMenu7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OnMenuItem2 Method (IEdmMenu7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMenu7 Interface + : OnMenuItem2 Method (IEdmMenu7)
+ +
+ + + +
+ +
+ + +
+
+
lItemID
+
ID of the selected menu item
+
+
+
lParentWnd
+
Parent window handle (HWND)
+
+
+
lCurrentFolderID
+
ID of currently active folder
+
+
+
poSelObjects
+
List of selected objects (files, folders, items, etc.)
+
+ +
+ +
+ + +
+
+ Executes the command for the selected menu item. + + +

Syntax

Visual Basic 
Function OnMenuItem2( _
+   ByVal lItemID As System.Integer, _
+   ByVal lParentWnd As System.Integer, _
+   ByVal lCurrentFolderID As System.Integer, _
+   ByVal poSelObjects As IEdmSelectionList6 _
+) As System.Integer
+
C# 
System.int OnMenuItem2( 
+   System.int lItemID,
+   System.int lParentWnd,
+   System.int lCurrentFolderID,
+   IEdmSelectionList6 poSelObjects
+)
+
C++/CLI 
System.int OnMenuItem2( 
+&   System.int lItemID,
+&   System.int lParentWnd,
+&   System.int lCurrentFolderID,
+&   IEdmSelectionList6^ poSelObjects
+) 
+ +

Parameters

lItemID
+
ID of the selected menu item
lParentWnd
+
Parent window handle (HWND)
lCurrentFolderID
+
ID of currently active folder
poSelObjects
+
List of selected objects (files, folders, items, etc.)
+ +

Return Value

User-interface elements that should be refreshed as defined in EdmRefreshFlag 

+ + + + +

Example

+

Remarks

You should call this method when a user selects a menu item belonging to this menu.

+

NOTE: This method supersedes IEdmMenu5::OnMenuItem, which only works with files and folders. IEdmMenu7::OnMenuItem2 works with files and folders as well as other object types such as items.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: Menu item does not belong to this menu. +
  • S_EDM_MENU_ITEM_NOT_APPLICABLE: The current selection of objects do not satisfy the constraints set by the command author. See EdmMenuFlags sent to IEdmCmdMgr5::AddCmd.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5.html new file mode 100644 index 0000000..1b13697 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5.html @@ -0,0 +1,139 @@ + + + + + + IEdmMessage5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMessage5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmMessage5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to encapsulate a single message in the inbox.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmMessage5 
+
C# 
public interface IEdmMessage5 
+
C++/CLI 
public interface class IEdmMessage5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_members.html new file mode 100644 index 0000000..314b97d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_members.html @@ -0,0 +1,121 @@ + + + + + + IEdmMessage5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMessage5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMessage5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmMessage5.

+

Public Properties

+ + + + + + + +
 NameDescription
 PropertyBodyGets the text of the message.  
 PropertyDateGets the date and time that the message was sent.  
 PropertyIsReadGets or sets whether the message has been read.  
 PropertyMessageTypeGets the type of the message.  
 PropertySenderIDGets the ID of the user who sent the message.  
 PropertySenderNameGets the name of the user who sent the message.  
 PropertySubjectGets the subject of the message.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodRemoveRemoves this message from the inbox.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_methods.html new file mode 100644 index 0000000..0f799cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmMessage5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMessage5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMessage5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmMessage5 members.

+

Public Methods

+ +
 NameDescription
 MethodRemoveRemoves this message from the inbox.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_properties.html new file mode 100644 index 0000000..239ea36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5_properties.html @@ -0,0 +1,115 @@ + + + + + + IEdmMessage5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmMessage5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmMessage5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmMessage5 members.

+

Public Properties

+ + + + + + + +
 NameDescription
 PropertyBodyGets the text of the message.  
 PropertyDateGets the date and time that the message was sent.  
 PropertyIsReadGets or sets whether the message has been read.  
 PropertyMessageTypeGets the type of the message.  
 PropertySenderIDGets the ID of the user who sent the message.  
 PropertySenderNameGets the name of the user who sent the message.  
 PropertySubjectGets the subject of the message.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Body.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Body.html new file mode 100644 index 0000000..147bfcd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Body.html @@ -0,0 +1,147 @@ + + + + + + Body Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Body Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : Body Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the text of the message. + + +

Syntax

Visual Basic 
ReadOnly Property Body As System.String
+
C# 
System.string Body {get;}
+
C++/CLI 
property System.String^ Body {
+   System.String^ get();
+}
+ + + +

Property Value

Message text
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Date.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Date.html new file mode 100644 index 0000000..d925b54 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Date.html @@ -0,0 +1,147 @@ + + + + + + Date Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Date Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : Date Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the date and time that the message was sent. + + +

Syntax

Visual Basic 
ReadOnly Property Date As System.Object
+
C# 
System.object Date {get;}
+
C++/CLI 
property System.Object^ Date {
+   System.Object^ get();
+}
+ + + +

Property Value

Array of the date and time that the message was sent
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~IsRead.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~IsRead.html new file mode 100644 index 0000000..3b95650 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~IsRead.html @@ -0,0 +1,148 @@ + + + + + + IsRead Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsRead Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : IsRead Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether the message has been read. + + +

Syntax

Visual Basic 
Property IsRead As System.Boolean
+
C# 
System.bool IsRead {get; set;}
+
C++/CLI 
property System.bool IsRead {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True if the message has been read, false if not (see Remarks)
+ + +

Example

See the IEdmMessage5 examples. +
+ +

Remarks

You can only set this property to true; you cannot set it to false.
+ + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~MessageType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~MessageType.html new file mode 100644 index 0000000..759adad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~MessageType.html @@ -0,0 +1,147 @@ + + + + + + MessageType Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MessageType Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : MessageType Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of the message. + + +

Syntax

Visual Basic 
ReadOnly Property MessageType As EdmMsgType
+
C# 
EdmMsgType MessageType {get;}
+
C++/CLI 
property EdmMsgType MessageType {
+   EdmMsgType get();
+}
+ + + +

Property Value

Type of the message as defined in EdmMsgType
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Remove.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Remove.html new file mode 100644 index 0000000..09720b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Remove.html @@ -0,0 +1,140 @@ + + + + + + Remove Method (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Remove Method (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : Remove Method (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Removes this message from the inbox. + + +

Syntax

Visual Basic 
Sub Remove() 
+
C# 
void Remove()
+
C++/CLI 
void Remove(); 
+ + + +
+ + + + + +

Remarks

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderID.html new file mode 100644 index 0000000..9217da8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderID.html @@ -0,0 +1,147 @@ + + + + + + SenderID Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SenderID Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : SenderID Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who sent the message. + + +

Syntax

Visual Basic 
ReadOnly Property SenderID As System.Integer
+
C# 
System.int SenderID {get;}
+
C++/CLI 
property System.int SenderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the user who sent  the message; 0 indicates that the message is a notification
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderName.html new file mode 100644 index 0000000..e3dcd1c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~SenderName.html @@ -0,0 +1,147 @@ + + + + + + SenderName Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SenderName Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : SenderName Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the user who sent the message. + + +

Syntax

Visual Basic 
ReadOnly Property SenderName As System.String
+
C# 
System.string SenderName {get;}
+
C++/CLI 
property System.String^ SenderName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the user who sent the message; an empty string indicates that the message was a notification
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Subject.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Subject.html new file mode 100644 index 0000000..bff9e5a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmMessage5~Subject.html @@ -0,0 +1,147 @@ + + + + + + Subject Property (IEdmMessage5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Subject Property (IEdmMessage5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmMessage5 Interface + : Subject Property (IEdmMessage5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the subject of the message. + + +

Syntax

Visual Basic 
ReadOnly Property Subject As System.String
+
C# 
System.string Subject {get;}
+
C++/CLI 
property System.String^ Subject {
+   System.String^ get();
+}
+ + + +

Property Value

Subject of the message
+ + +

Example

See the IEdmMessage5 examples. +
+ + + + +

See Also

+

Availability

Version 5.3 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5.html new file mode 100644 index 0000000..9ffe61c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5.html @@ -0,0 +1,139 @@ + + + + + + IEdmObject5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmObject5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmObject5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Contains several properties and methods that are common to all derived interfaces.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmObject5 
+
C# 
public interface IEdmObject5 
+
C++/CLI 
public interface class IEdmObject5 
+
+ + + +

Example

+

Remarks

Almost all objects that are stored in SOLIDWORKS PDM Professional's database inherit from this parent interface. See EmdObjectType for a list of all of the interfaces that inherit from IEdmObject5.

+

You can retrieve all objects inheriting from IEdmObject5 using IEdmVault5::GetObject if you know the type and the database ID.

+

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_members.html new file mode 100644 index 0000000..5e5e0eb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmObject5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmObject5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmObject5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmObject5.

+

Public Properties

+ + + + +
 NameDescription
 PropertyIDGets the database ID of this object.  
 PropertyNameGets the name of the object.  
 PropertyObjectTypeGets the type of object.  
 PropertyVaultGets the file vault to which this object belongs.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodRefreshRe-reads cached properties from the database.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_methods.html new file mode 100644 index 0000000..4db65c1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmObject5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmObject5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmObject5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmObject5 members.

+

Public Methods

+ + +
 NameDescription
 MethodIsKindOfChecks whether the object is of a certain type.  
 MethodRefreshRe-reads cached properties from the database.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_properties.html new file mode 100644 index 0000000..92a20cc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5_properties.html @@ -0,0 +1,110 @@ + + + + + + IEdmObject5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmObject5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmObject5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmObject5 members.

+

Public Properties

+ + + + +
 NameDescription
 PropertyIDGets the database ID of this object.  
 PropertyNameGets the name of the object.  
 PropertyObjectTypeGets the type of object.  
 PropertyVaultGets the file vault to which this object belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ID.html new file mode 100644 index 0000000..9331ade --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ID.html @@ -0,0 +1,153 @@ + + + + + + ID Property (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ID Property (IEdmObject5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : ID Property (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of this object. + + +

Syntax

Visual Basic 
ReadOnly Property ID As System.Integer
+
C# 
System.int ID {get;}
+
C++/CLI 
property System.int ID {
+   System.int get();
+}
+ + + +

Property Value

Database ID of this object
+ + + + +

Example

+

Remarks

Database IDs are unique for same-type objects. For example, two files can never have the same database ID; however, a file and a folder might have the same database ID.
+ + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~IsKindOf.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~IsKindOf.html new file mode 100644 index 0000000..3d04844 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~IsKindOf.html @@ -0,0 +1,154 @@ + + + + + + IsKindOf Method (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsKindOf Method (IEdmObject5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : IsKindOf Method (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+
__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+
+ +
+ +
+ + +
+
+ Checks whether the object is of a certain type. + + +

Syntax

Visual Basic 
Function IsKindOf( _
+   ByVal __MIDL__IEdmObject50000 As EdmObjectType _
+) As System.Boolean
+
C# 
System.bool IsKindOf( 
+   EdmObjectType __MIDL__IEdmObject50000
+)
+
C++/CLI 
System.bool IsKindOf( 
+&   EdmObjectType __MIDL__IEdmObject50000
+) 
+ +

Parameters

__MIDL__IEdmObject50000
+
Type of object as defined in EdmObjectType
+ +

Return Value

True if the object is of the specified type, false if not
+ + + + +

Example

+

Remarks

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Name.html new file mode 100644 index 0000000..f220309 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Name.html @@ -0,0 +1,153 @@ + + + + + + Name Property (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmObject5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : Name Property (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the object. + + +

Syntax

Visual Basic 
ReadOnly Property Name As System.String
+
C# 
System.string Name {get;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the object
+ + + + +

Example

+

Remarks

The type of object determines the contents of the return value. For example, this property gets the filename for a file, the user name for a user, etc.
+ + +

See Also

+

Availability

Version 5.2 SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ObjectType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ObjectType.html new file mode 100644 index 0000000..ebb6922 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~ObjectType.html @@ -0,0 +1,151 @@ + + + + + + ObjectType Property (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ObjectType Property (IEdmObject5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : ObjectType Property (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of object. + + +

Syntax

Visual Basic 
ReadOnly Property ObjectType As EdmObjectType
+
C# 
EdmObjectType ObjectType {get;}
+
C++/CLI 
property EdmObjectType ObjectType {
+   EdmObjectType get();
+}
+ + + +

Property Value

Type of object as defined in EdmObjectType
+ + + + +

Example

+ + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Refresh.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Refresh.html new file mode 100644 index 0000000..942b13f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Refresh.html @@ -0,0 +1,145 @@ + + + + + + Refresh Method (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Refresh Method (IEdmObject5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : Refresh Method (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Re-reads cached properties from the database. + + +

Syntax

Visual Basic 
Sub Refresh() 
+
C# 
void Refresh()
+
C++/CLI 
void Refresh(); 
+ + + +
+ + + + + +

Remarks

In a multi-user implementation, the object may change as you are working on it. Call this method to ensure that you are seeing the latest state of the object.

+

For performance reasons, some object properties might be cached in the object itself. This method ensures that cached properties are re-read from the database.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_EDM_DATABASE_ACCESS: General error accessing the database.
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Vault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Vault.html new file mode 100644 index 0000000..dd1d2e4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmObject5~Vault.html @@ -0,0 +1,147 @@ + + + + + + Vault Property (IEdmObject5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Vault Property (IEdmObject5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmObject5 Interface + : Vault Property (IEdmObject5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file vault to which this object belongs. + + +

Syntax

Visual Basic 
ReadOnly Property Vault As IEdmVault5
+
C# 
IEdmVault5 Vault {get;}
+
C++/CLI 
property IEdmVault5^ Vault {
+   IEdmVault5^ get();
+}
+ + + +

Property Value

File vault to which this object belongs
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5.html new file mode 100644 index 0000000..97bff88 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5.html @@ -0,0 +1,216 @@ + + + + + + IEdmPos5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmPos5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmPos5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to identify the position of an element in a list of elements.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmPos5 
+
C# 
public interface IEdmPos5 
+
C++/CLI 
public interface class IEdmPos5 
+
+ + + +

Example

+

Remarks

This object indicates the current position in a list of elements.

+

Typically you obtain this object using an object's "get first" method and then enumerate the list of elements by passing an IEdmPos5 object to an object's "get next" method.

+

Accessors

IEdmCard5::GetFirstControlPosition

+

IEdmCard5::GetNextControl

+

IEdmCategoryMgr6::GetFirstCategoryPosition

+

IEdmCategoryMgr6::GetNextCategory

+

IEdmDictionary5::LongFindKeys

+

IEdmDictionary5::LongFindValues

+

IEdmDictionary5::LongGetFirstPosition

+

IEdmDictionary5::LongGetNextAssoc

+

IEdmDictionary5::StringFindKeys

+

IEdmDictionary5::StringFindValues

+

IEdmDictionary5::StringGetFirstPosition

+

IEdmDictionary5::StringGetNextAssoc

+

IEdmEnumeratorCustomReference5::GetFirstRefPosition

+

IEdmEnumeratorCustomReference5::GetNextRef

+

IEdmEnumeratorVersion5::GetFirstLabelPosition

+

IEdmEnumeratorVersion5::GetFirstRevisionPosition

+

IEdmEnumeratorVersion5::GetFirstVersionPosition

+

IEdmEnumeratorVersion5::GetNextLabel

+

IEdmEnumeratorVersion5::GetNextRevision

+

IEdmEnumeratorVersion5::GetNextVersion

+

IEdmFile5::GetFirstFolderPosition

+

IEdmFile5::GetNextFolder

+

IEdmFolder5::GetFirstFilePosition

+

IEdmFolder5::GetFirstLabelPosition

+

IEdmFolder5::GetFirstSubFolderPosition

+

IEdmFolder5::GetNextFile

+

IEdmFolder5::GetNextLabel

+

IEdmFolder5::GetNextSubFolder

+

IEdmInbox5::GetFirstMessagePosition

+

IEdmInbox5::GetNextMessage

+

IEdmLabel5::GetFirstFilePosition

+

IEdmLabel5::GetFirstFolderPosition

+

IEdmLabel5::GetNextFile

+

IEdmLabel5::GetNextFileID

+

IEdmLabel5::GetNextFolder

+

IEdmLabel5::GetNextFolderID

+

IEdmPos5::Clone

+

IEdmReference5::GetFirstChildPosition

+

IEdmReference5::GetFirstParentPosition

+

IEdmReference5::GetNextChild

+

IEdmReference5::GetNextParent

+

IEdmSelectionList5::GetHeadPosition

+

IEdmSelectionList5::GetNext

+

IEdmState5::GetFirstFilePosition

+

IEdmState5::GetFirstTransitionPosition

+

IEdmState5::GetNextFile

+

IEdmState5::GetNextTransition

+

IEdmStrLst5::GetHeadPosition

+

IEdmStrLst5::GetNext

+

IEdmTemplateMgr5::GetFirstTemplatePosition

+

IEdmTemplateMgr5::GetNextTemplate

+

IEdmUserGroup5::GetFirstUserPosition

+

IEdmUserGroup5::GetNextUser

+

IEdmUserMgr5::GetFirstLoggedInUserPosition

+

IEdmUserMgr5::GetFirstUserGroupPosition

+

IEdmUserMgr5::GetFirstUserPosition

+

IEdmUserMgr5::GetNextLoggedInUser

+

IEdmUserMgr5::GetNextUser

+

IEdmUserMgr5::GetNextUserGroup

+

IEdmVariable5::GetFirstAttributePosition

+

IEdmVariable5::GetNextAttribute

+

IEdmVariableMgr5::GetFirstVariablePosition

+

IEdmVariableMgr5::GetNextVariable

+

IEdmVariableValue5::GetFirstAttributePosition

+

IEdmVariableValue5::GetNextAttribute

+

IEdmVersion5::GetFirstRevisionPosition

+

IEdmVersion5::GetNextRevision

+

IEdmWorkflow5::GetFirstStatePosition

+

IEdmWorkflow5::GetFirstTransitionPosition

+

IEdmWorkflow5::GetNextState

+

IEdmWorkflow5::GetNextTransition

+

IEdmWorkflow6::GetFirstStatePosition

+

IEdmWorkflow6::GetFirstTransitionPosition

+

IEdmWorkflow6::GetNextState

+

IEdmWorkflow6::GetNextTransition

+

IEdmWorkflowMgr6::GetFirstWorkflowPosition

+

IEdmWorkflowMgr6::GetNextWorkflow

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_members.html new file mode 100644 index 0000000..87a4397 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmPos5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmPos5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmPos5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmPos5.

+

Public Properties

+ +
 NameDescription
 PropertyIsNullGets whether any elements remain to be enumerated.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodCloneCreates a copy of an IEdmPos5 object.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_methods.html new file mode 100644 index 0000000..748bb99 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmPos5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmPos5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmPos5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmPos5 members.

+

Public Methods

+ +
 NameDescription
 MethodCloneCreates a copy of an IEdmPos5 object.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_properties.html new file mode 100644 index 0000000..36932bb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmPos5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmPos5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmPos5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmPos5 members.

+

Public Properties

+ +
 NameDescription
 PropertyIsNullGets whether any elements remain to be enumerated.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~Clone.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~Clone.html new file mode 100644 index 0000000..fd47059 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~Clone.html @@ -0,0 +1,142 @@ + + + + + + Clone Method (IEdmPos5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Clone Method (IEdmPos5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmPos5 Interface + : Clone Method (IEdmPos5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Creates a copy of an IEdmPos5 object. + + +

Syntax

Visual Basic 
Function Clone() As IEdmPos5
+
C# 
IEdmPos5 Clone()
+
C++/CLI 
IEdmPos5^ Clone(); 
+ + + +

Return Value

Copy of an IEdmPos5 object
+ + + + + +

Remarks

C++ users must release the returned pointer.

+

You can use a copy of an IEdmPos5 object as a bookmark in an enumeration that you are performing with this object.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~IsNull.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~IsNull.html new file mode 100644 index 0000000..ab41c73 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmPos5~IsNull.html @@ -0,0 +1,153 @@ + + + + + + IsNull Property (IEdmPos5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsNull Property (IEdmPos5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmPos5 Interface + : IsNull Property (IEdmPos5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether any elements remain to be enumerated. + + +

Syntax

Visual Basic 
ReadOnly Property IsNull As System.Boolean
+
C# 
System.bool IsNull {get;}
+
C++/CLI 
property System.bool IsNull {
+   System.bool get();
+}
+ + + +

Property Value

True if there any elements to be enumerated, false if not
+ + + + +

Example

+ + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr.html new file mode 100644 index 0000000..69ee6e0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr.html @@ -0,0 +1,137 @@ + + + + + + IEdmRawReferenceMgr Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRawReferenceMgr Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRawReferenceMgr Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to update file reference paths directly in the checked-out files.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRawReferenceMgr 
+
C# 
public interface IEdmRawReferenceMgr 
+
C++/CLI 
public interface class IEdmRawReferenceMgr 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_members.html new file mode 100644 index 0000000..d927cb0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmRawReferenceMgr Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRawReferenceMgr Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRawReferenceMgr Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRawReferenceMgr.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodCloseCloses the opened file.  
 MethodGetReferencesGet a list of all of the file references in the opened file.  
 MethodOpenOpens a file.  
 MethodUpdateReferencesUpdates the include paths for the file references.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_methods.html new file mode 100644 index 0000000..462755f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmRawReferenceMgr Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRawReferenceMgr Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRawReferenceMgr Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRawReferenceMgr members.

+

Public Methods

+ + + + +
 NameDescription
 MethodCloseCloses the opened file.  
 MethodGetReferencesGet a list of all of the file references in the opened file.  
 MethodOpenOpens a file.  
 MethodUpdateReferencesUpdates the include paths for the file references.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Close.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Close.html new file mode 100644 index 0000000..c0ebf31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Close.html @@ -0,0 +1,140 @@ + + + + + + Close Method (IEdmRawReferenceMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Close Method (IEdmRawReferenceMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRawReferenceMgr Interface + : Close Method (IEdmRawReferenceMgr)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Closes the opened file. + + +

Syntax

Visual Basic 
Sub Close() 
+
C# 
void Close()
+
C++/CLI 
void Close(); 
+ + + +
+ + +

Example

See the IEdmRawReferenceMgr examples. +
+ +

Remarks

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~GetReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~GetReferences.html new file mode 100644 index 0000000..5b89068 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~GetReferences.html @@ -0,0 +1,154 @@ + + + + + + GetReferences Method (IEdmRawReferenceMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetReferences Method (IEdmRawReferenceMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRawReferenceMgr Interface + : GetReferences Method (IEdmRawReferenceMgr)
+ +
+ + + +
+ +
+ + +
+
+
ppoReferences
+
Array of EdmRawReference structs of the file references
+
+ +
+ +
+ + +
+
+ Get a list of all of the file references in the opened file. + + +

Syntax

Visual Basic 
Sub GetReferences( _
+   ByRef ppoReferences() As EdmRawReference _
+) 
+
C# 
void GetReferences( 
+   out EdmRawReference[] ppoReferences
+)
+
C++/CLI 
void GetReferences( 
+&   [Out] array<EdmRawReference>^ ppoReferences
+) 
+ +

Parameters

ppoReferences
+
Array of EdmRawReference structs of the file references
+ +
+ + +

Example

See the IEdmRawReferenceMgr examples. +
+ +

Remarks

Before calling this method, you must call IEdmRawReferenceMgr::Open.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Open.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Open.html new file mode 100644 index 0000000..d216caf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~Open.html @@ -0,0 +1,156 @@ + + + + + + Open Method (IEdmRawReferenceMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Open Method (IEdmRawReferenceMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRawReferenceMgr Interface + : Open Method (IEdmRawReferenceMgr)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path to the file to open
+
+ +
+ +
+ + +
+
+ Opens a file. + + +

Syntax

Visual Basic 
Function Open( _
+   ByVal bsPath As System.String _
+) As System.Boolean
+
C# 
System.bool Open( 
+   System.string bsPath
+)
+
C++/CLI 
System.bool Open( 
+&   System.String^ bsPath
+) 
+ +

Parameters

bsPath
+
Path to the file to open
+ +

Return Value

True if the file's format supports file references, false if not
+ + +

Example

See the IEdmRawReferenceMgr examples. +
+ +

Remarks

You must call this method before you call any of the other methods in this interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The file's format does not support file references.
  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~UpdateReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~UpdateReferences.html new file mode 100644 index 0000000..c37efd3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRawReferenceMgr~UpdateReferences.html @@ -0,0 +1,153 @@ + + + + + + UpdateReferences Method (IEdmRawReferenceMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateReferences Method (IEdmRawReferenceMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRawReferenceMgr Interface + : UpdateReferences Method (IEdmRawReferenceMgr)
+ +
+ + + +
+ +
+ + +
+
+
poReferences
+
Array of EdmRawReference structs of the references to update (see Remarks)
+
+ +
+ +
+ + +
+
+ Updates the include paths for the file references. + + +

Syntax

Visual Basic 
Sub UpdateReferences( _
+   ByVal poReferences() As EdmRawReference _
+) 
+
C# 
void UpdateReferences( 
+   EdmRawReference[] poReferences
+)
+
C++/CLI 
void UpdateReferences( 
+&   array<EdmRawReference>^ poReferences
+) 
+ +

Parameters

poReferences
+
Array of EdmRawReference structs of the references to update (see Remarks)
+ +
+ + +

Example

See the IEdmRawReferenceMgr examples. +
+ +

Remarks

Use IEdmRawReferenceMgr::GetReferences to get the array of EdmRawReference structs to pass to this method.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 6.4 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem.html new file mode 100644 index 0000000..a2251df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem.html @@ -0,0 +1,142 @@ + + + + + + IEdmRefItem Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRefItem Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access an item in an IEdmRefItemContainer.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRefItem 
+
C# 
public interface IEdmRefItem 
+
C++/CLI 
public interface class IEdmRefItem 
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2.html new file mode 100644 index 0000000..ab99566 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2.html @@ -0,0 +1,136 @@ + + + + + + IEdmRefItem2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem2 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRefItem2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access an item in an IEdmRefItemContainer. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRefItem2 
+   Inherits IEdmRefItem 
+
C# 
public interface IEdmRefItem2 : IEdmRefItem  
+
C++/CLI 
public interface class IEdmRefItem2 : public IEdmRefItem  
+
+ + + + +

Remarks

This interface extends IEdmRefItem by providing the ability to get the old and new paths of references that have been moved or renamed by another client.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_members.html new file mode 100644 index 0000000..fdc489b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmRefItem2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItem2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRefItem2.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetUpdatedPathsGets the old and new paths of references that have been moved or renamed by another client.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_methods.html new file mode 100644 index 0000000..3262eb6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmRefItem2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItem2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRefItem2 members.

+

Public Methods

+ +
 NameDescription
 MethodGetUpdatedPathsGets the old and new paths of references that have been moved or renamed by another client.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2~GetUpdatedPaths.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2~GetUpdatedPaths.html new file mode 100644 index 0000000..ee43905 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem2~GetUpdatedPaths.html @@ -0,0 +1,152 @@ + + + + + + GetUpdatedPaths Method (IEdmRefItem2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetUpdatedPaths Method (IEdmRefItem2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRefItem2 Interface + : GetUpdatedPaths Method (IEdmRefItem2)
+ +
+ + + +
+ +
+ + +
+
+
ppoUpdatedPathArr
+
Array of EdmUpdatedRefPaths
+
+ +
+ +
+ + +
+
+ Gets the old and new paths of references that have been moved or renamed by another client. + + +

Syntax

Visual Basic 
Sub GetUpdatedPaths( _
+   ByRef ppoUpdatedPathArr() As EdmUpdatedRefPath _
+) 
+
C# 
void GetUpdatedPaths( 
+   out EdmUpdatedRefPath[] ppoUpdatedPathArr
+)
+
C++/CLI 
void GetUpdatedPaths( 
+&   [Out] array<EdmUpdatedRefPath>^ ppoUpdatedPathArr
+) 
+ +

Parameters

ppoUpdatedPathArr
+
Array of EdmUpdatedRefPaths
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer.html new file mode 100644 index 0000000..482d05b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer.html @@ -0,0 +1,140 @@ + + + + + + IEdmRefItemContainer Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItemContainer Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRefItemContainer Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access items in file reference dialogs.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRefItemContainer 
+
C# 
public interface IEdmRefItemContainer 
+
C++/CLI 
public interface class IEdmRefItemContainer 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).  

+

To access this interface, cast an IEdmBatchUnlock object to a pointer to IEdmRefItemContainer, or use QueryInterface in C++.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_members.html new file mode 100644 index 0000000..e642d00 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmRefItemContainer Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItemContainer Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItemContainer Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRefItemContainer.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetItemsGets items from this container.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_methods.html new file mode 100644 index 0000000..015c3e8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmRefItemContainer Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItemContainer Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItemContainer Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRefItemContainer members.

+

Public Methods

+ +
 NameDescription
 MethodGetItemsGets items from this container.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer~GetItems.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer~GetItems.html new file mode 100644 index 0000000..acf602f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItemContainer~GetItems.html @@ -0,0 +1,166 @@ + + + + + + GetItems Method (IEdmRefItemContainer) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetItems Method (IEdmRefItemContainer)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRefItemContainer Interface + : GetItems Method (IEdmRefItemContainer)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of items to get as defined in EdmRefItemType
+
+
+
ppoRetItems
+
Array of IEdmRefItems; one interface for each reference item
+
+ +
+ +
+ + +
+
+ Gets items from this container. + + +

Syntax

Visual Basic 
Sub GetItems( _
+   ByVal eType As EdmRefItemType, _
+   ByRef ppoRetItems() As System.Object _
+) 
+
C# 
void GetItems( 
+   EdmRefItemType eType,
+   out System.object[] ppoRetItems
+)
+
C++/CLI 
void GetItems( 
+&   EdmRefItemType eType,
+&   [Out] System.array<Object^>^ ppoRetItems
+) 
+ +

Parameters

eType
+
Type of items to get as defined in EdmRefItemType
ppoRetItems
+
Array of IEdmRefItems; one interface for each reference item
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_members.html new file mode 100644 index 0000000..9a71bcb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmRefItem Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItem Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRefItem.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetPropertyGets the value of the specified property of this item.  
 MethodGetRefsGets the references of this item.  
 MethodSetPropertyUpdates the specified property of this item.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_methods.html new file mode 100644 index 0000000..a3e6acd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmRefItem Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRefItem Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRefItem Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRefItem members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetPropertyGets the value of the specified property of this item.  
 MethodGetRefsGets the references of this item.  
 MethodSetPropertyUpdates the specified property of this item.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetProperty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetProperty.html new file mode 100644 index 0000000..85e88c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetProperty.html @@ -0,0 +1,163 @@ + + + + + + GetProperty Method (IEdmRefItem) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetProperty Method (IEdmRefItem)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRefItem Interface + : GetProperty Method (IEdmRefItem)
+ +
+ + + +
+ +
+ + +
+
+
eProperty
+
Type of property for which to get a value as defined in EdmRefItemProperty
+
+
+
poValue
+
Property value
+
+ +
+ +
+ + +
+
+ Gets the value of the specified property of this item. + + +

Syntax

Visual Basic 
Function GetProperty( _
+   ByVal eProperty As EdmRefItemProperty, _
+   ByRef poValue As System.Object _
+) As System.Boolean
+
C# 
System.bool GetProperty( 
+   EdmRefItemProperty eProperty,
+   out System.object poValue
+)
+
C++/CLI 
System.bool GetProperty( 
+&   EdmRefItemProperty eProperty,
+&   [Out] System.Object^ poValue
+) 
+ +

Parameters

eProperty
+
Type of property for which to get a value as defined in EdmRefItemProperty
poValue
+
Property value
+ +

Return Value

True if this property can be modified, false if not
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: One of the arguments is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetRefs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetRefs.html new file mode 100644 index 0000000..8693cad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~GetRefs.html @@ -0,0 +1,162 @@ + + + + + + GetRefs Method (IEdmRefItem) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRefs Method (IEdmRefItem)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRefItem Interface + : GetRefs Method (IEdmRefItem)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of reference to get as defined in EdmRefType
+
+
+
ppoRetItems
+
Array of IEdmRefItems; one interface pointer for each item reference
+
+ +
+ +
+ + +
+
+ Gets the references of this item. + + +

Syntax

Visual Basic 
Sub GetRefs( _
+   ByVal eType As EdmRefType, _
+   ByRef ppoRetItems() As System.Object _
+) 
+
C# 
void GetRefs( 
+   EdmRefType eType,
+   out System.object[] ppoRetItems
+)
+
C++/CLI 
void GetRefs( 
+&   EdmRefType eType,
+&   [Out] System.array<Object^>^ ppoRetItems
+) 
+ +

Parameters

eType
+
Type of reference to get as defined in EdmRefType
ppoRetItems
+
Array of IEdmRefItems; one interface pointer for each item reference
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~SetProperty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~SetProperty.html new file mode 100644 index 0000000..03b6a22 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRefItem~SetProperty.html @@ -0,0 +1,167 @@ + + + + + + SetProperty Method (IEdmRefItem) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProperty Method (IEdmRefItem)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRefItem Interface + : SetProperty Method (IEdmRefItem)
+ +
+ + + +
+ +
+ + +
+
+
eProperty
+
Type of property to update as defined in EdmRefItemProperty
+
+
+
oValue
+
New property value
+
+ +
+ +
+ + +
+
+ Updates the specified property of this item. + + +

Syntax

Visual Basic 
Sub SetProperty( _
+   ByVal eProperty As EdmRefItemProperty, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetProperty( 
+   EdmRefItemProperty eProperty,
+   System.object oValue
+)
+
C++/CLI 
void SetProperty( 
+&   EdmRefItemProperty eProperty,
+&   System.Object^ oValue
+) 
+ +

Parameters

eProperty
+
Type of property to update as defined in EdmRefItemProperty
oValue
+
New property value
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: The eProperty argument contains a property that cannot be updated in this container, or oValue does not match the type specified in eProperty.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10.html new file mode 100644 index 0000000..1cd14fb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10.html @@ -0,0 +1,141 @@ + + + + + + IEdmReference10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference10 
+   Inherits IEdmReference5IEdmReference6IEdmReference7IEdmReference8IEdmReference9 
+
C# 
public interface IEdmReference10 : IEdmReference5IEdmReference6IEdmReference7IEdmReference8IEdmReference9  
+
C++/CLI 
public interface class IEdmReference10 : public IEdmReference5IEdmReference6IEdmReference7IEdmReference8IEdmReference9  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • allows you to start an enumeration of child references for a specified project. +
  • inherits from IEdmReference9.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_members.html new file mode 100644 index 0000000..dccc9d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmReference10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference10.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetFirstChildPosition4Starts an enumeration of child references for the specified configuration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_methods.html new file mode 100644 index 0000000..045153b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmReference10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference10 members.

+

Public Methods

+ +
 NameDescription
 MethodGetFirstChildPosition4Starts an enumeration of child references for the specified configuration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10~GetFirstChildPosition4.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10~GetFirstChildPosition4.html new file mode 100644 index 0000000..4b0821a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference10~GetFirstChildPosition4.html @@ -0,0 +1,206 @@ + + + + + + GetFirstChildPosition4 Method (IEdmReference10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstChildPosition4 Method (IEdmReference10)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference10 Interface + : GetFirstChildPosition4 Method (IEdmReference10)
+ +
+ + + +
+ +
+ + +
+
+
pbsProjectName
+
Project name (see Remarks)
+
+
+
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
+
+
+
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
+
+
+
bGetSuppressedComponent
+
True to get a suppressed reference, false to not
+
+
+
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
+
+
+
bsConfiguration
+
Configuration name for which to get child references (see Remarks)
+
+
+
lVersion
+
Version for which to get references; use 0 for latest version
+
+ +
+ +
+ + +
+
+ Starts an enumeration of child references for the specified configuration. + + +

Syntax

Visual Basic 
Function GetFirstChildPosition4( _
+   ByRef pbsProjectName As System.String, _
+   ByVal bIsTopParent As System.Boolean, _
+   ByVal bPermitReadLocal As System.Boolean, _
+   ByVal bGetSuppressedComponent As System.Boolean, _
+   ByVal lEdmRefFlags As System.Integer, _
+   ByVal bsConfiguration As System.String, _
+   Optional ByVal lVersion As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstChildPosition4( 
+   out System.string pbsProjectName,
+   System.bool bIsTopParent,
+   System.bool bPermitReadLocal,
+   System.bool bGetSuppressedComponent,
+   System.int lEdmRefFlags,
+   System.string bsConfiguration,
+   System.int lVersion
+)
+
C++/CLI 
IEdmPos5^ GetFirstChildPosition4( 
+&   [Out] System.String^ pbsProjectName,
+&   System.bool bIsTopParent,
+&   System.bool bPermitReadLocal,
+&   System.bool bGetSuppressedComponent,
+&   System.int lEdmRefFlags,
+&   System.String^ bsConfiguration,
+&   System.int lVersion
+) 
+ +

Parameters

pbsProjectName
+
Project name (see Remarks)
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
bGetSuppressedComponent
+
True to get a suppressed reference, false to not
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
bsConfiguration
+
Configuration name for which to get child references (see Remarks)
lVersion
+
Version for which to get references; use 0 for latest version
+ +

Return Value

Position of the first file referenced by this file (see Remarks)
+ + + + +

Example

+

Remarks

You should maintain and pass in a string, by reference, in this argument for all calls to this method in a reference tree. The project name can be allocated and returned by the topmost node in the tree and is used by its children.

+

IEdmReference6::RefCount and IEdmReference8::RefCountEdited for child references return values for corresponding referenced configurations. If an empty string is passed to bsConfiguration, then the file's common configuration is used.

+

Pass the position returned by this method to IEdmReference5::GetNextChild to continue to enumerate the referenced files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5.html new file mode 100644 index 0000000..18ceb9c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5.html @@ -0,0 +1,147 @@ + + + + + + IEdmReference5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference5 
+
C# 
public interface IEdmReference5 
+
C++/CLI 
public interface class IEdmReference5 
+
+ + + +

Example

+

Remarks

The interface:

+ +

Some file types, such as files from AutoCAD, SOLIDWORKS, Microsoft Word, etc., can contain references to other files. Regardless of file type, you can also set up your own references using SOLIDWORKS PDM Professional's User Defined File References dialog box in file properties. SOLIDWORKS PDM Professional manages all of these references for you and they show up, for example, in the check-in dialog box in the form of a reference tree.

+

Using IEdmReference5, you can enumerate referenced files and referencing files. You can also set up user-defined references using IEdmReference5.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_members.html new file mode 100644 index 0000000..015178e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_members.html @@ -0,0 +1,134 @@ + + + + + + IEdmReference5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference5.

+

Public Properties

+ + + + + + + + + + + + + + +
 NameDescription
 PropertyFileGets the file.  
 PropertyFileIDGets the ID of the file.  
 PropertyFolderGets the file's parent folder.  
 PropertyFolderIDGets the ID of the file's parent folder.  
 PropertyFoundPathGets the file system path where the file was found.  
 PropertyIsLockedGets whether the file is checked out.  
 PropertyLockedByUserGets the the user who checked out the file.  
 PropertyLockedInFolderGets the folder in which the file is checked out.  
 PropertyLockedOnComputerGets the name of the computer on which the file is checked out.  
 PropertyLockPathGets the file's check-out path.  
 PropertyNameGets the name of the file.  
 PropertyReferencedAsGets how the file is included by the referencing file.  
 PropertyVersionLocalGets the local version number of the file.  
 PropertyVersionRefGets the referenced version number of the file.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodGetCustomDataGets data stored with IEdmReference5::SetCustomData in this file reference.  
 MethodGetFirstChildPositionObsolete. Superseded by IEdmReference7::GetFirstChildPosition2.  
 MethodGetFirstParentPositionObsolete. Superseded by IEdmReference7::GetFirstParentPosition2.  
 MethodGetNextChildEnumerates the files referenced by this file.  
 MethodGetNextParentEnumerates the files referencing this file.  
 MethodSetCustomDataStores an arbitrary piece of data in this object.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_methods.html new file mode 100644 index 0000000..a550637 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_methods.html @@ -0,0 +1,111 @@ + + + + + + IEdmReference5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference5 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodGetCustomDataGets data stored with IEdmReference5::SetCustomData in this file reference.  
 MethodGetFirstChildPositionObsolete. Superseded by IEdmReference7::GetFirstChildPosition2.  
 MethodGetFirstParentPositionObsolete. Superseded by IEdmReference7::GetFirstParentPosition2.  
 MethodGetNextChildEnumerates the files referenced by this file.  
 MethodGetNextParentEnumerates the files referencing this file.  
 MethodSetCustomDataStores an arbitrary piece of data in this object.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_properties.html new file mode 100644 index 0000000..9ecec7c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5_properties.html @@ -0,0 +1,123 @@ + + + + + + IEdmReference5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference5 members.

+

Public Properties

+ + + + + + + + + + + + + + +
 NameDescription
 PropertyFileGets the file.  
 PropertyFileIDGets the ID of the file.  
 PropertyFolderGets the file's parent folder.  
 PropertyFolderIDGets the ID of the file's parent folder.  
 PropertyFoundPathGets the file system path where the file was found.  
 PropertyIsLockedGets whether the file is checked out.  
 PropertyLockedByUserGets the the user who checked out the file.  
 PropertyLockedInFolderGets the folder in which the file is checked out.  
 PropertyLockedOnComputerGets the name of the computer on which the file is checked out.  
 PropertyLockPathGets the file's check-out path.  
 PropertyNameGets the name of the file.  
 PropertyReferencedAsGets how the file is included by the referencing file.  
 PropertyVersionLocalGets the local version number of the file.  
 PropertyVersionRefGets the referenced version number of the file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~File.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~File.html new file mode 100644 index 0000000..4be5c16 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~File.html @@ -0,0 +1,147 @@ + + + + + + File Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
File Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : File Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file. + + +

Syntax

Visual Basic 
ReadOnly Property File As IEdmFile5
+
C# 
IEdmFile5 File {get;}
+
C++/CLI 
property IEdmFile5^ File {
+   IEdmFile5^ get();
+}
+ + + +

Property Value

File
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FileID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FileID.html new file mode 100644 index 0000000..2e1bd12 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FileID.html @@ -0,0 +1,147 @@ + + + + + + FileID Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileID Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : FileID Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the file. + + +

Syntax

Visual Basic 
ReadOnly Property FileID As System.Integer
+
C# 
System.int FileID {get;}
+
C++/CLI 
property System.int FileID {
+   System.int get();
+}
+ + + +

Property Value

ID of the file
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Folder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Folder.html new file mode 100644 index 0000000..7e4fe86 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Folder.html @@ -0,0 +1,147 @@ + + + + + + Folder Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Folder Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : Folder Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's parent folder. + + +

Syntax

Visual Basic 
ReadOnly Property Folder As IEdmFolder5
+
C# 
IEdmFolder5 Folder {get;}
+
C++/CLI 
property IEdmFolder5^ Folder {
+   IEdmFolder5^ get();
+}
+ + + +

Property Value

File's parent folder
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FolderID.html new file mode 100644 index 0000000..7917276 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FolderID.html @@ -0,0 +1,147 @@ + + + + + + FolderID Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FolderID Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : FolderID Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the file's parent folder. + + +

Syntax

Visual Basic 
ReadOnly Property FolderID As System.Integer
+
C# 
System.int FolderID {get;}
+
C++/CLI 
property System.int FolderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the file's parent folder
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FoundPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FoundPath.html new file mode 100644 index 0000000..7c04244 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~FoundPath.html @@ -0,0 +1,149 @@ + + + + + + FoundPath Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FoundPath Property (IEdmReference5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : FoundPath Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file system path where the file was found. + + +

Syntax

Visual Basic 
ReadOnly Property FoundPath As System.String
+
C# 
System.string FoundPath {get;}
+
C++/CLI 
property System.String^ FoundPath {
+   System.String^ get();
+}
+ + + +

Property Value

File system path where the file was found
+ + + + +

Example

+ + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetCustomData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetCustomData.html new file mode 100644 index 0000000..f76ed17 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetCustomData.html @@ -0,0 +1,164 @@ + + + + + + GetCustomData Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCustomData Method (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : GetCustomData Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
lDataID
+
User-defined ID of data to get
+
+
+
poData
+
Buffer in which to return data
+
+ +
+ +
+ + +
+
+ Gets data stored with IEdmReference5::SetCustomData in this file reference. + + +

Syntax

Visual Basic 
Function GetCustomData( _
+   ByVal lDataID As System.Integer, _
+   ByRef poData As System.Object _
+) As System.Boolean
+
C# 
System.bool GetCustomData( 
+   System.int lDataID,
+   out System.object poData
+)
+
C++/CLI 
System.bool GetCustomData( 
+&   System.int lDataID,
+&   [Out] System.Object^ poData
+) 
+ +

Parameters

lDataID
+
User-defined ID of data to get
poData
+
Buffer in which to return data
+ +

Return Value

True if the data was found, false if not
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The data was not found (pbFoundlt returned false).
  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstChildPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstChildPosition.html new file mode 100644 index 0000000..1706c34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstChildPosition.html @@ -0,0 +1,179 @@ + + + + + + GetFirstChildPosition Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstChildPosition Method (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : GetFirstChildPosition Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
pbsProjectName
+
Project name (see Remarks
+
+
+
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
+
+
+
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
+
+
+
lVersion
+
Version for which to get references; use 0 for latest version
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmReference7::GetFirstChildPosition2. + + +

Syntax

Visual Basic 
Function GetFirstChildPosition( _
+   ByRef pbsProjectName As System.String, _
+   ByVal bIsTopParent As System.Boolean, _
+   ByVal bPermitReadLocal As System.Boolean, _
+   Optional ByVal lVersion As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstChildPosition( 
+   out System.string pbsProjectName,
+   System.bool bIsTopParent,
+   System.bool bPermitReadLocal,
+   System.int lVersion
+)
+
C++/CLI 
IEdmPos5^ GetFirstChildPosition( 
+&   [Out] System.String^ pbsProjectName,
+&   System.bool bIsTopParent,
+&   System.bool bPermitReadLocal,
+&   System.int lVersion
+) 
+ +

Parameters

pbsProjectName
+
Project name (see Remarks
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
lVersion
+
Version for which to get references; use 0 for latest version
+ +

Return Value

Position of the first file referenced by this file (see Remarks)
+ + + + + +

Remarks

You should maintain and pass in a string, by reference, in this argument for all calls to this method in a reference tree. The project name can be allocated and returned by the topmost node in the tree and is used by its children.

+

Pass the position to IEdmReference5::GetNextChild to enumerate the referenced files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstParentPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstParentPosition.html new file mode 100644 index 0000000..1d47f6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetFirstParentPosition.html @@ -0,0 +1,162 @@ + + + + + + GetFirstParentPosition Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstParentPosition Method (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : GetFirstParentPosition Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
lVersionOrZero
+
Non-zero value enumerates the files referencing the specified version of the file; argument is ignored if value is 0
+
+
+
bGetAllParentVersions
+
True to return all versions, of all parents, referencing this file; false to return on the latest referencing version
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmReference7::GetFirstParentPosition2. + + +

Syntax

Visual Basic 
Function GetFirstParentPosition( _
+   ByVal lVersionOrZero As System.Integer, _
+   ByVal bGetAllParentVersions As System.Boolean _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstParentPosition( 
+   System.int lVersionOrZero,
+   System.bool bGetAllParentVersions
+)
+
C++/CLI 
IEdmPos5^ GetFirstParentPosition( 
+&   System.int lVersionOrZero,
+&   System.bool bGetAllParentVersions
+) 
+ +

Parameters

lVersionOrZero
+
Non-zero value enumerates the files referencing the specified version of the file; argument is ignored if value is 0
bGetAllParentVersions
+
True to return all versions, of all parents, referencing this file; false to return on the latest referencing version
+ +

Return Value

Position of first file referencing this file
+ + + + + +

Remarks

Pass the position to IEdmReference6::GetNextParent to continue to enumerate all of the parent files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextChild.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextChild.html new file mode 100644 index 0000000..f8df491 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextChild.html @@ -0,0 +1,156 @@ + + + + + + GetNextChild Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextChild Method (IEdmReference5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : GetNextChild Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
Position of next child file to get
+
+ +
+ +
+ + +
+
+ Enumerates the files referenced by this file. + + +

Syntax

Visual Basic 
Function GetNextChild( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmReference5
+
C# 
IEdmReference5 GetNextChild( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmReference5^ GetNextChild( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
Position of next child file to get
+ +

Return Value

Child file
+ + + + +

Example

+

Remarks

Call IEdmReference5::GetFirstChildPosition to get the position of the first referenced child file, before you call IEdmReference5::GetNextChild for the first time.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the referenced child files.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextParent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextParent.html new file mode 100644 index 0000000..9a71e3d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~GetNextParent.html @@ -0,0 +1,156 @@ + + + + + + GetNextParent Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextParent Method (IEdmReference5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : GetNextParent Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
Position of the next parent file to get
+
+ +
+ +
+ + +
+
+ Enumerates the files referencing this file. + + +

Syntax

Visual Basic 
Function GetNextParent( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmReference5
+
C# 
IEdmReference5 GetNextParent( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmReference5^ GetNextParent( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
Position of the next parent file to get
+ +

Return Value

Parent file
+ + + + +

Example

+

Remarks

Call IEdmReference7::GetFirstParentPosition2 to get the position of the first referenced parent file, before you call this method the first time.

+

After calling this method the first time, poPos is automatically incremented every time this method is called. Call this method repeatedly to obtain the rest of the referenced parent files.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~IsLocked.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~IsLocked.html new file mode 100644 index 0000000..f9a020f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~IsLocked.html @@ -0,0 +1,147 @@ + + + + + + IsLocked Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsLocked Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : IsLocked Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property IsLocked As System.Boolean
+
C# 
System.bool IsLocked {get;}
+
C++/CLI 
property System.bool IsLocked {
+   System.bool get();
+}
+ + + +

Property Value

True if the file is checked out, false if not
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockPath.html new file mode 100644 index 0000000..5462005 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockPath.html @@ -0,0 +1,147 @@ + + + + + + LockPath Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockPath Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : LockPath Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's check-out path. + + +

Syntax

Visual Basic 
ReadOnly Property LockPath As System.String
+
C# 
System.string LockPath {get;}
+
C++/CLI 
property System.String^ LockPath {
+   System.String^ get();
+}
+ + + +
+ + + + + +

Remarks

The retrun value is empty if the file is not checked out.
+ + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedByUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedByUser.html new file mode 100644 index 0000000..451bc5b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedByUser.html @@ -0,0 +1,147 @@ + + + + + + LockedByUser Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedByUser Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : LockedByUser Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the the user who checked out the file. + + +

Syntax

Visual Basic 
ReadOnly Property LockedByUser As IEdmUser5
+
C# 
IEdmUser5 LockedByUser {get;}
+
C++/CLI 
property IEdmUser5^ LockedByUser {
+   IEdmUser5^ get();
+}
+ + + +

Property Value

User who checked out the file
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedInFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedInFolder.html new file mode 100644 index 0000000..32c5196 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedInFolder.html @@ -0,0 +1,147 @@ + + + + + + LockedInFolder Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedInFolder Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : LockedInFolder Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the folder in which the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedInFolder As IEdmFolder5
+
C# 
IEdmFolder5 LockedInFolder {get;}
+
C++/CLI 
property IEdmFolder5^ LockedInFolder {
+   IEdmFolder5^ get();
+}
+ + + +

Property Value

Folder in which the file is checked out
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedOnComputer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedOnComputer.html new file mode 100644 index 0000000..b9c2c08 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~LockedOnComputer.html @@ -0,0 +1,147 @@ + + + + + + LockedOnComputer Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedOnComputer Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : LockedOnComputer Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the computer on which the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedOnComputer As System.String
+
C# 
System.string LockedOnComputer {get;}
+
C++/CLI 
property System.String^ LockedOnComputer {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the computer on which the file is checked out
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Name.html new file mode 100644 index 0000000..5fa46d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~Name.html @@ -0,0 +1,147 @@ + + + + + + Name Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : Name Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the file. + + +

Syntax

Visual Basic 
ReadOnly Property Name As System.String
+
C# 
System.string Name {get;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the file
+ + + + + +

Remarks

The return value does not include the directory path.
+ + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~ReferencedAs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~ReferencedAs.html new file mode 100644 index 0000000..b7dbb71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~ReferencedAs.html @@ -0,0 +1,147 @@ + + + + + + ReferencedAs Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ReferencedAs Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : ReferencedAs Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets how the file is included by the referencing file. + + +

Syntax

Visual Basic 
ReadOnly Property ReferencedAs As System.String
+
C# 
System.string ReferencedAs {get;}
+
C++/CLI 
property System.String^ ReferencedAs {
+   System.String^ get();
+}
+ + + +

Property Value

How the file is included by the referencing file
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~SetCustomData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~SetCustomData.html new file mode 100644 index 0000000..96bd1ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~SetCustomData.html @@ -0,0 +1,161 @@ + + + + + + SetCustomData Method (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetCustomData Method (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : SetCustomData Method (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+
lDataID
+
User-defined ID of data to store
+
+
+
poData
+
Data to store
+
+ +
+ +
+ + +
+
+ Stores an arbitrary piece of data in this object. + + +

Syntax

Visual Basic 
Sub SetCustomData( _
+   ByVal lDataID As System.Integer, _
+   ByRef poData As System.Object _
+) 
+
C# 
void SetCustomData( 
+   System.int lDataID,
+   ref System.object poData
+)
+
C++/CLI 
void SetCustomData( 
+&   System.int lDataID,
+&   System.Object^% poData
+) 
+ +

Parameters

lDataID
+
User-defined ID of data to store
poData
+
Data to store
+ +
+ + + + + +

Remarks

The data is only stored in memory and is kept as long as IEdmReference5 is add-referenced. You can get the stored data by calling IEdmReference5::GetCustomData.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionLocal.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionLocal.html new file mode 100644 index 0000000..5d351c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionLocal.html @@ -0,0 +1,148 @@ + + + + + + VersionLocal Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionLocal Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : VersionLocal Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the local version number of the file. + + +

Syntax

Visual Basic 
ReadOnly Property VersionLocal As System.Integer
+
C# 
System.int VersionLocal {get;}
+
C++/CLI 
property System.int VersionLocal {
+   System.int get();
+}
+ + + +

Property Value

Local version number of the file
+ + + + + + + + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionRef.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionRef.html new file mode 100644 index 0000000..41fc6b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference5~VersionRef.html @@ -0,0 +1,147 @@ + + + + + + VersionRef Property (IEdmReference5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionRef Property (IEdmReference5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference5 Interface + : VersionRef Property (IEdmReference5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the referenced version number of the file. + + +

Syntax

Visual Basic 
ReadOnly Property VersionRef As System.Integer
+
C# 
System.int VersionRef {get;}
+
C++/CLI 
property System.int VersionRef {
+   System.int get();
+}
+ + + +

Property Value

Referenced version number of the file
+ + + + + +

Remarks

The referenced version number is also known as the attached version.
+ + +

See Also

+

Availability

Version 5.2 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6.html new file mode 100644 index 0000000..c3be456 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6.html @@ -0,0 +1,143 @@ + + + + + + IEdmReference6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference6 
+   Inherits IEdmReference5 
+
C# 
public interface IEdmReference6 : IEdmReference5  
+
C++/CLI 
public interface class IEdmReference6 : public IEdmReference5  
+
+ + + + +

Remarks

The interface:

+ +

Some file types, such as files from AutoCAD, SOLIDWORKS, Microsoft Word, etc., can contain references to other files. Regardless of file type, you can also set up your own references using SOLIDWORKS PDM Professional's User Defined File References dialog box in file properties. SOLIDWORKS PDM Professional manages all of these references for you and they show up, for example, in the check-in dialog box in the form of a reference tree.

+

Using IEdmReference5, you can enumerate referenced files and referencing files. You can also set up user-defined references using IEdmReference5.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_members.html new file mode 100644 index 0000000..4c3c5b7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmReference6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference6.

+

Public Properties

+ +
 NameDescription
 PropertyRefCountGets the number of times the referenced file is included by the referencing file.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_properties.html new file mode 100644 index 0000000..0dc43f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmReference6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference6 members.

+

Public Properties

+ +
 NameDescription
 PropertyRefCountGets the number of times the referenced file is included by the referencing file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6~RefCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6~RefCount.html new file mode 100644 index 0000000..c4c3913 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference6~RefCount.html @@ -0,0 +1,148 @@ + + + + + + RefCount Property (IEdmReference6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefCount Property (IEdmReference6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference6 Interface + : RefCount Property (IEdmReference6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of times the referenced file is included by the referencing file. + + +

Syntax

Visual Basic 
ReadOnly Property RefCount As System.Integer
+
C# 
System.int RefCount {get;}
+
C++/CLI 
property System.int RefCount {
+   System.int get();
+}
+ + + +

Property Value

Number of times the referenced file is included by the referencing file (see Remarks)
+ + + + + +

Remarks

This property is 0 if the file format does not allow SOLIDWORKS PDM Professional to access the information.
+ + +

See Also

+

Availability

Version 6.0 of SOLIDWORKS PDM Professional
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7.html new file mode 100644 index 0000000..cc04978 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7.html @@ -0,0 +1,144 @@ + + + + + + IEdmReference7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference7 
+   Inherits IEdmReference5IEdmReference6 
+
C# 
public interface IEdmReference7 : IEdmReference5IEdmReference6  
+
C++/CLI 
public interface class IEdmReference7 : public IEdmReference5IEdmReference6  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • provides more control over which children or parent files to enumerate than earlier versions of this interface. +
  • inherits from IEdmReference6. +
  • is extended by IEdmReference8.  
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_members.html new file mode 100644 index 0000000..987edba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmReference7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference7 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference7.

+

Public Properties

+ +
 NameDescription
 PropertyEdmRefFlagsGets the types of references.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetFirstChildPosition2Obsolete. Superseded by IEdmReference9::GetFirstChildPosition3.  
 MethodGetFirstParentPosition2Starts an enumeration of parent references.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_methods.html new file mode 100644 index 0000000..fa36b95 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmReference7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference7 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFirstChildPosition2Obsolete. Superseded by IEdmReference9::GetFirstChildPosition3.  
 MethodGetFirstParentPosition2Starts an enumeration of parent references.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_properties.html new file mode 100644 index 0000000..8fd9855 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmReference7 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference7 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference7 members.

+

Public Properties

+ +
 NameDescription
 PropertyEdmRefFlagsGets the types of references.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~EdmRefFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~EdmRefFlags.html new file mode 100644 index 0000000..fee463e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~EdmRefFlags.html @@ -0,0 +1,147 @@ + + + + + + EdmRefFlags Property (IEdmReference7) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EdmRefFlags Property (IEdmReference7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference7 Interface + : EdmRefFlags Property (IEdmReference7)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the types of references. + + +

Syntax

Visual Basic 
ReadOnly Property EdmRefFlags As System.Integer
+
C# 
System.int EdmRefFlags {get;}
+
C++/CLI 
property System.int EdmRefFlags {
+   System.int get();
+}
+ + + +

Property Value

Types of references as defined in EdmRefFlags
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstChildPosition2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstChildPosition2.html new file mode 100644 index 0000000..2230cd1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstChildPosition2.html @@ -0,0 +1,187 @@ + + + + + + GetFirstChildPosition2 Method (IEdmReference7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstChildPosition2 Method (IEdmReference7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference7 Interface + : GetFirstChildPosition2 Method (IEdmReference7)
+ +
+ + + +
+ +
+ + +
+
+
pbsProjectName
+
Project name (see Remarks)
+
+
+
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
+
+
+
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
+
+
+
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
+
+
+
lVersion
+
Version for which to get references; use 0 for latest version
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmReference9::GetFirstChildPosition3. + + +

Syntax

Visual Basic 
Function GetFirstChildPosition2( _
+   ByRef pbsProjectName As System.String, _
+   ByVal bIsTopParent As System.Boolean, _
+   ByVal bPermitReadLocal As System.Boolean, _
+   ByVal lEdmRefFlags As System.Integer, _
+   Optional ByVal lVersion As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstChildPosition2( 
+   out System.string pbsProjectName,
+   System.bool bIsTopParent,
+   System.bool bPermitReadLocal,
+   System.int lEdmRefFlags,
+   System.int lVersion
+)
+
C++/CLI 
IEdmPos5^ GetFirstChildPosition2( 
+&   [Out] System.String^ pbsProjectName,
+&   System.bool bIsTopParent,
+&   System.bool bPermitReadLocal,
+&   System.int lEdmRefFlags,
+&   System.int lVersion
+) 
+ +

Parameters

pbsProjectName
+
Project name (see Remarks)
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
lVersion
+
Version for which to get references; use 0 for latest version
+ +

Return Value

Position of the first file referenced by this file (see Remarks)
+ + + + + +

Remarks

You should maintain and pass in a string, by reference, in this argument for all calls to this method in a reference tree. The project name can be allocated and returned by the topmost node in the tree and is used by its children.

+

Pass the position returned by this method to IEdmReference5::GetNextChild to continue to enumerate the referenced files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstParentPosition2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstParentPosition2.html new file mode 100644 index 0000000..a1cac01 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference7~GetFirstParentPosition2.html @@ -0,0 +1,170 @@ + + + + + + GetFirstParentPosition2 Method (IEdmReference7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstParentPosition2 Method (IEdmReference7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference7 Interface + : GetFirstParentPosition2 Method (IEdmReference7)
+ +
+ + + +
+ +
+ + +
+
+
lVersionOrZero
+
Non-0 value enumerates the files referencing the specified version of the file; argument is ignored if value is 0
+
+
+
bGetAllParentVersions
+
True to return all versions, of all parents, referencing this file; false to return on the latest referencing version
+
+
+
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
+
+ +
+ +
+ + +
+
+ Starts an enumeration of parent references. + + +

Syntax

Visual Basic 
Function GetFirstParentPosition2( _
+   ByVal lVersionOrZero As System.Integer, _
+   ByVal bGetAllParentVersions As System.Boolean, _
+   ByVal lEdmRefFlags As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstParentPosition2( 
+   System.int lVersionOrZero,
+   System.bool bGetAllParentVersions,
+   System.int lEdmRefFlags
+)
+
C++/CLI 
IEdmPos5^ GetFirstParentPosition2( 
+&   System.int lVersionOrZero,
+&   System.bool bGetAllParentVersions,
+&   System.int lEdmRefFlags
+) 
+ +

Parameters

lVersionOrZero
+
Non-0 value enumerates the files referencing the specified version of the file; argument is ignored if value is 0
bGetAllParentVersions
+
True to return all versions, of all parents, referencing this file; false to return on the latest referencing version
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
+ +

Return Value

Position of first file referencing this file
+ + +

Example

See the IEdmReference7 examples. +
+ +

Remarks

Pass the position to IEdmReference5::GetNextParent to continue to enumerate all of the parent files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8.html new file mode 100644 index 0000000..ba04bff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8.html @@ -0,0 +1,141 @@ + + + + + + IEdmReference8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference8 
+   Inherits IEdmReference5IEdmReference6IEdmReference7 
+
C# 
public interface IEdmReference8 : IEdmReference5IEdmReference6IEdmReference7  
+
C++/CLI 
public interface class IEdmReference8 : public IEdmReference5IEdmReference6IEdmReference7  
+
+ + + + +

Remarks

This interface:

+
    +
  • allows you to read and update the reference count used in bills of materials. +
  • inherits from IEdmReference7. +
  • is extended by IEdmReference9.
+

 

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_members.html new file mode 100644 index 0000000..fa4927f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmReference8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference8 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference8.

+

Public Properties

+ +
 NameDescription
 PropertyRefCountEditedGets or sets the reference count used in bills of materials.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_properties.html new file mode 100644 index 0000000..09ce820 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmReference8 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference8 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference8 members.

+

Public Properties

+ +
 NameDescription
 PropertyRefCountEditedGets or sets the reference count used in bills of materials.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8~RefCountEdited.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8~RefCountEdited.html new file mode 100644 index 0000000..d18890b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference8~RefCountEdited.html @@ -0,0 +1,149 @@ + + + + + + RefCountEdited Property (IEdmReference8) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefCountEdited Property (IEdmReference8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference8 Interface + : RefCountEdited Property (IEdmReference8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the reference count used in bills of materials. + + +

Syntax

Visual Basic 
Property RefCountEdited As System.Integer
+
C# 
System.int RefCountEdited {get; set;}
+
C++/CLI 
property System.int RefCountEdited {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Reference count used in bills of materials
+ + + + + +

Remarks

A value of -1 is returned if the reference count has not been edited.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9.html new file mode 100644 index 0000000..59fe9d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9.html @@ -0,0 +1,140 @@ + + + + + + IEdmReference9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference9 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmReference9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to enumerate referenced and referencing files and set up user-defined references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmReference9 
+   Inherits IEdmReference5IEdmReference6IEdmReference7IEdmReference8 
+
C# 
public interface IEdmReference9 : IEdmReference5IEdmReference6IEdmReference7IEdmReference8  
+
C++/CLI 
public interface class IEdmReference9 : public IEdmReference5IEdmReference6IEdmReference7IEdmReference8  
+
+ + + + +

Remarks

This interface:

+
    +
  • allows you to get the name of this reference's configuration and start an enumeration of child references for a specified project. +
  • inherits from IEdmReference8. +
  • is extended by IEdmReference10.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_members.html new file mode 100644 index 0000000..e71a79b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmReference9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference9 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmReference9.

+

Public Properties

+ +
 NameDescription
 PropertyRefConfigurationGets the name of this reference's configuration.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodGetFirstChildPosition3Obsolete. Superseded by IEdmReference10::GetFirstChildPosition4.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_methods.html new file mode 100644 index 0000000..dd02e09 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmReference9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference9 members.

+

Public Methods

+ +
 NameDescription
 MethodGetFirstChildPosition3Obsolete. Superseded by IEdmReference10::GetFirstChildPosition4.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_properties.html new file mode 100644 index 0000000..27677da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmReference9 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmReference9 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmReference9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmReference9 members.

+

Public Properties

+ +
 NameDescription
 PropertyRefConfigurationGets the name of this reference's configuration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~GetFirstChildPosition3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~GetFirstChildPosition3.html new file mode 100644 index 0000000..c8aa0b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~GetFirstChildPosition3.html @@ -0,0 +1,196 @@ + + + + + + GetFirstChildPosition3 Method (IEdmReference9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstChildPosition3 Method (IEdmReference9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference9 Interface + : GetFirstChildPosition3 Method (IEdmReference9)
+ +
+ + + +
+ +
+ + +
+
+
pbsProjectName
+
Project name (see Remarks)
+
+
+
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
+
+
+
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
+
+
+
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
+
+
+
bsConfiguration
+
Configuration name for which to get child references (see Remarks)
+
+
+
lVersion
+
Version for which to get references; use 0 for latest version
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmReference10::GetFirstChildPosition4. + + +

Syntax

Visual Basic 
Function GetFirstChildPosition3( _
+   ByRef pbsProjectName As System.String, _
+   ByVal bIsTopParent As System.Boolean, _
+   ByVal bPermitReadLocal As System.Boolean, _
+   ByVal lEdmRefFlags As System.Integer, _
+   ByVal bsConfiguration As System.String, _
+   Optional ByVal lVersion As System.Integer _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstChildPosition3( 
+   out System.string pbsProjectName,
+   System.bool bIsTopParent,
+   System.bool bPermitReadLocal,
+   System.int lEdmRefFlags,
+   System.string bsConfiguration,
+   System.int lVersion
+)
+
C++/CLI 
IEdmPos5^ GetFirstChildPosition3( 
+&   [Out] System.String^ pbsProjectName,
+&   System.bool bIsTopParent,
+&   System.bool bPermitReadLocal,
+&   System.int lEdmRefFlags,
+&   System.String^ bsConfiguration,
+&   System.int lVersion
+) 
+ +

Parameters

pbsProjectName
+
Project name (see Remarks)
bIsTopParent
+
True if this is the topmost node in the reference tree, false if not
bPermitReadLocal
+
True to allow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database, false to disallow SOLIDWORKS PDM Professional to read reference information if it is not already present in the database
lEdmRefFlags
+
Types of references that you want enumerated as defined in EdmRefFlags
bsConfiguration
+
Configuration name for which to get child references (see Remarks)
lVersion
+
Version for which to get references; use 0 for latest version
+ +

Return Value

Position of the first file referenced by this file (see Remarks)
+ + + + + +

Remarks

You should maintain and pass in a string, by reference, in this argument for all calls to this method in a reference tree. The project name can be allocated and returned by the topmost node in the tree and is used by its children.

+

IEdmReference6::RefCount and IEdmReference8::RefCountEdited for child references return values for corresponding referenced configurations. If an empty string is passed to bsConfiguration, then the file's common configuration is used.

+

Pass the position returned by this method to IEdmReference5::GetNextChild to continue to enumerate the referenced files.

+

C++ programmers not using smart-pointer wrapper functions must release the position.

+

Return code S_OK indicates that the method successfully executed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~RefConfiguration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~RefConfiguration.html new file mode 100644 index 0000000..825e5b2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmReference9~RefConfiguration.html @@ -0,0 +1,147 @@ + + + + + + RefConfiguration Property (IEdmReference9) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefConfiguration Property (IEdmReference9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmReference9 Interface + : RefConfiguration Property (IEdmReference9)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this reference's configuration. + + +

Syntax

Visual Basic 
ReadOnly Property RefConfiguration As System.String
+
C# 
System.string RefConfiguration {get;}
+
C++/CLI 
property System.String^ RefConfiguration {
+   System.String^ get();
+}
+ + + +

Property Value

Name of this reference's configuration
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011 SP3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5.html new file mode 100644 index 0000000..862cfa3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5.html @@ -0,0 +1,141 @@ + + + + + + IEdmRevision5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevision5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single revision of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevision5 
+
C# 
public interface IEdmRevision5 
+
C++/CLI 
public interface class IEdmRevision5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_members.html new file mode 100644 index 0000000..4baccae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_members.html @@ -0,0 +1,119 @@ + + + + + + IEdmRevision5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevision5.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyNameGets the name of this revision.  
 PropertyTimeGets the creation date and time of this revision.  
 PropertyUserGets the user who created this revision.  
 PropertyUserIDGets the ID of the user who created this revision.  
 PropertyVersionGets the version on which this revision is set.  
 PropertyVersionNoGets the version number of the version on which this revision is set.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetFileCopyGets a copy of this revision of the file from the archive and places it in the specified folder on the client machine.  
 MethodRollbackObsolete. Superseded by IEdmRevision6::Rollback2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_methods.html new file mode 100644 index 0000000..1fde38d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmRevision5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevision5 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFileCopyGets a copy of this revision of the file from the archive and places it in the specified folder on the client machine.  
 MethodRollbackObsolete. Superseded by IEdmRevision6::Rollback2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_properties.html new file mode 100644 index 0000000..262a398 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmRevision5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevision5 members.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyNameGets the name of this revision.  
 PropertyTimeGets the creation date and time of this revision.  
 PropertyUserGets the user who created this revision.  
 PropertyUserIDGets the ID of the user who created this revision.  
 PropertyVersionGets the version on which this revision is set.  
 PropertyVersionNoGets the version number of the version on which this revision is set.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~GetFileCopy.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~GetFileCopy.html new file mode 100644 index 0000000..6fa032c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~GetFileCopy.html @@ -0,0 +1,182 @@ + + + + + + GetFileCopy Method (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileCopy Method (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : GetFileCopy Method (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
poPathOrFolderID
+
Path or ID of the folder where to place the file; default copies the file to all of the folders to which it is shared (see Remarks)
+
+
+
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
+
+
+
bsNewName
+
Optional new name of the file copy; "" to use the file's current name
+
+ +
+ +
+ + +
+
+ Gets a copy of this revision of the file from the archive and places it in the specified folder on the client machine. + + +

Syntax

Visual Basic 
Sub GetFileCopy( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByRef poPathOrFolderID As System.Object, _
+   Optional ByVal lEdmGetFlags As System.Integer, _
+   Optional ByVal bsNewName As System.String _
+) 
+
C# 
void GetFileCopy( 
+   System.int lParentWnd,
+   ref System.object poPathOrFolderID,
+   System.int lEdmGetFlags,
+   System.string bsNewName
+)
+
C++/CLI 
void GetFileCopy( 
+&   System.int lParentWnd,
+&   System.Object^% poPathOrFolderID,
+&   System.int lEdmGetFlags,
+&   System.String^ bsNewName
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
poPathOrFolderID
+
Path or ID of the folder where to place the file; default copies the file to all of the folders to which it is shared (see Remarks)
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
bsNewName
+
Optional new name of the file copy; "" to use the file's current name
+ +
+ + + + + +

Remarks

If you specify a path for poPathOrFolderID, you can either give a file path or a folder path. Folder paths must be terminated by a backslash ('\').

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: The file was not found in the vault.  +
  • E_EDM_PERMISSION_DENIED: The user is not permitted to see the specified version of the file. +
  • E_EDM_INVALID_REVISION_NUMBER: The revision was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Name.html new file mode 100644 index 0000000..124a163 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Name.html @@ -0,0 +1,149 @@ + + + + + + Name Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmRevision5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : Name Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this revision. + + +

Syntax

Visual Basic 
ReadOnly Property Name As System.String
+
C# 
System.string Name {get;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Revision name
+ + + + +

Example

+ + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Rollback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Rollback.html new file mode 100644 index 0000000..9fedb31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Rollback.html @@ -0,0 +1,144 @@ + + + + + + Rollback Method (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback Method (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : Rollback Method (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmRevision6::Rollback2. + + +

Syntax

Visual Basic 
Sub Rollback() 
+
C# 
void Rollback()
+
C++/CLI 
void Rollback(); 
+ + + +
+ + + + + +

Remarks

This method destroys all versions after this revision number. To undo this rollback operation, you need to restore a backup of the entire database and file archives.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Time.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Time.html new file mode 100644 index 0000000..f7ffed5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Time.html @@ -0,0 +1,147 @@ + + + + + + Time Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Time Property (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : Time Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the creation date and time of this revision. + + +

Syntax

Visual Basic 
ReadOnly Property Time As System.Object
+
C# 
System.object Time {get;}
+
C++/CLI 
property System.Object^ Time {
+   System.Object^ get();
+}
+ + + +

Property Value

Creation date and time
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~User.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~User.html new file mode 100644 index 0000000..92bcfe3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~User.html @@ -0,0 +1,147 @@ + + + + + + User Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
User Property (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : User Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the user who created this revision. + + +

Syntax

Visual Basic 
ReadOnly Property User As IEdmUser5
+
C# 
IEdmUser5 User {get;}
+
C++/CLI 
property IEdmUser5^ User {
+   IEdmUser5^ get();
+}
+ + + +

Property Value

IEdmUser5
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~UserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~UserID.html new file mode 100644 index 0000000..57f3158 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~UserID.html @@ -0,0 +1,147 @@ + + + + + + UserID Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserID Property (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : UserID Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who created this revision. + + +

Syntax

Visual Basic 
ReadOnly Property UserID As System.Integer
+
C# 
System.int UserID {get;}
+
C++/CLI 
property System.int UserID {
+   System.int get();
+}
+ + + +

Property Value

ID of the user who created this revision
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Version.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Version.html new file mode 100644 index 0000000..d0aebd7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~Version.html @@ -0,0 +1,147 @@ + + + + + + Version Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Version Property (IEdmRevision5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : Version Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the version on which this revision is set. + + +

Syntax

Visual Basic 
ReadOnly Property Version As IEdmVersion5
+
C# 
IEdmVersion5 Version {get;}
+
C++/CLI 
property IEdmVersion5^ Version {
+   IEdmVersion5^ get();
+}
+ + + +

Property Value

IEdmVersion5
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~VersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~VersionNo.html new file mode 100644 index 0000000..d9ed153 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision5~VersionNo.html @@ -0,0 +1,149 @@ + + + + + + VersionNo Property (IEdmRevision5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionNo Property (IEdmRevision5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision5 Interface + : VersionNo Property (IEdmRevision5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the version number of the version on which this revision is set. + + +

Syntax

Visual Basic 
ReadOnly Property VersionNo As System.Integer
+
C# 
System.int VersionNo {get;}
+
C++/CLI 
property System.int VersionNo {
+   System.int get();
+}
+ + + +

Property Value

Version number
+ + + + +

Example

+ + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6.html new file mode 100644 index 0000000..3064b2b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6.html @@ -0,0 +1,140 @@ + + + + + + IEdmRevision6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevision6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single revision of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevision6 
+   Inherits IEdmRevision5 
+
C# 
public interface IEdmRevision6 : IEdmRevision5  
+
C++/CLI 
public interface class IEdmRevision6 : public IEdmRevision5  
+
+ + + + +

Remarks

This interface:

+ +

 

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_members.html new file mode 100644 index 0000000..1c90174 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmRevision6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevision6.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmRevision7::Rollback3.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_methods.html new file mode 100644 index 0000000..d04525b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmRevision6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevision6 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmRevision7::Rollback3.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6~Rollback2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6~Rollback2.html new file mode 100644 index 0000000..1442d15 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision6~Rollback2.html @@ -0,0 +1,158 @@ + + + + + + Rollback2 Method (IEdmRevision6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback2 Method (IEdmRevision6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision6 Interface + : Rollback2 Method (IEdmRevision6)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment for this revision
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmRevision7::Rollback3. + + +

Syntax

Visual Basic 
Sub Rollback2( _
+   ByVal bsComment As System.String _
+) 
+
C# 
void Rollback2( 
+   System.string bsComment
+)
+
C++/CLI 
void Rollback2( 
+&   System.String^ bsComment
+) 
+ +

Parameters

bsComment
+
Comment for this revision
+ +
+ + + + + +

Remarks

This method destroys all versions after this revision number. To undo this rollback operation, you need to restore a backup of the entire database and file archives.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7.html new file mode 100644 index 0000000..5f7baa9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7.html @@ -0,0 +1,138 @@ + + + + + + IEdmRevision7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevision7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single revision of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevision7 
+   Inherits IEdmRevision5IEdmRevision6 
+
C# 
public interface IEdmRevision7 : IEdmRevision5IEdmRevision6  
+
C++/CLI 
public interface class IEdmRevision7 : public IEdmRevision5IEdmRevision6  
+
+ + + +

Example

+

Remarks

This interface extends IEdmRevision6.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_members.html new file mode 100644 index 0000000..9da26b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmRevision7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevision7.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback3Rolls this file back to the version of this revision.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_methods.html new file mode 100644 index 0000000..0a69a4b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmRevision7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevision7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevision7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevision7 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback3Rolls this file back to the version of this revision.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7~Rollback3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7~Rollback3.html new file mode 100644 index 0000000..8ef8df0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevision7~Rollback3.html @@ -0,0 +1,168 @@ + + + + + + Rollback3 Method (IEdmRevision7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback3 Method (IEdmRevision7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevision7 Interface + : Rollback3 Method (IEdmRevision7)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment for this revision
+
+
+
vbRedirectParentRefs
+
True to roll back the file with its parent references, false to roll back the file without its parent references
+
+ +
+ +
+ + +
+
+ Rolls this file back to the version of this revision. + + +

Syntax

Visual Basic 
Sub Rollback3( _
+   ByVal bsComment As System.String, _
+   ByVal vbRedirectParentRefs As System.Boolean _
+) 
+
C# 
void Rollback3( 
+   System.string bsComment,
+   System.bool vbRedirectParentRefs
+)
+
C++/CLI 
void Rollback3( 
+&   System.String^ bsComment,
+&   System.bool vbRedirectParentRefs
+) 
+ +

Parameters

bsComment
+
Comment for this revision
vbRedirectParentRefs
+
True to roll back the file with its parent references, false to roll back the file without its parent references
+ +
+ + + + +

Example

+

Remarks

This method destroys all versions after this revision number. To undo this rollback operation, you need to restore a backup of the entire database and file archives.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to delete files.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr.html new file mode 100644 index 0000000..dd208da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr.html @@ -0,0 +1,146 @@ + + + + + + IEdmRevisionMgr Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to update revision numbers on many files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevisionMgr 
+
C# 
public interface IEdmRevisionMgr 
+
C++/CLI 
public interface class IEdmRevisionMgr 
+
+ + + + +

Remarks

This interface:

+ +

Typical usage of this interface:

+
    +
  1. Access this interface by calling IEdmVault7::CreateUtility, setting eType to EdmUtility.EdmUtil_RevisionMgr. +
  2. Call IEdmRevisionMgr::SetRevisionCounters for each file  whose revision counters you want to set. +
  3. Call IEdmRevisionMgr::IncrementRevision for each file whose revision you want to increment. +
  4. Call IEdmRevisionMgr::Commit to commit all of the changes to the database.
+

 

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2.html new file mode 100644 index 0000000..8a29ad8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2.html @@ -0,0 +1,141 @@ + + + + + + IEdmRevisionMgr2 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr2 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr2 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to update revision numbers on many files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevisionMgr2 
+   Inherits IEdmRevisionMgr 
+
C# 
public interface IEdmRevisionMgr2 : IEdmRevisionMgr  
+
C++/CLI 
public interface class IEdmRevisionMgr2 : public IEdmRevisionMgr  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_members.html new file mode 100644 index 0000000..d330d45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmRevisionMgr2 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr2 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr2 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevisionMgr2.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodGetRevisionNumberComponents2Gets the specified revision number components in the vault.  
 MethodGetRevisionNumberIDFromFileGets the active revision number of the specified file.  
 MethodGetRevisionNumberIDFromStateGets the ID of the revision number used in the specified workflow state.  
 MethodGetRevisionNumbersGets the specified revision number in the vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_methods.html new file mode 100644 index 0000000..cbd539c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmRevisionMgr2 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr2 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr2 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevisionMgr2 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetRevisionNumberComponents2Gets the specified revision number components in the vault.  
 MethodGetRevisionNumberIDFromFileGets the active revision number of the specified file.  
 MethodGetRevisionNumberIDFromStateGets the ID of the revision number used in the specified workflow state.  
 MethodGetRevisionNumbersGets the specified revision number in the vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberComponents2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberComponents2.html new file mode 100644 index 0000000..38d4205 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberComponents2.html @@ -0,0 +1,165 @@ + + + + + + GetRevisionNumberComponents2 Method (IEdmRevisionMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionNumberComponents2 Method (IEdmRevisionMgr2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr2 Interface + : GetRevisionNumberComponents2 Method (IEdmRevisionMgr2)
+ +
+ + + +
+ +
+ + +
+
+
oNameIDorEmpty
+
Name or ID of revision number component to retrieve, null to retrieve all components (see Remarks)
+
+
+
ppoRetData
+
Array of EdmRevComponent2 structures; one structure for each revision number component
+
+ +
+ +
+ + +
+
+ Gets the specified revision number components in the vault. + + +

Syntax

Visual Basic 
Sub GetRevisionNumberComponents2( _
+   ByVal oNameIDorEmpty As System.Object, _
+   ByRef ppoRetData() As EdmRevComponent2 _
+) 
+
C# 
void GetRevisionNumberComponents2( 
+   System.object oNameIDorEmpty,
+   out EdmRevComponent2[] ppoRetData
+)
+
C++/CLI 
void GetRevisionNumberComponents2( 
+&   System.Object^ oNameIDorEmpty,
+&   [Out] array<EdmRevComponent2>^ ppoRetData
+) 
+ +

Parameters

oNameIDorEmpty
+
Name or ID of revision number component to retrieve, null to retrieve all components (see Remarks)
ppoRetData
+
Array of EdmRevComponent2 structures; one structure for each revision number component
+ +
+ + + + +

Example

+

Remarks

If oNameIDorEmpty is a positive integer, it is interpreted as the ID of the component to retrieve. If it is a negative integer, it is interpreted as a revision number, and all components with that revision number are returned.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromFile.html new file mode 100644 index 0000000..4fc1fb8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromFile.html @@ -0,0 +1,165 @@ + + + + + + GetRevisionNumberIDFromFile Method (IEdmRevisionMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionNumberIDFromFile Method (IEdmRevisionMgr2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr2 Interface + : GetRevisionNumberIDFromFile Method (IEdmRevisionMgr2)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file for which to get a revision number (see Remarks)
+
+
+
pbCanIncrement
+
True if the next increment will succeed, false if not
+
+ +
+ +
+ + +
+
+ Gets the active revision number of the specified file. + + +

Syntax

Visual Basic 
Function GetRevisionNumberIDFromFile( _
+   ByVal lFileID As System.Integer, _
+   ByRef pbCanIncrement As System.Boolean _
+) As System.Integer
+
C# 
System.int GetRevisionNumberIDFromFile( 
+   System.int lFileID,
+   out System.bool pbCanIncrement
+)
+
C++/CLI 
System.int GetRevisionNumberIDFromFile( 
+&   System.int lFileID,
+&   [Out] System.bool pbCanIncrement
+) 
+ +

Parameters

lFileID
+
ID of file for which to get a revision number (see Remarks)
pbCanIncrement
+
True if the next increment will succeed, false if not
+ +

Return Value

Revision number ID; 0 if no revision number is found for the file
+ + + + +

Example

+

Remarks

Before calling this method, set lFileID using IEdmFile5.ID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromState.html new file mode 100644 index 0000000..2a4078a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumberIDFromState.html @@ -0,0 +1,156 @@ + + + + + + GetRevisionNumberIDFromState Method (IEdmRevisionMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionNumberIDFromState Method (IEdmRevisionMgr2)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr2 Interface + : GetRevisionNumberIDFromState Method (IEdmRevisionMgr2)
+ +
+ + + +
+ +
+ + +
+
+
lStateID
+
ID of workflow state for which to get a revision number (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the ID of the revision number used in the specified workflow state. + + +

Syntax

Visual Basic 
Function GetRevisionNumberIDFromState( _
+   ByVal lStateID As System.Integer _
+) As System.Integer
+
C# 
System.int GetRevisionNumberIDFromState( 
+   System.int lStateID
+)
+
C++/CLI 
System.int GetRevisionNumberIDFromState( 
+&   System.int lStateID
+) 
+ +

Parameters

lStateID
+
ID of workflow state for which to get a revision number (see Remarks)
+ +

Return Value

Revision number ID; 0 if no revision number is found for the specified workflow state
+ + + + + +

Remarks

Before calling this method, set lStateID using IEdmState5.ID.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_WORKFLOW_STATE_ID: The supplied state ID is out of bounds.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumbers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumbers.html new file mode 100644 index 0000000..81f1068 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr2~GetRevisionNumbers.html @@ -0,0 +1,164 @@ + + + + + + GetRevisionNumbers Method (IEdmRevisionMgr2) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionNumbers Method (IEdmRevisionMgr2)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr2 Interface + : GetRevisionNumbers Method (IEdmRevisionMgr2)
+ +
+ + + +
+ +
+ + +
+
+
oIDorEmpty
+
ID of revision number to get or null to get all revision numbers in the vault
+
+
+
ppoRetData
+
Array of EdmRevNo structures; one structure for each revision number
+
+ +
+ +
+ + +
+
+ Gets the specified revision number in the vault. + + +

Syntax

Visual Basic 
Sub GetRevisionNumbers( _
+   ByVal oIDorEmpty As System.Object, _
+   ByRef ppoRetData() As EdmRevNo _
+) 
+
C# 
void GetRevisionNumbers( 
+   System.object oIDorEmpty,
+   out EdmRevNo[] ppoRetData
+)
+
C++/CLI 
void GetRevisionNumbers( 
+&   System.Object^ oIDorEmpty,
+&   [Out] array<EdmRevNo>^ ppoRetData
+) 
+ +

Parameters

oIDorEmpty
+
ID of revision number to get or null to get all revision numbers in the vault
ppoRetData
+
Array of EdmRevNo structures; one structure for each revision number
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3.html new file mode 100644 index 0000000..ec2ea06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3.html @@ -0,0 +1,137 @@ + + + + + + IEdmRevisionMgr3 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr3 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr3 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to update revision numbers on many files all at once.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmRevisionMgr3 
+   Inherits IEdmRevisionMgrIEdmRevisionMgr2 
+
C# 
public interface IEdmRevisionMgr3 : IEdmRevisionMgrIEdmRevisionMgr2  
+
C++/CLI 
public interface class IEdmRevisionMgr3 : public IEdmRevisionMgrIEdmRevisionMgr2  
+
+ + + + +

Remarks

This interface extends IEdmRevisionMgr2.

+

This interface contains methods that are used internally to upgrade program versions of files in vaults. The methods are probably not of much interest to the ordinary programmer.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_members.html new file mode 100644 index 0000000..591b4fd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmRevisionMgr3 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr3 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr3 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevisionMgr3.

+ + +

Public Methods

+ + +
 NameDescription
 MethodVerUpgrade_BumpRevisionsMoves all revisions set on the second-to-latest version to the latest version.  
 MethodVerUpgrade_ReferenceCheckFinds parts that are referenced by assemblies and where the referenced part version is not the latest version.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_methods.html new file mode 100644 index 0000000..6a66ea8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmRevisionMgr3 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr3 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr3 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevisionMgr3 members.

+

Public Methods

+ + +
 NameDescription
 MethodVerUpgrade_BumpRevisionsMoves all revisions set on the second-to-latest version to the latest version.  
 MethodVerUpgrade_ReferenceCheckFinds parts that are referenced by assemblies and where the referenced part version is not the latest version.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_BumpRevisions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_BumpRevisions.html new file mode 100644 index 0000000..759f77b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_BumpRevisions.html @@ -0,0 +1,156 @@ + + + + + + VerUpgrade_BumpRevisions Method (IEdmRevisionMgr3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VerUpgrade_BumpRevisions Method (IEdmRevisionMgr3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr3 Interface + : VerUpgrade_BumpRevisions Method (IEdmRevisionMgr3)
+ +
+ + + +
+ +
+ + +
+
+
poFiles
+
Array of EdmSelItem structures; one structure for each file on which to bump the revision number (see Remarks)
+
+ +
+ +
+ + +
+
+ Moves all revisions set on the second-to-latest version to the latest version. + + +

Syntax

Visual Basic 
Sub VerUpgrade_BumpRevisions( _
+   ByVal poFiles() As EdmSelItem _
+) 
+
C# 
void VerUpgrade_BumpRevisions( 
+   EdmSelItem[] poFiles
+)
+
C++/CLI 
void VerUpgrade_BumpRevisions( 
+&   array<EdmSelItem>^ poFiles
+) 
+ +

Parameters

poFiles
+
Array of EdmSelItem structures; one structure for each file on which to bump the revision number (see Remarks)
+ +
+ + + + + +

Remarks

You need to be logged in as a user that has permission to update revision numbers (EdmSysRightFlags.EdmSysRight_ModifyRevisionNumbers) in order to use this method. The reason you need this high level of permission is that this method overrides other permission settings on the file and changes the content of file history.

+

poFiles contains the array of files on which to bump revision numbers. Files lacking revisions on the second-to-latest version are ignored.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_ReferenceCheck.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_ReferenceCheck.html new file mode 100644 index 0000000..c264e45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr3~VerUpgrade_ReferenceCheck.html @@ -0,0 +1,163 @@ + + + + + + VerUpgrade_ReferenceCheck Method (IEdmRevisionMgr3) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VerUpgrade_ReferenceCheck Method (IEdmRevisionMgr3)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr3 Interface + : VerUpgrade_ReferenceCheck Method (IEdmRevisionMgr3)
+ +
+ + + +
+ +
+ + +
+
+
poFiles
+
Array of EdmSelItem structures; one structure for each assembly file for which to find references
+
+
+
ppoWrongRefs
+
Array of EdmCheckRef structures; one structure for each part that is referenced in an earlier version than the lastest version
+
+ +
+ +
+ + +
+
+ Finds parts that are referenced by assemblies and where the referenced part version is not the latest version. + + +

Syntax

Visual Basic 
Sub VerUpgrade_ReferenceCheck( _
+   ByVal poFiles() As EdmSelItem, _
+   ByRef ppoWrongRefs() As EdmCheckRef _
+) 
+
C# 
void VerUpgrade_ReferenceCheck( 
+   EdmSelItem[] poFiles,
+   out EdmCheckRef[] ppoWrongRefs
+)
+
C++/CLI 
void VerUpgrade_ReferenceCheck( 
+&   array<EdmSelItem>^ poFiles,
+&   [Out] array<EdmCheckRef>^ ppoWrongRefs
+) 
+ +

Parameters

poFiles
+
Array of EdmSelItem structures; one structure for each assembly file for which to find references
ppoWrongRefs
+
Array of EdmCheckRef structures; one structure for each part that is referenced in an earlier version than the lastest version
+ +
+ + + + + +

Remarks

You need to be logged in as a user that has permission to update revision numbers (EdmSysRightFlags.EdmSysRight_ModifyRevisionNumbers) in order to use this method. The reason you need this high level of permission is that this method overrides read permission on the files and returns files that the logged-in user lacks permission to see.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_members.html new file mode 100644 index 0000000..fefb9a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmRevisionMgr Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmRevisionMgr.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodCommitCommits all of the changes made in this batch object.  
 MethodGetRevisionNumberComponentsObsolete. Superseded by IEdmRevisionMgr2::GetRevisionNumberComponents2.  
 MethodIncrementRevisionIncrements the revision of the specified file.  
 MethodSetRevisionCountersSets the revision number component counters to specified values.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_methods.html new file mode 100644 index 0000000..3a2ce57 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmRevisionMgr Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmRevisionMgr Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmRevisionMgr Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmRevisionMgr members.

+

Public Methods

+ + + + +
 NameDescription
 MethodCommitCommits all of the changes made in this batch object.  
 MethodGetRevisionNumberComponentsObsolete. Superseded by IEdmRevisionMgr2::GetRevisionNumberComponents2.  
 MethodIncrementRevisionIncrements the revision of the specified file.  
 MethodSetRevisionCountersSets the revision number component counters to specified values.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~Commit.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~Commit.html new file mode 100644 index 0000000..aa23941 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~Commit.html @@ -0,0 +1,164 @@ + + + + + + Commit Method (IEdmRevisionMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Commit Method (IEdmRevisionMgr)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr Interface + : Commit Method (IEdmRevisionMgr)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment to show in the file history of revision increments
+
+
+
ppoErrors
+
Array of EdmRevError structures; one structure for each error that occurred during processing
+
+ +
+ +
+ + +
+
+ Commits all of the changes made in this batch object. + + +

Syntax

Visual Basic 
Sub Commit( _
+   ByVal bsComment As System.String, _
+   ByRef ppoErrors() As EdmRevError _
+) 
+
C# 
void Commit( 
+   System.string bsComment,
+   out EdmRevError[] ppoErrors
+)
+
C++/CLI 
void Commit( 
+&   System.String^ bsComment,
+&   [Out] array<EdmRevError>^ ppoErrors
+) 
+ +

Parameters

bsComment
+
Comment to show in the file history of revision increments
ppoErrors
+
Array of EdmRevError structures; one structure for each error that occurred during processing
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~GetRevisionNumberComponents.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~GetRevisionNumberComponents.html new file mode 100644 index 0000000..1a3ce6d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~GetRevisionNumberComponents.html @@ -0,0 +1,154 @@ + + + + + + GetRevisionNumberComponents Method (IEdmRevisionMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionNumberComponents Method (IEdmRevisionMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr Interface + : GetRevisionNumberComponents Method (IEdmRevisionMgr)
+ +
+ + + +
+ +
+ + +
+
+
ppoComponents
+
Array of EdmRevComponent structures; one structure for each revision number component
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmRevisionMgr2::GetRevisionNumberComponents2. + + +

Syntax

Visual Basic 
Sub GetRevisionNumberComponents( _
+   ByRef ppoComponents() As EdmRevComponent _
+) 
+
C# 
void GetRevisionNumberComponents( 
+   out EdmRevComponent[] ppoComponents
+)
+
C++/CLI 
void GetRevisionNumberComponents( 
+&   [Out] array<EdmRevComponent>^ ppoComponents
+) 
+ +

Parameters

ppoComponents
+
Array of EdmRevComponent structures; one structure for each revision number component
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~IncrementRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~IncrementRevision.html new file mode 100644 index 0000000..fa1d9a5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~IncrementRevision.html @@ -0,0 +1,159 @@ + + + + + + IncrementRevision Method (IEdmRevisionMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IncrementRevision Method (IEdmRevisionMgr)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr Interface + : IncrementRevision Method (IEdmRevisionMgr)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file on which to increment the revision
+
+ +
+ +
+ + +
+
+ Increments the revision of the specified file. + + +

Syntax

Visual Basic 
Sub IncrementRevision( _
+   ByVal lFileID As System.Integer _
+) 
+
C# 
void IncrementRevision( 
+   System.int lFileID
+)
+
C++/CLI 
void IncrementRevision( 
+&   System.int lFileID
+) 
+ +

Parameters

lFileID
+
ID of file on which to increment the revision
+ +
+ + + + +

Example

+

Remarks

If you call IEdmRevisionMgr::SetRevisionCounters before calling this method, the new revision number that gets generated uses the counters that are specified in the call to IEdmRevisionMgr::SetRevisionCounters. If counters have not been explicitly set, the component counters are incremented by one.

+

The order of calls to IEdmRevisionMgr::SetRevisionCounters and this method does not matter. Calls to this method are always processed after calls to IEdmRevisionMgr::SetRevisionCounters.

+

After calling this method, call IEdmRevisionMgr::Commit to commit the revision increment to the database.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~SetRevisionCounters.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~SetRevisionCounters.html new file mode 100644 index 0000000..34a4a50 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmRevisionMgr~SetRevisionCounters.html @@ -0,0 +1,167 @@ + + + + + + SetRevisionCounters Method (IEdmRevisionMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetRevisionCounters Method (IEdmRevisionMgr)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmRevisionMgr Interface + : SetRevisionCounters Method (IEdmRevisionMgr)
+ +
+ + + +
+ +
+ + +
+
+
lFileID
+
ID of file in which to set counters
+
+
+
poCounters
+
Array of EdmRevCounter structures; one structure for each revision component
+
+ +
+ +
+ + +
+
+ Sets the revision number component counters to specified values. + + +

Syntax

Visual Basic 
Sub SetRevisionCounters( _
+   ByVal lFileID As System.Integer, _
+   ByVal poCounters() As EdmRevCounter _
+) 
+
C# 
void SetRevisionCounters( 
+   System.int lFileID,
+   EdmRevCounter[] poCounters
+)
+
C++/CLI 
void SetRevisionCounters( 
+&   System.int lFileID,
+&   array<EdmRevCounter>^ poCounters
+) 
+ +

Parameters

lFileID
+
ID of file in which to set counters
poCounters
+
Array of EdmRevCounter structures; one structure for each revision component
+ +
+ + + + +

Example

+

Remarks

This method only adds the new counters to this batch. After calling this method, you must call IEdmRevisionMgr::Commit to commit the changes to the database. 

+

This method only sets the revision component counters. It does not generate new revision numbers using any of the revision number generators that may be using the components. To create a new revision number for the file, you must also call IEdmRevisionMgr::IncrementRevision.

+

The order of calls to this method and IEdmRevisionMgr::IncrementRevision does not matter. Calls to IRevisionMgr::IncrementRevision are always processed after calls to this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom.html new file mode 100644 index 0000000..e5fefca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom.html @@ -0,0 +1,135 @@ + + + + + + IEdmSWBom Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBom Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSWBom Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access a SOLIDWORKS BOM. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSWBom 
+
C# 
public interface IEdmSWBom 
+
C++/CLI 
public interface class IEdmSWBom 
+
+ +

Example

See the IEdmBomMgr3 examples. +
+ + +

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell.html new file mode 100644 index 0000000..2b4261d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell.html @@ -0,0 +1,135 @@ + + + + + + IEdmSWBomCell Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomCell Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSWBomCell Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access a cell in a custom SOLIDWORKS BOM table. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSWBomCell 
+
C# 
public interface IEdmSWBomCell 
+
C++/CLI 
public interface class IEdmSWBomCell 
+
+ +

Example

See the IEdmBomMgr3 examples. +
+ + +

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_members.html new file mode 100644 index 0000000..17ade99 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmSWBomCell Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomCell Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomCell Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSWBomCell.

+

Public Properties

+ + + +
 NameDescription
 PropertyColNrGets the column index of this BOM cell.  
 PropertyRowNrGets the row index of this BOM cell.  
 PropertyTextGets or sets the content of this BOM cell.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_properties.html new file mode 100644 index 0000000..576fe8b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmSWBomCell Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomCell Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomCell Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSWBomCell members.

+

Public Properties

+ + + +
 NameDescription
 PropertyColNrGets the column index of this BOM cell.  
 PropertyRowNrGets the row index of this BOM cell.  
 PropertyTextGets or sets the content of this BOM cell.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~ColNr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~ColNr.html new file mode 100644 index 0000000..d154fb6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~ColNr.html @@ -0,0 +1,147 @@ + + + + + + ColNr Property (IEdmSWBomCell) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ColNr Property (IEdmSWBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomCell Interface + : ColNr Property (IEdmSWBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the column index of this BOM cell. + + +

Syntax

Visual Basic 
ReadOnly Property ColNr As System.Integer
+
C# 
System.int ColNr {get;}
+
C++/CLI 
property System.int ColNr {
+   System.int get();
+}
+ + + +

Property Value

Column index
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~RowNr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~RowNr.html new file mode 100644 index 0000000..f8b5396 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~RowNr.html @@ -0,0 +1,147 @@ + + + + + + RowNr Property (IEdmSWBomCell) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RowNr Property (IEdmSWBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomCell Interface + : RowNr Property (IEdmSWBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the row index of this BOM cell. + + +

Syntax

Visual Basic 
ReadOnly Property RowNr As System.Integer
+
C# 
System.int RowNr {get;}
+
C++/CLI 
property System.int RowNr {
+   System.int get();
+}
+ + + +

Property Value

Row index
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~Text.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~Text.html new file mode 100644 index 0000000..d1c60c0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomCell~Text.html @@ -0,0 +1,148 @@ + + + + + + Text Property (IEdmSWBomCell) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Text Property (IEdmSWBomCell)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomCell Interface + : Text Property (IEdmSWBomCell)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the content of this BOM cell. + + +

Syntax

Visual Basic 
Property Text As System.String
+
C# 
System.string Text {get; set;}
+
C++/CLI 
property System.String^ Text {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Text string
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn.html new file mode 100644 index 0000000..6649010 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn.html @@ -0,0 +1,136 @@ + + + + + + IEdmSWBomColumn Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomColumn Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSWBomColumn Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access a column in a custom SOLIDWORKS BOM table. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSWBomColumn 
+
C# 
public interface IEdmSWBomColumn 
+
C++/CLI 
public interface class IEdmSWBomColumn 
+
+ +

Example

See the IEdmBomMgr3 examples. +
+ + +

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_members.html new file mode 100644 index 0000000..1ad476a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmSWBomColumn Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomColumn Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomColumn Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSWBomColumn.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyColNrGets the index of this BOM column.  
 PropertyCustomPropNameGets or sets the custom property to which this BOM column is associated.  
 PropertyFlagsGets or sets the alignment of this BOM column.  
 PropertyNameGets or sets the name of this BOM column.  
 PropertyTypeGets or sets the type of this BOM column.  
 PropertyWidthGets or sets the width of this BOM column.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_properties.html new file mode 100644 index 0000000..86df72c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmSWBomColumn Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomColumn Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomColumn Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSWBomColumn members.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyColNrGets the index of this BOM column.  
 PropertyCustomPropNameGets or sets the custom property to which this BOM column is associated.  
 PropertyFlagsGets or sets the alignment of this BOM column.  
 PropertyNameGets or sets the name of this BOM column.  
 PropertyTypeGets or sets the type of this BOM column.  
 PropertyWidthGets or sets the width of this BOM column.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~ColNr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~ColNr.html new file mode 100644 index 0000000..f7f2e54 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~ColNr.html @@ -0,0 +1,147 @@ + + + + + + ColNr Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ColNr Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : ColNr Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the index of this BOM column. + + +

Syntax

Visual Basic 
ReadOnly Property ColNr As System.Integer
+
C# 
System.int ColNr {get;}
+
C++/CLI 
property System.int ColNr {
+   System.int get();
+}
+ + + +

Property Value

Column index
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~CustomPropName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~CustomPropName.html new file mode 100644 index 0000000..9aabd78 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~CustomPropName.html @@ -0,0 +1,148 @@ + + + + + + CustomPropName Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CustomPropName Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : CustomPropName Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the custom property to which this BOM column is associated. + + +

Syntax

Visual Basic 
Property CustomPropName As System.String
+
C# 
System.string CustomPropName {get; set;}
+
C++/CLI 
property System.String^ CustomPropName {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Custom property name
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Flags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Flags.html new file mode 100644 index 0000000..75ce021 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Flags.html @@ -0,0 +1,150 @@ + + + + + + Flags Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Flags Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : Flags Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the alignment of this BOM column. + + +

Syntax

Visual Basic 
Property Flags As System.Integer
+
C# 
System.int Flags {get; set;}
+
C++/CLI 
property System.int Flags {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

0 = left

+

1 = right

+

2 = center

+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Name.html new file mode 100644 index 0000000..7b2813d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Name.html @@ -0,0 +1,148 @@ + + + + + + Name Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : Name Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the name of this BOM column. + + +

Syntax

Visual Basic 
Property Name As System.String
+
C# 
System.string Name {get; set;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Column name
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Type.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Type.html new file mode 100644 index 0000000..8a34f7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Type.html @@ -0,0 +1,157 @@ + + + + + + Type Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Type Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : Type Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the type of this BOM column. + + +

Syntax

Visual Basic 
Property Type As System.Integer
+
C# 
System.int Type {get; set;}
+
C++/CLI 
property System.int Type {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

0 = Zone

+

1 = Revision

+

2 = Description

+

3 = Date

+

4 = Approved

+

5 = User

+

6 = Configuration quantity

+

7 = Item number

+

8 = Part number

+

-1 = Type not found

+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Width.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Width.html new file mode 100644 index 0000000..aaab8fd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomColumn~Width.html @@ -0,0 +1,148 @@ + + + + + + Width Property (IEdmSWBomColumn) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Width Property (IEdmSWBomColumn)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomColumn Interface + : Width Property (IEdmSWBomColumn)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the width of this BOM column. + + +

Syntax

Visual Basic 
Property Width As System.Integer
+
C# 
System.int Width {get; set;}
+
C++/CLI 
property System.int Width {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Column width in characters
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow.html new file mode 100644 index 0000000..1d3a7c4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow.html @@ -0,0 +1,136 @@ + + + + + + IEdmSWBomRow Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomRow Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSWBomRow Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to access a row in a custom SOLIDWORKS BOM table. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSWBomRow 
+
C# 
public interface IEdmSWBomRow 
+
C++/CLI 
public interface class IEdmSWBomRow 
+
+ +

Example

See the IEdmBomMgr3 examples. +
+ + +

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_members.html new file mode 100644 index 0000000..985b866 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmSWBomRow Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomRow Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomRow Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSWBomRow.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyComponentRepGets or sets the component representation to which this BOM row is associated.  
 PropertyConfigurationGets or sets the configuration of the document to which this BOM row is associated.  
 PropertyDocIDGets or sets the ID of the document to which this BOM row is associated.  
 PropertyProjectIDts or sets the ID of the project where this BOM row's document resides.  
 PropertyRowNrGets the index of this BOM row.  
 PropertyVersionGets or sets the version of the document to which this BOM row is associated.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_properties.html new file mode 100644 index 0000000..cdbfe99 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow_properties.html @@ -0,0 +1,112 @@ + + + + + + IEdmSWBomRow Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBomRow Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBomRow Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSWBomRow members.

+

Public Properties

+ + + + + + +
 NameDescription
 PropertyComponentRepGets or sets the component representation to which this BOM row is associated.  
 PropertyConfigurationGets or sets the configuration of the document to which this BOM row is associated.  
 PropertyDocIDGets or sets the ID of the document to which this BOM row is associated.  
 PropertyProjectIDts or sets the ID of the project where this BOM row's document resides.  
 PropertyRowNrGets the index of this BOM row.  
 PropertyVersionGets or sets the version of the document to which this BOM row is associated.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ComponentRep.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ComponentRep.html new file mode 100644 index 0000000..ad9bc2b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ComponentRep.html @@ -0,0 +1,148 @@ + + + + + + ComponentRep Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ComponentRep Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : ComponentRep Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the component representation to which this BOM row is associated. + + +

Syntax

Visual Basic 
Property ComponentRep As System.String
+
C# 
System.string ComponentRep {get; set;}
+
C++/CLI 
property System.String^ ComponentRep {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Component representation
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Configuration.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Configuration.html new file mode 100644 index 0000000..c812d8e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Configuration.html @@ -0,0 +1,148 @@ + + + + + + Configuration Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Configuration Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : Configuration Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the configuration of the document to which this BOM row is associated. + + +

Syntax

Visual Basic 
Property Configuration As System.String
+
C# 
System.string Configuration {get; set;}
+
C++/CLI 
property System.String^ Configuration {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Configuration of associated document
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~DocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~DocID.html new file mode 100644 index 0000000..344fc94 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~DocID.html @@ -0,0 +1,148 @@ + + + + + + DocID Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DocID Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : DocID Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the ID of the document to which this BOM row is associated. + + +

Syntax

Visual Basic 
Property DocID As System.Integer
+
C# 
System.int DocID {get; set;}
+
C++/CLI 
property System.int DocID {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Document ID
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ProjectID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ProjectID.html new file mode 100644 index 0000000..d0de724 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~ProjectID.html @@ -0,0 +1,148 @@ + + + + + + ProjectID Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProjectID Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : ProjectID Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ ts or sets the ID of the project where this BOM row's document resides. + + +

Syntax

Visual Basic 
Property ProjectID As System.Integer
+
C# 
System.int ProjectID {get; set;}
+
C++/CLI 
property System.int ProjectID {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Project ID
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~RowNr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~RowNr.html new file mode 100644 index 0000000..5e27db2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~RowNr.html @@ -0,0 +1,147 @@ + + + + + + RowNr Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RowNr Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : RowNr Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the index of this BOM row. + + +

Syntax

Visual Basic 
ReadOnly Property RowNr As System.Integer
+
C# 
System.int RowNr {get;}
+
C++/CLI 
property System.int RowNr {
+   System.int get();
+}
+ + + +

Property Value

Row index
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Version.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Version.html new file mode 100644 index 0000000..40383f6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBomRow~Version.html @@ -0,0 +1,148 @@ + + + + + + Version Property (IEdmSWBomRow) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Version Property (IEdmSWBomRow)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBomRow Interface + : Version Property (IEdmSWBomRow)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the version of the document to which this BOM row is associated. + + +

Syntax

Visual Basic 
Property Version As System.Integer
+
C# 
System.int Version {get; set;}
+
C++/CLI 
property System.int Version {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Document version
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_members.html new file mode 100644 index 0000000..54228b3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_members.html @@ -0,0 +1,127 @@ + + + + + + IEdmSWBom Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBom Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBom Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSWBom.

+

Public Properties

+ + + + + + + +
 NameDescription
 PropertyIncrementNumberGets or sets the increment for numbering items in this BOM.  
 PropertyNameGets or sets the name of this BOM.  
 PropertyRefCfgsGets or sets the configurations of the document on which this BOM is based.  
 PropertyRefDocIDGets or sets the ID of the document on which this BOM is based.  
 PropertySheetNameGets or sets the name of the sheet on which this BOM is located.  
 PropertyStartNumberGets or sets the starting number of items in this BOM.  
 PropertyTableTypeGets or sets the type of this BOM.  
Top
+ +

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodDeleteColumnDeletes the specified column from this BOM.  
 MethodDeleteRowDeletes the specified row from this BOM.  
 MethodGetCellGets the specified cell in this BOM.  
 MethodGetColumnGets the specified column in this BOM.  
 MethodGetColumnsCountGets the number of columns in this BOM.  
 MethodGetRowGets the specified row in this BOM.  
 MethodGetRowsCountGets the number of rows in this BOM.  
 MethodInsertColumnInserts a column at the specified column index.  
 MethodInsertRowInserts a row at the specified index.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_methods.html new file mode 100644 index 0000000..c82de41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_methods.html @@ -0,0 +1,111 @@ + + + + + + IEdmSWBom Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBom Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBom Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSWBom members.

+

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodDeleteColumnDeletes the specified column from this BOM.  
 MethodDeleteRowDeletes the specified row from this BOM.  
 MethodGetCellGets the specified cell in this BOM.  
 MethodGetColumnGets the specified column in this BOM.  
 MethodGetColumnsCountGets the number of columns in this BOM.  
 MethodGetRowGets the specified row in this BOM.  
 MethodGetRowsCountGets the number of rows in this BOM.  
 MethodInsertColumnInserts a column at the specified column index.  
 MethodInsertRowInserts a row at the specified index.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_properties.html new file mode 100644 index 0000000..262b05e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom_properties.html @@ -0,0 +1,113 @@ + + + + + + IEdmSWBom Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSWBom Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSWBom Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSWBom members.

+

Public Properties

+ + + + + + + +
 NameDescription
 PropertyIncrementNumberGets or sets the increment for numbering items in this BOM.  
 PropertyNameGets or sets the name of this BOM.  
 PropertyRefCfgsGets or sets the configurations of the document on which this BOM is based.  
 PropertyRefDocIDGets or sets the ID of the document on which this BOM is based.  
 PropertySheetNameGets or sets the name of the sheet on which this BOM is located.  
 PropertyStartNumberGets or sets the starting number of items in this BOM.  
 PropertyTableTypeGets or sets the type of this BOM.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteColumn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteColumn.html new file mode 100644 index 0000000..d3c0b7d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteColumn.html @@ -0,0 +1,152 @@ + + + + + + DeleteColumn Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DeleteColumn Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : DeleteColumn Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index of column to delete
+
+ +
+ +
+ + +
+
+ Deletes the specified column from this BOM. + + +

Syntax

Visual Basic 
Sub DeleteColumn( _
+   ByVal lNr As System.Integer _
+) 
+
C# 
void DeleteColumn( 
+   System.int lNr
+)
+
C++/CLI 
void DeleteColumn( 
+&   System.int lNr
+) 
+ +

Parameters

lNr
+
0-based index of column to delete
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteRow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteRow.html new file mode 100644 index 0000000..13a04cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~DeleteRow.html @@ -0,0 +1,152 @@ + + + + + + DeleteRow Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
DeleteRow Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : DeleteRow Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index of row to delete
+
+ +
+ +
+ + +
+
+ Deletes the specified row from this BOM. + + +

Syntax

Visual Basic 
Sub DeleteRow( _
+   ByVal lNr As System.Integer _
+) 
+
C# 
void DeleteRow( 
+   System.int lNr
+)
+
C++/CLI 
void DeleteRow( 
+&   System.int lNr
+) 
+ +

Parameters

lNr
+
0-based index of row to delete
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetCell.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetCell.html new file mode 100644 index 0000000..22695c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetCell.html @@ -0,0 +1,160 @@ + + + + + + GetCell Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCell Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : GetCell Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lRowNr
+
0-based index of cell row
+
+
+
lColumnNr
+
0-based index of cell column
+
+ +
+ +
+ + +
+
+ Gets the specified cell in this BOM. + + +

Syntax

Visual Basic 
Function GetCell( _
+   ByVal lRowNr As System.Integer, _
+   ByVal lColumnNr As System.Integer _
+) As EdmSWBomCell
+
C# 
EdmSWBomCell GetCell( 
+   System.int lRowNr,
+   System.int lColumnNr
+)
+
C++/CLI 
EdmSWBomCell^ GetCell( 
+&   System.int lRowNr,
+&   System.int lColumnNr
+) 
+ +

Parameters

lRowNr
+
0-based index of cell row
lColumnNr
+
0-based index of cell column
+ +

Return Value

IEdmSWBomCell
+ + +

Example

See the IEdmBomMgr3 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumn.html new file mode 100644 index 0000000..4754338 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumn.html @@ -0,0 +1,152 @@ + + + + + + GetColumn Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetColumn Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : GetColumn Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index of column to retrieve
+
+ +
+ +
+ + +
+
+ Gets the specified column in this BOM. + + +

Syntax

Visual Basic 
Function GetColumn( _
+   ByVal lNr As System.Integer _
+) As EdmSWBomColumn
+
C# 
EdmSWBomColumn GetColumn( 
+   System.int lNr
+)
+
C++/CLI 
EdmSWBomColumn^ GetColumn( 
+&   System.int lNr
+) 
+ +

Parameters

lNr
+
0-based index of column to retrieve
+ +

Return Value

IEdmSWBomColumn
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumnsCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumnsCount.html new file mode 100644 index 0000000..cb37f29 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetColumnsCount.html @@ -0,0 +1,140 @@ + + + + + + GetColumnsCount Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetColumnsCount Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : GetColumnsCount Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of columns in this BOM. + + +

Syntax

Visual Basic 
Function GetColumnsCount() As System.Integer
+
C# 
System.int GetColumnsCount()
+
C++/CLI 
System.int GetColumnsCount(); 
+ + + +

Return Value

Number of columns
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRow.html new file mode 100644 index 0000000..71d1cd6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRow.html @@ -0,0 +1,152 @@ + + + + + + GetRow Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRow Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : GetRow Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index of row to retrieve
+
+ +
+ +
+ + +
+
+ Gets the specified row in this BOM. + + +

Syntax

Visual Basic 
Function GetRow( _
+   ByVal lNr As System.Integer _
+) As EdmSWBomRow
+
C# 
EdmSWBomRow GetRow( 
+   System.int lNr
+)
+
C++/CLI 
EdmSWBomRow^ GetRow( 
+&   System.int lNr
+) 
+ +

Parameters

lNr
+
0-based index of row to retrieve
+ +

Return Value

IEdmSWBomRow
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRowsCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRowsCount.html new file mode 100644 index 0000000..dd7d817 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~GetRowsCount.html @@ -0,0 +1,140 @@ + + + + + + GetRowsCount Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRowsCount Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : GetRowsCount Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of rows in this BOM. + + +

Syntax

Visual Basic 
Function GetRowsCount() As System.Integer
+
C# 
System.int GetRowsCount()
+
C++/CLI 
System.int GetRowsCount(); 
+ + + +

Return Value

Number of rows
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~IncrementNumber.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~IncrementNumber.html new file mode 100644 index 0000000..e275206 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~IncrementNumber.html @@ -0,0 +1,148 @@ + + + + + + IncrementNumber Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IncrementNumber Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : IncrementNumber Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the increment for numbering items in this BOM. + + +

Syntax

Visual Basic 
Property IncrementNumber As System.Integer
+
C# 
System.int IncrementNumber {get; set;}
+
C++/CLI 
property System.int IncrementNumber {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Increment number
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertColumn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertColumn.html new file mode 100644 index 0000000..3f0a5d3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertColumn.html @@ -0,0 +1,160 @@ + + + + + + InsertColumn Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InsertColumn Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : InsertColumn Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index where to insert the column; 0 to insert column in first position, -1 to insert column in last position
+
+
+
pbsName
+
Name of column
+
+ +
+ +
+ + +
+
+ Inserts a column at the specified column index. + + +

Syntax

Visual Basic 
Function InsertColumn( _
+   ByVal lNr As System.Integer, _
+   ByVal pbsName As System.String _
+) As EdmSWBomColumn
+
C# 
EdmSWBomColumn InsertColumn( 
+   System.int lNr,
+   System.string pbsName
+)
+
C++/CLI 
EdmSWBomColumn^ InsertColumn( 
+&   System.int lNr,
+&   System.String^ pbsName
+) 
+ +

Parameters

lNr
+
0-based index where to insert the column; 0 to insert column in first position, -1 to insert column in last position
pbsName
+
Name of column
+ +

Return Value

IEdmSWBomColumn
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertRow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertRow.html new file mode 100644 index 0000000..35dff77 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~InsertRow.html @@ -0,0 +1,152 @@ + + + + + + InsertRow Method (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InsertRow Method (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : InsertRow Method (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+
lNr
+
0-based index where to insert the row; 0 to insert in first position, -1 to insert at last position
+
+ +
+ +
+ + +
+
+ Inserts a row at the specified index. + + +

Syntax

Visual Basic 
Function InsertRow( _
+   ByVal lNr As System.Integer _
+) As EdmSWBomRow
+
C# 
EdmSWBomRow InsertRow( 
+   System.int lNr
+)
+
C++/CLI 
EdmSWBomRow^ InsertRow( 
+&   System.int lNr
+) 
+ +

Parameters

lNr
+
0-based index where to insert the row; 0 to insert in first position, -1 to insert at last position
+ +

Return Value

IEdmSWBomRow
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~Name.html new file mode 100644 index 0000000..91fabed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~Name.html @@ -0,0 +1,148 @@ + + + + + + Name Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : Name Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the name of this BOM. + + +

Syntax

Visual Basic 
Property Name As System.String
+
C# 
System.string Name {get; set;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

BOM name
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefCfgs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefCfgs.html new file mode 100644 index 0000000..67983ed --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefCfgs.html @@ -0,0 +1,148 @@ + + + + + + RefCfgs Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefCfgs Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : RefCfgs Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the configurations of the document on which this BOM is based. + + +

Syntax

Visual Basic 
Property RefCfgs As System.String
+
C# 
System.string RefCfgs {get; set;}
+
C++/CLI 
property System.String^ RefCfgs {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Reference configurations
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefDocID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefDocID.html new file mode 100644 index 0000000..29eecad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~RefDocID.html @@ -0,0 +1,148 @@ + + + + + + RefDocID Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefDocID Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : RefDocID Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the ID of the document on which this BOM is based. + + +

Syntax

Visual Basic 
Property RefDocID As System.Integer
+
C# 
System.int RefDocID {get; set;}
+
C++/CLI 
property System.int RefDocID {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Reference document ID
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~SheetName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~SheetName.html new file mode 100644 index 0000000..59dc22a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~SheetName.html @@ -0,0 +1,148 @@ + + + + + + SheetName Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SheetName Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : SheetName Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the name of the sheet on which this BOM is located. + + +

Syntax

Visual Basic 
Property SheetName As System.String
+
C# 
System.string SheetName {get; set;}
+
C++/CLI 
property System.String^ SheetName {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Sheet name
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~StartNumber.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~StartNumber.html new file mode 100644 index 0000000..ac546dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~StartNumber.html @@ -0,0 +1,148 @@ + + + + + + StartNumber Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StartNumber Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : StartNumber Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the starting number of items in this BOM. + + +

Syntax

Visual Basic 
Property StartNumber As System.Integer
+
C# 
System.int StartNumber {get; set;}
+
C++/CLI 
property System.int StartNumber {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Starting number
+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~TableType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~TableType.html new file mode 100644 index 0000000..a07504d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSWBom~TableType.html @@ -0,0 +1,150 @@ + + + + + + TableType Property (IEdmSWBom) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TableType Property (IEdmSWBom)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSWBom Interface + : TableType Property (IEdmSWBom)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the type of this BOM. + + +

Syntax

Visual Basic 
Property TableType As System.Integer
+
C# 
System.int TableType {get; set;}
+
C++/CLI 
property System.int TableType {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

0 = Parts only

+

1 = Top-level only

+

2 = Indented

+ + +

Example

See the IEdmBomMgr3 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10.html new file mode 100644 index 0000000..e597acb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10.html @@ -0,0 +1,139 @@ + + + + + + IEdmSearch10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch10 
+   Inherits IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8IEdmSearch9 
+
C# 
public interface IEdmSearch10 : IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8IEdmSearch9  
+
C++/CLI 
public interface class IEdmSearch10 : public IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8IEdmSearch9  
+
+ + + +

Example

+

Remarks

This interface extends IEdmSearch9 by providing the ability to perform favorite searches.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_members.html new file mode 100644 index 0000000..c2bce95 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmSearch10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch10.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetFirstFavoriteResultGets the first file or folder that matches the favorite search criteria.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_methods.html new file mode 100644 index 0000000..d2c456b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmSearch10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch10 members.

+

Public Methods

+ +
 NameDescription
 MethodGetFirstFavoriteResultGets the first file or folder that matches the favorite search criteria.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10~GetFirstFavoriteResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10~GetFirstFavoriteResult.html new file mode 100644 index 0000000..01dc201 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch10~GetFirstFavoriteResult.html @@ -0,0 +1,161 @@ + + + + + + GetFirstFavoriteResult Method (IEdmSearch10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFavoriteResult Method (IEdmSearch10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch10 Interface + : GetFirstFavoriteResult Method (IEdmSearch10)
+ +
+ + + +
+ +
+ + +
+
+
bsFavName
+
Name of a favorite search
+
+
+
bGetCustomColumns
+
True to retrieve custom column information, false to not
+
+ +
+ +
+ + +
+
+ Gets the first file or folder that matches the favorite search criteria. + + +

Syntax

Visual Basic 
Function GetFirstFavoriteResult( _
+   ByVal bsFavName As System.String, _
+   Optional ByVal bGetCustomColumns As System.Boolean _
+) As IEdmSearchResult5
+
C# 
IEdmSearchResult5 GetFirstFavoriteResult( 
+   System.string bsFavName,
+   System.bool bGetCustomColumns
+)
+
C++/CLI 
IEdmSearchResult5^ GetFirstFavoriteResult( 
+&   System.String^ bsFavName,
+&   System.bool bGetCustomColumns
+) 
+ +

Parameters

bsFavName
+
Name of a favorite search
bGetCustomColumns
+
True to retrieve custom column information, false to not
+ +

Return Value

IEdmSearchResult5
+ + +

Example

See the IEdmSearch10 examples. +
+ +

Remarks

If bGetCustomColumns is set to true and custom columns exist in the search results of bsFavName, then use IEdmSearchResult6::GetCustomColumnsInfo and IEdmSearchResult6::GetCustomColumnValues to see the custom column information.

+

After calling this method, call IEdmSearch5::GetNextResult repeatedly to retrieve the rest of the search results.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5.html new file mode 100644 index 0000000..537e522 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5.html @@ -0,0 +1,142 @@ + + + + + + IEdmSearch5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch5 
+
C# 
public interface IEdmSearch5 
+
C++/CLI 
public interface class IEdmSearch5 
+
+ + + +

Example

+

Remarks

This interface:

+ +

There is a bit of overhead involved in creating an IEdmSearch5 object, so if you intend to perform several searches, call IEdmSearch5::Clear to clear and re-use the current search object instead of calling IEdmVault5::CreateSearch to create new search objects.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_members.html new file mode 100644 index 0000000..f1146a4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_members.html @@ -0,0 +1,125 @@ + + + + + + IEdmSearch5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch5.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyFileNameGets or sets the name of the file or folder for which to search.  
 PropertyFindFilesGets or sets whether to return files in the search.  
 PropertyFindFoldersGets or sets whether to return folders in the search.  
 PropertyFindHistoricStatesGets or sets whether to find all files that have ever been in the state specified by IEdmSearch5::State.  
 PropertyFindLockedFilesGets or sets whether to include checked-out files in the search result.  
 PropertyFindUnlockedFilesGets or sets whether to include checked-in files in the search result.  
 PropertyRecursiveGets or sets whether to search recursively in subfolders.  
 PropertyStartFolderIDGets or sets the ID of the folder in which to search.  
 PropertyStateGets or sets the ID or name of the workflow state in which to search.  
 PropertyVersionCommentGets or sets the version comment substring for which to search.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodAddVariableObsolete. Superseded by IEdmSearch8::AddVariable2.  
 MethodClearResets all search properties to their default values  
 MethodGetFirstResultGets the first file or folder that matches the search criteria.  
 MethodGetNextResultGets the next file or folder that matches the search criteria.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_methods.html new file mode 100644 index 0000000..38bf5d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmSearch5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodAddVariableObsolete. Superseded by IEdmSearch8::AddVariable2.  
 MethodClearResets all search properties to their default values  
 MethodGetFirstResultGets the first file or folder that matches the search criteria.  
 MethodGetNextResultGets the next file or folder that matches the search criteria.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_properties.html new file mode 100644 index 0000000..47d8148 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5_properties.html @@ -0,0 +1,116 @@ + + + + + + IEdmSearch5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch5 members.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyFileNameGets or sets the name of the file or folder for which to search.  
 PropertyFindFilesGets or sets whether to return files in the search.  
 PropertyFindFoldersGets or sets whether to return folders in the search.  
 PropertyFindHistoricStatesGets or sets whether to find all files that have ever been in the state specified by IEdmSearch5::State.  
 PropertyFindLockedFilesGets or sets whether to include checked-out files in the search result.  
 PropertyFindUnlockedFilesGets or sets whether to include checked-in files in the search result.  
 PropertyRecursiveGets or sets whether to search recursively in subfolders.  
 PropertyStartFolderIDGets or sets the ID of the folder in which to search.  
 PropertyStateGets or sets the ID or name of the workflow state in which to search.  
 PropertyVersionCommentGets or sets the version comment substring for which to search.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~AddVariable.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~AddVariable.html new file mode 100644 index 0000000..0a4c072 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~AddVariable.html @@ -0,0 +1,168 @@ + + + + + + AddVariable Method (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddVariable Method (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : AddVariable Method (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
ID or name of variable for which to search
+
+
+
poValue
+
Value for which to search (see Remarks)
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmSearch8::AddVariable2. + + +

Syntax

Visual Basic 
Sub AddVariable( _
+   ByRef poIdOrName As System.Object, _
+   ByRef poValue As System.Object _
+) 
+
C# 
void AddVariable( 
+   ref System.object poIdOrName,
+   ref System.object poValue
+)
+
C++/CLI 
void AddVariable( 
+&   System.Object^% poIdOrName,
+&   System.Object^% poValue
+) 
+ +

Parameters

poIdOrName
+
ID or name of variable for which to search
poValue
+
Value for which to search (see Remarks)
+ +
+ + + + + +

Remarks

poValue may contain wildcards:

+
    +
  • % - any number of arbitrary characters +
  • _ - exactly one arbitrary character
+

The number of times you could call this method was limited to 4 in SOLIDWORKS PDM Professional Version 6.0 and earlier. This restriction was removed in Version 6.1.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_KEY_NOT_FOUND: The variable name was not recognized.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Clear.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Clear.html new file mode 100644 index 0000000..2c2b53a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Clear.html @@ -0,0 +1,142 @@ + + + + + + Clear Method (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Clear Method (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : Clear Method (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Resets all search properties to their default values + + +

Syntax

Visual Basic 
Sub Clear() 
+
C# 
void Clear()
+
C++/CLI 
void Clear(); 
+ + + +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FileName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FileName.html new file mode 100644 index 0000000..ce9be3b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FileName.html @@ -0,0 +1,162 @@ + + + + + + FileName Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileName Property (IEdmSearch5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FileName Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the name of the file or folder for which to search. + + +

Syntax

Visual Basic 
Property FileName As System.String
+
C# 
System.string FileName {get; set;}
+
C++/CLI 
property System.String^ FileName {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Name of file or folder for which to search (see Remarks)
+ + +

Example

See the IEdmSearch9 examples. +
+

Example

+

Remarks

If the search object was obtained using:

+ +
    +
  • IEdmVault5::CreateSearch, then the name may contain a % wildcard character. For example, %.txt searches for all text files.
+
+

% indicates any sequence of characters of any length. You can also use underscore (_) as a wildcard for exactly one arbitrary character.

+

To search for strings containing the actual characters '%' and '_', enclose them in brackets [...]:

+
+

     my[_]text[%]file.txt

+

You can also enclose the entire string in brackets, if no wildcards exist in it:

+
+

     [my_text%file.txt]

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFiles.html new file mode 100644 index 0000000..fe13855 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFiles.html @@ -0,0 +1,150 @@ + + + + + + FindFiles Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FindFiles Property (IEdmSearch5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FindFiles Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to return files in the search. + + +

Syntax

Visual Basic 
Property FindFiles As System.Boolean
+
C# 
System.bool FindFiles {get; set;}
+
C++/CLI 
property System.bool FindFiles {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to return files, false to not
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFolders.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFolders.html new file mode 100644 index 0000000..258afda --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindFolders.html @@ -0,0 +1,148 @@ + + + + + + FindFolders Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FindFolders Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FindFolders Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to return folders in the search. + + +

Syntax

Visual Basic 
Property FindFolders As System.Boolean
+
C# 
System.bool FindFolders {get; set;}
+
C++/CLI 
property System.bool FindFolders {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to return folders, false to not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindHistoricStates.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindHistoricStates.html new file mode 100644 index 0000000..60a0081 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindHistoricStates.html @@ -0,0 +1,148 @@ + + + + + + FindHistoricStates Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FindHistoricStates Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FindHistoricStates Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to find all files that have ever been in the state specified by IEdmSearch5::State. + + +

Syntax

Visual Basic 
Property FindHistoricStates As System.Boolean
+
C# 
System.bool FindHistoricStates {get; set;}
+
C++/CLI 
property System.bool FindHistoricStates {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to find all files that have ever been in IEdmSearch5::State, false to return only files that are currently in IEdmSearch5::State
+ + + + + +

Remarks

This property is only valid if IEdmSearch5::State is set.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindLockedFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindLockedFiles.html new file mode 100644 index 0000000..9fd76dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindLockedFiles.html @@ -0,0 +1,148 @@ + + + + + + FindLockedFiles Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FindLockedFiles Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FindLockedFiles Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to include checked-out files in the search result. + + +

Syntax

Visual Basic 
Property FindLockedFiles As System.Boolean
+
C# 
System.bool FindLockedFiles {get; set;}
+
C++/CLI 
property System.bool FindLockedFiles {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to include checked-out files, false to not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindUnlockedFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindUnlockedFiles.html new file mode 100644 index 0000000..fa8e264 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~FindUnlockedFiles.html @@ -0,0 +1,148 @@ + + + + + + FindUnlockedFiles Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FindUnlockedFiles Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : FindUnlockedFiles Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to include checked-in files in the search result. + + +

Syntax

Visual Basic 
Property FindUnlockedFiles As System.Boolean
+
C# 
System.bool FindUnlockedFiles {get; set;}
+
C++/CLI 
property System.bool FindUnlockedFiles {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to include checked-in files, false to not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetFirstResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetFirstResult.html new file mode 100644 index 0000000..22678bb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetFirstResult.html @@ -0,0 +1,151 @@ + + + + + + GetFirstResult Method (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstResult Method (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : GetFirstResult Method (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the first file or folder that matches the search criteria. + + +

Syntax

Visual Basic 
Function GetFirstResult() As IEdmSearchResult5
+
C# 
IEdmSearchResult5 GetFirstResult()
+
C++/CLI 
IEdmSearchResult5^ GetFirstResult(); 
+ + + +

Return Value

IEdmSearchResult5; Nothing or null if no files or folders match the search criteria or there are syntax errors in search conditions (see Remarks)
+ + +

Example

See the IEdmSearch5 and IEdmSearch9 examples. +
+ +

Remarks

If the search object was obtained using IEdmVault21::CreateSearch2 (IEdmSearch9) then this method's return of Nothing or null can mean either:

+
    +
  • the search found no documents,
+

    - or -

+
    +
  • there are one or more search condition syntax errrors. Call IEdmSearch9::GetSyntaxErrors to determine whether there are syntax errors. If IEdmSearch9::GetSyntaxErrors returns Nothing or null, then you can assume that this method returned Nothing or null because the search found no documents. See Search Syntax.
+

After calling this method, call IEdmSearch5::GetNextResult to retrieve the rest of the files and folders that match the search criteria.

+

C++ users must release the returned interface, IEdmSearchResult5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The method successfully executed, but no files or folders match the search criteria.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetNextResult.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetNextResult.html new file mode 100644 index 0000000..4c1f2d5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~GetNextResult.html @@ -0,0 +1,145 @@ + + + + + + GetNextResult Method (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextResult Method (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : GetNextResult Method (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the next file or folder that matches the search criteria. + + +

Syntax

Visual Basic 
Function GetNextResult() As IEdmSearchResult5
+
C# 
IEdmSearchResult5 GetNextResult()
+
C++/CLI 
IEdmSearchResult5^ GetNextResult(); 
+ + + +

Return Value

IEdmSearchResult5; Nothing or null if no more files or folders match the search criteria
+ + +

Example

See the examples for IEdmSearch5 and IEdmSearch10. +
+ +

Remarks

Before calling this method, call IEdmSearch5::GetFirstResult or IEdmSearch10::GetFirstFavoriteResult to retrieve the first file or folder that matches the search criteria.

+

C++ users must release the returned interface, IEdmSearchResult5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The method successfully executed, but no files or folders match the search criteria.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Recursive.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Recursive.html new file mode 100644 index 0000000..0b30794 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~Recursive.html @@ -0,0 +1,148 @@ + + + + + + Recursive Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Recursive Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : Recursive Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets whether to search recursively in subfolders. + + +

Syntax

Visual Basic 
Property Recursive As System.Boolean
+
C# 
System.bool Recursive {get; set;}
+
C++/CLI 
property System.bool Recursive {
+   System.bool get();
+   void set ( &   System.bool value);
+}
+ + + +

Property Value

True to search recursively in subfolders, false to search only in the folder specified by IEdmSearch5::StartFolderID
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~StartFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~StartFolderID.html new file mode 100644 index 0000000..c80a77b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~StartFolderID.html @@ -0,0 +1,148 @@ + + + + + + StartFolderID Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StartFolderID Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : StartFolderID Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the ID of the folder in which to search. + + +

Syntax

Visual Basic 
Property StartFolderID As System.Integer
+
C# 
System.int StartFolderID {get; set;}
+
C++/CLI 
property System.int StartFolderID {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

ID of folder in which to search; default is the root folder
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~State.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~State.html new file mode 100644 index 0000000..f306af6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~State.html @@ -0,0 +1,161 @@ + + + + + + State Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
State Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : State Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the ID or name of the workflow state in which to search. + + +

Syntax

Visual Basic 
Property State As System.Object
+
C# 
System.object State {get; set;}
+
C++/CLI 
property System.Object^ State {
+   System.Object^ get();
+   void set ( &   System.Object^ value);
+}
+ + + +

Property Value

ID or name of the workflow state in which to search
+ + + + + +

Remarks

If the search object was obtained using:

+ +
    +
  • IEdmVault5::CreateSearch, then the workflow state name for which to search may contain a % wildcard character. For example, test searches for all files that have a workflow state that contains the word, test. +
    +

    % indicates any sequence of characters of any length. You can also use underscore (_) as a wildcard for exactly one arbitrary character.

    +

    To search for strings containing the actual characters '%' and '_', enclose them in brackets [...]:

    +
    +

    my[_]text[%]file.txt

    +

    You can also enclose the entire string in brackets, because no wildcards occur in it:

    +
    +

    [my_text%file.txt]

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~VersionComment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~VersionComment.html new file mode 100644 index 0000000..17590b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch5~VersionComment.html @@ -0,0 +1,160 @@ + + + + + + VersionComment Property (IEdmSearch5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionComment Property (IEdmSearch5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch5 Interface + : VersionComment Property (IEdmSearch5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets the version comment substring for which to search. + + +

Syntax

Visual Basic 
Property VersionComment As System.String
+
C# 
System.string VersionComment {get; set;}
+
C++/CLI 
property System.String^ VersionComment {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Substring of version comment for which to search (see Remarks)
+ + + + + +

Remarks

If the search object was obtained using:

+ +
    +
  • IEdmVault5::CreateSearch, then the substring for which to search may contain a % wildcard character. For example, test searches for all files that have a version comment that contains the word, test.
+
+

% indicates any sequence of characters of any length. You can also use underscore (_) as a wildcard for exactly one arbitrary character.

+

To search for strings containing the actual characters '%' and '_', enclose them in brackets [...]:

+
+

my[_]text[%]file.txt

+

You can also enclose the entire string in brackets, because no wildcards occur in it:

+
+

[my_text%file.txt]

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6.html new file mode 100644 index 0000000..a4fb2b3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6.html @@ -0,0 +1,143 @@ + + + + + + IEdmSearch6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch6 
+   Inherits IEdmSearch5 
+
C# 
public interface IEdmSearch6 : IEdmSearch5  
+
C++/CLI 
public interface class IEdmSearch6 : public IEdmSearch5  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_members.html new file mode 100644 index 0000000..9064f88 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmSearch6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetTokenGets the value of a search token.  
 MethodSetTokenSets the specified token with the specified value.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_methods.html new file mode 100644 index 0000000..7367725 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSearch6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch6 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetTokenGets the value of a search token.  
 MethodSetTokenSets the specified token with the specified value.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~GetToken.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~GetToken.html new file mode 100644 index 0000000..ccf2cfa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~GetToken.html @@ -0,0 +1,155 @@ + + + + + + GetToken Method (IEdmSearch6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetToken Method (IEdmSearch6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch6 Interface + : GetToken Method (IEdmSearch6)
+ +
+ + + +
+ +
+ + +
+
+
eTok
+
Type of token for which to get a value as defined in EdmSearchToken
+
+ +
+ +
+ + +
+
+ Gets the value of a search token. + + +

Syntax

Visual Basic 
Function GetToken( _
+   ByVal eTok As EdmSearchToken _
+) As System.Object
+
C# 
System.object GetToken( 
+   EdmSearchToken eTok
+)
+
C++/CLI 
System.Object^ GetToken( 
+&   EdmSearchToken eTok
+) 
+ +

Parameters

eTok
+
Type of token for which to get a value as defined in EdmSearchToken
+ +

Return Value

Value of token
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~SetToken.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~SetToken.html new file mode 100644 index 0000000..3aa0b06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch6~SetToken.html @@ -0,0 +1,164 @@ + + + + + + SetToken Method (IEdmSearch6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetToken Method (IEdmSearch6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch6 Interface + : SetToken Method (IEdmSearch6)
+ +
+ + + +
+ +
+ + +
+
+
eTok
+
Search token for which to set a value as defined in EdmSearchToken (see Remarks)
+
+
+
oValue
+
New value for token
+
+ +
+ +
+ + +
+
+ Sets the specified token with the specified value. + + +

Syntax

Visual Basic 
Sub SetToken( _
+   ByVal eTok As EdmSearchToken, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetToken( 
+   EdmSearchToken eTok,
+   System.object oValue
+)
+
C++/CLI 
void SetToken( 
+&   EdmSearchToken eTok,
+&   System.Object^ oValue
+) 
+ +

Parameters

eTok
+
Search token for which to set a value as defined in EdmSearchToken (see Remarks)
oValue
+
New value for token
+ +
+ + +

Example

See the IEdmSearch6 and IEdmSearch9 examples. +
+ +

Remarks

For every search you must explicitly set EdmSearchToken.Edmstok_AllVersions to either true or false. If you leave it unset, unexpected search results can occur.

+

If the search object was obtained using IEdmVault21::CreateSearch2 (IEdmSearch9), then oValue may contain extended search syntax. (See Search Syntax.)

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7.html new file mode 100644 index 0000000..1f92510 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7.html @@ -0,0 +1,139 @@ + + + + + + IEdmSearch7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch7 
+   Inherits IEdmSearch5IEdmSearch6 
+
C# 
public interface IEdmSearch7 : IEdmSearch5IEdmSearch6  
+
C++/CLI 
public interface class IEdmSearch7 : public IEdmSearch5IEdmSearch6  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_members.html new file mode 100644 index 0000000..5c6bff1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmSearch7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch7.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetMenuInfoGets information that can be used to display a quick launch menu from which the user can start the search tool and activate one of his search forms or favorites.  
 MethodLaunchAppStarts the search tool application.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_methods.html new file mode 100644 index 0000000..8ae16fc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSearch7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch7 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetMenuInfoGets information that can be used to display a quick launch menu from which the user can start the search tool and activate one of his search forms or favorites.  
 MethodLaunchAppStarts the search tool application.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~GetMenuInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~GetMenuInfo.html new file mode 100644 index 0000000..1dfbf3f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~GetMenuInfo.html @@ -0,0 +1,178 @@ + + + + + + GetMenuInfo Method (IEdmSearch7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetMenuInfo Method (IEdmSearch7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch7 Interface + : GetMenuInfo Method (IEdmSearch7)
+ +
+ + + +
+ +
+ + +
+
+
ppoForms
+
Array of search forms
+
+
+
ppoFavorites
+
Array of favorite searches
+
+
+
plSysPerm
+
Combination of EdmSysRightFlags bits for the logged-in user
+
+
+
plEdmGetMenuInfoFlags
+
Combination of EdmGetMenuInfoFlags bits
+
+ +
+ +
+ + +
+
+ Gets information that can be used to display a quick launch menu from which the user can start the search tool and activate one of his search forms or favorites. + + +

Syntax

Visual Basic 
Sub GetMenuInfo( _
+   ByRef ppoForms() As System.String, _
+   ByRef ppoFavorites() As System.String, _
+   ByRef plSysPerm As System.Integer, _
+   ByRef plEdmGetMenuInfoFlags As System.Integer _
+) 
+
C# 
void GetMenuInfo( 
+   out System.string[] ppoForms,
+   out System.string[] ppoFavorites,
+   out System.int plSysPerm,
+   out System.int plEdmGetMenuInfoFlags
+)
+
C++/CLI 
void GetMenuInfo( 
+&   [Out] System.array<String^>^ ppoForms,
+&   [Out] System.array<String^>^ ppoFavorites,
+&   [Out] System.int plSysPerm,
+&   [Out] System.int plEdmGetMenuInfoFlags
+) 
+ +

Parameters

ppoForms
+
Array of search forms
ppoFavorites
+
Array of favorite searches
plSysPerm
+
Combination of EdmSysRightFlags bits for the logged-in user
plEdmGetMenuInfoFlags
+
Combination of EdmGetMenuInfoFlags bits
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~LaunchApp.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~LaunchApp.html new file mode 100644 index 0000000..7fb61a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch7~LaunchApp.html @@ -0,0 +1,178 @@ + + + + + + LaunchApp Method (IEdmSearch7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LaunchApp Method (IEdmSearch7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch7 Interface + : LaunchApp Method (IEdmSearch7)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
bsDefault
+
Name of a search form; name of a search favorite if lEdmLaunchSearchFlags contains EdmLaunchSearchFlags.Elsf_DefaultIsAFavorite
+
+
+
oStartFolderPathOrID
+
Path or ID of the folder in which the search tool should start looking
+
+
+
lEdmLaunchSearchFlags
+
Combination of EdmLaunchSearchFlags bits
+
+ +
+ +
+ + +
+
+ Starts the search tool application. + + +

Syntax

Visual Basic 
Sub LaunchApp( _
+   ByVal hParentWnd As System.Integer, _
+   Optional ByVal bsDefault As System.String, _
+   Optional ByVal oStartFolderPathOrID As System.Object, _
+   Optional ByVal lEdmLaunchSearchFlags As System.Integer _
+) 
+
C# 
void LaunchApp( 
+   System.int hParentWnd,
+   System.string bsDefault,
+   System.object oStartFolderPathOrID,
+   System.int lEdmLaunchSearchFlags
+)
+
C++/CLI 
void LaunchApp( 
+&   System.int hParentWnd,
+&   System.String^ bsDefault,
+&   System.Object^ oStartFolderPathOrID,
+&   System.int lEdmLaunchSearchFlags
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
bsDefault
+
Name of a search form; name of a search favorite if lEdmLaunchSearchFlags contains EdmLaunchSearchFlags.Elsf_DefaultIsAFavorite
oStartFolderPathOrID
+
Path or ID of the folder in which the search tool should start looking
lEdmLaunchSearchFlags
+
Combination of EdmLaunchSearchFlags bits
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8.html new file mode 100644 index 0000000..c4dcbe5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8.html @@ -0,0 +1,145 @@ + + + + + + IEdmSearch8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch8 
+   Inherits IEdmSearch5IEdmSearch6IEdmSearch7 
+
C# 
public interface IEdmSearch8 : IEdmSearch5IEdmSearch6IEdmSearch7  
+
C++/CLI 
public interface class IEdmSearch8 : public IEdmSearch5IEdmSearch6IEdmSearch7  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmSearch7 by providing the ability to construct more complicated search criteria using: +
      +
    • Comparison operators +
    • Boolean OR and AND
+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_members.html new file mode 100644 index 0000000..30095d8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmSearch8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch8.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodAddVariable2Adds a file or folder data card variable to this search.  
 MethodBeginANDBegins boolean AND operation.  
 MethodBeginORBegins boolean OR operation.  
 MethodEndANDEnds boolean AND operation.  
 MethodEndOREnds boolean OR operation.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_methods.html new file mode 100644 index 0000000..869fd36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmSearch8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch8 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodAddVariable2Adds a file or folder data card variable to this search.  
 MethodBeginANDBegins boolean AND operation.  
 MethodBeginORBegins boolean OR operation.  
 MethodEndANDEnds boolean AND operation.  
 MethodEndOREnds boolean OR operation.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~AddVariable2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~AddVariable2.html new file mode 100644 index 0000000..bccc9f6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~AddVariable2.html @@ -0,0 +1,185 @@ + + + + + + AddVariable2 Method (IEdmSearch8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddVariable2 Method (IEdmSearch8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch8 Interface + : AddVariable2 Method (IEdmSearch8)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
ID or name of variable for which to search
+
+
+
poValue
+
Value or regular expression for which to search (see Remarks)
+
+
+
lEdmVarOp
+
Operator to apply to poValue as defined in EdmVarOp (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds a file or folder data card variable to this search. + + +

Syntax

Visual Basic 
Sub AddVariable2( _
+   ByRef poIdOrName As System.Object, _
+   ByRef poValue As System.Object, _
+   Optional ByVal lEdmVarOp As System.Integer _
+) 
+
C# 
void AddVariable2( 
+   ref System.object poIdOrName,
+   ref System.object poValue,
+   System.int lEdmVarOp
+)
+
C++/CLI 
void AddVariable2( 
+&   System.Object^% poIdOrName,
+&   System.Object^% poValue,
+&   System.int lEdmVarOp
+) 
+ +

Parameters

poIdOrName
+
ID or name of variable for which to search
poValue
+
Value or regular expression for which to search (see Remarks)
lEdmVarOp
+
Operator to apply to poValue as defined in EdmVarOp (see Remarks)
+ +
+ + +

Example

See the IEdmSearch8 and IEdmSearch9 examples. +
+ +

Remarks

If the search object:

+ +
+
+
    +
  • % - any number of arbitrary characters +
  • _  - exactly one arbitrary character
+ +

The number of times you could call this method was limited to 4 in SOLIDWORKS PDM Professional Version 6.0 and earlier. This restriction was removed in Version 6.1.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_KEY_NOT_FOUND: The variable name was not recognized.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginAND.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginAND.html new file mode 100644 index 0000000..9ebc716 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginAND.html @@ -0,0 +1,141 @@ + + + + + + BeginAND Method (IEdmSearch8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BeginAND Method (IEdmSearch8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch8 Interface + : BeginAND Method (IEdmSearch8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Begins boolean AND operation. + + +

Syntax

Visual Basic 
Sub BeginAND() 
+
C# 
void BeginAND()
+
C++/CLI 
void BeginAND(); 
+ + + +
+ + +

Example

See the IEdmSearch8 examples. +
+ +

Remarks

After calling this method, call IEdmSearch8::AddVariable2 multiple times to further constrain the search.

+

Use IEdmSearch8::EndAND to end the AND operation.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginOR.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginOR.html new file mode 100644 index 0000000..34e8733 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~BeginOR.html @@ -0,0 +1,141 @@ + + + + + + BeginOR Method (IEdmSearch8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BeginOR Method (IEdmSearch8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch8 Interface + : BeginOR Method (IEdmSearch8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Begins boolean OR operation. + + +

Syntax

Visual Basic 
Sub BeginOR() 
+
C# 
void BeginOR()
+
C++/CLI 
void BeginOR(); 
+ + + +
+ + + + + +

Remarks

After calling this method, call IEdmSearch8::AddVariable2 multiple times to further constrain the search.

+

Use IEdmSearch8::EndOR to end the OR operation.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndAND.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndAND.html new file mode 100644 index 0000000..06c9762 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndAND.html @@ -0,0 +1,140 @@ + + + + + + EndAND Method (IEdmSearch8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EndAND Method (IEdmSearch8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch8 Interface + : EndAND Method (IEdmSearch8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Ends boolean AND operation. + + +

Syntax

Visual Basic 
Sub EndAND() 
+
C# 
void EndAND()
+
C++/CLI 
void EndAND(); 
+ + + +
+ + +

Example

See the IEdmSearch8 examples. +
+ +

Remarks

Use IEdmSearch8::BeginAND to begin the AND operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndOR.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndOR.html new file mode 100644 index 0000000..5636bba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch8~EndOR.html @@ -0,0 +1,140 @@ + + + + + + EndOR Method (IEdmSearch8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EndOR Method (IEdmSearch8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch8 Interface + : EndOR Method (IEdmSearch8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Ends boolean OR operation. + + +

Syntax

Visual Basic 
Sub EndOR() 
+
C# 
void EndOR()
+
C++/CLI 
void EndOR(); 
+ + + +
+ + + + + +

Remarks

Use IEdmSearch8::BeginOR to begin the OR operation.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9.html new file mode 100644 index 0000000..319b40a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9.html @@ -0,0 +1,155 @@ + + + + + + IEdmSearch9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearch9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to quickly find files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearch9 
+   Inherits IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8 
+
C# 
public interface IEdmSearch9 : IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8  
+
C++/CLI 
public interface class IEdmSearch9 : public IEdmSearch5IEdmSearch6IEdmSearch7IEdmSearch8  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • Extends IEdmSearch8 by providing the ability to peform a search for files and folders using logical operators, multi-variable conditions, and new search syntax. See Search Syntax.
+ +

In extended searches:

+
    +
  • All IEdmSearch* properties and method parameters support the new search syntax. +
  • IEdmSearch9::AddMultiVariableCondition can be used to specify new search syntax for two or more file or folder data card variables. +
  • If IEdmSearch5::GetFirstResult returns Nothing or null, it means that either: +
      +
    • no documents were found
+

        - or -

+
+
    +
  • there was a syntax error in one of the search syntax expressions. 
+
+

After calling IEdmSearch5::GetFirstResult, you must call IEdmSearch9::GetSyntaxErrors to see if there are any syntax errors. If not, then you can deduce that no documents were found.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_members.html new file mode 100644 index 0000000..8c4b6a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmSearch9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearch9.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddMultiVariableConditionAdds a multi-variable condition to this search.  
 MethodGetSyntaxErrorsGets syntax errors resulting from this search.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_methods.html new file mode 100644 index 0000000..906092e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSearch9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearch9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearch9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearch9 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddMultiVariableConditionAdds a multi-variable condition to this search.  
 MethodGetSyntaxErrorsGets syntax errors resulting from this search.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~AddMultiVariableCondition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~AddMultiVariableCondition.html new file mode 100644 index 0000000..11e1095 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~AddMultiVariableCondition.html @@ -0,0 +1,172 @@ + + + + + + AddMultiVariableCondition Method (IEdmSearch9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddMultiVariableCondition Method (IEdmSearch9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch9 Interface + : AddMultiVariableCondition Method (IEdmSearch9)
+ +
+ + + +
+ +
+ + +
+
+
poVariableNames
+
Array of file or folder data card variable names (see Remarks)
+
+
+
bsCondition
+
Condition to apply to poVariableNames (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds a multi-variable condition to this search. + + +

Syntax

Visual Basic 
Sub AddMultiVariableCondition( _
+   ByVal poVariableNames() As System.String, _
+   ByVal bsCondition As System.String _
+) 
+
C# 
void AddMultiVariableCondition( 
+   System.string[] poVariableNames,
+   System.string bsCondition
+)
+
C++/CLI 
void AddMultiVariableCondition( 
+&   System.array<String^>^ poVariableNames,
+&   System.String^ bsCondition
+) 
+ +

Parameters

poVariableNames
+
Array of file or folder data card variable names (see Remarks)
bsCondition
+
Condition to apply to poVariableNames (see Remarks)
+ +
+ + +

Example

See the IEdmSearch9 examples. +
+ +

Remarks

Call this method before calling IEdmSearch5::GetFirstResult.

+

Specify poVariableNames and bsCondition using the basic syntax (single-value search logic rules) as defined in Search Syntax.

+

poVariableNames requires:

+
    +
  • \" to replace each " inside the variable name +
  • \\ to replace each \ inside the variable name +
  • " on both the left and right side of the variable name
+

poVariableNames supports:

+
    +
  • IDs in place of names +
  • 0 or "" to represent "any variable +
  • _Name to represent file/folder name
+

Syntactically incorrect elements in poVariableNames will generate an exception.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~GetSyntaxErrors.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~GetSyntaxErrors.html new file mode 100644 index 0000000..018fd3f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearch9~GetSyntaxErrors.html @@ -0,0 +1,148 @@ + + + + + + GetSyntaxErrors Method (IEdmSearch9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSyntaxErrors Method (IEdmSearch9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearch9 Interface + : GetSyntaxErrors Method (IEdmSearch9)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets syntax errors resulting from this search. + + +

Syntax

Visual Basic 
Function GetSyntaxErrors() As System.String()
+
C# 
System.string[] GetSyntaxErrors()
+
C++/CLI 
System.array<String^>^ GetSyntaxErrors(); 
+ + + +

Return Value

Array of localized syntax errors; Nothing or null if no errors
+ + +

Example

See the IEdmSearch9 examples. +
+ +

Remarks

This method returns errors only if the advanced specifier (@:) is specified at the beginning of search syntax conditions.

+

If IEdmSearch5::GetFirstResult returns Nothing or null it can mean either:

+
    +
  • the search found no documents
+

    - or -

+
    +
  • there were one or more search syntax errrors.
+

Call this method after IEdmSearch5::GetFirstResult to determine whether there are syntax errors. If this method returns Nothing or null, then you can assume that IEdmSearch5::GetFirstResult found no documents.

+

See Search Syntax.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5.html new file mode 100644 index 0000000..020a06f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5.html @@ -0,0 +1,153 @@ + + + + + + IEdmSearchResult5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearchResult5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a search result.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearchResult5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmSearchResult5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmSearchResult5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • inherits from IEdmObject5. +
  • is extended by IEdmSearchResult6 which provides the ability to perform favorite searches and get accurate sizes of very large files.
+

To use this interface:

+
    +
  1. Obtain an object for this interface by calling IEdmSearch5::GetFirstResult or IEdmSearch10::GetFirstFavoriteResult. +
  2. Determine the type of the result object by calling one of the inherited properties on the IEdmSearchResult5 object, ID or Name. +
  3. If the type of this search result is a: +
      +
    1. file, cast this interface's object to IEdmFile5.  +
    2. folder, cast this interface's object to IEdmFolder5
+

Accessors

IEdmSearch5::GetFirstResult

+

IEdmSearch5::GetNextResult

+

IEdmSearch10::GetFirstFavoriteResult

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_members.html new file mode 100644 index 0000000..6e4cf66 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_members.html @@ -0,0 +1,120 @@ + + + + + + IEdmSearchResult5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult5 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearchResult5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearchResult5.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyFileDateGets the modification date of this search result.  
 PropertyFileSizeGets the size of this search result.  
 PropertyLockedByUserIDGets the ID of the user who has the file checked out.  
 PropertyLockedByUserNameGets the name of the user who has the file checked out.  
 PropertyLockedOnComputerGets the name of the computer to which the file is checked out.  
 PropertyLockPathGets the full path where the file is checked out.  
 PropertyParentFolderIDGets the ID of the folder where the file or folder is found.  
 PropertyPathGets the full path to the file or folder.  
 PropertyStateNameGets the name of the file's workflow state.  
 PropertyVersionGets the file's current version number.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_properties.html new file mode 100644 index 0000000..e459a73 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5_properties.html @@ -0,0 +1,116 @@ + + + + + + IEdmSearchResult5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearchResult5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearchResult5 members.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyFileDateGets the modification date of this search result.  
 PropertyFileSizeGets the size of this search result.  
 PropertyLockedByUserIDGets the ID of the user who has the file checked out.  
 PropertyLockedByUserNameGets the name of the user who has the file checked out.  
 PropertyLockedOnComputerGets the name of the computer to which the file is checked out.  
 PropertyLockPathGets the full path where the file is checked out.  
 PropertyParentFolderIDGets the ID of the folder where the file or folder is found.  
 PropertyPathGets the full path to the file or folder.  
 PropertyStateNameGets the name of the file's workflow state.  
 PropertyVersionGets the file's current version number.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileDate.html new file mode 100644 index 0000000..ed5f772 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileDate.html @@ -0,0 +1,147 @@ + + + + + + FileDate Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileDate Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : FileDate Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the modification date of this search result. + + +

Syntax

Visual Basic 
ReadOnly Property FileDate As System.Object
+
C# 
System.object FileDate {get;}
+
C++/CLI 
property System.Object^ FileDate {
+   System.Object^ get();
+}
+ + + +

Property Value

Date of file; 0 for folders
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileSize.html new file mode 100644 index 0000000..8544205 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~FileSize.html @@ -0,0 +1,147 @@ + + + + + + FileSize Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileSize Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : FileSize Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the size of this search result. + + +

Syntax

Visual Basic 
ReadOnly Property FileSize As System.Integer
+
C# 
System.int FileSize {get;}
+
C++/CLI 
property System.int FileSize {
+   System.int get();
+}
+ + + +

Property Value

Size of the file; -1 for folders
+ + + + + +

Remarks

For very large file size search results, use IEdmSearchResult6::FileSize2.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockPath.html new file mode 100644 index 0000000..4482173 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockPath.html @@ -0,0 +1,147 @@ + + + + + + LockPath Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockPath Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : LockPath Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the full path where the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockPath As System.String
+
C# 
System.string LockPath {get;}
+
C++/CLI 
property System.String^ LockPath {
+   System.String^ get();
+}
+ + + +

Property Value

Full path where the file is checked out; "" for folders or if the file is not checked out
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserID.html new file mode 100644 index 0000000..8c9ccf9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserID.html @@ -0,0 +1,147 @@ + + + + + + LockedByUserID Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedByUserID Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : LockedByUserID Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who has the file checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedByUserID As System.Integer
+
C# 
System.int LockedByUserID {get;}
+
C++/CLI 
property System.int LockedByUserID {
+   System.int get();
+}
+ + + +

Property Value

ID of user who has file checked out; 1 if the file is not checked out
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserName.html new file mode 100644 index 0000000..a872ec8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedByUserName.html @@ -0,0 +1,147 @@ + + + + + + LockedByUserName Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedByUserName Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : LockedByUserName Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the user who has the file checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedByUserName As System.String
+
C# 
System.string LockedByUserName {get;}
+
C++/CLI 
property System.String^ LockedByUserName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of user who has the file checked out
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedOnComputer.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedOnComputer.html new file mode 100644 index 0000000..fa4ef2d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~LockedOnComputer.html @@ -0,0 +1,147 @@ + + + + + + LockedOnComputer Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LockedOnComputer Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : LockedOnComputer Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the computer to which the file is checked out. + + +

Syntax

Visual Basic 
ReadOnly Property LockedOnComputer As System.String
+
C# 
System.string LockedOnComputer {get;}
+
C++/CLI 
property System.String^ LockedOnComputer {
+   System.String^ get();
+}
+ + + +

Property Value

Name of computer to which the file is checked out
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~ParentFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~ParentFolderID.html new file mode 100644 index 0000000..72f5535 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~ParentFolderID.html @@ -0,0 +1,147 @@ + + + + + + ParentFolderID Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ParentFolderID Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : ParentFolderID Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the folder where the file or folder is found. + + +

Syntax

Visual Basic 
ReadOnly Property ParentFolderID As System.Integer
+
C# 
System.int ParentFolderID {get;}
+
C++/CLI 
property System.int ParentFolderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the folder where the file or folder is found; 0 for the vault root folder
+ + +

Example

See the examples in IEdmSearchResult5. +
+ + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Path.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Path.html new file mode 100644 index 0000000..f4859fe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Path.html @@ -0,0 +1,147 @@ + + + + + + Path Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Path Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : Path Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the full path to the file or folder. + + +

Syntax

Visual Basic 
ReadOnly Property Path As System.String
+
C# 
System.string Path {get;}
+
C++/CLI 
property System.String^ Path {
+   System.String^ get();
+}
+ + + +

Property Value

Full path the file or folder
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~StateName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~StateName.html new file mode 100644 index 0000000..f0821b9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~StateName.html @@ -0,0 +1,147 @@ + + + + + + StateName Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
StateName Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : StateName Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the file's workflow state. + + +

Syntax

Visual Basic 
ReadOnly Property StateName As System.String
+
C# 
System.string StateName {get;}
+
C++/CLI 
property System.String^ StateName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the file's workflow state
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Version.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Version.html new file mode 100644 index 0000000..c64a368 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult5~Version.html @@ -0,0 +1,147 @@ + + + + + + Version Property (IEdmSearchResult5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Version Property (IEdmSearchResult5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult5 Interface + : Version Property (IEdmSearchResult5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file's current version number. + + +

Syntax

Visual Basic 
ReadOnly Property Version As System.Integer
+
C# 
System.int Version {get;}
+
C++/CLI 
property System.int Version {
+   System.int get();
+}
+ + + +

Property Value

File's current version number
+ + +

Example

See the examples in IEdmSearchResult5. +
+ + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6.html new file mode 100644 index 0000000..f8ea82b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6.html @@ -0,0 +1,145 @@ + + + + + + IEdmSearchResult6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSearchResult6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a search result.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSearchResult6 
+   Inherits IEdmObject5IEdmSearchResult5 
+
C# 
public interface IEdmSearchResult6 : IEdmObject5IEdmSearchResult5  
+
C++/CLI 
public interface class IEdmSearchResult6 : public IEdmObject5IEdmSearchResult5  
+
+ +

Example

See the IEdmSearch10 examples. +
+ +

Remarks

This interface extends IEdmSearchResult5.

+

To use this interface:

+
    +
  1. Call IEdmSearch10::GetFirstFavoriteResult, specifying a favorite search name and whether to get search result custom column information. +
  2. Determine the type of the search result returned in step 1 by inspecting ObjectType. (Becaue IEdmSearchResult5 inherits from IEdmObject5, you can simply call IEdmSearchResult5::ObjectType.) +
  3. If the type of this search result is an: +
      +
    1. EdmObjectType.EdmObject_File, cast the search result object to IEdmFile5.  +
    2. EdmObjectType.EdmObject_Folder, cast the search result object to IEdmFolder5
    +
  4. Cast the search result object obtained in step 1 to an IEdmSearchResult6 object. Call IEdmSearchResult6::GetCustomColumnsInfo and IEdmSearchResult6::GetCustomColumnValues to obtain custom column information for the search result listing.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_members.html new file mode 100644 index 0000000..7a26a36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmSearchResult6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult6 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearchResult6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSearchResult6.

+

Public Properties

+ +
 NameDescription
 PropertyFileSize2Gets the size of this very large search result file.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetCustomColumnsInfoGets the custom column headers for this favorite search result.  
 MethodGetCustomColumnValuesGets the custom column values returned in this favorite search result.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_methods.html new file mode 100644 index 0000000..4571ff1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSearchResult6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearchResult6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearchResult6 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetCustomColumnsInfoGets the custom column headers for this favorite search result.  
 MethodGetCustomColumnValuesGets the custom column values returned in this favorite search result.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_properties.html new file mode 100644 index 0000000..f337159 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmSearchResult6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSearchResult6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSearchResult6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSearchResult6 members.

+

Public Properties

+ +
 NameDescription
 PropertyFileSize2Gets the size of this very large search result file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~FileSize2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~FileSize2.html new file mode 100644 index 0000000..b2b9998 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~FileSize2.html @@ -0,0 +1,148 @@ + + + + + + FileSize2 Property (IEdmSearchResult6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileSize2 Property (IEdmSearchResult6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult6 Interface + : FileSize2 Property (IEdmSearchResult6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the size of this very large search result file. + + +

Syntax

Visual Basic 
ReadOnly Property FileSize2 As System.Long
+
C# 
System.long FileSize2 {get;}
+
C++/CLI 
property System.int64 FileSize2 {
+   System.int64 get();
+}
+ + + +

Property Value

64-bit file size
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnValues.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnValues.html new file mode 100644 index 0000000..ae8fc5b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnValues.html @@ -0,0 +1,162 @@ + + + + + + GetCustomColumnValues Method (IEdmSearchResult6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCustomColumnValues Method (IEdmSearchResult6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult6 Interface + : GetCustomColumnValues Method (IEdmSearchResult6)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetColValues
+
Array of string values (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the custom column values returned in this favorite search result. + + +

Syntax

Visual Basic 
Sub GetCustomColumnValues( _
+   ByRef ppoRetColValues() As System.String _
+) 
+
C# 
void GetCustomColumnValues( 
+   out System.string[] ppoRetColValues
+)
+
C++/CLI 
void GetCustomColumnValues( 
+&   [Out] System.array<String^>^ ppoRetColValues
+) 
+ +

Parameters

ppoRetColValues
+
Array of string values (see Remarks)
+ +
+ + +

Example

See the IEdmSearch10 examples. +
+ +

Remarks

ppoRetColValues is not null only for favorite search results that show custom columns.

+

If the favorite search result:

+
    +
  • Does not have custom columns, 
+ + +

then ppoRetColValues is null.

+

The ppoRetColValues array elements map to the fields in the EdmListCol structures in the array (ppoRetColsInfo) that is returned by IEdmSearchResult6::GetCustomColumnsInfo as follows:

+

size_of_ppoRetColValues = (size_of_ppoRetColsInfo) * (6 EdmListCol fields)

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnsInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnsInfo.html new file mode 100644 index 0000000..6d57f7c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSearchResult6~GetCustomColumnsInfo.html @@ -0,0 +1,162 @@ + + + + + + GetCustomColumnsInfo Method (IEdmSearchResult6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCustomColumnsInfo Method (IEdmSearchResult6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSearchResult6 Interface + : GetCustomColumnsInfo Method (IEdmSearchResult6)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetColsInfo
+
Array of EdmListCol structures (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the custom column headers for this favorite search result. + + +

Syntax

Visual Basic 
Sub GetCustomColumnsInfo( _
+   ByRef ppoRetColsInfo() As EdmListCol _
+) 
+
C# 
void GetCustomColumnsInfo( 
+   out EdmListCol[] ppoRetColsInfo
+)
+
C++/CLI 
void GetCustomColumnsInfo( 
+&   [Out] array<EdmListCol>^ ppoRetColsInfo
+) 
+ +

Parameters

ppoRetColsInfo
+
Array of EdmListCol structures (see Remarks)
+ +
+ + +

Example

See the IEdmSearch10 examples. +
+ +

Remarks

ppoRetColsInfo is not null only for favorite search results that show custom columns.

+

If the favorite search result:

+
    +
  • Does not have custom columns, 
+ + +

then ppoRetColsInfo is null.

+

The six fields in each structure returned in the ppoRetColsInfo array map to the elements in the array (ppoRetColValues) returned by IEdmSearchResult6::GetCustomColumnValues as follows:

+

size_of_ppoRetColValues = (size_of_ppoRetColsInfo) * (6 EdmListCol fields)

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2021
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5.html new file mode 100644 index 0000000..3b9f137 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5.html @@ -0,0 +1,140 @@ + + + + + + IEdmSelectionList5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSelectionList5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a list of files or folders.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSelectionList5 
+
C# 
public interface IEdmSelectionList5 
+
C++/CLI 
public interface class IEdmSelectionList5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_members.html new file mode 100644 index 0000000..16f0df2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmSelectionList5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSelectionList5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSelectionList5.

+

Public Properties

+ + + +
 NameDescription
 PropertyAllInSameFolderGets whether all of the items in this list are located in the same parent folder.  
 PropertyCountGets the number of items in this list.  
 PropertyIsEmptyGets whether this list is empty.  
Top
+ +

Public Methods

+ + + +
 NameDescription
 MethodAddTailObsolete. Superseded by IEdmSelectionList6::AddTail2.  
 MethodGetHeadPositionStarts an enumeration of the items in this list.  
 MethodGetNextObsolete. Superseded by IEdmSelectionList6::GetNext2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_methods.html new file mode 100644 index 0000000..c3f9046 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmSelectionList5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSelectionList5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSelectionList5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddTailObsolete. Superseded by IEdmSelectionList6::AddTail2.  
 MethodGetHeadPositionStarts an enumeration of the items in this list.  
 MethodGetNextObsolete. Superseded by IEdmSelectionList6::GetNext2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_properties.html new file mode 100644 index 0000000..3672b48 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmSelectionList5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSelectionList5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSelectionList5 members.

+

Public Properties

+ + + +
 NameDescription
 PropertyAllInSameFolderGets whether all of the items in this list are located in the same parent folder.  
 PropertyCountGets the number of items in this list.  
 PropertyIsEmptyGets whether this list is empty.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AddTail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AddTail.html new file mode 100644 index 0000000..43fa59a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AddTail.html @@ -0,0 +1,170 @@ + + + + + + AddTail Method (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddTail Method (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : AddTail Method (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+
bsItemName
+
File or folder name
+
+
+
lItemID
+
ID of file or folder
+
+
+
lParentFolderID
+
ID of parent folder of file or folder
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmSelectionList6::AddTail2. + + +

Syntax

Visual Basic 
Sub AddTail( _
+   ByVal bsItemName As System.String, _
+   ByVal lItemID As System.Integer, _
+   ByVal lParentFolderID As System.Integer _
+) 
+
C# 
void AddTail( 
+   System.string bsItemName,
+   System.int lItemID,
+   System.int lParentFolderID
+)
+
C++/CLI 
void AddTail( 
+&   System.String^ bsItemName,
+&   System.int lItemID,
+&   System.int lParentFolderID
+) 
+ +

Parameters

bsItemName
+
File or folder name
lItemID
+
ID of file or folder
lParentFolderID
+
ID of parent folder of file or folder
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AllInSameFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AllInSameFolder.html new file mode 100644 index 0000000..f597c47 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~AllInSameFolder.html @@ -0,0 +1,147 @@ + + + + + + AllInSameFolder Property (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AllInSameFolder Property (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : AllInSameFolder Property (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether all of the items in this list are located in the same parent folder. + + +

Syntax

Visual Basic 
ReadOnly Property AllInSameFolder As System.Boolean
+
C# 
System.bool AllInSameFolder {get;}
+
C++/CLI 
property System.bool AllInSameFolder {
+   System.bool get();
+}
+ + + +

Property Value

True if all items in this list are located in the same parent folder, false if not
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~Count.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~Count.html new file mode 100644 index 0000000..696fce0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~Count.html @@ -0,0 +1,147 @@ + + + + + + Count Property (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Count Property (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : Count Property (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of items in this list. + + +

Syntax

Visual Basic 
ReadOnly Property Count As System.Integer
+
C# 
System.int Count {get;}
+
C++/CLI 
property System.int Count {
+   System.int get();
+}
+ + + +

Property Value

Number of items in this list
+ + +

Example

See the IEdmSelectionList5 examples. +
+ + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetHeadPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetHeadPosition.html new file mode 100644 index 0000000..0af5d33 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetHeadPosition.html @@ -0,0 +1,144 @@ + + + + + + GetHeadPosition Method (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetHeadPosition Method (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : GetHeadPosition Method (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the items in this list. + + +

Syntax

Visual Basic 
Function GetHeadPosition() As IEdmPos5
+
C# 
IEdmPos5 GetHeadPosition()
+
C++/CLI 
IEdmPos5^ GetHeadPosition(); 
+ + + +

Return Value

IEdmPos5; position of first element in this list
+ + +

Example

See the IEdmSelectionList5 examples. +
+ +

Remarks

After calling this method, pass the position of the first item to IEdmSelectionList5::GetNext to get the first item in this list. Then call IEdmSelectionList5::GetNext repeatedly to get the rest of the items in this list.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetNext.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetNext.html new file mode 100644 index 0000000..d7d119f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~GetNext.html @@ -0,0 +1,183 @@ + + + + + + GetNext Method (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNext Method (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : GetNext Method (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the item to get (see Remarks)
+
+
+
pbsItemName
+
Name of the file or folder (see Remarks)
+
+
+
plItemID
+
ID of the file or folder
+
+
+
plParentFolderID
+
ID of the parent folder of the file or folder
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmSelectionList6::GetNext2. + + +

Syntax

Visual Basic 
Sub GetNext( _
+   ByVal poPos As IEdmPos5, _
+   ByRef pbsItemName As System.String, _
+   ByRef plItemID As System.Integer, _
+   ByRef plParentFolderID As System.Integer _
+) 
+
C# 
void GetNext( 
+   IEdmPos5 poPos,
+   out System.string pbsItemName,
+   out System.int plItemID,
+   out System.int plParentFolderID
+)
+
C++/CLI 
void GetNext( 
+&   IEdmPos5^ poPos,
+&   [Out] System.String^ pbsItemName,
+&   [Out] System.int plItemID,
+&   [Out] System.int plParentFolderID
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the item to get (see Remarks)
pbsItemName
+
Name of the file or folder (see Remarks)
plItemID
+
ID of the file or folder
plParentFolderID
+
ID of the parent folder of the file or folder
+ +
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first item, IEdmPos5. Call IEdmSelectionList5::GetHeadPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the items.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers must free the string returned in pbsItemName with a call to SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~IsEmpty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~IsEmpty.html new file mode 100644 index 0000000..da32a4c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList5~IsEmpty.html @@ -0,0 +1,147 @@ + + + + + + IsEmpty Property (IEdmSelectionList5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsEmpty Property (IEdmSelectionList5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList5 Interface + : IsEmpty Property (IEdmSelectionList5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this list is empty. + + +

Syntax

Visual Basic 
ReadOnly Property IsEmpty As System.Boolean
+
C# 
System.bool IsEmpty {get;}
+
C++/CLI 
property System.bool IsEmpty {
+   System.bool get();
+}
+ + + +

Property Value

True if this list is empty, false if not
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6.html new file mode 100644 index 0000000..0394ff7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6.html @@ -0,0 +1,137 @@ + + + + + + IEdmSelectionList6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSelectionList6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a list of objects of any EdmObjectType.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSelectionList6 
+   Inherits IEdmSelectionList5 
+
C# 
public interface IEdmSelectionList6 : IEdmSelectionList5  
+
C++/CLI 
public interface class IEdmSelectionList6 : public IEdmSelectionList5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmSelectionList5.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_members.html new file mode 100644 index 0000000..fba7f4d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmSelectionList6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSelectionList6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSelectionList6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddTail2Adds an item to the end of this list.  
 MethodGetNext2Gets the next item in this list.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_methods.html new file mode 100644 index 0000000..3065801 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSelectionList6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSelectionList6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSelectionList6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSelectionList6 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddTail2Adds an item to the end of this list.  
 MethodGetNext2Gets the next item in this list.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~AddTail2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~AddTail2.html new file mode 100644 index 0000000..a681d06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~AddTail2.html @@ -0,0 +1,155 @@ + + + + + + AddTail2 Method (IEdmSelectionList6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddTail2 Method (IEdmSelectionList6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList6 Interface + : AddTail2 Method (IEdmSelectionList6)
+ +
+ + + +
+ +
+ + +
+
+
poObject
+
EdmSelectionObject structure; describes the object to add to the end of the list
+
+ +
+ +
+ + +
+
+ Adds an item to the end of this list. + + +

Syntax

Visual Basic 
Sub AddTail2( _
+   ByRef poObject As EdmSelectionObject _
+) 
+
C# 
void AddTail2( 
+   ref EdmSelectionObject poObject
+)
+
C++/CLI 
void AddTail2( 
+&   EdmSelectionObject% poObject
+) 
+ +

Parameters

poObject
+
EdmSelectionObject structure; describes the object to add to the end of the list
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~GetNext2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~GetNext2.html new file mode 100644 index 0000000..d1fe5ad --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSelectionList6~GetNext2.html @@ -0,0 +1,173 @@ + + + + + + GetNext2 Method (IEdmSelectionList6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNext2 Method (IEdmSelectionList6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSelectionList6 Interface + : GetNext2 Method (IEdmSelectionList6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the item to get (see Remarks)
+
+
+
poSel
+
EdmSelectionObject structure
+
+ +
+ +
+ + +
+
+ Gets the next item in this list. + + +

Syntax

Visual Basic 
Sub GetNext2( _
+   ByVal poPos As IEdmPos5, _
+   ByRef poSel As EdmSelectionObject _
+) 
+
C# 
void GetNext2( 
+   IEdmPos5 poPos,
+   out EdmSelectionObject poSel
+)
+
C++/CLI 
void GetNext2( 
+&   IEdmPos5^ poPos,
+&   [Out] EdmSelectionObject poSel
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the item to get (see Remarks)
poSel
+
EdmSelectionObject structure
+ +
+ + +

Example

See the IEdmSelectionList5 examples. +
+ +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first item, IEdmPos5. Call IEdmSelectionList5::GetHeadPosition to obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the items.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers must free the object returned in poSel.

+

Note: Objects added with the now obsolete IEdmSelectionList5::AddTail are not completely defined. If you added an object using IEdmSelectionList5::AddTail, the EdmSelectionObject structure returned by this method contains the following:

+
    +
  • The meType member is always EdmObjectType.EdmObject_File. +
  • The mbsPath member contains only the file name provided as argument to IEdmSelectionList5::AddTail, not the entire path. +
  • The members mlGetVersion, mlLocalVersion, and mlLatestVersion are all -1.
+

To add completely defined objects to this list, call IEdmSelectionList6.AddTail2.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6.html new file mode 100644 index 0000000..813ca45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6.html @@ -0,0 +1,138 @@ + + + + + + IEdmSerNoGen6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Obsolete. Superseded by IEdmSerNoGen7.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSerNoGen6 
+
C# 
public interface IEdmSerNoGen6 
+
C++/CLI 
public interface class IEdmSerNoGen6 
+
+ + + + +

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_members.html new file mode 100644 index 0000000..fda2833 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmSerNoGen6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSerNoGen6.

+ + +

Public Methods

+ +
 NameDescription
 MethodGenerateSerNoObsolete. Superseded by IEdmSerNoGen7::AllocSerNoValue.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_methods.html new file mode 100644 index 0000000..d517734 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmSerNoGen6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSerNoGen6 members.

+

Public Methods

+ +
 NameDescription
 MethodGenerateSerNoObsolete. Superseded by IEdmSerNoGen7::AllocSerNoValue.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6~GenerateSerNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6~GenerateSerNo.html new file mode 100644 index 0000000..6c8aa61 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen6~GenerateSerNo.html @@ -0,0 +1,205 @@ + + + + + + GenerateSerNo Method (IEdmSerNoGen6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GenerateSerNo Method (IEdmSerNoGen6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoGen6 Interface + : GenerateSerNo Method (IEdmSerNoGen6)
+ +
+ + + +
+ +
+ + +
+
+
bsSerNoName
+
Name of the serial number generator to use to generate a new serial number (see Remarks)
+
+
+
lParentWnd
+
Parent window handle; passed to a serial number add-in, if it exists
+
+
+
bsFilePath
+
Path to the file for which to generate a serial number
+
+
+
lFolderID
+
ID of the file's parent folder
+
+
+
lFileID
+
ID of the file for which to generate a serial number
+
+
+
lCardID
+
ID of the data card in which the serial number is generated
+
+
+
lCardControlID
+
ID of the control for which to generate a serial number
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmSerNoGen7::AllocSerNoValue. + + +

Syntax

Visual Basic 
Function GenerateSerNo( _
+   ByVal bsSerNoName As System.String, _
+   Optional ByVal lParentWnd As System.Integer, _
+   Optional ByVal bsFilePath As System.String, _
+   Optional ByVal lFolderID As System.Integer, _
+   Optional ByVal lFileID As System.Integer, _
+   Optional ByVal lCardID As System.Integer, _
+   Optional ByVal lCardControlID As System.Integer _
+) As System.String
+
C# 
System.string GenerateSerNo( 
+   System.string bsSerNoName,
+   System.int lParentWnd,
+   System.string bsFilePath,
+   System.int lFolderID,
+   System.int lFileID,
+   System.int lCardID,
+   System.int lCardControlID
+)
+
C++/CLI 
System.String^ GenerateSerNo( 
+&   System.String^ bsSerNoName,
+&   System.int lParentWnd,
+&   System.String^ bsFilePath,
+&   System.int lFolderID,
+&   System.int lFileID,
+&   System.int lCardID,
+&   System.int lCardControlID
+) 
+ +

Parameters

bsSerNoName
+
Name of the serial number generator to use to generate a new serial number (see Remarks)
lParentWnd
+
Parent window handle; passed to a serial number add-in, if it exists
bsFilePath
+
Path to the file for which to generate a serial number
lFolderID
+
ID of the file's parent folder
lFileID
+
ID of the file for which to generate a serial number
lCardID
+
ID of the data card in which the serial number is generated
lCardControlID
+
ID of the control for which to generate a serial number
+ +

Return Value

Serial number value
+ + + + + +

Remarks

This method is superseded by IEdmSerNoGen7:AllocSerNoValue which provides the ability to push back serial numbers that you don't need using IEdmSerNoValue.

+

bsSerNoName is the name you specify in the SOLIDWORKS PDM Professional Administration tool when you create a serial number generator.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_SERIAL_NUMBER_NAME: The bsSerNoName argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7.html new file mode 100644 index 0000000..161a641 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7.html @@ -0,0 +1,141 @@ + + + + + + IEdmSerNoGen7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to manage serial numbers.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSerNoGen7 
+   Inherits IEdmSerNoGen6 
+
C# 
public interface IEdmSerNoGen7 : IEdmSerNoGen6  
+
C++/CLI 
public interface class IEdmSerNoGen7 : public IEdmSerNoGen6  
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_members.html new file mode 100644 index 0000000..88964bd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmSerNoGen7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSerNoGen7.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAllocSerNoValueGenerates a new serial number for the specified file, data card, or card control using the specified serial number generator.  
 MethodGetSerialNumberNamesGets the names of all of the serial number generators installed in the vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_methods.html new file mode 100644 index 0000000..6bfa157 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmSerNoGen7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSerNoGen7 members.

+

Public Methods

+ + +
 NameDescription
 MethodAllocSerNoValueGenerates a new serial number for the specified file, data card, or card control using the specified serial number generator.  
 MethodGetSerialNumberNamesGets the names of all of the serial number generators installed in the vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~AllocSerNoValue.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~AllocSerNoValue.html new file mode 100644 index 0000000..3777bc4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~AllocSerNoValue.html @@ -0,0 +1,207 @@ + + + + + + AllocSerNoValue Method (IEdmSerNoGen7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AllocSerNoValue Method (IEdmSerNoGen7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoGen7 Interface + : AllocSerNoValue Method (IEdmSerNoGen7)
+ +
+ + + +
+ +
+ + +
+
+
bsSerNoName
+
Name of the serial number generator to use to generate a new serial number (see Remarks)
+
+
+
lParentWnd
+
Parent window handle; passed to a serial number add-in, if it exists
+
+
+
bsFilePath
+
Path to the file for which to generate a serial number
+
+
+
lFolderID
+
ID of the file's parent folder
+
+
+
lFileID
+
ID of the file for which to generate a serial number
+
+
+
lCardID
+
ID of the data card for which to generate a serial number
+
+
+
lCardControlID
+
ID of the control for which to generate a serial number
+
+ +
+ +
+ + +
+
+ Generates a new serial number for the specified file, data card, or card control using the specified serial number generator. + + +

Syntax

Visual Basic 
Function AllocSerNoValue( _
+   ByVal bsSerNoName As System.String, _
+   Optional ByVal lParentWnd As System.Integer, _
+   Optional ByVal bsFilePath As System.String, _
+   Optional ByVal lFolderID As System.Integer, _
+   Optional ByVal lFileID As System.Integer, _
+   Optional ByVal lCardID As System.Integer, _
+   Optional ByVal lCardControlID As System.Integer _
+) As IEdmSerNoValue
+
C# 
IEdmSerNoValue AllocSerNoValue( 
+   System.string bsSerNoName,
+   System.int lParentWnd,
+   System.string bsFilePath,
+   System.int lFolderID,
+   System.int lFileID,
+   System.int lCardID,
+   System.int lCardControlID
+)
+
C++/CLI 
IEdmSerNoValue^ AllocSerNoValue( 
+&   System.String^ bsSerNoName,
+&   System.int lParentWnd,
+&   System.String^ bsFilePath,
+&   System.int lFolderID,
+&   System.int lFileID,
+&   System.int lCardID,
+&   System.int lCardControlID
+) 
+ +

Parameters

bsSerNoName
+
Name of the serial number generator to use to generate a new serial number (see Remarks)
lParentWnd
+
Parent window handle; passed to a serial number add-in, if it exists
bsFilePath
+
Path to the file for which to generate a serial number
lFolderID
+
ID of the file's parent folder
lFileID
+
ID of the file for which to generate a serial number
lCardID
+
ID of the data card for which to generate a serial number
lCardControlID
+
ID of the control for which to generate a serial number
+ +

Return Value

IEdmSerNoValue
+ + + + +

Example

+

Remarks

The difference between this method and the now obsolete IEdmSerNoGen6::GenerateSerNo method is that this method returns an IEdmSerNoValue interface instead of a string. IEdmSerNoValue::Rollback allows you to return generated numbers that you can not use. This helps to avoid gaps between serial numbers.

+

bsSerNoName is the name you specify in the SOLIDWORKS PDM Professional Administration tool when you create a serial number generator.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_SERIAL_NUMBER_NAME: The bsSerNoName argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~GetSerialNumberNames.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~GetSerialNumberNames.html new file mode 100644 index 0000000..9d8b273 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen7~GetSerialNumberNames.html @@ -0,0 +1,154 @@ + + + + + + GetSerialNumberNames Method (IEdmSerNoGen7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSerialNumberNames Method (IEdmSerNoGen7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoGen7 Interface + : GetSerialNumberNames Method (IEdmSerNoGen7)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetNames
+
Array of serial number generator names
+
+ +
+ +
+ + +
+
+ Gets the names of all of the serial number generators installed in the vault. + + +

Syntax

Visual Basic 
Sub GetSerialNumberNames( _
+   ByRef ppoRetNames() As System.String _
+) 
+
C# 
void GetSerialNumberNames( 
+   out System.string[] ppoRetNames
+)
+
C++/CLI 
void GetSerialNumberNames( 
+&   [Out] System.array<String^>^ ppoRetNames
+) 
+ +

Parameters

ppoRetNames
+
Array of serial number generator names
+ +
+ + + + +

Example

+   + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8.html new file mode 100644 index 0000000..23f960f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8.html @@ -0,0 +1,136 @@ + + + + + + IEdmSerNoGen8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to manage serial numbers.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSerNoGen8 
+   Inherits IEdmSerNoGen6IEdmSerNoGen7 
+
C# 
public interface IEdmSerNoGen8 : IEdmSerNoGen6IEdmSerNoGen7  
+
C++/CLI 
public interface class IEdmSerNoGen8 : public IEdmSerNoGen6IEdmSerNoGen7  
+
+ + + + +

Remarks

This interface extends IEdmSerNoGen7 by providing the ability to set the next counter value for serial numbers.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_members.html new file mode 100644 index 0000000..4ca9322 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmSerNoGen8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSerNoGen8.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetSerNoNextCounterValSets the next counter value for the specified serial number generator.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_methods.html new file mode 100644 index 0000000..232cd3c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmSerNoGen8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoGen8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoGen8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSerNoGen8 members.

+

Public Methods

+ +
 NameDescription
 MethodSetSerNoNextCounterValSets the next counter value for the specified serial number generator.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8~SetSerNoNextCounterVal.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8~SetSerNoNextCounterVal.html new file mode 100644 index 0000000..defcce9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoGen8~SetSerNoNextCounterVal.html @@ -0,0 +1,239 @@ + + + + + + SetSerNoNextCounterVal Method (IEdmSerNoGen8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetSerNoNextCounterVal Method (IEdmSerNoGen8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoGen8 Interface + : SetSerNoNextCounterVal Method (IEdmSerNoGen8)
+ +
+ + + +
+ +
+ + +
+
+
bsSerNoName
+
Name of serial number generator
+
+
+
lNextCounterValue
+
Next value
+
+ +
+ +
+ + +
+
+ Sets the next counter value for the specified serial number generator. + + +

Syntax

Visual Basic 
Sub SetSerNoNextCounterVal( _
+   ByVal bsSerNoName As System.String, _
+   ByVal lNextCounterValue As System.Integer _
+) 
+
C# 
void SetSerNoNextCounterVal( 
+   System.string bsSerNoName,
+   System.int lNextCounterValue
+)
+
C++/CLI 
void SetSerNoNextCounterVal( 
+&   System.String^ bsSerNoName,
+&   System.int lNextCounterValue
+) 
+ +

Parameters

bsSerNoName
+
Name of serial number generator
lNextCounterValue
+
Next value
+ +
+ + +

Example

//Preconditions:

+

//1. Create a C# console application in Visual Studio.

+

//2. Add references EPDM.Interop.epdm and EPDM.Interop.EPDMResultCode to the project.

+

//3. Copy the code below to Program.cs.

+

//4. Change the namespace to match your project name.

+

//5. Add a serial number generator called “NSN†using the Admin tool.

+

//6. Ensure that parameters of Login match your vault.

+

//

+

//Postconditions:

+

//1. Open the Admin Tool.

+

//2. Observe that the next counter value for the NSN serial number generator is 9.

+

 

+

//Program.cs:

+

+

using System;

+

using System.Linq;

+

using System.Text;

+

using EPDM.Interop.epdm;

+

using EPDM.Interop.EPDMResultCode;

+

+

namespace project_name

+

{

+

  class Program

+

  {

+

+

    static string userName = "Admin";

+

    static string vaultName = "JEB12";

+

    static string serNoGenName = "NSN";

+

    static int newCounterValue = 9;

+

+

    static void Main(string[] args)

+

    {

+

      StringBuilder sb = new StringBuilder();

+

      try

+

      {

+

        sb.AppendFormat("UserName: {0}", userName).AppendLine();

+

        sb.AppendFormat("VaultName: {0}", vaultName).AppendLine();

+

+

        IEdmVault11 vault = (IEdmVault11)(new EdmVault5());

+

        if (!vault.IsLoggedIn)

+

          vault.Login(userName, "password", vaultName);

+

+

        IEdmSerNoGen7 serNoGen7 = (IEdmSerNoGen7)vault.CreateUtility(EdmUtility.EdmUtil_SerNoGen);

+

        string[] names = { };

+

        serNoGen7.GetSerialNumberNames(out names);

+

        sb.AppendFormat("Serial number generators present in vault: {0}", String.Join(",", names)).AppendLine();

+

        if (names.Contains(serNoGenName))

+

        {

+

          IEdmSerNoGen8 serNoGen8 = (IEdmSerNoGen8)serNoGen7;

+

          serNoGen8.SetSerNoNextCounterVal(serNoGenName, newCounterValue);

+

          sb.AppendFormat("Serial number generator's {0} next counter value set to {1}", serNoGenName, newCounterValue).AppendLine();

+

        }

+

        else

+

        {

+

          sb.AppendFormat("There is no {0} serial number generator present in vault", serNoGenName).AppendLine();

+

        }

+

      }

+

      catch (System.Runtime.InteropServices.COMException ex)

+

      {

+

        var errorType = typeof(EdmResultErrorCodes_e);

+

        if (Enum.IsDefined(errorType, ex.ErrorCode))

+

          sb.AppendFormat("Edm error occurred: {0}", Enum.GetName(errorType, ex.ErrorCode)).AppendLine();

+

        else

+

          sb.AppendLine("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);

+

      }

+

      catch (Exception ex)

+

      {

+

        sb.AppendFormat("Error occurred: {0}", ex.Message).AppendLine();

+

      }

+

+

      Console.WriteLine(sb.ToString());

+

      Console.WriteLine("Please press any key to exit");

+

      Console.ReadKey();

+

    }

+

  }

+

}

+
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_SERIAL_NUMBER_NAME is returned if bsSerNoName is incorrect. +
  • E_EDM_PERMISSION_DENIED is returned if user does not have "Can update serial numbers" permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2022
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue.html new file mode 100644 index 0000000..2efebc1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue.html @@ -0,0 +1,137 @@ + + + + + + IEdmSerNoValue Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoValue Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmSerNoValue Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the serial number generated by IEdmSerNoGen7::AllocSerNoValue.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmSerNoValue 
+
C# 
public interface IEdmSerNoValue 
+
C++/CLI 
public interface class IEdmSerNoValue 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_members.html new file mode 100644 index 0000000..623bbbc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmSerNoValue Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoValue Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoValue Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmSerNoValue.

+

Public Properties

+ +
 NameDescription
 PropertyValueGets the allocated serial number value.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodRollbackReturns the allocated serial number to the serial number generator, so it can be allocated in the future.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_methods.html new file mode 100644 index 0000000..d4971b0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmSerNoValue Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoValue Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoValue Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSerNoValue members.

+

Public Methods

+ +
 NameDescription
 MethodRollbackReturns the allocated serial number to the serial number generator, so it can be allocated in the future.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_properties.html new file mode 100644 index 0000000..36cfe9f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmSerNoValue Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmSerNoValue Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmSerNoValue Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmSerNoValue members.

+

Public Properties

+ +
 NameDescription
 PropertyValueGets the allocated serial number value.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Rollback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Rollback.html new file mode 100644 index 0000000..d37a6a1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Rollback.html @@ -0,0 +1,143 @@ + + + + + + Rollback Method (IEdmSerNoValue) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback Method (IEdmSerNoValue)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoValue Interface + : Rollback Method (IEdmSerNoValue)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Returns the allocated serial number to the serial number generator, so it can be allocated in the future. + + +

Syntax

Visual Basic 
Sub Rollback() 
+
C# 
void Rollback()
+
C++/CLI 
void Rollback(); 
+ + + +
+ + + + + +

Remarks

This method allows you to return generated numbers that you can not use. This helps to avoid gaps between serial numbers.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Value.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Value.html new file mode 100644 index 0000000..7198e83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmSerNoValue~Value.html @@ -0,0 +1,149 @@ + + + + + + Value Property (IEdmSerNoValue) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Value Property (IEdmSerNoValue)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmSerNoValue Interface + : Value Property (IEdmSerNoValue)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the allocated serial number value. + + +

Syntax

Visual Basic 
ReadOnly Property Value As System.String
+
C# 
System.string Value {get;}
+
C++/CLI 
property System.String^ Value {
+   System.String^ get();
+}
+ + + +

Property Value

Serial number value
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5.html new file mode 100644 index 0000000..de5cf3a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5.html @@ -0,0 +1,148 @@ + + + + + + IEdmState5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmState5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow state.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmState5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmState5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmState5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_members.html new file mode 100644 index 0000000..e9a8666 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_members.html @@ -0,0 +1,118 @@ + + + + + + IEdmState5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmState5.

+

Public Properties

+ +
 NameDescription
 PropertyIconNameGets the name of the icon used in the workflow graph.  
Top
+ +

Public Methods

+ + + + + +
 NameDescription
 MethodGetFirstFilePositionStarts an enumeration of all the files in this workflow state.  
 MethodGetFirstTransitionPositionStarts an enumeration of the transitions to and from this workflow state.  
 MethodGetNextFileGets the next file in this workflow state.  
 MethodGetNextTransitionGets the next transition to or from this workflow state.  
 MethodGetTransitionObsolete. Gets a transition from this workflow state by name.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_methods.html new file mode 100644 index 0000000..7db072b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmState5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmState5 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodGetFirstFilePositionStarts an enumeration of all the files in this workflow state.  
 MethodGetFirstTransitionPositionStarts an enumeration of the transitions to and from this workflow state.  
 MethodGetNextFileGets the next file in this workflow state.  
 MethodGetNextTransitionGets the next transition to or from this workflow state.  
 MethodGetTransitionObsolete. Gets a transition from this workflow state by name.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_properties.html new file mode 100644 index 0000000..011a7e7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmState5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmState5 members.

+

Public Properties

+ +
 NameDescription
 PropertyIconNameGets the name of the icon used in the workflow graph.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstFilePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstFilePosition.html new file mode 100644 index 0000000..320bd0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstFilePosition.html @@ -0,0 +1,147 @@ + + + + + + GetFirstFilePosition Method (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstFilePosition Method (IEdmState5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : GetFirstFilePosition Method (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of all the files in this workflow state. + + +

Syntax

Visual Basic 
Function GetFirstFilePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstFilePosition()
+
C++/CLI 
IEdmPos5^ GetFirstFilePosition(); 
+ + + +

Return Value

IEdmPos5; position in the list of the first file in this workflow state (see Remarks)
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first file in this workflow state to IEdmState5::GetNextFile to get the first file in this workflow state. Then call IEdmState5::GetNextFile repeatedly to get the rest of the files in this workflow state.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Use IEdmSearch5 to perform more elaborate searches.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstTransitionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstTransitionPosition.html new file mode 100644 index 0000000..5716277 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetFirstTransitionPosition.html @@ -0,0 +1,158 @@ + + + + + + GetFirstTransitionPosition Method (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstTransitionPosition Method (IEdmState5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : GetFirstTransitionPosition Method (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+
bExitTransitions
+
Optionally true to enumerate the transitions from this workflow state, false to enumerate the transition to this workflow state; default is true
+
+ +
+ +
+ + +
+
+ Starts an enumeration of the transitions to and from this workflow state. + + +

Syntax

Visual Basic 
Function GetFirstTransitionPosition( _
+   Optional ByVal bExitTransitions As System.Boolean _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstTransitionPosition( 
+   System.bool bExitTransitions
+)
+
C++/CLI 
IEdmPos5^ GetFirstTransitionPosition( 
+&   System.bool bExitTransitions
+) 
+ +

Parameters

bExitTransitions
+
Optionally true to enumerate the transitions from this workflow state, false to enumerate the transition to this workflow state; default is true
+ +

Return Value

IEdmPos5; position in the list of the first transition to or from this workflow state (see Remarks)
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first transition to or from this workflow state to IEdmState5::GetNextTransition to get the first transition to or from this workflow state. Then call IEdmState5::GetNextTransition repeatedly to get the rest of the transitions to and from this workflow state.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextFile.html new file mode 100644 index 0000000..d3d5b0e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextFile.html @@ -0,0 +1,161 @@ + + + + + + GetNextFile Method (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextFile Method (IEdmState5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : GetNextFile Method (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+
poPosition
+
IEdmPos5; position of the next file in this workflow state (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next file in this workflow state. + + +

Syntax

Visual Basic 
Function GetNextFile( _
+   ByVal poPosition As IEdmPos5 _
+) As IEdmFile5
+
C# 
IEdmFile5 GetNextFile( 
+   IEdmPos5 poPosition
+)
+
C++/CLI 
IEdmFile5^ GetNextFile( 
+&   IEdmPos5^ poPosition
+) 
+ +

Parameters

poPosition
+
IEdmPos5; position of the next file in this workflow state (see Remarks)
+ +

Return Value

IEdmFile5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first file, IEdmPos5. Call IEdmState5::GetFirstFilePosition to start an enumeration and obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the files.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers must free the interface returned, IEdmFile5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextTransition.html new file mode 100644 index 0000000..ead5c18 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetNextTransition.html @@ -0,0 +1,161 @@ + + + + + + GetNextTransition Method (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextTransition Method (IEdmState5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : GetNextTransition Method (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+
poPosition
+
IEdmPos5; position of the next transition to or from this workflow state (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next transition to or from this workflow state. + + +

Syntax

Visual Basic 
Function GetNextTransition( _
+   ByVal poPosition As IEdmPos5 _
+) As IEdmTransition5
+
C# 
IEdmTransition5 GetNextTransition( 
+   IEdmPos5 poPosition
+)
+
C++/CLI 
IEdmTransition5^ GetNextTransition( 
+&   IEdmPos5^ poPosition
+) 
+ +

Parameters

poPosition
+
IEdmPos5; position of the next transition to or from this workflow state (see Remarks)
+ +

Return Value

IEdmTransition5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first transition to this workflow state, IEdmPos5. Call IEdmState5::GetFirstTransitionPosition to start an enumeration and obtain IEdmPos5, the position of the first transition.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the transitions to this workflow state.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers must free the interface returned, IEdmFile5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetTransition.html new file mode 100644 index 0000000..023996d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~GetTransition.html @@ -0,0 +1,158 @@ + + + + + + GetTransition Method (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTransition Method (IEdmState5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : GetTransition Method (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
Name of transition from this workflow state
+
+ +
+ +
+ + +
+
+ Obsolete. Gets a transition from this workflow state by name. + + +

Syntax

Visual Basic 
Function GetTransition( _
+   ByVal bsName As System.String _
+) As IEdmTransition5
+
C# 
IEdmTransition5 GetTransition( 
+   System.string bsName
+)
+
C++/CLI 
IEdmTransition5^ GetTransition( 
+&   System.String^ bsName
+) 
+ +

Parameters

bsName
+
Name of transition from this workflow state
+ +

Return Value

IEdmTransition5; Null if no transition for bsName is found
+ + + + + +

Remarks

This method is not supported in SOLIDWORKS PDM Professional Version 6.0 and later, because workflows in SOLIDWORKS PDM Professional 6.0 may contain several transitions with the same name. In SOLIDWORKS PDM Professional Version 5.3, the user was forced to create transitions with unique names in the workflow editor. It is, therefore, no longer possible to uniquely identify transitions by name.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmTransition5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The transition is not found. +
  • E_NOTIMPL: This method is obsolete as of SOLIDWORKS PDM Professional Version 6.0.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~IconName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~IconName.html new file mode 100644 index 0000000..9b659fa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState5~IconName.html @@ -0,0 +1,147 @@ + + + + + + IconName Property (IEdmState5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IconName Property (IEdmState5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState5 Interface + : IconName Property (IEdmState5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the icon used in the workflow graph. + + +

Syntax

Visual Basic 
ReadOnly Property IconName As System.String
+
C# 
System.string IconName {get;}
+
C++/CLI 
property System.String^ IconName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of the icon
+ + + + + +

Remarks

You can extract the icon from the WfIcons.dll, where the resource ID is the name stored in this property appended by "_SML".
+ + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6.html new file mode 100644 index 0000000..c041d25 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6.html @@ -0,0 +1,141 @@ + + + + + + IEdmState6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmState6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow state.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmState6 
+   Inherits IEdmObject5IEdmState5 
+
C# 
public interface IEdmState6 : IEdmObject5IEdmState5  
+
C++/CLI 
public interface class IEdmState6 : public IEdmObject5IEdmState5  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_members.html new file mode 100644 index 0000000..db73448 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmState6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmState6.

+

Public Properties

+ +
 NameDescription
 PropertyWorkflowIDGets the ID of the workflow to which this state belongs.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_properties.html new file mode 100644 index 0000000..a032628 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmState6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmState6 members.

+

Public Properties

+ +
 NameDescription
 PropertyWorkflowIDGets the ID of the workflow to which this state belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6~WorkflowID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6~WorkflowID.html new file mode 100644 index 0000000..837c840 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState6~WorkflowID.html @@ -0,0 +1,147 @@ + + + + + + WorkflowID Property (IEdmState6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
WorkflowID Property (IEdmState6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState6 Interface + : WorkflowID Property (IEdmState6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the workflow to which this state belongs. + + +

Syntax

Visual Basic 
ReadOnly Property WorkflowID As System.Integer
+
C# 
System.int WorkflowID {get;}
+
C++/CLI 
property System.int WorkflowID {
+   System.int get();
+}
+ + + +

Property Value

ID of the IEdmWorkflow6 to which this state belongs
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7.html new file mode 100644 index 0000000..378c106 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7.html @@ -0,0 +1,138 @@ + + + + + + IEdmState7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmState7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow state.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmState7 
+   Inherits IEdmObject5IEdmState5IEdmState6 
+
C# 
public interface IEdmState7 : IEdmObject5IEdmState5IEdmState6  
+
C++/CLI 
public interface class IEdmState7 : public IEdmObject5IEdmState5IEdmState6  
+
+ + + +

Example

+

Remarks

This interface extends IEdmState6 by providing access to the size and position of the state box in the workflow graph.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_members.html new file mode 100644 index 0000000..15cf07c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmState7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmState7.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetRectGets the bounding rectangle of the state box displayed in the workflow editor.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_methods.html new file mode 100644 index 0000000..0c55393 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmState7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmState7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmState7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmState7 members.

+

Public Methods

+ +
 NameDescription
 MethodGetRectGets the bounding rectangle of the state box displayed in the workflow editor.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7~GetRect.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7~GetRect.html new file mode 100644 index 0000000..268ac59 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmState7~GetRect.html @@ -0,0 +1,156 @@ + + + + + + GetRect Method (IEdmState7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRect Method (IEdmState7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmState7 Interface + : GetRect Method (IEdmState7)
+ +
+ + + +
+ +
+ + +
+
+
poRect
+
EdmRect structure; bounding rectangle of the state box displayed in the workflow editor
+
+ +
+ +
+ + +
+
+ Gets the bounding rectangle of the state box displayed in the workflow editor. + + +

Syntax

Visual Basic 
Sub GetRect( _
+   ByRef poRect As EdmRect _
+) 
+
C# 
void GetRect( 
+   out EdmRect poRect
+)
+
C++/CLI 
void GetRect( 
+&   [Out] EdmRect poRect
+) 
+ +

Parameters

poRect
+
EdmRect structure; bounding rectangle of the state box displayed in the workflow editor
+ +
+ + +

Example

See the IEdmState7 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5.html new file mode 100644 index 0000000..fb56117 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5.html @@ -0,0 +1,142 @@ + + + + + + IEdmStrLst5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmStrLst5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmStrLst5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a list of arbitrary strings.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmStrLst5 
+
C# 
public interface IEdmStrLst5 
+
C++/CLI 
public interface class IEdmStrLst5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_members.html new file mode 100644 index 0000000..2703b31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmStrLst5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmStrLst5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmStrLst5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmStrLst5.

+

Public Properties

+ + +
 NameDescription
 PropertyCountGets the number of strings in this list.  
 PropertyIsEmptyGets whether this list is empty.  
Top
+ +

Public Methods

+ + + +
 NameDescription
 MethodAddTailAdds a string to the end of this list.  
 MethodGetHeadPositionStarts an enumeration of the strings in this list.  
 MethodGetNextGets the next string in this list.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_methods.html new file mode 100644 index 0000000..11e45ee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmStrLst5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmStrLst5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmStrLst5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmStrLst5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodAddTailAdds a string to the end of this list.  
 MethodGetHeadPositionStarts an enumeration of the strings in this list.  
 MethodGetNextGets the next string in this list.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_properties.html new file mode 100644 index 0000000..5305837 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmStrLst5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmStrLst5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmStrLst5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmStrLst5 members.

+

Public Properties

+ + +
 NameDescription
 PropertyCountGets the number of strings in this list.  
 PropertyIsEmptyGets whether this list is empty.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~AddTail.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~AddTail.html new file mode 100644 index 0000000..79d4412 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~AddTail.html @@ -0,0 +1,154 @@ + + + + + + AddTail Method (IEdmStrLst5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddTail Method (IEdmStrLst5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmStrLst5 Interface + : AddTail Method (IEdmStrLst5)
+ +
+ + + +
+ +
+ + +
+
+
bsString
+
String to add to the end of this list
+
+ +
+ +
+ + +
+
+ Adds a string to the end of this list. + + +

Syntax

Visual Basic 
Sub AddTail( _
+   ByVal bsString As System.String _
+) 
+
C# 
void AddTail( 
+   System.string bsString
+)
+
C++/CLI 
void AddTail( 
+&   System.String^ bsString
+) 
+ +

Parameters

bsString
+
String to add to the end of this list
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~Count.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~Count.html new file mode 100644 index 0000000..41d63a2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~Count.html @@ -0,0 +1,147 @@ + + + + + + Count Property (IEdmStrLst5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Count Property (IEdmStrLst5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmStrLst5 Interface + : Count Property (IEdmStrLst5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of strings in this list. + + +

Syntax

Visual Basic 
ReadOnly Property Count As System.Integer
+
C# 
System.int Count {get;}
+
C++/CLI 
property System.int Count {
+   System.int get();
+}
+ + + +

Property Value

Number of strings in this list
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetHeadPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetHeadPosition.html new file mode 100644 index 0000000..b92557d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetHeadPosition.html @@ -0,0 +1,144 @@ + + + + + + GetHeadPosition Method (IEdmStrLst5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetHeadPosition Method (IEdmStrLst5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmStrLst5 Interface + : GetHeadPosition Method (IEdmStrLst5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the strings in this list. + + +

Syntax

Visual Basic 
Function GetHeadPosition() As IEdmPos5
+
C# 
IEdmPos5 GetHeadPosition()
+
C++/CLI 
IEdmPos5^ GetHeadPosition(); 
+ + + +

Return Value

IEdmPos5; position in the list of the first string (see Remarks)
+ + +

Example

See the IEdmStrLst5 examples. +
+ +

Remarks

After calling this method, pass the returned position of the first string to IEdmStrLst5::GetNext to get the first string in this list. Then call IEdmStrLst5::GetNext repeatedly to get the rest of the strings in this list.

+

C++ programmers not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetNext.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetNext.html new file mode 100644 index 0000000..d481bb8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~GetNext.html @@ -0,0 +1,159 @@ + + + + + + GetNext Method (IEdmStrLst5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNext Method (IEdmStrLst5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmStrLst5 Interface + : GetNext Method (IEdmStrLst5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next string in this list (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next string in this list. + + +

Syntax

Visual Basic 
Function GetNext( _
+   ByVal poPos As IEdmPos5 _
+) As System.String
+
C# 
System.string GetNext( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
System.String^ GetNext( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next string in this list (see Remarks)
+ +

Return Value

Next string in this list
+ + +

Example

See the IEdmStrLst5 examples. +
+ +

Remarks

Before calling this method the first time, you must populate poPosition with the interface to the position of the first string, IEdmPos5. Call IEdmStrLst5::GetHeadPosition to start an enumeration and obtain IEdmPos5.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the strings.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ programmers must free the returned pointer with a call to SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~IsEmpty.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~IsEmpty.html new file mode 100644 index 0000000..2852775 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmStrLst5~IsEmpty.html @@ -0,0 +1,147 @@ + + + + + + IsEmpty Property (IEdmStrLst5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsEmpty Property (IEdmStrLst5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmStrLst5 Interface + : IsEmpty Property (IEdmStrLst5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this list is empty. + + +

Syntax

Visual Basic 
ReadOnly Property IsEmpty As System.Boolean
+
C# 
System.bool IsEmpty {get;}
+
C++/CLI 
property System.bool IsEmpty {
+   System.bool get();
+}
+ + + +

Property Value

True if this list is empty, false if not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance.html new file mode 100644 index 0000000..2d13020 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance.html @@ -0,0 +1,145 @@ + + + + + + IEdmTaskInstance Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskInstance Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTaskInstance Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the task instance of an add-in.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTaskInstance 
+
C# 
public interface IEdmTaskInstance 
+
C++/CLI 
public interface class IEdmTaskInstance 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

An instance of the task is created when the task is launched. This interface is created in EdmCmd::mpoExtra when an add-in calls IEdmAddIn5::OnCmd and has previously registered the hooks, EdmCmdType.EdmCmd_TaskRun, EdmCmdType.EdmCmd_TaskLaunch, EdmCmdType.EdmCmd_TaskDetails, using IEdmCmdMgr5::AddHook. After the task launches, IEdmTaskInstance can be used to prompt the user for user-defined variable values, display a data card for editing data card variables, or update the task list messages and progress bar as the task runs. 

+

Programming tasks are add-ins that allow you to specify when and where to perform specific tasks.  

+

The definition of the task can be used to modify the task setup page.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_members.html new file mode 100644 index 0000000..2f405ee --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_members.html @@ -0,0 +1,126 @@ + + + + + + IEdmTaskInstance Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskInstance Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskInstance Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTaskInstance.

+

Public Properties

+ + + + +
 NameDescription
 PropertyIDGets the database ID of this task instance.  
 PropertyInstanceGUIDGets the task instance GUID.  
 PropertyTaskGUIDGets the task definition GUID.  
 PropertyTaskNameGets the name of this task.  
Top
+ +

Public Methods

+ + + + + + + + +
 NameDescription
 MethodGetStatusGets the current status of this task instance.  
 MethodGetValExGets the value of the specified user-defined variable.  
 MethodGetVarGets the value of a card variable created in the administration tool.  
 MethodSetProgressPosUpdates the task list progress bar during execution of this task instance.  
 MethodSetProgressRangeSets the range of the progress bar for the execution of this task instance.  
 MethodSetStatusSets the specified status of this task instance.  
 MethodSetValExSets a value for the specified user-defined variable.  
 MethodSetVarSets the value of a card variable created in the administration tool.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_methods.html new file mode 100644 index 0000000..5293bc0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_methods.html @@ -0,0 +1,113 @@ + + + + + + IEdmTaskInstance Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskInstance Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskInstance Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTaskInstance members.

+

Public Methods

+ + + + + + + + +
 NameDescription
 MethodGetStatusGets the current status of this task instance.  
 MethodGetValExGets the value of the specified user-defined variable.  
 MethodGetVarGets the value of a card variable created in the administration tool.  
 MethodSetProgressPosUpdates the task list progress bar during execution of this task instance.  
 MethodSetProgressRangeSets the range of the progress bar for the execution of this task instance.  
 MethodSetStatusSets the specified status of this task instance.  
 MethodSetValExSets a value for the specified user-defined variable.  
 MethodSetVarSets the value of a card variable created in the administration tool.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_properties.html new file mode 100644 index 0000000..d465871 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance_properties.html @@ -0,0 +1,113 @@ + + + + + + IEdmTaskInstance Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskInstance Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskInstance Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTaskInstance members.

+

Public Properties

+ + + + +
 NameDescription
 PropertyIDGets the database ID of this task instance.  
 PropertyInstanceGUIDGets the task instance GUID.  
 PropertyTaskGUIDGets the task definition GUID.  
 PropertyTaskNameGets the name of this task.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetStatus.html new file mode 100644 index 0000000..933820c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetStatus.html @@ -0,0 +1,145 @@ + + + + + + GetStatus Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetStatus Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : GetStatus Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the current status of this task instance. + + +

Syntax

Visual Basic 
Function GetStatus() As EdmTaskStatus
+
C# 
EdmTaskStatus GetStatus()
+
C++/CLI 
EdmTaskStatus GetStatus(); 
+ + + +

Return Value

Status as defined in EdmTaskStatus
+ + + + + +

Remarks

The add-in calls this method regularly during the processing of EdmCmdType.EdmCmd_TaskRun to see if the task has been canceled or suspended in the task list user interface.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetValEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetValEx.html new file mode 100644 index 0000000..10091ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetValEx.html @@ -0,0 +1,164 @@ + + + + + + GetValEx Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetValEx Method (IEdmTaskInstance)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : GetValEx Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
bsValName
+
Name of a user-defined variable
+
+ +
+ +
+ + +
+
+ Gets the value of the specified user-defined variable. + + +

Syntax

Visual Basic 
Function GetValEx( _
+   ByVal bsValName As System.String _
+) As System.Object
+
C# 
System.object GetValEx( 
+   System.string bsValName
+)
+
C++/CLI 
System.Object^ GetValEx( 
+&   System.String^ bsValName
+) 
+ +

Parameters

bsValName
+
Name of a user-defined variable
+ +

Return Value

Value of user-defined variable (see Remarks)
+ + + + +

Example

+

Remarks

This method gets the value of a user-defined variable that is created by IEdmTaskInstance::SetValEx or IEdmTaskProperties::SetValEx. User-defined variables are usually created during the processing of the EdmCmdType.EdmCmd_TaskLaunch or the EdmCmdType.EdmCmd_TaskSetup hook and are usually read during the processing of the EdmCmdType.EdmCmd_TaskRun hook.

+

Custom data types and objects must have been serialized to a string, numeric type, or date before calling IEdmTaskInstance::SetValEx or IEdmTaskProperites::SetValEx. For example:

+
    +
  1. Serialize the object data to XML or JSON using StringBuilder, XmlWriter, XmlSerializer, etc. +
  2. Call IEdmTaskInstance::SetValEx or IEdmTaskProperties::SetValEx to store the resulting string. +
  3. Call IEdmTaskInstance::GetValEx to retrieve the stored string. +
  4. Initialize the new instance of the object from XML/JSON using StringReader, XmlReader, XmlSerializer, etc.
+

NOTE: User-defined variables are not related to the card variables created using the administration tool. To access card variables, call IEdmTaskInstance::GetVar and IEdmTaskInstance::SetVar.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetVar.html new file mode 100644 index 0000000..4d458da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~GetVar.html @@ -0,0 +1,161 @@ + + + + + + GetVar Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVar Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : GetVar Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
oVarIDorName
+
ID or name of the card variable for which to get a value
+
+ +
+ +
+ + +
+
+ Gets the value of a card variable created in the administration tool. + + +

Syntax

Visual Basic 
Function GetVar( _
+   ByVal oVarIDorName As System.Object _
+) As System.Object
+
C# 
System.object GetVar( 
+   System.object oVarIDorName
+)
+
C++/CLI 
System.Object^ GetVar( 
+&   System.Object^ oVarIDorName
+) 
+ +

Parameters

oVarIDorName
+
ID or name of the card variable for which to get a value
+ +

Return Value

Value of a card variable
+ + + + + +

Remarks

The task add-in calls this method while the task is running on the server (EdmCmdType.EdmCmd_TaskRun) to retrieve a variable value set by the add-in when it calls: 

+
    +
  • IEdmTaskInstance::SetVar during the processing of the EdmCmdType.EdmCmd_TaskLaunch hook when the user enters values on the data card displayed when the task is launched on the client computer. +
  • IEdmTaskProperties.SetVar during the processing of the EdmCmdType.EdmCmd_TaskSetup hook when the user enters data card variable values on the task setup page.
+

Card variables accessible by this method must be created using the administration tool card editor and are not related to the user-defined variables accessed by IEdmTaskInstance::GetValEx and IEdmTaskInstance::SetValEx.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~ID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~ID.html new file mode 100644 index 0000000..48a27ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~ID.html @@ -0,0 +1,147 @@ + + + + + + ID Property (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ID Property (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : ID Property (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of this task instance. + + +

Syntax

Visual Basic 
ReadOnly Property ID As System.Long
+
C# 
System.long ID {get;}
+
C++/CLI 
property System.int64 ID {
+   System.int64 get();
+}
+ + + +

Property Value

Database ID
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~InstanceGUID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~InstanceGUID.html new file mode 100644 index 0000000..46af0ec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~InstanceGUID.html @@ -0,0 +1,147 @@ + + + + + + InstanceGUID Property (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InstanceGUID Property (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : InstanceGUID Property (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the task instance GUID. + + +

Syntax

Visual Basic 
ReadOnly Property InstanceGUID As System.String
+
C# 
System.string InstanceGUID {get;}
+
C++/CLI 
property System.String^ InstanceGUID {
+   System.String^ get();
+}
+ + + +

Property Value

Task instance GUID
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressPos.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressPos.html new file mode 100644 index 0000000..129899b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressPos.html @@ -0,0 +1,165 @@ + + + + + + SetProgressPos Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressPos Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : SetProgressPos Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
lPos
+
Current position of the progress bar
+
+
+
bsDocStr
+
Description of what the add-in is currently doing
+
+ +
+ +
+ + +
+
+ Updates the task list progress bar during execution of this task instance. + + +

Syntax

Visual Basic 
Sub SetProgressPos( _
+   ByVal lPos As System.Integer, _
+   ByVal bsDocStr As System.String _
+) 
+
C# 
void SetProgressPos( 
+   System.int lPos,
+   System.string bsDocStr
+)
+
C++/CLI 
void SetProgressPos( 
+&   System.int lPos,
+&   System.String^ bsDocStr
+) 
+ +

Parameters

lPos
+
Current position of the progress bar
bsDocStr
+
Description of what the add-in is currently doing
+ +
+ + +

Example

See the examples in IEdmTaskInstance.

+
+ +

Remarks

The task add-in calls this method periodically during processing of the hook, EdmCmdType.EdmCmd.TaskRun, to update the progress bar in the task list window of the PDM Administration tool.

+

Initialize the task list progress bar by calling IEdmTaskinstance::SetProgressRange at the start of processing of the hook, EdmCmdType.EdmCmd.TaskRun.

+

lPos is between 0 and lMax of IEdmTaskinstance::SetProgressRange.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressRange.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressRange.html new file mode 100644 index 0000000..822436c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetProgressRange.html @@ -0,0 +1,172 @@ + + + + + + SetProgressRange Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetProgressRange Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : SetProgressRange Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
lMax
+
Maximum position in the progress bar
+
+
+
lPos
+
0 <= Current position in the progress bar <= lMax
+
+
+
bsDocStr
+
Description of what the add-in is currently doing
+
+ +
+ +
+ + +
+
+ Sets the range of the progress bar for the execution of this task instance. + + +

Syntax

Visual Basic 
Sub SetProgressRange( _
+   ByVal lMax As System.Integer, _
+   ByVal lPos As System.Integer, _
+   ByVal bsDocStr As System.String _
+) 
+
C# 
void SetProgressRange( 
+   System.int lMax,
+   System.int lPos,
+   System.string bsDocStr
+)
+
C++/CLI 
void SetProgressRange( 
+&   System.int lMax,
+&   System.int lPos,
+&   System.String^ bsDocStr
+) 
+ +

Parameters

lMax
+
Maximum position in the progress bar
lPos
+
0 <= Current position in the progress bar <= lMax
bsDocStr
+
Description of what the add-in is currently doing
+ +
+ + +

Example

See the examples in IEdmTaskInstance. +
+ +

Remarks

The task add-in calls this method at the start of processing of the hook, EdmCmdType.EdmCmd.TaskRun, to initialize the task list progress bar in the task list window of the PDM Administration tool.

+

The task add-in calls IEdmTaskInstance::SetProgressPos periodically during processing of the hook, EdmCmdType.EdmCmd.TaskRun, to update the progress bar.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetStatus.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetStatus.html new file mode 100644 index 0000000..1bbb98b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetStatus.html @@ -0,0 +1,188 @@ + + + + + + SetStatus Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetStatus Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : SetStatus Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
eStatus
+
Status of this task as defined in EdmTaskStatus
+
+
+
lHRESULT
+
Optional error code to display in the properties window when terminating the task; valid only if eStatus is EdmTaskStatus.EdmTaskStat_DoneFailed
+
+
+
bsCustomMsg
+
Optional error message to display when terminating the task; valid only if eStatus is EdmTaskStatus.EdmTaskStat_DoneFailed
+
+
+
oNotificationAttachments
+
Optional array of EdmSelItem2 structures; one structure for each file link to add to the notification message that is sent when the task completes
+
+
+
bsExtraNotificationMsg
+
Optional message to append to the notification message that is sent when the task completes
+
+ +
+ +
+ + +
+
+ Sets the specified status of this task instance. + + +

Syntax

Visual Basic 
Sub SetStatus( _
+   ByVal eStatus As EdmTaskStatus, _
+   Optional ByVal lHRESULT As System.Integer, _
+   Optional ByVal bsCustomMsg As System.String, _
+   Optional ByVal oNotificationAttachments As System.Object, _
+   Optional ByVal bsExtraNotificationMsg As System.String _
+) 
+
C# 
void SetStatus( 
+   EdmTaskStatus eStatus,
+   System.int lHRESULT,
+   System.string bsCustomMsg,
+   System.object oNotificationAttachments,
+   System.string bsExtraNotificationMsg
+)
+
C++/CLI 
void SetStatus( 
+&   EdmTaskStatus eStatus,
+&   System.int lHRESULT,
+&   System.String^ bsCustomMsg,
+&   System.Object^ oNotificationAttachments,
+&   System.String^ bsExtraNotificationMsg
+) 
+ +

Parameters

eStatus
+
Status of this task as defined in EdmTaskStatus
lHRESULT
+
Optional error code to display in the properties window when terminating the task; valid only if eStatus is EdmTaskStatus.EdmTaskStat_DoneFailed
bsCustomMsg
+
Optional error message to display when terminating the task; valid only if eStatus is EdmTaskStatus.EdmTaskStat_DoneFailed
oNotificationAttachments
+
Optional array of EdmSelItem2 structures; one structure for each file link to add to the notification message that is sent when the task completes
bsExtraNotificationMsg
+
Optional message to append to the notification message that is sent when the task completes
+ +
+ + +

Example

See the examples in IEdmTaskInstance. +
+ +

Remarks

The task add-in calls this method to inform the framework about the current status of the task.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetValEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetValEx.html new file mode 100644 index 0000000..dd0b15b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetValEx.html @@ -0,0 +1,171 @@ + + + + + + SetValEx Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetValEx Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : SetValEx Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
bsValName
+
User-defined variable name
+
+
+
oValue
+
Value of user-defined variable (see Remarks)
+
+ +
+ +
+ + +
+
+ Sets a value for the specified user-defined variable. + + +

Syntax

Visual Basic 
Sub SetValEx( _
+   ByVal bsValName As System.String, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetValEx( 
+   System.string bsValName,
+   System.object oValue
+)
+
C++/CLI 
void SetValEx( 
+&   System.String^ bsValName,
+&   System.Object^ oValue
+) 
+ +

Parameters

bsValName
+
User-defined variable name
oValue
+
Value of user-defined variable (see Remarks)
+ +
+ + + + + +

Remarks

This method can be called to set the value when the task is launched on the client computer (EdmCmdType.EdmCmd_TaskLaunch) and IEdmTaskInstance::GetValEx can be called to get the value when the task is executed on the server (EdmCmdType.EdmCmd_TaskRun).

+

Custom data types and objects must be serialized to a string, numeric type, or date before calling IEdmTaskInstance::SetValEx. For example:

+
    +
  1. Serialize the object data to XML or JSON using StringBuilder, XmlWriter, XmlSerializer, etc. +
  2. Call IEdmTaskInstance::SetValEx to store the resulting string. +
  3. Call IEdmTaskInstance::GetValEx to retrieve the stored string. +
  4. Initialize the new instance of the object from XML/JSON using StringReader, XmlReader, XmlSerializer, etc.
+

NOTE: The difference between this method and IEdmTaskInstance::SetVar is that the latter requires a pre-defined card variable in the vault, whereas this method does not.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetVar.html new file mode 100644 index 0000000..6031a50 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~SetVar.html @@ -0,0 +1,167 @@ + + + + + + SetVar Method (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : SetVar Method (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+
oVarIDorName
+
Database ID or name of the variable for which to set a value (see Remarks)
+
+
+
oValue
+
Value to set
+
+ +
+ +
+ + +
+
+ Sets the value of a card variable created in the administration tool. + + +

Syntax

Visual Basic 
Sub SetVar( _
+   ByVal oVarIDorName As System.Object, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetVar( 
+   System.object oVarIDorName,
+   System.object oValue
+)
+
C++/CLI 
void SetVar( 
+&   System.Object^ oVarIDorName,
+&   System.Object^ oValue
+) 
+ +

Parameters

oVarIDorName
+
Database ID or name of the variable for which to set a value (see Remarks)
oValue
+
Value to set
+ +
+ + + + + +

Remarks

The task add-in can display a data card with variable values that the user can modify when the task is launched on the client computer (EdmCmdType.EdmCmd_TaskLaunch). The add-in can call this method to store the variable values entered by the user.

+

The task add-in can call IEdmTaskInstance::GetVar during the processing of the EdmCmdType.EdmCmd_TaskRun hook to retrieve a card variable value from the server where the task is running. 

+

Card variables are created using the administration tool card editor and are not related to the user-defined variables accessed by IEdmTaskInstance::GetValEx and IEdmTaskInstance::SetValEx.

+

The difference between this method and IEdmTaskInstance::SetValEx is that the latter does not require a pre-defined card variable in the vault, whereas this method does.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskGUID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskGUID.html new file mode 100644 index 0000000..e644a3c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskGUID.html @@ -0,0 +1,147 @@ + + + + + + TaskGUID Property (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskGUID Property (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : TaskGUID Property (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the task definition GUID. + + +

Syntax

Visual Basic 
ReadOnly Property TaskGUID As System.String
+
C# 
System.string TaskGUID {get;}
+
C++/CLI 
property System.String^ TaskGUID {
+   System.String^ get();
+}
+ + + +

Property Value

Task definition GUID.
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskName.html new file mode 100644 index 0000000..ca2cb51 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskInstance~TaskName.html @@ -0,0 +1,147 @@ + + + + + + TaskName Property (IEdmTaskInstance) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskName Property (IEdmTaskInstance)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskInstance Interface + : TaskName Property (IEdmTaskInstance)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this task. + + +

Syntax

Visual Basic 
ReadOnly Property TaskName As System.String
+
C# 
System.string TaskName {get;}
+
C++/CLI 
property System.String^ TaskName {
+   System.String^ get();
+}
+ + + +

Property Value

Task name
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr.html new file mode 100644 index 0000000..c09a46c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr.html @@ -0,0 +1,138 @@ + + + + + + IEdmTaskMgr Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskMgr Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTaskMgr Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Allows you to manage task add-ins. +
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTaskMgr 
+
C# 
public interface IEdmTaskMgr 
+
C++/CLI 
public interface class IEdmTaskMgr 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_members.html new file mode 100644 index 0000000..4ca8de8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmTaskMgr Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskMgr Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskMgr Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTaskMgr.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetTasksGets the task add-ins installed in the vault.  
 MethodRunTaskRuns the specified task add-in.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_methods.html new file mode 100644 index 0000000..c265ffb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmTaskMgr Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskMgr Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskMgr Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTaskMgr members.

+

Public Methods

+ + +
 NameDescription
 MethodGetTasksGets the task add-ins installed in the vault.  
 MethodRunTaskRuns the specified task add-in.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~GetTasks.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~GetTasks.html new file mode 100644 index 0000000..5e20c04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~GetTasks.html @@ -0,0 +1,140 @@ + + + + + + GetTasks Method (IEdmTaskMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTasks Method (IEdmTaskMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskMgr Interface + : GetTasks Method (IEdmTaskMgr)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the task add-ins installed in the vault. + + +

Syntax

Visual Basic 
Function GetTasks() As EdmTaskInfo()
+
C# 
EdmTaskInfo[] GetTasks()
+
C++/CLI 
array<EdmTaskInfo>^ GetTasks(); 
+ + + +

Return Value

Array of EdmTaskInfo
+ + +

Example

See the IEdmTaskMgr example. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~RunTask.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~RunTask.html new file mode 100644 index 0000000..d5749bf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskMgr~RunTask.html @@ -0,0 +1,168 @@ + + + + + + RunTask Method (IEdmTaskMgr) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RunTask Method (IEdmTaskMgr)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskMgr Interface + : RunTask Method (IEdmTaskMgr)
+ +
+ + + +
+ +
+ + +
+
+
oTask
+
Task add-in to run as defined by EdmTaskInfo
+
+
+
poSelections
+
Array of EdmSelItem2
+
+
+
lParentWnd
+
Parent window
+
+ +
+ +
+ + +
+
+ Runs the specified task add-in. + + +

Syntax

Visual Basic 
Sub RunTask( _
+   ByVal oTask As EdmTaskInfo, _
+   ByVal poSelections() As EdmSelItem2, _
+   ByVal lParentWnd As System.Integer _
+) 
+
C# 
void RunTask( 
+   EdmTaskInfo oTask,
+   EdmSelItem2[] poSelections,
+   System.int lParentWnd
+)
+
C++/CLI 
void RunTask( 
+&   EdmTaskInfo oTask,
+&   array<EdmSelItem2>^ poSelections,
+&   System.int lParentWnd
+) 
+ +

Parameters

oTask
+
Task add-in to run as defined by EdmTaskInfo
poSelections
+
Array of EdmSelItem2
lParentWnd
+
Parent window
+ +
+ + +

Example

See the IEdmTaskMgr example. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018 SP04
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties.html new file mode 100644 index 0000000..af0f320 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties.html @@ -0,0 +1,145 @@ + + + + + + IEdmTaskProperties Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskProperties Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTaskProperties Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the task definition of an add-in.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTaskProperties 
+
C# 
public interface IEdmTaskProperties 
+
C++/CLI 
public interface class IEdmTaskProperties 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

This interface provides the definition of a task and can be used to extend the task setup page. This interface is created in EdmCmd::mpoExtra when an add-in calls IEdmAddIn5::OnCmd and has previously registered the hook, EdmCmdType.EdmCmd_TaskSetup, using IEdmCmdMgr5::AddHook. Use this interface in the processing of the EdmCmdType.EdmCmd_TaskSetup hook to load or store user-defined variables, load or store card variables, or set menu commands for the task setup page.

+

Programming tasks are add-ins that allow you to specify when and where to perform specific tasks. 

+

An instance of the task is created when the task is launched.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_members.html new file mode 100644 index 0000000..00de520 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_members.html @@ -0,0 +1,134 @@ + + + + + + IEdmTaskProperties Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskProperties Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskProperties Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTaskProperties.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyAddInNameGets the name of the add-in that is used to execute this task.  
 PropertyFormNameGets the name of the data card to show when the task is launched.  
 PropertyIsScheduledGets whether this task is scheduled.  
 PropertyRetryCountGets the number of times to retry the task on failure.  
 PropertyTaskFlagsGets or sets task-specific options.  
 PropertyTaskGUIDGets the unique ID of this task definition.  
 PropertyTaskIDGets the database ID of this task definition.  
 PropertyTaskNameGets the name of this task.  
 PropertyTimeoutInSecondsGets the number of seconds to wait until failing the task.  
 PropertyUserNameGets the name of the user as whom to execute this task.  
Top
+ +

Public Methods

+ + + + + + + + + + +
 NameDescription
 MethodGetMenuCmdsGets the menu commands set with IEdmTaskProperties::SetMenuCmds.  
 MethodGetSelGets the selection of objects on which to execute this task.  
 MethodGetSetupPagesGets the setup pages added to the task property dialog box using IEdmTaskProperties::SetSetupPages.  
 MethodGetValExGets the value of a user-defined variable created with IEdmTaskProperties::SetValEx.  
 MethodGetVarGets the value of a card variable created in the administration tool and set by IEdmTaskProperties::SetVar.  
 MethodSetMenuCmdsAdds the specified menu commands to File Explorer context menus.  
 MethodSetSelSets the selection of objects on which to execute this task.  
 MethodSetSetupPagesAdds setup pages to the task property dialog box for this task definition.  
 MethodSetValExSets a value for the specified user-defined variable.  
 MethodSetVarSets the value of a card variable created in the administration tool.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_methods.html new file mode 100644 index 0000000..eeaebcb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_methods.html @@ -0,0 +1,115 @@ + + + + + + IEdmTaskProperties Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskProperties Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskProperties Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTaskProperties members.

+

Public Methods

+ + + + + + + + + + +
 NameDescription
 MethodGetMenuCmdsGets the menu commands set with IEdmTaskProperties::SetMenuCmds.  
 MethodGetSelGets the selection of objects on which to execute this task.  
 MethodGetSetupPagesGets the setup pages added to the task property dialog box using IEdmTaskProperties::SetSetupPages.  
 MethodGetValExGets the value of a user-defined variable created with IEdmTaskProperties::SetValEx.  
 MethodGetVarGets the value of a card variable created in the administration tool and set by IEdmTaskProperties::SetVar.  
 MethodSetMenuCmdsAdds the specified menu commands to File Explorer context menus.  
 MethodSetSelSets the selection of objects on which to execute this task.  
 MethodSetSetupPagesAdds setup pages to the task property dialog box for this task definition.  
 MethodSetValExSets a value for the specified user-defined variable.  
 MethodSetVarSets the value of a card variable created in the administration tool.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_properties.html new file mode 100644 index 0000000..56a35c3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties_properties.html @@ -0,0 +1,119 @@ + + + + + + IEdmTaskProperties Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTaskProperties Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTaskProperties Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTaskProperties members.

+

Public Properties

+ + + + + + + + + + +
 NameDescription
 PropertyAddInNameGets the name of the add-in that is used to execute this task.  
 PropertyFormNameGets the name of the data card to show when the task is launched.  
 PropertyIsScheduledGets whether this task is scheduled.  
 PropertyRetryCountGets the number of times to retry the task on failure.  
 PropertyTaskFlagsGets or sets task-specific options.  
 PropertyTaskGUIDGets the unique ID of this task definition.  
 PropertyTaskIDGets the database ID of this task definition.  
 PropertyTaskNameGets the name of this task.  
 PropertyTimeoutInSecondsGets the number of seconds to wait until failing the task.  
 PropertyUserNameGets the name of the user as whom to execute this task.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~AddInName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~AddInName.html new file mode 100644 index 0000000..61fe10b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~AddInName.html @@ -0,0 +1,147 @@ + + + + + + AddInName Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddInName Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : AddInName Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the add-in that is used to execute this task. + + +

Syntax

Visual Basic 
ReadOnly Property AddInName As System.String
+
C# 
System.string AddInName {get;}
+
C++/CLI 
property System.String^ AddInName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of an add-in
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~FormName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~FormName.html new file mode 100644 index 0000000..e732214 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~FormName.html @@ -0,0 +1,147 @@ + + + + + + FormName Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FormName Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : FormName Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the data card to show when the task is launched. + + +

Syntax

Visual Basic 
ReadOnly Property FormName As System.String
+
C# 
System.string FormName {get;}
+
C++/CLI 
property System.String^ FormName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of a data card
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetMenuCmds.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetMenuCmds.html new file mode 100644 index 0000000..f59d4ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetMenuCmds.html @@ -0,0 +1,156 @@ + + + + + + GetMenuCmds Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetMenuCmds Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : GetMenuCmds Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
ppoCmds
+
Array of EdmTaskMenuCmd structures; one structure for each menu command
+
+ +
+ +
+ + +
+
+ Gets the menu commands set with IEdmTaskProperties::SetMenuCmds. + + +

Syntax

Visual Basic 
Sub GetMenuCmds( _
+   ByRef ppoCmds() As EdmTaskMenuCmd _
+) 
+
C# 
void GetMenuCmds( 
+   out EdmTaskMenuCmd[] ppoCmds
+)
+
C++/CLI 
void GetMenuCmds( 
+&   [Out] array<EdmTaskMenuCmd>^ ppoCmds
+) 
+ +

Parameters

ppoCmds
+
Array of EdmTaskMenuCmd structures; one structure for each menu command
+ +
+ + + + + +

Remarks

The menu commands display in a File Explorer context menu.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSel.html new file mode 100644 index 0000000..45294de --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSel.html @@ -0,0 +1,157 @@ + + + + + + GetSel Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSel Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : GetSel Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
ppoSel
+
Array of EdmTaskSel structures; one structure for each selected object
+
+ +
+ +
+ + +
+
+ Gets the selection of objects on which to execute this task. + + +

Syntax

Visual Basic 
Sub GetSel( _
+   ByRef ppoSel() As EdmTaskSel _
+) 
+
C# 
void GetSel( 
+   out EdmTaskSel[] ppoSel
+)
+
C++/CLI 
void GetSel( 
+&   [Out] array<EdmTaskSel>^ ppoSel
+) 
+ +

Parameters

ppoSel
+
Array of EdmTaskSel structures; one structure for each selected object
+ +
+ + + + + +

Remarks

The user can select the objects on which the task performs from a dialog box that is displayed when the task add-in calls IEdmAddIn5::OnCmd. The hook, EdmCmdType.EdmCmd_TaskLaunch, must be previously registered by calling IEdmCmdMgr5::AddHook in your implementation of IEdmAddIn5::GetAddInInfo. The add-in returns the user's selections in the EdmCmdData structures that are returned by IEdmAddIn5::OnCmd.

+

You can set a selection of objects directly in this task definition by calling IEdmTaskProperties::SetSel.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSetupPages.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSetupPages.html new file mode 100644 index 0000000..a727139 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetSetupPages.html @@ -0,0 +1,155 @@ + + + + + + GetSetupPages Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetSetupPages Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : GetSetupPages Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
ppoPages
+
Array of EdmTaskSetupPage structures; one structure for each setup page
+
+ +
+ +
+ + +
+
+ Gets the setup pages added to the task property dialog box using IEdmTaskProperties::SetSetupPages. + + +

Syntax

Visual Basic 
Sub GetSetupPages( _
+   ByRef ppoPages() As EdmTaskSetupPage _
+) 
+
C# 
void GetSetupPages( 
+   out EdmTaskSetupPage[] ppoPages
+)
+
C++/CLI 
void GetSetupPages( 
+&   [Out] array<EdmTaskSetupPage>^ ppoPages
+) 
+ +

Parameters

ppoPages
+
Array of EdmTaskSetupPage structures; one structure for each setup page
+ +
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetValEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetValEx.html new file mode 100644 index 0000000..c16ba68 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetValEx.html @@ -0,0 +1,165 @@ + + + + + + GetValEx Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetValEx Method (IEdmTaskProperties)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : GetValEx Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
bsValName
+
Name of variable for which to get a value
+
+ +
+ +
+ + +
+
+ Gets the value of a user-defined variable created with IEdmTaskProperties::SetValEx. + + +

Syntax

Visual Basic 
Function GetValEx( _
+   ByVal bsValName As System.String _
+) As System.Object
+
C# 
System.object GetValEx( 
+   System.string bsValName
+)
+
C++/CLI 
System.Object^ GetValEx( 
+&   System.String^ bsValName
+) 
+ +

Parameters

bsValName
+
Name of variable for which to get a value
+ +

Return Value

Value of variable (see Remarks)
+ + + + +

Example

+

Remarks

Call IEdmTaskProperties::SetValEx to store variable data entered by the user in the task definition setup page on the client machine. The task definition setup page displays during the processing of the EdmCmdType.EdmCmd_TaskSetup hook when the task add-in calls IEdmAddIn5::OnCmd.

+

Custom data types and objects must have been serialized to a string, numeric type, or date before calling IEdmTaskProperites::SetValEx. For example:

+
    +
  1. Serialize the object data to XML or JSON using StringBuilder, XmlWriter, XmlSerializer, etc. +
  2. Call IEdmTaskProperites::SetValEx to store the resulting string. +
  3. Call IEdmTaskProperites::GetValEx to retrieve the stored string. +
  4. Initialize the new instance of the object from XML/JSON using StringReader, XmlReader, XmlSerializer, etc.
+

To get the values when the task is executing on the server, call IEdmTaskInstance::GetValEx during the processing of the EdmCmdType.EdmCmd_TaskRun hook.

+

NOTE: User-defined variables are not related to the card variables created using the administration tool. To access card variables for this task definition, call IEdmTaskProperties::GetVar and IEdmTaskProperties::SetVar.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetVar.html new file mode 100644 index 0000000..6139613 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~GetVar.html @@ -0,0 +1,158 @@ + + + + + + GetVar Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVar Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : GetVar Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
lVarID
+
ID of variable for which to get a value
+
+ +
+ +
+ + +
+
+ Gets the value of a card variable created in the administration tool and set by IEdmTaskProperties::SetVar. + + +

Syntax

Visual Basic 
Function GetVar( _
+   ByVal lVarID As System.Integer _
+) As System.Object
+
C# 
System.object GetVar( 
+   System.int lVarID
+)
+
C++/CLI 
System.Object^ GetVar( 
+&   System.int lVarID
+) 
+ +

Parameters

lVarID
+
ID of variable for which to get a value
+ +

Return Value

Value of a card variable
+ + + + + +

Remarks

The task add-in calls this method to retrieve a data card variable value that is set by the user on the task details page on the client computer. To save and retrieve the variable, the add-in calls IEdmTaskProperties::SetVar and this method, respectively, during the processing of the EdmCmdType.EdmCmd_TaskSetup hook. 

+

These data card variable values can also be retrieved when the task is executed on the server by calling IEdmTaskInstance::GetVar

+

Card variables accessible by this method must be created using the administration tool card editor and are not related to the user-defined variables accessed by IEdmTaskProperties::GetValEx and IEdmTaskProperties::SetValEx.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~IsScheduled.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~IsScheduled.html new file mode 100644 index 0000000..f95c4cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~IsScheduled.html @@ -0,0 +1,147 @@ + + + + + + IsScheduled Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsScheduled Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : IsScheduled Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this task is scheduled. + + +

Syntax

Visual Basic 
ReadOnly Property IsScheduled As System.Boolean
+
C# 
System.bool IsScheduled {get;}
+
C++/CLI 
property System.bool IsScheduled {
+   System.bool get();
+}
+ + + +

Property Value

True if the task is scheduled, false if not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~RetryCount.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~RetryCount.html new file mode 100644 index 0000000..74aab1e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~RetryCount.html @@ -0,0 +1,147 @@ + + + + + + RetryCount Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RetryCount Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : RetryCount Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of times to retry the task on failure. + + +

Syntax

Visual Basic 
ReadOnly Property RetryCount As System.Integer
+
C# 
System.int RetryCount {get;}
+
C++/CLI 
property System.int RetryCount {
+   System.int get();
+}
+ + + +

Property Value

Number of time to retry the task on failure
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetMenuCmds.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetMenuCmds.html new file mode 100644 index 0000000..65fc81e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetMenuCmds.html @@ -0,0 +1,155 @@ + + + + + + SetMenuCmds Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetMenuCmds Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : SetMenuCmds Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
poCmds
+
Array of EdmTaskMenuCmd structures; one structure for each menu command to add to the context menus
+
+ +
+ +
+ + +
+
+ Adds the specified menu commands to File Explorer context menus. + + +

Syntax

Visual Basic 
Sub SetMenuCmds( _
+   ByVal poCmds() As EdmTaskMenuCmd _
+) 
+
C# 
void SetMenuCmds( 
+   EdmTaskMenuCmd[] poCmds
+)
+
C++/CLI 
void SetMenuCmds( 
+&   array<EdmTaskMenuCmd>^ poCmds
+) 
+ +

Parameters

poCmds
+
Array of EdmTaskMenuCmd structures; one structure for each menu command to add to the context menus
+ +
+ + +

Example

See the examples in IEdmTaskProperties.

+
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSel.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSel.html new file mode 100644 index 0000000..24643df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSel.html @@ -0,0 +1,158 @@ + + + + + + SetSel Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetSel Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : SetSel Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
poSel
+
Array of EdmTaskSel structures; one structure for each selected object
+
+ +
+ +
+ + +
+
+ Sets the selection of objects on which to execute this task. + + +

Syntax

Visual Basic 
Sub SetSel( _
+   ByVal poSel() As EdmTaskSel _
+) 
+
C# 
void SetSel( 
+   EdmTaskSel[] poSel
+)
+
C++/CLI 
void SetSel( 
+&   array<EdmTaskSel>^ poSel
+) 
+ +

Parameters

poSel
+
Array of EdmTaskSel structures; one structure for each selected object
+ +
+ + + + + +

Remarks

The user can select the objects on which the task performs from a dialog box that is displayed when the task add-in calls IEdmAddIn5::OnCmd. The hook, EdmCmdType.EdmCmd_TaskLaunch, must be previously registered by calling IEdmCmdMgr5::AddHook in your implementation of IEdmAddIn5::GetAddInInfo. The add-in returns the user's selections in the EdmCmdData structures that are returned by IEdmAddIn5::OnCmd.

+

You can set a selection of objects that should always be passed to the task instances by calling this method.

+

Call IEdmTaskProperties::GetSel to get the objects set by this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSetupPages.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSetupPages.html new file mode 100644 index 0000000..fe6a44b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetSetupPages.html @@ -0,0 +1,157 @@ + + + + + + SetSetupPages Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetSetupPages Method (IEdmTaskProperties)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : SetSetupPages Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
poPages
+
Array of EdmTaskSetupPage structures; one structure for each setup page
+
+ +
+ +
+ + +
+
+ Adds setup pages to the task property dialog box for this task definition. + + +

Syntax

Visual Basic 
Sub SetSetupPages( _
+   ByVal poPages() As EdmTaskSetupPage _
+) 
+
C# 
void SetSetupPages( 
+   EdmTaskSetupPage[] poPages
+)
+
C++/CLI 
void SetSetupPages( 
+&   array<EdmTaskSetupPage>^ poPages
+) 
+ +

Parameters

poPages
+
Array of EdmTaskSetupPage structures; one structure for each setup page
+ +
+ + + + +

Example

+

Remarks

Call this method during the processing of the EdmCmdData.EdmCmd_TaskSetup hook. The setup pages display when the task is double-clicked in the administration tool.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetValEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetValEx.html new file mode 100644 index 0000000..74beafb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetValEx.html @@ -0,0 +1,176 @@ + + + + + + SetValEx Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetValEx Method (IEdmTaskProperties)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : SetValEx Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
bsValName
+
Name of the user-defined variable for which to set a value
+
+
+
oValue
+
Value of user-defined variable (see Remarks)
+
+ +
+ +
+ + +
+
+ Sets a value for the specified user-defined variable. + + +

Syntax

Visual Basic 
Sub SetValEx( _
+   ByVal bsValName As System.String, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetValEx( 
+   System.string bsValName,
+   System.object oValue
+)
+
C++/CLI 
void SetValEx( 
+&   System.String^ bsValName,
+&   System.Object^ oValue
+) 
+ +

Parameters

bsValName
+
Name of the user-defined variable for which to set a value
oValue
+
Value of user-defined variable (see Remarks)
+ +
+ + + + +

Example

+

Remarks

Call this method:

+
    +
  • to store variable data entered by the user in the task definition setup page on the client machine.  +
  • during the processing of the EdmCmdType.EdmCmd_TaskSetup hook.
+

Custom data types and objects must be serialized to a string, numeric type, or date before calling this method. For example:

+
    +
  1. Serialize the object data to XML or JSON using StringBuilder, XmlWriter, XmlSerializer, etc. +
  2. Call IEdmTaskProperites::SetValEx to store the resulting string. +
  3. Call IEdmTaskProperties::GetValEx to retrieve the stored string. +
  4. Initialize the new instance of the object from XML/JSON using StringReader, XmlReader, XmlSerializer, etc.
+

To get the user-defined values when the task is executing on the server, call IEdmTaskInstance::GetValEx during the processing of the EdmCmdType.EdmCmd_TaskRun hook.

+

NOTE: The difference between this method and IEdmTaskProperties::SetVar is that the latter requires a pre-defined card variable in the vault, whereas this method does not.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetVar.html new file mode 100644 index 0000000..0ad757e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~SetVar.html @@ -0,0 +1,170 @@ + + + + + + SetVar Method (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetVar Method (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : SetVar Method (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+
lVarID
+
ID of the variable for which to set a value (see Remarks)
+
+
+
oValue
+
Value to set
+
+ +
+ +
+ + +
+
+ Sets the value of a card variable created in the administration tool. + + +

Syntax

Visual Basic 
Sub SetVar( _
+   ByVal lVarID As System.Integer, _
+   ByVal oValue As System.Object _
+) 
+
C# 
void SetVar( 
+   System.int lVarID,
+   System.object oValue
+)
+
C++/CLI 
void SetVar( 
+&   System.int lVarID,
+&   System.Object^ oValue
+) 
+ +

Parameters

lVarID
+
ID of the variable for which to set a value (see Remarks)
oValue
+
Value to set
+ +
+ + + + + +

Remarks

The task add-in can display a data card with variable values that the user can modify when the task is launched on the client computer (EdmCmdType.EdmCmd_TaskLaunch). The add-in can call this method to store the variable values entered by the user.

+

The card variable value set by this method can be retrieved by calling:

+ +

Card variables are created using the administration tool card editor and are not related to the user-defined variables accessed by IEdmTaskInstance::GetValEx and IEdmTaskInstance::SetValEx.

+

The difference between this method and IEdmTaskInstance::SetValEx is that the latter does not require a pre-defined card variable in the vault, whereas this method does.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskFlags.html new file mode 100644 index 0000000..9391244 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskFlags.html @@ -0,0 +1,148 @@ + + + + + + TaskFlags Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskFlags Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : TaskFlags Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets or sets task-specific options. + + +

Syntax

Visual Basic 
Property TaskFlags As System.Integer
+
C# 
System.int TaskFlags {get; set;}
+
C++/CLI 
property System.int TaskFlags {
+   System.int get();
+   void set ( &   System.int value);
+}
+ + + +

Property Value

Combination of EdmTaskFlag bits
+ + +

Example

See the examples in IEdmTaskProperties. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskGUID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskGUID.html new file mode 100644 index 0000000..8ac957e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskGUID.html @@ -0,0 +1,147 @@ + + + + + + TaskGUID Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskGUID Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : TaskGUID Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the unique ID of this task definition. + + +

Syntax

Visual Basic 
ReadOnly Property TaskGUID As System.String
+
C# 
System.string TaskGUID {get;}
+
C++/CLI 
property System.String^ TaskGUID {
+   System.String^ get();
+}
+ + + +

Property Value

Unique ID of this task definition
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskID.html new file mode 100644 index 0000000..09bbe31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskID.html @@ -0,0 +1,147 @@ + + + + + + TaskID Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskID Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : TaskID Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of this task definition. + + +

Syntax

Visual Basic 
ReadOnly Property TaskID As System.Integer
+
C# 
System.int TaskID {get;}
+
C++/CLI 
property System.int TaskID {
+   System.int get();
+}
+ + + +

Property Value

Database ID of this task definition
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskName.html new file mode 100644 index 0000000..ab59092 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TaskName.html @@ -0,0 +1,147 @@ + + + + + + TaskName Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TaskName Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : TaskName Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this task. + + +

Syntax

Visual Basic 
ReadOnly Property TaskName As System.String
+
C# 
System.string TaskName {get;}
+
C++/CLI 
property System.String^ TaskName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of this task
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TimeoutInSeconds.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TimeoutInSeconds.html new file mode 100644 index 0000000..663cdb2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~TimeoutInSeconds.html @@ -0,0 +1,147 @@ + + + + + + TimeoutInSeconds Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TimeoutInSeconds Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : TimeoutInSeconds Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the number of seconds to wait until failing the task. + + +

Syntax

Visual Basic 
ReadOnly Property TimeoutInSeconds As System.Integer
+
C# 
System.int TimeoutInSeconds {get;}
+
C++/CLI 
property System.int TimeoutInSeconds {
+   System.int get();
+}
+ + + +

Property Value

Number of seconds to wait until failing the task; 0 to wait forever
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~UserName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~UserName.html new file mode 100644 index 0000000..4a5ff02 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTaskProperties~UserName.html @@ -0,0 +1,147 @@ + + + + + + UserName Property (IEdmTaskProperties) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserName Property (IEdmTaskProperties)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTaskProperties Interface + : UserName Property (IEdmTaskProperties)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of the user as whom to execute this task. + + +

Syntax

Visual Basic 
ReadOnly Property UserName As System.String
+
C# 
System.string UserName {get;}
+
C++/CLI 
property System.String^ UserName {
+   System.String^ get();
+}
+ + + +

Property Value

Name of a user
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5.html new file mode 100644 index 0000000..bf5f87f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5.html @@ -0,0 +1,140 @@ + + + + + + IEdmTemplate5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTemplate5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single template.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTemplate5 
+
C# 
public interface IEdmTemplate5 
+
C++/CLI 
public interface class IEdmTemplate5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53.html new file mode 100644 index 0000000..35b2766 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53.html @@ -0,0 +1,141 @@ + + + + + + IEdmTemplate53 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate53 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTemplate53 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single template.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTemplate53 
+   Inherits IEdmTemplate5 
+
C# 
public interface IEdmTemplate53 : IEdmTemplate5  
+
C++/CLI 
public interface class IEdmTemplate53 : public IEdmTemplate5  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_members.html new file mode 100644 index 0000000..badd941 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmTemplate53 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate53 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate53 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTemplate53.

+ + +

Public Methods

+ +
 NameDescription
 MethodRunExExecutes this template in the specified folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_methods.html new file mode 100644 index 0000000..745a744 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmTemplate53 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate53 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate53 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTemplate53 members.

+

Public Methods

+ +
 NameDescription
 MethodRunExExecutes this template in the specified folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53~RunEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53~RunEx.html new file mode 100644 index 0000000..84aa048 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate53~RunEx.html @@ -0,0 +1,172 @@ + + + + + + RunEx Method (IEdmTemplate53) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RunEx Method (IEdmTemplate53)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplate53 Interface + : RunEx Method (IEdmTemplate53)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
lCurrentFolderID
+
ID of the folder in which to execute this template
+
+
+
ppoRetData
+
Array of IEdmData interfaces; one interface for each object created by this template
+
+ +
+ +
+ + +
+
+ Executes this template in the specified folder. + + +

Syntax

Visual Basic 
Function RunEx( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal lCurrentFolderID As System.Integer, _
+   ByRef ppoRetData() As System.Object _
+) As System.Integer
+
C# 
System.int RunEx( 
+   System.int hParentWnd,
+   System.int lCurrentFolderID,
+   out System.object[] ppoRetData
+)
+
C++/CLI 
System.int RunEx( 
+&   System.int hParentWnd,
+&   System.int lCurrentFolderID,
+&   [Out] System.array<Object^>^ ppoRetData
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
lCurrentFolderID
+
ID of the folder in which to execute this template
ppoRetData
+
Array of IEdmData interfaces; one interface for each object created by this template
+ +

Return Value

User-interface refresh flags as defined in EdmRefleshFlag
+ + +

Example

See the IEdmTemplate53 examples. +
+ +

Remarks

This method executes this template like IEdmTemplate5::Run does, but it also returns information about all of the files, folders, and variables created by this template.

+

If your application needs to be backward compatible with SOLIDWORKS PDM Professional 5.2, use IEdmTemplate5::Run instead of this method.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_members.html new file mode 100644 index 0000000..b782f31 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmTemplate5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTemplate5.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetIconExtensionGets the file extension for the icon registered with this template.  
 MethodGetMenuStringGets the string displayed in the SOLIDWORKS PDM Professional menu for this template.  
 MethodRunExecutes this template in the specified folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_methods.html new file mode 100644 index 0000000..0739270 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmTemplate5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTemplate5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetIconExtensionGets the file extension for the icon registered with this template.  
 MethodGetMenuStringGets the string displayed in the SOLIDWORKS PDM Professional menu for this template.  
 MethodRunExecutes this template in the specified folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetIconExtension.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetIconExtension.html new file mode 100644 index 0000000..9b3120b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetIconExtension.html @@ -0,0 +1,144 @@ + + + + + + GetIconExtension Method (IEdmTemplate5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetIconExtension Method (IEdmTemplate5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplate5 Interface + : GetIconExtension Method (IEdmTemplate5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file extension for the icon registered with this template. + + +

Syntax

Visual Basic 
Function GetIconExtension() As System.String
+
C# 
System.string GetIconExtension()
+
C++/CLI 
System.String^ GetIconExtension(); 
+ + + +

Return Value

File extension of the icon registered with this template
+ + + + + +

Remarks

Templates are listed with a menu string and, optionally, an icon in SOLIDWORKS PDM Professional's menus and list controls. The file extension retrieved maps to the registered icon for the Windows file type of this template.

+

C++ programmers not using bstr_t wrapper functions must free the returned string with a call to SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetMenuString.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetMenuString.html new file mode 100644 index 0000000..78270b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~GetMenuString.html @@ -0,0 +1,145 @@ + + + + + + GetMenuString Method (IEdmTemplate5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetMenuString Method (IEdmTemplate5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplate5 Interface + : GetMenuString Method (IEdmTemplate5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the string displayed in the SOLIDWORKS PDM Professional menu for this template. + + +

Syntax

Visual Basic 
Function GetMenuString() As System.String
+
C# 
System.string GetMenuString()
+
C++/CLI 
System.String^ GetMenuString(); 
+ + + +

Return Value

Menu string
+ + + + +

Example

+

Remarks

C++ programmers not using bstr_t wrapper functions must free the returned string with a call to SysFreeString.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~Run.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~Run.html new file mode 100644 index 0000000..4187c91 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate5~Run.html @@ -0,0 +1,165 @@ + + + + + + Run Method (IEdmTemplate5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Run Method (IEdmTemplate5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplate5 Interface + : Run Method (IEdmTemplate5)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
lCurrentFolderID
+
ID of folder in which to run this template
+
+ +
+ +
+ + +
+
+ Executes this template in the specified folder. + + +

Syntax

Visual Basic 
Function Run( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal lCurrentFolderID As System.Integer _
+) As System.Integer
+
C# 
System.int Run( 
+   System.int hParentWnd,
+   System.int lCurrentFolderID
+)
+
C++/CLI 
System.int Run( 
+&   System.int hParentWnd,
+&   System.int lCurrentFolderID
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
lCurrentFolderID
+
ID of folder in which to run this template
+ +

Return Value

User-interface refresh flags as defined in EdmRefreshFlag
+ + + + +

Example

+

Remarks

This method is extended by IEdmTemplate53::RunEx which returns information about all of the files and folders created by the template.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6.html new file mode 100644 index 0000000..dcacfe1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6.html @@ -0,0 +1,136 @@ + + + + + + IEdmTemplate6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTemplate6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a single template.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTemplate6 
+   Inherits IEdmTemplate5IEdmTemplate53 
+
C# 
public interface IEdmTemplate6 : IEdmTemplate5IEdmTemplate53  
+
C++/CLI 
public interface class IEdmTemplate6 : public IEdmTemplate5IEdmTemplate53  
+
+ + + + +

Remarks

This interface extends IEdmTemplate53 by providing the ability to get the fixed folder ID in the template.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_members.html new file mode 100644 index 0000000..db3d0d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmTemplate6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTemplate6.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetTemplateFixedFolderGets the fixed folder ID in the template.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_methods.html new file mode 100644 index 0000000..34031d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmTemplate6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplate6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplate6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTemplate6 members.

+

Public Methods

+ +
 NameDescription
 MethodGetTemplateFixedFolderGets the fixed folder ID in the template.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6~GetTemplateFixedFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6~GetTemplateFixedFolder.html new file mode 100644 index 0000000..9687e6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplate6~GetTemplateFixedFolder.html @@ -0,0 +1,140 @@ + + + + + + GetTemplateFixedFolder Method (IEdmTemplate6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTemplateFixedFolder Method (IEdmTemplate6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplate6 Interface + : GetTemplateFixedFolder Method (IEdmTemplate6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the fixed folder ID in the template. + + +

Syntax

Visual Basic 
Function GetTemplateFixedFolder() As System.Integer
+
C# 
System.int GetTemplateFixedFolder()
+
C++/CLI 
System.int GetTemplateFixedFolder(); 
+ + + +

Return Value

Fixed folder ID
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5.html new file mode 100644 index 0000000..397a1c0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5.html @@ -0,0 +1,138 @@ + + + + + + IEdmTemplateMgr5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplateMgr5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTemplateMgr5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the templates installed in the file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTemplateMgr5 
+
C# 
public interface IEdmTemplateMgr5 
+
C++/CLI 
public interface class IEdmTemplateMgr5 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

Templates are sequences of commands that you set up using the Template Manager command in the File Explorer Tools menu. See the SOLIDWORKS PDM Professional help for more information.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_members.html new file mode 100644 index 0000000..7f1e685 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmTemplateMgr5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplateMgr5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplateMgr5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTemplateMgr5.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetFirstTemplatePositionStarts an enumeration of the templates installed in the vault.  
 MethodGetNextTemplateGets the next template in this list.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_methods.html new file mode 100644 index 0000000..84ee8e0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmTemplateMgr5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTemplateMgr5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTemplateMgr5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTemplateMgr5 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFirstTemplatePositionStarts an enumeration of the templates installed in the vault.  
 MethodGetNextTemplateGets the next template in this list.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetFirstTemplatePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetFirstTemplatePosition.html new file mode 100644 index 0000000..67738a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetFirstTemplatePosition.html @@ -0,0 +1,146 @@ + + + + + + GetFirstTemplatePosition Method (IEdmTemplateMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstTemplatePosition Method (IEdmTemplateMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplateMgr5 Interface + : GetFirstTemplatePosition Method (IEdmTemplateMgr5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the templates installed in the vault. + + +

Syntax

Visual Basic 
Function GetFirstTemplatePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstTemplatePosition()
+
C++/CLI 
IEdmPos5^ GetFirstTemplatePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first installed template
+ + + + +

Example

+

Remarks

After calling this method, pass the position of the first template to IEdmTemplateMgr5::GetNextTemplate to get the first template in this list. Then call IEdmTemplateMgr5::GetNextTemplate repeatedly to get the rest of the templates in this list.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetNextTemplate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetNextTemplate.html new file mode 100644 index 0000000..c5224d4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTemplateMgr5~GetNextTemplate.html @@ -0,0 +1,160 @@ + + + + + + GetNextTemplate Method (IEdmTemplateMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextTemplate Method (IEdmTemplateMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTemplateMgr5 Interface + : GetNextTemplate Method (IEdmTemplateMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next template
+
+ +
+ +
+ + +
+
+ Gets the next template in this list. + + +

Syntax

Visual Basic 
Function GetNextTemplate( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmTemplate5
+
C# 
IEdmTemplate5 GetNextTemplate( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmTemplate5^ GetNextTemplate( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next template
+ +

Return Value

IEdmTemplate5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first template, IEdmPos5. Call IEdmTemplateMgr5::GetFirstTemplatePosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the templates.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmTemplate5.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10.html new file mode 100644 index 0000000..d03919a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10.html @@ -0,0 +1,138 @@ + + + + + + IEdmTransition10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition10 
+   Inherits IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8IEdmTransition9 
+
C# 
public interface IEdmTransition10 : IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8IEdmTransition9  
+
C++/CLI 
public interface class IEdmTransition10 : public IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8IEdmTransition9  
+
+ + + +

Example

+

Remarks

This interface extends IEdmTransition9 by providing password protection.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_members.html new file mode 100644 index 0000000..c045365 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmTransition10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition10 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition10.

+

Public Properties

+ +
 NameDescription
 PropertyAuthenticationGets whether this workflow transition requires a password.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_properties.html new file mode 100644 index 0000000..91b16af --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmTransition10 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition10 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition10 members.

+

Public Properties

+ +
 NameDescription
 PropertyAuthenticationGets whether this workflow transition requires a password.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10~Authentication.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10~Authentication.html new file mode 100644 index 0000000..9c236dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition10~Authentication.html @@ -0,0 +1,149 @@ + + + + + + Authentication Property (IEdmTransition10) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Authentication Property (IEdmTransition10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition10 Interface + : Authentication Property (IEdmTransition10)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this workflow transition requires a password. + + +

Syntax

Visual Basic 
ReadOnly Property Authentication As System.Boolean
+
C# 
System.bool Authentication {get;}
+
C++/CLI 
property System.bool Authentication {
+   System.bool get();
+}
+ + + +

Property Value

True if this workflow transition requires a password, false if not
+ + +

Example

See the IEdmTransition10 examples. +
+ +

Remarks

This property corresponds to the Authentication check box in the Properties dialog of a transition.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP02
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5.html new file mode 100644 index 0000000..8850b7f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5.html @@ -0,0 +1,143 @@ + + + + + + IEdmTransition5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmTransition5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmTransition5 : public IEdmObject5  
+
+ + + + +

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_members.html new file mode 100644 index 0000000..6fc14da --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmTransition5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition5.

+

Public Properties

+ + + + +
 NameDescription
 PropertyFromStateGets the source state of this transition.  
 PropertyFromStateIDGets the ID of the source state of this transition.  
 PropertyToStateGets the destination state of this transition.  
 PropertyToStateIDGets the ID of the destination state of this transition.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodCheckPermissionGets whether the logged-in user has permission to perform this transition.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_methods.html new file mode 100644 index 0000000..8204c49 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmTransition5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition5 members.

+

Public Methods

+ +
 NameDescription
 MethodCheckPermissionGets whether the logged-in user has permission to perform this transition.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_properties.html new file mode 100644 index 0000000..2bb70ff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5_properties.html @@ -0,0 +1,110 @@ + + + + + + IEdmTransition5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition5 members.

+

Public Properties

+ + + + +
 NameDescription
 PropertyFromStateGets the source state of this transition.  
 PropertyFromStateIDGets the ID of the source state of this transition.  
 PropertyToStateGets the destination state of this transition.  
 PropertyToStateIDGets the ID of the destination state of this transition.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~CheckPermission.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~CheckPermission.html new file mode 100644 index 0000000..c596700 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~CheckPermission.html @@ -0,0 +1,143 @@ + + + + + + CheckPermission Method (IEdmTransition5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CheckPermission Method (IEdmTransition5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition5 Interface + : CheckPermission Method (IEdmTransition5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the logged-in user has permission to perform this transition. + + +

Syntax

Visual Basic 
Function CheckPermission() As System.Boolean
+
C# 
System.bool CheckPermission()
+
C++/CLI 
System.bool CheckPermission(); 
+ + + +

Return Value

True if the user can make this transition, false if not
+ + + + + +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The user lacks permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromState.html new file mode 100644 index 0000000..8a05609 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromState.html @@ -0,0 +1,147 @@ + + + + + + FromState Property (IEdmTransition5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FromState Property (IEdmTransition5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition5 Interface + : FromState Property (IEdmTransition5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the source state of this transition. + + +

Syntax

Visual Basic 
ReadOnly Property FromState As IEdmState5
+
C# 
IEdmState5 FromState {get;}
+
C++/CLI 
property IEdmState5^ FromState {
+   IEdmState5^ get();
+}
+ + + +

Property Value

IEdmState5; Null if no source state exists (see Remarks)
+ + + + + +

Remarks

A SOLIDWORKS PDM Professional workflow contains one transition, called AddedToFileVault, without a source state. In SOLIDWORKS PDM Professional 5.2, trying to access the FromState property of the AddedToFileVault transition results in an exception with the error code E_EDM_STATE_NOT_FOUND. In SOLIDWORKS PDM Professional 5.3 and later, the FromState property can be read without exception from the AddedToFileVault transition.

+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromStateID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromStateID.html new file mode 100644 index 0000000..b63a3a3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~FromStateID.html @@ -0,0 +1,147 @@ + + + + + + FromStateID Property (IEdmTransition5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FromStateID Property (IEdmTransition5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition5 Interface + : FromStateID Property (IEdmTransition5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the source state of this transition. + + +

Syntax

Visual Basic 
ReadOnly Property FromStateID As System.Integer
+
C# 
System.int FromStateID {get;}
+
C++/CLI 
property System.int FromStateID {
+   System.int get();
+}
+ + + +

Property Value

ID of the source state of this transition; 1 if there is no source state
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToState.html new file mode 100644 index 0000000..b35a166 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToState.html @@ -0,0 +1,147 @@ + + + + + + ToState Property (IEdmTransition5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ToState Property (IEdmTransition5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition5 Interface + : ToState Property (IEdmTransition5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the destination state of this transition. + + +

Syntax

Visual Basic 
ReadOnly Property ToState As IEdmState5
+
C# 
IEdmState5 ToState {get;}
+
C++/CLI 
property IEdmState5^ ToState {
+   IEdmState5^ get();
+}
+ + + +

Property Value

IEdmState5
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToStateID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToStateID.html new file mode 100644 index 0000000..525fbdf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition5~ToStateID.html @@ -0,0 +1,147 @@ + + + + + + ToStateID Property (IEdmTransition5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ToStateID Property (IEdmTransition5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition5 Interface + : ToStateID Property (IEdmTransition5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the destination state of this transition. + + +

Syntax

Visual Basic 
ReadOnly Property ToStateID As System.Integer
+
C# 
System.int ToStateID {get;}
+
C++/CLI 
property System.int ToStateID {
+   System.int get();
+}
+ + + +

Property Value

ID of the destination state of this transition
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6.html new file mode 100644 index 0000000..09b3d37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6.html @@ -0,0 +1,139 @@ + + + + + + IEdmTransition6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition6 
+   Inherits IEdmObject5IEdmTransition5 
+
C# 
public interface IEdmTransition6 : IEdmObject5IEdmTransition5  
+
C++/CLI 
public interface class IEdmTransition6 : public IEdmObject5IEdmTransition5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_members.html new file mode 100644 index 0000000..aa27f36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmTransition6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition6.

+

Public Properties

+ +
 NameDescription
 PropertyWorkflowIDGets the ID of the workflow to which this transition belongs.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_properties.html new file mode 100644 index 0000000..5090e2c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmTransition6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition6 members.

+

Public Properties

+ +
 NameDescription
 PropertyWorkflowIDGets the ID of the workflow to which this transition belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6~WorkflowID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6~WorkflowID.html new file mode 100644 index 0000000..a08d5e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition6~WorkflowID.html @@ -0,0 +1,147 @@ + + + + + + WorkflowID Property (IEdmTransition6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
WorkflowID Property (IEdmTransition6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition6 Interface + : WorkflowID Property (IEdmTransition6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the workflow to which this transition belongs. + + +

Syntax

Visual Basic 
ReadOnly Property WorkflowID As System.Integer
+
C# 
System.int WorkflowID {get;}
+
C++/CLI 
property System.int WorkflowID {
+   System.int get();
+}
+ + + +

Property Value

ID of IEdmWorkflow6
+ + + + + +

Remarks

To obtain IEdmWorkflow6, call IEdmVault5::GetObject with lObjectID set to this property.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7.html new file mode 100644 index 0000000..33fc6c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7.html @@ -0,0 +1,141 @@ + + + + + + IEdmTransition7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition7 
+   Inherits IEdmObject5IEdmTransition5IEdmTransition6 
+
C# 
public interface IEdmTransition7 : IEdmObject5IEdmTransition5IEdmTransition6  
+
C++/CLI 
public interface class IEdmTransition7 : public IEdmObject5IEdmTransition5IEdmTransition6  
+
+ + + +

Example

+ +

Accessors

This interface:

+
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_members.html new file mode 100644 index 0000000..910f237 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmTransition7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition7.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetArrowVerticesGets the points that make up the transition arrow in the workflow graph.  
 MethodGetRectGets the bounding rectangle of the transition box in the workflow editor.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_methods.html new file mode 100644 index 0000000..7b0bf6c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmTransition7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition7 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetArrowVerticesGets the points that make up the transition arrow in the workflow graph.  
 MethodGetRectGets the bounding rectangle of the transition box in the workflow editor.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetArrowVertices.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetArrowVertices.html new file mode 100644 index 0000000..9621622 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetArrowVertices.html @@ -0,0 +1,155 @@ + + + + + + GetArrowVertices Method (IEdmTransition7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetArrowVertices Method (IEdmTransition7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition7 Interface + : GetArrowVertices Method (IEdmTransition7)
+ +
+ + + +
+ +
+ + +
+
+
ppoVertices
+
Array of EdmPoint structures; one structure for each point that makes up the transition arrow
+
+ +
+ +
+ + +
+
+ Gets the points that make up the transition arrow in the workflow graph. + + +

Syntax

Visual Basic 
Sub GetArrowVertices( _
+   ByRef ppoVertices() As EdmPoint _
+) 
+
C# 
void GetArrowVertices( 
+   out EdmPoint[] ppoVertices
+)
+
C++/CLI 
void GetArrowVertices( 
+&   [Out] array<EdmPoint>^ ppoVertices
+) 
+ +

Parameters

ppoVertices
+
Array of EdmPoint structures; one structure for each point that makes up the transition arrow
+ +
+ + +

Example

See the IEdmTransition7 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetRect.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetRect.html new file mode 100644 index 0000000..c95eaf6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition7~GetRect.html @@ -0,0 +1,155 @@ + + + + + + GetRect Method (IEdmTransition7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRect Method (IEdmTransition7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition7 Interface + : GetRect Method (IEdmTransition7)
+ +
+ + + +
+ +
+ + +
+
+
poRect
+
EdmRect structure; bounding rectangle
+
+ +
+ +
+ + +
+
+ Gets the bounding rectangle of the transition box in the workflow editor. + + +

Syntax

Visual Basic 
Sub GetRect( _
+   ByRef poRect As EdmRect _
+) 
+
C# 
void GetRect( 
+   out EdmRect poRect
+)
+
C++/CLI 
void GetRect( 
+&   [Out] EdmRect poRect
+) 
+ +

Parameters

poRect
+
EdmRect structure; bounding rectangle
+ +
+ + +

Example

See the IEdmTransition7 examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8.html new file mode 100644 index 0000000..49705c0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8.html @@ -0,0 +1,139 @@ + + + + + + IEdmTransition8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition8 
+   Inherits IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7 
+
C# 
public interface IEdmTransition8 : IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7  
+
C++/CLI 
public interface class IEdmTransition8 : public IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_members.html new file mode 100644 index 0000000..6c892cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmTransition8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition8.

+ + +

Public Methods

+ +
 NameDescription
 MethodCheckProjectPermissionChecks whether the user has permission to perform this transition for the specified project.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_methods.html new file mode 100644 index 0000000..f6846cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmTransition8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition8 members.

+

Public Methods

+ +
 NameDescription
 MethodCheckProjectPermissionChecks whether the user has permission to perform this transition for the specified project.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8~CheckProjectPermission.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8~CheckProjectPermission.html new file mode 100644 index 0000000..dfc7467 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition8~CheckProjectPermission.html @@ -0,0 +1,152 @@ + + + + + + CheckProjectPermission Method (IEdmTransition8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CheckProjectPermission Method (IEdmTransition8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition8 Interface + : CheckProjectPermission Method (IEdmTransition8)
+ +
+ + + +
+ +
+ + +
+
+
lProjectID
+
Project ID
+
+ +
+ +
+ + +
+
+ Checks whether the user has permission to perform this transition for the specified project. + + +

Syntax

Visual Basic 
Function CheckProjectPermission( _
+   ByVal lProjectID As System.Integer _
+) As System.Boolean
+
C# 
System.bool CheckProjectPermission( 
+   System.int lProjectID
+)
+
C++/CLI 
System.bool CheckProjectPermission( 
+&   System.int lProjectID
+) 
+ +

Parameters

lProjectID
+
Project ID
+ +

Return Value

True if the user has permission to perform the transition, false if not
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9.html new file mode 100644 index 0000000..f73a8f8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9.html @@ -0,0 +1,139 @@ + + + + + + IEdmTransition9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition9 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmTransition9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow transition.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmTransition9 
+   Inherits IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8 
+
C# 
public interface IEdmTransition9 : IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8  
+
C++/CLI 
public interface class IEdmTransition9 : public IEdmObject5IEdmTransition5IEdmTransition6IEdmTransition7IEdmTransition8  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_members.html new file mode 100644 index 0000000..5008fbd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmTransition9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition9 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmTransition9.

+

Public Properties

+ + + +
 NameDescription
 PropertyHideIfParallelSiblingTransitionUsedGets whether to hide this transition when a sibling parallel transition occurs.  
 PropertyTransitionTypeGets the type of transition.  
 PropertyUserPartOfTransitionRolesGets whether the logged-in user has a role in this parallel transition.  
Top
+ +

Public Methods

+ +
 NameDescription
 MethodGetParallelTransitionInfoGets the required information for the parallel transition of the specified document and project.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_methods.html new file mode 100644 index 0000000..fd5d5aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmTransition9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition9 members.

+

Public Methods

+ +
 NameDescription
 MethodGetParallelTransitionInfoGets the required information for the parallel transition of the specified document and project.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_properties.html new file mode 100644 index 0000000..229df9d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmTransition9 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmTransition9 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmTransition9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmTransition9 members.

+

Public Properties

+ + + +
 NameDescription
 PropertyHideIfParallelSiblingTransitionUsedGets whether to hide this transition when a sibling parallel transition occurs.  
 PropertyTransitionTypeGets the type of transition.  
 PropertyUserPartOfTransitionRolesGets whether the logged-in user has a role in this parallel transition.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~GetParallelTransitionInfo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~GetParallelTransitionInfo.html new file mode 100644 index 0000000..0aa63d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~GetParallelTransitionInfo.html @@ -0,0 +1,184 @@ + + + + + + GetParallelTransitionInfo Method (IEdmTransition9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetParallelTransitionInfo Method (IEdmTransition9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition9 Interface + : GetParallelTransitionInfo Method (IEdmTransition9)
+ +
+ + + +
+ +
+ + +
+
+
lDocumentID
+
Document ID
+
+
+
lProjectID
+
Project ID
+
+
+
plReqNum
+
Number of this parallel transition
+
+
+
plCommitNum
+
Number of committed users
+
+
+
pbRevoke
+
True to revoke, false to not
+
+ +
+ +
+ + +
+
+ Gets the required information for the parallel transition of the specified document and project. + + +

Syntax

Visual Basic 
Sub GetParallelTransitionInfo( _
+   ByVal lDocumentID As System.Integer, _
+   ByVal lProjectID As System.Integer, _
+   ByRef plReqNum As System.Integer, _
+   ByRef plCommitNum As System.Integer, _
+   ByRef pbRevoke As System.Boolean _
+) 
+
C# 
void GetParallelTransitionInfo( 
+   System.int lDocumentID,
+   System.int lProjectID,
+   out System.int plReqNum,
+   out System.int plCommitNum,
+   out System.bool pbRevoke
+)
+
C++/CLI 
void GetParallelTransitionInfo( 
+&   System.int lDocumentID,
+&   System.int lProjectID,
+&   [Out] System.int plReqNum,
+&   [Out] System.int plCommitNum,
+&   [Out] System.bool pbRevoke
+) 
+ +

Parameters

lDocumentID
+
Document ID
lProjectID
+
Project ID
plReqNum
+
Number of this parallel transition
plCommitNum
+
Number of committed users
pbRevoke
+
True to revoke, false to not
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~HideIfParallelSiblingTransitionUsed.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~HideIfParallelSiblingTransitionUsed.html new file mode 100644 index 0000000..c4609d2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~HideIfParallelSiblingTransitionUsed.html @@ -0,0 +1,147 @@ + + + + + + HideIfParallelSiblingTransitionUsed Property (IEdmTransition9) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HideIfParallelSiblingTransitionUsed Property (IEdmTransition9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition9 Interface + : HideIfParallelSiblingTransitionUsed Property (IEdmTransition9)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether to hide this transition when a sibling parallel transition occurs. + + +

Syntax

Visual Basic 
ReadOnly Property HideIfParallelSiblingTransitionUsed As System.Boolean
+
C# 
System.bool HideIfParallelSiblingTransitionUsed {get;}
+
C++/CLI 
property System.bool HideIfParallelSiblingTransitionUsed {
+   System.bool get();
+}
+ + + +

Property Value

True to hide this transition when a sibling parallel transition occurs, false to not
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~TransitionType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~TransitionType.html new file mode 100644 index 0000000..06cf2dd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~TransitionType.html @@ -0,0 +1,147 @@ + + + + + + TransitionType Property (IEdmTransition9) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
TransitionType Property (IEdmTransition9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition9 Interface + : TransitionType Property (IEdmTransition9)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of transition. + + +

Syntax

Visual Basic 
ReadOnly Property TransitionType As EdmTransitionType
+
C# 
EdmTransitionType TransitionType {get;}
+
C++/CLI 
property EdmTransitionType TransitionType {
+   EdmTransitionType get();
+}
+ + + +

Property Value

Type of transition as defined in EdmTransitionType
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~UserPartOfTransitionRoles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~UserPartOfTransitionRoles.html new file mode 100644 index 0000000..abbdc8d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmTransition9~UserPartOfTransitionRoles.html @@ -0,0 +1,157 @@ + + + + + + UserPartOfTransitionRoles Property (IEdmTransition9) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserPartOfTransitionRoles Property (IEdmTransition9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmTransition9 Interface + : UserPartOfTransitionRoles Property (IEdmTransition9)
+ +
+ + + +
+ +
+ + +
+
+
lProjectID
+
Project ID
+
+ +
+ +
+ + +
+
+ Gets whether the logged-in user has a role in this parallel transition. + + +

Syntax

Visual Basic 
ReadOnly Property UserPartOfTransitionRoles( _
+   ByVal lProjectID As System.Integer _
+) As System.Boolean
+
C# 
System.bool UserPartOfTransitionRoles( 
+   System.int lProjectID
+) {get;}
+
C++/CLI 
property System.bool UserPartOfTransitionRoles {
+   System.bool get(System.int lProjectID);
+}
+ +

Parameters

lProjectID
+
Project ID
+ +

Property Value

True if the logged-in user has a role in this parallel transition, false if not
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback.html new file mode 100644 index 0000000..f3948b1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback.html @@ -0,0 +1,144 @@ + + + + + + IEdmUnlockOpCallback Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUnlockOpCallback Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUnlockOpCallback Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access information and gain control of IEdmBatchUnlock operations.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUnlockOpCallback 
+
C# 
public interface IEdmUnlockOpCallback 
+
C++/CLI 
public interface class IEdmUnlockOpCallback 
+
+ + + +

Example

+

Remarks

This interface inherits from IUnknown. See Using and Implementing IUnknown (COM).

+

To use this callback interface:

+
    +
  1. Create a new class. +
  2. Implement all of the methods of this interface in the new class. +
  3. Call IEdmBatchUnlock::CreateTree or IEdmBatchUnlock::UnlockFiles, setting poCallback to a pointer to the new class.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_members.html new file mode 100644 index 0000000..c600821 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmUnlockOpCallback Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUnlockOpCallback Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUnlockOpCallback Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUnlockOpCallback.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodMsgBoxCalled by the check-in operation to display a message box with information or options that the user can choose.  
 MethodProgressBeginCalled by the check-in operation when it starts.  
 MethodProgressEndCalled by the check-in operation when it finishes.  
 MethodProgressStepCalled to advance a progress bar.  
 MethodProgressStepEventCalled to advance a progress bar.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_methods.html new file mode 100644 index 0000000..60b7ae3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmUnlockOpCallback Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUnlockOpCallback Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUnlockOpCallback Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUnlockOpCallback members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodMsgBoxCalled by the check-in operation to display a message box with information or options that the user can choose.  
 MethodProgressBeginCalled by the check-in operation when it starts.  
 MethodProgressEndCalled by the check-in operation when it finishes.  
 MethodProgressStepCalled to advance a progress bar.  
 MethodProgressStepEventCalled to advance a progress bar.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~MsgBox.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~MsgBox.html new file mode 100644 index 0000000..3274f06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~MsgBox.html @@ -0,0 +1,186 @@ + + + + + + MsgBox Method (IEdmUnlockOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MsgBox Method (IEdmUnlockOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUnlockOpCallback Interface + : MsgBox Method (IEdmUnlockOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eMsg
+
Message to display as defined in EdmUnlockOpMsg
+
+
+
lDocID
+
ID of the file that caused the message
+
+
+
lProjID
+
ID of the file's parent folder
+
+
+
bsPath
+
Full path to the file that caused the message
+
+
+
poError
+
EdmUnlockErrInfo structure containing extended information about the error
+
+ +
+ +
+ + +
+
+ Called by the check-in operation to display a message box with information or options that the user can choose. + + +

Syntax

Visual Basic 
Function MsgBox( _
+   ByVal eMsg As EdmUnlockOpMsg, _
+   ByVal lDocID As System.Integer, _
+   ByVal lProjID As System.Integer, _
+   ByVal bsPath As System.String, _
+   ByRef poError As EdmUnlockErrInfo _
+) As EdmUnlockOpReply
+
C# 
EdmUnlockOpReply MsgBox( 
+   EdmUnlockOpMsg eMsg,
+   System.int lDocID,
+   System.int lProjID,
+   System.string bsPath,
+   ref EdmUnlockErrInfo poError
+)
+
C++/CLI 
EdmUnlockOpReply MsgBox( 
+&   EdmUnlockOpMsg eMsg,
+&   System.int lDocID,
+&   System.int lProjID,
+&   System.String^ bsPath,
+&   EdmUnlockErrInfo% poError
+) 
+ +

Parameters

eMsg
+
Message to display as defined in EdmUnlockOpMsg
lDocID
+
ID of the file that caused the message
lProjID
+
ID of the file's parent folder
bsPath
+
Full path to the file that caused the message
poError
+
EdmUnlockErrInfo structure containing extended information about the error
+ +

Return Value

Reply to SOLIDWORKS PDM Professional as defined in EdmUnlockOpReply
+ + +

Example

See the IEdmUnlockOpCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressBegin.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressBegin.html new file mode 100644 index 0000000..f9bc341 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressBegin.html @@ -0,0 +1,171 @@ + + + + + + ProgressBegin Method (IEdmUnlockOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressBegin Method (IEdmUnlockOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUnlockOpCallback Interface + : ProgressBegin Method (IEdmUnlockOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar to start as defined in EdmProgressType
+
+
+
eEvent
+
Type of operation as defined in EdmUnlockEvent
+
+
+
lSteps
+
Number of steps in the operation (see Remarks)
+
+ +
+ +
+ + +
+
+ Called by the check-in operation when it starts. + + +

Syntax

Visual Basic 
Sub ProgressBegin( _
+   ByVal eType As EdmProgressType, _
+   ByVal eEvent As EdmUnlockEvent, _
+   ByVal lSteps As System.Integer _
+) 
+
C# 
void ProgressBegin( 
+   EdmProgressType eType,
+   EdmUnlockEvent eEvent,
+   System.int lSteps
+)
+
C++/CLI 
void ProgressBegin( 
+&   EdmProgressType eType,
+&   EdmUnlockEvent eEvent,
+&   System.int lSteps
+) 
+ +

Parameters

eType
+
Type of progress bar to start as defined in EdmProgressType
eEvent
+
Type of operation as defined in EdmUnlockEvent
lSteps
+
Number of steps in the operation (see Remarks)
+ +
+ + +

Example

See the IEdmUnlockOpCallback examples. +
+ +

Remarks

IEdmUnlockOpCallback::ProgressStep and IEdmUnlockOpCallback::ProgressStepEvent are each called lStep times. IEdmUnlockOpCallback::ProgressEnd is called when the operation completes.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressEnd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressEnd.html new file mode 100644 index 0000000..387f530 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressEnd.html @@ -0,0 +1,155 @@ + + + + + + ProgressEnd Method (IEdmUnlockOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressEnd Method (IEdmUnlockOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUnlockOpCallback Interface + : ProgressEnd Method (IEdmUnlockOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar to end as defined in EdmProgressType
+
+ +
+ +
+ + +
+
+ Called by the check-in operation when it finishes. + + +

Syntax

Visual Basic 
Sub ProgressEnd( _
+   ByVal eType As EdmProgressType _
+) 
+
C# 
void ProgressEnd( 
+   EdmProgressType eType
+)
+
C++/CLI 
void ProgressEnd( 
+&   EdmProgressType eType
+) 
+ +

Parameters

eType
+
Type of progress bar to end as defined in EdmProgressType
+ +
+ + +

Example

See the IEdmUnlockOpCallback examples. +
+ +

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStep.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStep.html new file mode 100644 index 0000000..6d25803 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStep.html @@ -0,0 +1,171 @@ + + + + + + ProgressStep Method (IEdmUnlockOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressStep Method (IEdmUnlockOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUnlockOpCallback Interface + : ProgressStep Method (IEdmUnlockOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar to advance as defined in EdmProgressType
+
+
+
bsText
+
Message that indicates what the operation is doing
+
+
+
lProgressPos
+
New position in the progress bar
+
+ +
+ +
+ + +
+
+ Called to advance a progress bar. + + +

Syntax

Visual Basic 
Function ProgressStep( _
+   ByVal eType As EdmProgressType, _
+   ByVal bsText As System.String, _
+   ByVal lProgressPos As System.Integer _
+) As System.Boolean
+
C# 
System.bool ProgressStep( 
+   EdmProgressType eType,
+   System.string bsText,
+   System.int lProgressPos
+)
+
C++/CLI 
System.bool ProgressStep( 
+&   EdmProgressType eType,
+&   System.String^ bsText,
+&   System.int lProgressPos
+) 
+ +

Parameters

eType
+
Type of progress bar to advance as defined in EdmProgressType
bsText
+
Message that indicates what the operation is doing
lProgressPos
+
New position in the progress bar
+ +

Return Value

True to continue the operation, false to cancel it
+ + +

Example

See the IEdmUnlockOpCallback examples. +
+ +

Remarks

This method or IEdmUnlockOpCallback::ProgressStepEvent is called for each step in an operation that begins with IEdmUnlockOpCallback::ProgressBegin.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStepEvent.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStepEvent.html new file mode 100644 index 0000000..2ed5d72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUnlockOpCallback~ProgressStepEvent.html @@ -0,0 +1,171 @@ + + + + + + ProgressStepEvent Method (IEdmUnlockOpCallback) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ProgressStepEvent Method (IEdmUnlockOpCallback)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUnlockOpCallback Interface + : ProgressStepEvent Method (IEdmUnlockOpCallback)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of progress bar to advance as defined in EdmProgressType
+
+
+
eText
+
Type of current operation as defined in EdmUnlockEventMsg
+
+
+
lProgressPos
+
New position in the progress bar
+
+ +
+ +
+ + +
+
+ Called to advance a progress bar. + + +

Syntax

Visual Basic 
Function ProgressStepEvent( _
+   ByVal eType As EdmProgressType, _
+   ByVal eText As EdmUnlockEventMsg, _
+   ByVal lProgressPos As System.Integer _
+) As System.Boolean
+
C# 
System.bool ProgressStepEvent( 
+   EdmProgressType eType,
+   EdmUnlockEventMsg eText,
+   System.int lProgressPos
+)
+
C++/CLI 
System.bool ProgressStepEvent( 
+&   EdmProgressType eType,
+&   EdmUnlockEventMsg eText,
+&   System.int lProgressPos
+) 
+ +

Parameters

eType
+
Type of progress bar to advance as defined in EdmProgressType
eText
+
Type of current operation as defined in EdmUnlockEventMsg
lProgressPos
+
New position in the progress bar
+ +

Return Value

True to continue the operation, false to cancel it
+ + +

Example

See the IEdmUnlockOpCallback examples. +
+ +

Remarks

This method or IEdmUnlockOpCallback::ProgressStep is called for each step in an operation that begins with IEdmUnlockOpCallback::ProgressBegin.

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.3
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences.html new file mode 100644 index 0000000..1f881c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences.html @@ -0,0 +1,141 @@ + + + + + + IEdmUpdateReferences Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUpdateReferences Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUpdateReferences Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to mend broken file references.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUpdateReferences 
+
C# 
public interface IEdmUpdateReferences 
+
C++/CLI 
public interface class IEdmUpdateReferences 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation)

+

To mend broken file references from the user interface:

+
    +
  1. Select a SOLIDWORKS file. +
  2. Select Tools > Update References in the SOLIWORKS PDM Professional menu bar.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_members.html new file mode 100644 index 0000000..ceacf48 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmUpdateReferences Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUpdateReferences Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUpdateReferences Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUpdateReferences.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddFileAdds an assembly or drawing to the batch of files for which to update file references.  
 MethodShowDlgDisplays the command dialog box for all of the files added to the batch with IEdmUpdateReferences::AddFile.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_methods.html new file mode 100644 index 0000000..c759ffc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUpdateReferences Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUpdateReferences Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUpdateReferences Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUpdateReferences members.

+

Public Methods

+ + +
 NameDescription
 MethodAddFileAdds an assembly or drawing to the batch of files for which to update file references.  
 MethodShowDlgDisplays the command dialog box for all of the files added to the batch with IEdmUpdateReferences::AddFile.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~AddFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~AddFile.html new file mode 100644 index 0000000..5aa55b8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~AddFile.html @@ -0,0 +1,156 @@ + + + + + + AddFile Method (IEdmUpdateReferences) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddFile Method (IEdmUpdateReferences)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUpdateReferences Interface + : AddFile Method (IEdmUpdateReferences)
+ +
+ + + +
+ +
+ + +
+
+
oPath
+
Full path to the file for which to update file references
+
+ +
+ +
+ + +
+
+ Adds an assembly or drawing to the batch of files for which to update file references. + + +

Syntax

Visual Basic 
Sub AddFile( _
+   ByVal oPath As System.Object _
+) 
+
C# 
void AddFile( 
+   System.object oPath
+)
+
C++/CLI 
void AddFile( 
+&   System.Object^ oPath
+) 
+ +

Parameters

oPath
+
Full path to the file for which to update file references
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~ShowDlg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~ShowDlg.html new file mode 100644 index 0000000..945fb77 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUpdateReferences~ShowDlg.html @@ -0,0 +1,172 @@ + + + + + + ShowDlg Method (IEdmUpdateReferences) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowDlg Method (IEdmUpdateReferences)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUpdateReferences Interface + : ShowDlg Method (IEdmUpdateReferences)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
lFlags
+
Must be 0; reserved for future use
+
+
+
lFolderID
+
ID of the active folder; 0 to ignore
+
+ +
+ +
+ + +
+
+ Displays the command dialog box for all of the files added to the batch with IEdmUpdateReferences::AddFile. + + +

Syntax

Visual Basic 
Sub ShowDlg( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByVal lFlags As System.Integer, _
+   Optional ByVal lFolderID As System.Integer _
+) 
+
C# 
void ShowDlg( 
+   System.int lParentWnd,
+   System.int lFlags,
+   System.int lFolderID
+)
+
C++/CLI 
void ShowDlg( 
+&   System.int lParentWnd,
+&   System.int lFlags,
+&   System.int lFolderID
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
lFlags
+
Must be 0; reserved for future use
lFolderID
+
ID of the active folder; 0 to ignore
+ +
+ + + + +

Example

+

Remarks

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10.html new file mode 100644 index 0000000..76d82d6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10.html @@ -0,0 +1,141 @@ + + + + + + IEdmUser10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser10 
+   Inherits IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9 
+
C# 
public interface IEdmUser10 : IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9  
+
C++/CLI 
public interface class IEdmUser10 : public IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_members.html new file mode 100644 index 0000000..46e2f41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmUser10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser10 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser10.

+

Public Properties

+ +
 NameDescription
 PropertyEmailGets this user's e-mail address.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetUserDataExGets information about this user.  
 MethodSetUserDataExSets information about this user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_methods.html new file mode 100644 index 0000000..dde42c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUser10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser10 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetUserDataExGets information about this user.  
 MethodSetUserDataExSets information about this user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_properties.html new file mode 100644 index 0000000..b66ee14 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmUser10 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser10 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser10 members.

+

Public Properties

+ +
 NameDescription
 PropertyEmailGets this user's e-mail address.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~Email.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~Email.html new file mode 100644 index 0000000..7d71676 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~Email.html @@ -0,0 +1,147 @@ + + + + + + Email Property (IEdmUser10) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Email Property (IEdmUser10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser10 Interface + : Email Property (IEdmUser10)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets this user's e-mail address. + + +

Syntax

Visual Basic 
ReadOnly Property Email As System.String
+
C# 
System.string Email {get;}
+
C++/CLI 
property System.String^ Email {
+   System.String^ get();
+}
+ + + +

Property Value

E-mail address
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~GetUserDataEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~GetUserDataEx.html new file mode 100644 index 0000000..9c89d07 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~GetUserDataEx.html @@ -0,0 +1,156 @@ + + + + + + GetUserDataEx Method (IEdmUser10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetUserDataEx Method (IEdmUser10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser10 Interface + : GetUserDataEx Method (IEdmUser10)
+ +
+ + + +
+ +
+ + +
+
+
poUserData
+
EdmUserDataEx (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets information about this user. + + +

Syntax

Visual Basic 
Sub GetUserDataEx( _
+   ByRef poUserData As EdmUserDataEx _
+) 
+
C# 
void GetUserDataEx( 
+   out EdmUserDataEx poUserData
+)
+
C++/CLI 
void GetUserDataEx( 
+&   [Out] EdmUserDataEx poUserData
+) 
+ +

Parameters

poUserData
+
EdmUserDataEx (see Remarks)
+ +
+ + +

Example

See the IEdmUser10 examples. +
+ +

Remarks

The properties and picture associated with this user can be returned. EdmUserDataEx::mlEdmUserDataExFlags indicates which properties to return.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.  
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~SetUserDataEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~SetUserDataEx.html new file mode 100644 index 0000000..dd24b4c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser10~SetUserDataEx.html @@ -0,0 +1,158 @@ + + + + + + SetUserDataEx Method (IEdmUser10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetUserDataEx Method (IEdmUser10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser10 Interface + : SetUserDataEx Method (IEdmUser10)
+ +
+ + + +
+ +
+ + +
+
+
poUserData
+
EdmUserDataEx structure (see Remarks)
+
+ +
+ +
+ + +
+
+ Sets information about this user. + + +

Syntax

Visual Basic 
Sub SetUserDataEx( _
+   ByRef poUserData As EdmUserDataEx _
+) 
+
C# 
void SetUserDataEx( 
+   ref EdmUserDataEx poUserData
+)
+
C++/CLI 
void SetUserDataEx( 
+&   EdmUserDataEx% poUserData
+) 
+ +

Parameters

poUserData
+
EdmUserDataEx structure (see Remarks)
+ +
+ + +

Example

See the IEdmUser10 examples. +
+ +

Remarks

The properties and picture associated with this user can be updated using this method. EdmUserDataEx::mlEdmUserDataExFlags indicates which properties to update. EdmUserDataEx::mlUserID is ignored.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.   +
  • E_EDM_PERMISSION_DENIED: The logged-in user doesn't have user administration privileges. +
  • E_EDM_FILE_NOT_FOUND: A new user picture path was specified, but the file wasn't found. +
  • E_EDM_INVALID_FILE: A new user picture path was specified, but the file format isn't supported.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11.html new file mode 100644 index 0000000..b4df5cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11.html @@ -0,0 +1,140 @@ + + + + + + IEdmUser11 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser11 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser11 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser11 
+   Inherits IEdmObject5IEdmUser10IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9 
+
C# 
public interface IEdmUser11 : IEdmObject5IEdmUser10IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9  
+
C++/CLI 
public interface class IEdmUser11 : public IEdmObject5IEdmUser10IEdmUser5IEdmUser6IEdmUser7IEdmUser8IEdmUser9  
+
+ + + + +

Remarks

This interface extends IEdmUser10 by providing the ability to specify these user settings:

+
    +
  • Automatically delete local read-only files in File Explorer that are not part of the file vault. +
  • Always work with the latest version of files. +
  • Auto-select reference files to get latest when checking out.
+

Accessors

See the IEdmUser5 accessors.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_members.html new file mode 100644 index 0000000..fddeeeb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUser11 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser11 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser11 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser11.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetSettingsVarSets the specified user setting.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_methods.html new file mode 100644 index 0000000..5f2028d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUser11 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser11 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser11 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser11 members.

+

Public Methods

+ +
 NameDescription
 MethodSetSettingsVarSets the specified user setting.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11~SetSettingsVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11~SetSettingsVar.html new file mode 100644 index 0000000..fc7f3f2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser11~SetSettingsVar.html @@ -0,0 +1,250 @@ + + + + + + SetSettingsVar Method (IEdmUser11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetSettingsVar Method (IEdmUser11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser11 Interface + : SetSettingsVar Method (IEdmUser11)
+ +
+ + + +
+ +
+ + +
+
+
eVar
+
User setting as defined by EdmUserSetting
+
+
+
pbsVal
+
Value of eVar
+
+ +
+ +
+ + +
+
+ Sets the specified user setting. + + +

Syntax

Visual Basic 
Sub SetSettingsVar( _
+   ByVal eVar As EdmUserSetting, _
+   ByVal pbsVal As System.String _
+) 
+
C# 
void SetSettingsVar( 
+   EdmUserSetting eVar,
+   System.string pbsVal
+)
+
C++/CLI 
void SetSettingsVar( 
+&   EdmUserSetting eVar,
+&   System.String^ pbsVal
+) 
+ +

Parameters

eVar
+
User setting as defined by EdmUserSetting
pbsVal
+
Value of eVar
+ +
+ + +

Example

//Preconditions:

+

//1. Create a C# console application in Visual Studio.

+

//2. Add references EPDM.Interop.epdm and EPDM.Interop.EPDMResultCode to the project.

+

//3. Copy the code below to Program.cs.

+

//4. Change the namespace to match your project name.

+

//5. Open the Admin Tool and add a user “A†and a user group “NewGroupâ€. Add a user to NewGroup.

+

//6. Ensure that parameters of Login match your vault.

+

//

+

//Postconditions:

+

//1. Open the Admin Tool.

+

//2. Inspect the settings of user “A†to verify that reference files are not auto-selected to get latest when user A checks out a file.

+

//3. Inspect the settings of user group “NewGroup†to verify that reference files are auto-selected to get latest when a user in user group NewGroup checks out a file.

+

 

+

//Program.cs:

+

+

using System;

+

using System.Text;

+

using EPDM.Interop.epdm;

+

using EPDM.Interop.EPDMResultCode;

+

+

namespace project_name

+

{

+

  class Program

+

  {

+

+

    static string userName = "Admin";

+

    static string vaultName = "JEB12";

+

+

    static string updUser = "A";

+

    static string updGroup = "NewGroup";

+

    static void Main(string[] args)

+

    {

+

      StringBuilder sb = new StringBuilder();

+

      try

+

      {

+

        sb.AppendFormat("UserName: {0}", userName).AppendLine();

+

        sb.AppendFormat("VaultName: {0}", vaultName).AppendLine();

+

+

        IEdmVault11 vault = (IEdmVault11)(new EdmVault5());

+

        if (!vault.IsLoggedIn)

+

          vault.Login(userName, "password", vaultName);

+

+

        IEdmUserMgr9 userMgr = (IEdmUserMgr9)vault.CreateUtility(EdmUtility.EdmUtil_UserMgr);

+

+

        var userPos = userMgr.GetFirstUserPosition();

+

        while (!userPos.IsNull)

+

        {

+

          IEdmUser11 user = (IEdmUser11)userMgr.GetNextUser(userPos);

+

          if (user.Name == updUser)

+

          {

+

            //user.SetSettingsVar(EdmUserSetting.EdmSv_AutoGetLatest, "1");

+

            //user.SetSettingsVar(EdmUserSetting.EdmSv_AutoDelete, "1");

+

            user.SetSettingsVar(EdmUserSetting.EdmUSv_AutoGetLatestRefs, "0");

+

+

            sb.AppendFormat("Settings successfully updated for user {0}", updUser).AppendLine();

+

            break;

+

          }

+

        }

+

+

        var groupPos = userMgr.GetFirstUserGroupPosition();

+

        while (!groupPos.IsNull)

+

        {

+

          IEdmUserGroup9 group = (IEdmUserGroup9)userMgr.GetNextUserGroup(groupPos);

+

          if (group.Name == updGroup)

+

          {

+

            group.SetSettingsVar(EdmGroupSetting.EdmGSv_AutoGetLatestRefs, "1");

+

+

            sb.AppendFormat("Settings successfully updated for group {0}", updGroup);

+

            break;

+

          }

+

        }

+

      }

+

      catch (System.Runtime.InteropServices.COMException ex)

+

      {

+

        var errorType = typeof(EdmResultErrorCodes_e);

+

        if (Enum.IsDefined(errorType, ex.ErrorCode))

+

          sb.AppendFormat("Edm error occurred: {0}", Enum.GetName(errorType, ex.ErrorCode)).AppendLine();

+

        else

+

          sb.AppendLine("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);

+

      }

+

      catch (Exception ex)

+

      {

+

        sb.AppendFormat("Error occurred: {0}", ex.Message).AppendLine();

+

      }

+

+

      Console.WriteLine(sb.ToString());

+

      Console.WriteLine("Please press any key to exit");

+

      Console.ReadKey();

+

    }

+

  }

+

}

+
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2022
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5.html new file mode 100644 index 0000000..d3a56ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5.html @@ -0,0 +1,155 @@ + + + + + + IEdmUser5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmUser5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmUser5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+ +

To enumerate:

+
    +
  • the users in a file vault, use IEdmUserMgr5. +
  • the messages sent to a user, cast this interface to an IEdmInbox5 pointer.
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_members.html new file mode 100644 index 0000000..8af38df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmUser5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser5.

+

Public Properties

+ +
 NameDescription
 PropertyIsLoggedInGets whether this user is logged in.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodHasSysRightObsolete. Superseded by IEdmUser7::HasSysRightEx.  
 MethodSendMsgSends email to this user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_methods.html new file mode 100644 index 0000000..afbda9f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUser5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser5 members.

+

Public Methods

+ + +
 NameDescription
 MethodHasSysRightObsolete. Superseded by IEdmUser7::HasSysRightEx.  
 MethodSendMsgSends email to this user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_properties.html new file mode 100644 index 0000000..98e2a83 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmUser5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser5 members.

+

Public Properties

+ +
 NameDescription
 PropertyIsLoggedInGets whether this user is logged in.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~HasSysRight.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~HasSysRight.html new file mode 100644 index 0000000..975d6f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~HasSysRight.html @@ -0,0 +1,158 @@ + + + + + + HasSysRight Method (IEdmUser5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasSysRight Method (IEdmUser5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser5 Interface + : HasSysRight Method (IEdmUser5)
+ +
+ + + +
+ +
+ + +
+
+
eRight
+
Permissions as defined in EdmSysRightFlags
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmUser7::HasSysRightEx. + + +

Syntax

Visual Basic 
Function HasSysRight( _
+   ByVal eRight As EdmSysRightFlags _
+) As System.Boolean
+
C# 
System.bool HasSysRight( 
+   EdmSysRightFlags eRight
+)
+
C++/CLI 
System.bool HasSysRight( 
+&   EdmSysRightFlags eRight
+) 
+ +

Parameters

eRight
+
Permissions as defined in EdmSysRightFlags
+ +

Return Value

True if the user has all of the permissions, false if the user lacks one or more of the permissions
+ + + + + +

Remarks

This method is superseded by IEdmUser7::HasSysRightEx.

+

Before SOLIDWORKS PDM Professional 2010, IEdmUser5::HasSysRight supported the bit-wise combination of system permissions. Because the number of system permissions has grown, and they do not all fit in a 32-bit integer, system permissions added in SOLIDWORKS PDM Professional 2010 and later are sequential numeric constants instead of bit flags. You must use IEdmUser7::HasSysRightEx to check permissions added in SOLIDWORKS PDM Professional 2010 and later.

+

This method checks both the permissions set directly on the user and the permissions inherited from the groups of which the user is a member.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The method successfully executed, but the user lacks the specified permissions.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~IsLoggedIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~IsLoggedIn.html new file mode 100644 index 0000000..23b8b1f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~IsLoggedIn.html @@ -0,0 +1,151 @@ + + + + + + IsLoggedIn Property (IEdmUser5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsLoggedIn Property (IEdmUser5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser5 Interface + : IsLoggedIn Property (IEdmUser5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this user is logged in. + + +

Syntax

Visual Basic 
ReadOnly Property IsLoggedIn As System.Boolean
+
C# 
System.bool IsLoggedIn {get;}
+
C++/CLI 
property System.bool IsLoggedIn {
+   System.bool get();
+}
+ + + +

Property Value

True if this user is logged in, false if not
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~SendMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~SendMsg.html new file mode 100644 index 0000000..1fc95fd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser5~SendMsg.html @@ -0,0 +1,172 @@ + + + + + + SendMsg Method (IEdmUser5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SendMsg Method (IEdmUser5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser5 Interface + : SendMsg Method (IEdmUser5)
+ +
+ + + +
+ +
+ + +
+
+
bsSubject
+
Subject of the email
+
+
+
bsMessageText
+
Message detail (see Remarks)
+
+ +
+ +
+ + +
+
+ Sends email to this user. + + +

Syntax

Visual Basic 
Sub SendMsg( _
+   ByVal bsSubject As System.String, _
+   ByVal bsMessageText As System.String _
+) 
+
C# 
void SendMsg( 
+   System.string bsSubject,
+   System.string bsMessageText
+)
+
C++/CLI 
void SendMsg( 
+&   System.String^ bsSubject,
+&   System.String^ bsMessageText
+) 
+ +

Parameters

bsSubject
+
Subject of the email
bsMessageText
+
Message detail (see Remarks)
+ +
+ + + + +

Example

+

Remarks

It is possible to send HTML-formatted mail, if the recipient uses a mail system that supports HTML. In so, add HTML tags to the text in bsMessageText.

+

For example, bsMessageText might contain:

+
+

<html><body><h1>Hello!</h1>How are you?</body></html>

+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6.html new file mode 100644 index 0000000..b500fc7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6.html @@ -0,0 +1,141 @@ + + + + + + IEdmUser6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser6 
+   Inherits IEdmObject5IEdmUser5 
+
C# 
public interface IEdmUser6 : IEdmObject5IEdmUser5  
+
C++/CLI 
public interface class IEdmUser6 : public IEdmObject5IEdmUser5  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_members.html new file mode 100644 index 0000000..0377daa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmUser6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser6.

+

Public Properties

+ + + +
 NameDescription
 PropertyFullNameGets this user's full name.  
 PropertyInitialsGets this user's initials.  
 PropertyUserDataGets and sets arbitrary text data associated with this user.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_properties.html new file mode 100644 index 0000000..59d566e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmUser6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser6 members.

+

Public Properties

+ + + +
 NameDescription
 PropertyFullNameGets this user's full name.  
 PropertyInitialsGets this user's initials.  
 PropertyUserDataGets and sets arbitrary text data associated with this user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~FullName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~FullName.html new file mode 100644 index 0000000..6c4599c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~FullName.html @@ -0,0 +1,147 @@ + + + + + + FullName Property (IEdmUser6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FullName Property (IEdmUser6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser6 Interface + : FullName Property (IEdmUser6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets this user's full name. + + +

Syntax

Visual Basic 
ReadOnly Property FullName As System.String
+
C# 
System.string FullName {get;}
+
C++/CLI 
property System.String^ FullName {
+   System.String^ get();
+}
+ + + +

Property Value

User's full name
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~Initials.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~Initials.html new file mode 100644 index 0000000..7f79c6b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~Initials.html @@ -0,0 +1,147 @@ + + + + + + Initials Property (IEdmUser6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Initials Property (IEdmUser6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser6 Interface + : Initials Property (IEdmUser6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets this user's initials. + + +

Syntax

Visual Basic 
ReadOnly Property Initials As System.String
+
C# 
System.string Initials {get;}
+
C++/CLI 
property System.String^ Initials {
+   System.String^ get();
+}
+ + + +

Property Value

User's initials
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~UserData.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~UserData.html new file mode 100644 index 0000000..8a83078 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser6~UserData.html @@ -0,0 +1,148 @@ + + + + + + UserData Property (IEdmUser6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserData Property (IEdmUser6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser6 Interface + : UserData Property (IEdmUser6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets and sets arbitrary text data associated with this user. + + +

Syntax

Visual Basic 
Property UserData As System.String
+
C# 
System.string UserData {get; set;}
+
C++/CLI 
property System.String^ UserData {
+   System.String^ get();
+   void set ( &   System.String^ value);
+}
+ + + +

Property Value

Arbitrary text data associated with this user
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7.html new file mode 100644 index 0000000..2cfaaff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7.html @@ -0,0 +1,141 @@ + + + + + + IEdmUser7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser7 
+   Inherits IEdmObject5IEdmUser5IEdmUser6 
+
C# 
public interface IEdmUser7 : IEdmObject5IEdmUser5IEdmUser6  
+
C++/CLI 
public interface class IEdmUser7 : public IEdmObject5IEdmUser5IEdmUser6  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_members.html new file mode 100644 index 0000000..36473d3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUser7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser7.

+ + +

Public Methods

+ +
 NameDescription
 MethodHasSysRightExGets whether this user has the specified permission.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_methods.html new file mode 100644 index 0000000..5fd5d72 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUser7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser7 members.

+

Public Methods

+ +
 NameDescription
 MethodHasSysRightExGets whether this user has the specified permission.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7~HasSysRightEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7~HasSysRightEx.html new file mode 100644 index 0000000..a69b7d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser7~HasSysRightEx.html @@ -0,0 +1,159 @@ + + + + + + HasSysRightEx Method (IEdmUser7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasSysRightEx Method (IEdmUser7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser7 Interface + : HasSysRightEx Method (IEdmUser7)
+ +
+ + + +
+ +
+ + +
+
+
eRight
+
Permission as defined in EdmSysPerm
+
+ +
+ +
+ + +
+
+ Gets whether this user has the specified permission. + + +

Syntax

Visual Basic 
Function HasSysRightEx( _
+   ByVal eRight As EdmSysPerm _
+) As System.Boolean
+
C# 
System.bool HasSysRightEx( 
+   EdmSysPerm eRight
+)
+
C++/CLI 
System.bool HasSysRightEx( 
+&   EdmSysPerm eRight
+) 
+ +

Parameters

eRight
+
Permission as defined in EdmSysPerm
+ +

Return Value

True if the user has the permission, false if not
+ + + + +

Example

+

Remarks

This method supersedes IEdmUser5::HasSysRight, which checked system permissions represented as bit flags that could be ORed together. As of SOLIDWORKS PDM Professional 2010, new permissions are represented as sequentially numbered constants that cannot be ORed together. You must call this method once for each permission you want to check.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8.html new file mode 100644 index 0000000..d97ae66 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8.html @@ -0,0 +1,139 @@ + + + + + + IEdmUser8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser8 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser8 
+   Inherits IEdmObject5IEdmUser5IEdmUser6IEdmUser7 
+
C# 
public interface IEdmUser8 : IEdmObject5IEdmUser5IEdmUser6IEdmUser7  
+
C++/CLI 
public interface class IEdmUser8 : public IEdmObject5IEdmUser5IEdmUser6IEdmUser7  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_members.html new file mode 100644 index 0000000..621fd9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUser8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser8.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetGroupMembershipsGets all of the groups to which this user belongs.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_methods.html new file mode 100644 index 0000000..16ca5ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUser8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser8 members.

+

Public Methods

+ +
 NameDescription
 MethodGetGroupMembershipsGets all of the groups to which this user belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8~GetGroupMemberships.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8~GetGroupMemberships.html new file mode 100644 index 0000000..82fd502 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser8~GetGroupMemberships.html @@ -0,0 +1,156 @@ + + + + + + GetGroupMemberships Method (IEdmUser8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetGroupMemberships Method (IEdmUser8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser8 Interface + : GetGroupMemberships Method (IEdmUser8)
+ +
+ + + +
+ +
+ + +
+
+
poGroups
+
Array of IEdmUserGroup6 interfaces
+
+ +
+ +
+ + +
+
+ Gets all of the groups to which this user belongs. + + +

Syntax

Visual Basic 
Sub GetGroupMemberships( _
+   ByRef poGroups() As System.Object _
+) 
+
C# 
void GetGroupMemberships( 
+   out System.object[] poGroups
+)
+
C++/CLI 
void GetGroupMemberships( 
+&   [Out] System.array<Object^>^ poGroups
+) 
+ +

Parameters

poGroups
+
Array of IEdmUserGroup6 interfaces
+ +
+ + +

Example

The following sample code displays a message box with the names of all the groups to which a user, John, belongs:

+

Private Sub GetJohnsGroups(ByVal vault As IEdmVault12)

  'Get the user interface of user 'John'
  Dim userMgr As IEdmUserMgr7
  userMgr = vault.CreateUtility(EdmUtility.EdmUtil_UserMgr)
  Dim john As IEdmUser8
  john = userMgr.GetUser("John")

  'Get the groups to which he belongs
  Dim groups() As Object
  groups = Nothing
  john.GetGroupMemberships(groups)

  'Display a message box with the group names
  Dim message As String
  message = "John's groups:" + vbLf
  Dim i As Integer
  i = LBound(groups)
  While (i <= UBound(groups))
    Dim group As IEdmUserGroup7
    group = groups(i)
    message = message + group.Name + vbLf
    i = i + 1
  End While

  MsgBox(message)

End Sub

+
+ +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9.html new file mode 100644 index 0000000..23cc169 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9.html @@ -0,0 +1,141 @@ + + + + + + IEdmUser9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUser9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUser9 
+   Inherits IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8 
+
C# 
public interface IEdmUser9 : IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8  
+
C++/CLI 
public interface class IEdmUser9 : public IEdmObject5IEdmUser5IEdmUser6IEdmUser7IEdmUser8  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_members.html new file mode 100644 index 0000000..1381cd6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUser9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUser9.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetGroupMembershipsInFolderGets all of the groups to which this user belongs and for the specified folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_methods.html new file mode 100644 index 0000000..19bc86c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUser9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUser9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUser9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUser9 members.

+

Public Methods

+ +
 NameDescription
 MethodGetGroupMembershipsInFolderGets all of the groups to which this user belongs and for the specified folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9~GetGroupMembershipsInFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9~GetGroupMembershipsInFolder.html new file mode 100644 index 0000000..834615b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUser9~GetGroupMembershipsInFolder.html @@ -0,0 +1,157 @@ + + + + + + GetGroupMembershipsInFolder Method (IEdmUser9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetGroupMembershipsInFolder Method (IEdmUser9)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUser9 Interface + : GetGroupMembershipsInFolder Method (IEdmUser9)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of folder for which to get memberships
+
+ +
+ +
+ + +
+
+ Gets all of the groups to which this user belongs and for the specified folder. + + +

Syntax

Visual Basic 
Function GetGroupMembershipsInFolder( _
+   ByVal lFolderID As System.Integer _
+) As System.Object()
+
C# 
System.object[] GetGroupMembershipsInFolder( 
+   System.int lFolderID
+)
+
C++/CLI 
System.array<Object^>^ GetGroupMembershipsInFolder( 
+&   System.int lFolderID
+) 
+ +

Parameters

lFolderID
+
ID of folder for which to get memberships
+ +

Return Value

Array of IEdmUserGroup8 interfaces
+ + + + +

Example

+

Remarks

This method extends IEdmUser8::GetGroupMemberships, which only gets global group memberships. As of SOLIDWORKS PDM Professional 2011, it is possible to assign group memberships to a specific folder. This method gets folder-specific group memberships.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5.html new file mode 100644 index 0000000..33c97b2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5.html @@ -0,0 +1,148 @@ + + + + + + IEdmUserGroup5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserGroup5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user group in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserGroup5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmUserGroup5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmUserGroup5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface:

+ +

User groups are set up using SOLIDWORKS PDM Professional's User Manager.

+

Use IEdmUserMgr5 to enumerate the user groups in the vault.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_members.html new file mode 100644 index 0000000..1ec862c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmUserGroup5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserGroup5.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodGetFirstUserPositionStarts an enumeration of the users in this group.  
 MethodGetNextUserGets the next user in the enumeration.  
 MethodHasSysRightObsolete. Superseded by IEdmUserGroup6::HasSysRightEx.  
 MethodSendMsgSends email to all members of this user group.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_methods.html new file mode 100644 index 0000000..79cf072 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmUserGroup5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserGroup5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetFirstUserPositionStarts an enumeration of the users in this group.  
 MethodGetNextUserGets the next user in the enumeration.  
 MethodHasSysRightObsolete. Superseded by IEdmUserGroup6::HasSysRightEx.  
 MethodSendMsgSends email to all members of this user group.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetFirstUserPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetFirstUserPosition.html new file mode 100644 index 0000000..42d1fcf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetFirstUserPosition.html @@ -0,0 +1,146 @@ + + + + + + GetFirstUserPosition Method (IEdmUserGroup5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstUserPosition Method (IEdmUserGroup5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup5 Interface + : GetFirstUserPosition Method (IEdmUserGroup5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the users in this group. + + +

Syntax

Visual Basic 
Function GetFirstUserPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstUserPosition()
+
C++/CLI 
IEdmPos5^ GetFirstUserPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first user in the list
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first user to IEdmUserGroup5::GetNextUser to get the first user in this list. Then call IEdmUserGroup5::GetNextUser repeatedly to get the rest of the users in this list.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetNextUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetNextUser.html new file mode 100644 index 0000000..db38337 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~GetNextUser.html @@ -0,0 +1,160 @@ + + + + + + GetNextUser Method (IEdmUserGroup5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextUser Method (IEdmUserGroup5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup5 Interface + : GetNextUser Method (IEdmUserGroup5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next user (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets the next user in the enumeration. + + +

Syntax

Visual Basic 
Function GetNextUser( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmUser5
+
C# 
IEdmUser5 GetNextUser( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmUser5^ GetNextUser( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next user (see Remarks)
+ +

Return Value

IEdmUser5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first user in the list, IEdmPos5. Call IEdmUserGroup5::GetFirstUserPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the users in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmUser5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~HasSysRight.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~HasSysRight.html new file mode 100644 index 0000000..3d5f174 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~HasSysRight.html @@ -0,0 +1,158 @@ + + + + + + HasSysRight Method (IEdmUserGroup5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasSysRight Method (IEdmUserGroup5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup5 Interface + : HasSysRight Method (IEdmUserGroup5)
+ +
+ + + +
+ +
+ + +
+
+
eRight
+
Combination of EdmSysRightFlags
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmUserGroup6::HasSysRightEx. + + +

Syntax

Visual Basic 
Function HasSysRight( _
+   ByVal eRight As EdmSysRightFlags _
+) As System.Boolean
+
C# 
System.bool HasSysRight( 
+   EdmSysRightFlags eRight
+)
+
C++/CLI 
System.bool HasSysRight( 
+&   EdmSysRightFlags eRight
+) 
+ +

Parameters

eRight
+
Combination of EdmSysRightFlags
+ +

Return Value

True if the user group has all the permissions, false if not
+ + + + + +

Remarks

This method is superseded by IEdmUserGroup6::HasSysRightEx.

+

Before SOLIDWORKS PDM Professional 2010, IEdmUserGroup5::HasSysRight supported the bit-wise combination of system permissions. Because the number of system permissions has grown, and they do not all fit in a 32-bit integer, system permissions added in SOLIDWORKS PDM Professional 2010 and later are sequential numeric constants instead of bit flags. You must use IEdmUserGroup6::HasSysRightEx to check permissions added in SOLIDWORKS PDM Professional 2010 and later.

+

To check individual user permissions, call IEdmUser5::HasSysRight, which checks both permissions set directly on the user and permissions inherited from groups of which he is a member.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed, and all of the permissions are set. +
  • S_FALSE: The method successfully executed, but one or more of the permissions are not set.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~SendMsg.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~SendMsg.html new file mode 100644 index 0000000..02ec458 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup5~SendMsg.html @@ -0,0 +1,176 @@ + + + + + + SendMsg Method (IEdmUserGroup5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SendMsg Method (IEdmUserGroup5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup5 Interface + : SendMsg Method (IEdmUserGroup5)
+ +
+ + + +
+ +
+ + +
+
+
bsSubject
+
Email subject
+
+
+
bsMessageText
+
Message detail (see Remarks)
+
+
+
bExcludeCurrentUser
+
True to not send email to the logged-in user even if he is a member of this group, false to send email to the logged-in user
+
+ +
+ +
+ + +
+
+ Sends email to all members of this user group. + + +

Syntax

Visual Basic 
Sub SendMsg( _
+   ByVal bsSubject As System.String, _
+   ByVal bsMessageText As System.String, _
+   ByVal bExcludeCurrentUser As System.Boolean _
+) 
+
C# 
void SendMsg( 
+   System.string bsSubject,
+   System.string bsMessageText,
+   System.bool bExcludeCurrentUser
+)
+
C++/CLI 
void SendMsg( 
+&   System.String^ bsSubject,
+&   System.String^ bsMessageText,
+&   System.bool bExcludeCurrentUser
+) 
+ +

Parameters

bsSubject
+
Email subject
bsMessageText
+
Message detail (see Remarks)
bExcludeCurrentUser
+
True to not send email to the logged-in user even if he is a member of this group, false to send email to the logged-in user
+ +
+ + + + +

Example

+

Remarks

It is possible to send HTML-formatted mail, if the recipients use a mail system that supports HTML. In so, add HTML tags to the text in bsMessageText:

+
+

<html><body><h1>Hello!</h1>How are you?</body></html>

+

Call IEdmUser5::SendMsg to send email to an individual user.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6.html new file mode 100644 index 0000000..757dfb3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6.html @@ -0,0 +1,140 @@ + + + + + + IEdmUserGroup6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserGroup6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user group in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserGroup6 
+   Inherits IEdmObject5IEdmUserGroup5 
+
C# 
public interface IEdmUserGroup6 : IEdmObject5IEdmUserGroup5  
+
C++/CLI 
public interface class IEdmUserGroup6 : public IEdmObject5IEdmUserGroup5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_members.html new file mode 100644 index 0000000..42a7dd8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmUserGroup6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserGroup6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddMembersAdds the specified users to this user group.  
 MethodHasSysRightExGets whether this user group has the specified permission.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_methods.html new file mode 100644 index 0000000..ae21a70 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUserGroup6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserGroup6 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddMembersAdds the specified users to this user group.  
 MethodHasSysRightExGets whether this user group has the specified permission.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~AddMembers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~AddMembers.html new file mode 100644 index 0000000..c80b255 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~AddMembers.html @@ -0,0 +1,157 @@ + + + + + + AddMembers Method (IEdmUserGroup6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddMembers Method (IEdmUserGroup6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup6 Interface + : AddMembers Method (IEdmUserGroup6)
+ +
+ + + +
+ +
+ + +
+
+
poUserIDs
+
Array of database IDs of users to add to this user group (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds the specified users to this user group. + + +

Syntax

Visual Basic 
Sub AddMembers( _
+   ByVal poUserIDs() As System.Integer _
+) 
+
C# 
void AddMembers( 
+   System.int[] poUserIDs
+)
+
C++/CLI 
void AddMembers( 
+&   System.array<int>^ poUserIDs
+) 
+ +

Parameters

poUserIDs
+
Array of database IDs of users to add to this user group (see Remarks)
+ +
+ + + + +

Example

+

Remarks

Call IEdmUser5::ID to populate the array of poUserIDs.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~HasSysRightEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~HasSysRightEx.html new file mode 100644 index 0000000..01c00df --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup6~HasSysRightEx.html @@ -0,0 +1,157 @@ + + + + + + HasSysRightEx Method (IEdmUserGroup6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasSysRightEx Method (IEdmUserGroup6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup6 Interface + : HasSysRightEx Method (IEdmUserGroup6)
+ +
+ + + +
+ +
+ + +
+
+
eRight
+
Permission to check as defined in EdmSysPerm
+
+ +
+ +
+ + +
+
+ Gets whether this user group has the specified permission. + + +

Syntax

Visual Basic 
Function HasSysRightEx( _
+   ByVal eRight As EdmSysPerm _
+) As System.Boolean
+
C# 
System.bool HasSysRightEx( 
+   EdmSysPerm eRight
+)
+
C++/CLI 
System.bool HasSysRightEx( 
+&   EdmSysPerm eRight
+) 
+ +

Parameters

eRight
+
Permission to check as defined in EdmSysPerm
+ +

Return Value

True if the user group has the specified permission, false if not
+ + + + +

Example

+

Remarks

This method supersedes IEdmUserGroup5::HasSysRight, which checked system permissions represented as bit flags that could be ORed together. As of SOLIDWORKS PDM Professional 2010, new permissions are represented as sequentially numbered constants that cannot be ORed together. You must call this method once for each permission you want to check.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7.html new file mode 100644 index 0000000..61f9e4f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7.html @@ -0,0 +1,140 @@ + + + + + + IEdmUserGroup7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserGroup7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user group in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserGroup7 
+   Inherits IEdmObject5IEdmUserGroup5IEdmUserGroup6 
+
C# 
public interface IEdmUserGroup7 : IEdmObject5IEdmUserGroup5IEdmUserGroup6  
+
C++/CLI 
public interface class IEdmUserGroup7 : public IEdmObject5IEdmUserGroup5IEdmUserGroup6  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_members.html new file mode 100644 index 0000000..6f1c5c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUserGroup7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserGroup7.

+ + +

Public Methods

+ +
 NameDescription
 MethodAddMembersWithFoldersAdds the specified members of this user group to the specified folders.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_methods.html new file mode 100644 index 0000000..4acee71 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUserGroup7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserGroup7 members.

+

Public Methods

+ +
 NameDescription
 MethodAddMembersWithFoldersAdds the specified members of this user group to the specified folders.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7~AddMembersWithFolders.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7~AddMembersWithFolders.html new file mode 100644 index 0000000..040655e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup7~AddMembersWithFolders.html @@ -0,0 +1,156 @@ + + + + + + AddMembersWithFolders Method (IEdmUserGroup7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddMembersWithFolders Method (IEdmUserGroup7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup7 Interface + : AddMembersWithFolders Method (IEdmUserGroup7)
+ +
+ + + +
+ +
+ + +
+
+
poMemberFolders
+
Array of EdmMemberFolder structures; one structure for each member folder to add to this user group
+
+ +
+ +
+ + +
+
+ Adds the specified members of this user group to the specified folders. + + +

Syntax

Visual Basic 
Sub AddMembersWithFolders( _
+   ByVal poMemberFolders() As EdmMemberFolder _
+) 
+
C# 
void AddMembersWithFolders( 
+   EdmMemberFolder[] poMemberFolders
+)
+
C++/CLI 
void AddMembersWithFolders( 
+&   array<EdmMemberFolder>^ poMemberFolders
+) 
+ +

Parameters

poMemberFolders
+
Array of EdmMemberFolder structures; one structure for each member folder to add to this user group
+ +
+ + + + +

Example

+

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8.html new file mode 100644 index 0000000..1bea20d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8.html @@ -0,0 +1,141 @@ + + + + + + IEdmUserGroup8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserGroup8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user group in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserGroup8 
+   Inherits IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7 
+
C# 
public interface IEdmUserGroup8 : IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7  
+
C++/CLI 
public interface class IEdmUserGroup8 : public IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_members.html new file mode 100644 index 0000000..3d832c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUserGroup8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserGroup8.

+ + +

Public Methods

+ +
 NameDescription
 MethodRemoveMembersRemoves the specified members from this user group.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_methods.html new file mode 100644 index 0000000..19a199f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUserGroup8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserGroup8 members.

+

Public Methods

+ +
 NameDescription
 MethodRemoveMembersRemoves the specified members from this user group.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8~RemoveMembers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8~RemoveMembers.html new file mode 100644 index 0000000..fc4a5ab --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup8~RemoveMembers.html @@ -0,0 +1,156 @@ + + + + + + RemoveMembers Method (IEdmUserGroup8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveMembers Method (IEdmUserGroup8)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup8 Interface + : RemoveMembers Method (IEdmUserGroup8)
+ +
+ + + +
+ +
+ + +
+
+
poMemberFolders
+
Array of EdmMemberFolder structures; one structure for each member to remove from this user group
+
+ +
+ +
+ + +
+
+ Removes the specified members from this user group. + + +

Syntax

Visual Basic 
Sub RemoveMembers( _
+   ByVal poMemberFolders() As EdmMemberFolder _
+) 
+
C# 
void RemoveMembers( 
+   EdmMemberFolder[] poMemberFolders
+)
+
C++/CLI 
void RemoveMembers( 
+&   array<EdmMemberFolder>^ poMemberFolders
+) 
+ +

Parameters

poMemberFolders
+
Array of EdmMemberFolder structures; one structure for each member to remove from this user group
+ +
+ + + + +

Example

+

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2012
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9.html new file mode 100644 index 0000000..1cadb3e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9.html @@ -0,0 +1,140 @@ + + + + + + IEdmUserGroup9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup9 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserGroup9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a user group in SOLIDWORKS PDM Professional.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserGroup9 
+   Inherits IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7IEdmUserGroup8 
+
C# 
public interface IEdmUserGroup9 : IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7IEdmUserGroup8  
+
C++/CLI 
public interface class IEdmUserGroup9 : public IEdmObject5IEdmUserGroup5IEdmUserGroup6IEdmUserGroup7IEdmUserGroup8  
+
+ + + + +

Remarks

This interface extends IEdmUserGroup8 by providing the ability to specify these user group settings:

+
    +
  • Automatically delete local read-only files that are not part of the file vault. +
  • Always work with the latest version of files. +
  • Auto-select reference files to get latest when checking out.
+

Accessors

See the IEdmUserGroup5 accessors.
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_members.html new file mode 100644 index 0000000..5d4e289 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUserGroup9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserGroup9.

+ + +

Public Methods

+ +
 NameDescription
 MethodSetSettingsVarSets the specified user group setting.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_methods.html new file mode 100644 index 0000000..12d704a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUserGroup9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserGroup9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserGroup9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserGroup9 members.

+

Public Methods

+ +
 NameDescription
 MethodSetSettingsVarSets the specified user group setting.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9~SetSettingsVar.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9~SetSettingsVar.html new file mode 100644 index 0000000..2ddbabd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserGroup9~SetSettingsVar.html @@ -0,0 +1,250 @@ + + + + + + SetSettingsVar Method (IEdmUserGroup9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetSettingsVar Method (IEdmUserGroup9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserGroup9 Interface + : SetSettingsVar Method (IEdmUserGroup9)
+ +
+ + + +
+ +
+ + +
+
+
eVar
+
User group setting as defined by EdmGroupSetting
+
+
+
pbsVal
+
Value of eVar
+
+ +
+ +
+ + +
+
+ Sets the specified user group setting. + + +

Syntax

Visual Basic 
Sub SetSettingsVar( _
+   ByVal eVar As EdmGroupSetting, _
+   ByVal pbsVal As System.String _
+) 
+
C# 
void SetSettingsVar( 
+   EdmGroupSetting eVar,
+   System.string pbsVal
+)
+
C++/CLI 
void SetSettingsVar( 
+&   EdmGroupSetting eVar,
+&   System.String^ pbsVal
+) 
+ +

Parameters

eVar
+
User group setting as defined by EdmGroupSetting
pbsVal
+
Value of eVar
+ +
+ + +

Example

//Preconditions:

+

//1. Create a C# console application in Visual Studio.

+

//2. Add references EPDM.Interop.epdm and EPDM.Interop.EPDMResultCode to the project.

+

//3. Copy the code below to Program.cs.

+

//4. Change the namespace to match your project name.

+

//5. Open the Admin Tool and add a user “A†and a user group “NewGroupâ€. Add a user to NewGroup.

+

//6. Ensure that parameters of Login match your vault.

+

//

+

//Postconditions:

+

//1. Open the Admin Tool.

+

//2. Inspect the settings of user “A†to verify that reference files are not auto-selected to get latest when user A checks out a file.

+

//3. Inspect the settings of user group “NewGroup†to verify that reference files are auto-selected to get latest when a user in user group NewGroup checks out a file.

+

 

+

//Program.cs:

+

+

using System;

+

using System.Text;

+

using EPDM.Interop.epdm;

+

using EPDM.Interop.EPDMResultCode;

+

+

namespace project_name

+

{

+

  class Program

+

  {

+

+

    static string userName = "Admin";

+

    static string vaultName = "JEB12";

+

+

    static string updUser = "A";

+

    static string updGroup = "NewGroup";

+

    static void Main(string[] args)

+

    {

+

      StringBuilder sb = new StringBuilder();

+

      try

+

      {

+

        sb.AppendFormat("UserName: {0}", userName).AppendLine();

+

        sb.AppendFormat("VaultName: {0}", vaultName).AppendLine();

+

+

        IEdmVault11 vault = (IEdmVault11)(new EdmVault5());

+

        if (!vault.IsLoggedIn)

+

          vault.Login(userName, "password", vaultName);

+

+

        IEdmUserMgr9 userMgr = (IEdmUserMgr9)vault.CreateUtility(EdmUtility.EdmUtil_UserMgr);

+

+

        var userPos = userMgr.GetFirstUserPosition();

+

        while (!userPos.IsNull)

+

        {

+

          IEdmUser11 user = (IEdmUser11)userMgr.GetNextUser(userPos);

+

          if (user.Name == updUser)

+

          {

+

            //user.SetSettingsVar(EdmUserSetting.EdmSv_AutoGetLatest, "1");

+

            //user.SetSettingsVar(EdmUserSetting.EdmSv_AutoDelete, "1");

+

            user.SetSettingsVar(EdmUserSetting.EdmUSv_AutoGetLatestRefs, "0");

+

+

            sb.AppendFormat("Settings successfully updated for user {0}", updUser).AppendLine();

+

            break;

+

          }

+

        }

+

+

        var groupPos = userMgr.GetFirstUserGroupPosition();

+

        while (!groupPos.IsNull)

+

        {

+

          IEdmUserGroup9 group = (IEdmUserGroup9)userMgr.GetNextUserGroup(groupPos);

+

          if (group.Name == updGroup)

+

          {

+

            group.SetSettingsVar(EdmGroupSetting.EdmGSv_AutoGetLatestRefs, "1");

+

+

            sb.AppendFormat("Settings successfully updated for group {0}", updGroup);

+

            break;

+

          }

+

        }

+

      }

+

      catch (System.Runtime.InteropServices.COMException ex)

+

      {

+

        var errorType = typeof(EdmResultErrorCodes_e);

+

        if (Enum.IsDefined(errorType, ex.ErrorCode))

+

          sb.AppendFormat("Edm error occurred: {0}", Enum.GetName(errorType, ex.ErrorCode)).AppendLine();

+

        else

+

          sb.AppendLine("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);

+

      }

+

      catch (Exception ex)

+

      {

+

        sb.AppendFormat("Error occurred: {0}", ex.Message).AppendLine();

+

      }

+

+

      Console.WriteLine(sb.ToString());

+

      Console.WriteLine("Please press any key to exit");

+

      Console.ReadKey();

+

    }

+

  }

+

}

+
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2022
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10.html new file mode 100644 index 0000000..4d8f966 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10.html @@ -0,0 +1,138 @@ + + + + + + IEdmUserMgr10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr10 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the users and user groups in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr10 
+   Inherits IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8IEdmUserMgr9 
+
C# 
public interface IEdmUserMgr10 : IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8IEdmUserMgr9  
+
C++/CLI 
public interface class IEdmUserMgr10 : public IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8IEdmUserMgr9  
+
+ + + +

Example

+

Remarks

This interface extends IEdmUserMgr9 by providing the ability to add users by type.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_members.html new file mode 100644 index 0000000..0e4b488 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmUserMgr10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr10.

+ + +

Public Methods

+ +
 NameDescription
 MethodAddUsers3Adds the specified users of the specified login type to the vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_methods.html new file mode 100644 index 0000000..bb9a553 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmUserMgr10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr10 members.

+

Public Methods

+ +
 NameDescription
 MethodAddUsers3Adds the specified users of the specified login type to the vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10~AddUsers3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10~AddUsers3.html new file mode 100644 index 0000000..7dcf05a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr10~AddUsers3.html @@ -0,0 +1,163 @@ + + + + + + AddUsers3 Method (IEdmUserMgr10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddUsers3 Method (IEdmUserMgr10)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr10 Interface + : AddUsers3 Method (IEdmUserMgr10)
+ +
+ + + +
+ +
+ + +
+
+
ppoUserData
+
Array of EdmUserData2 structures; one structure for each user
+
+
+
UserType
+
Login type of users as defined in EdmUserType
+
+ +
+ +
+ + +
+
+ Adds the specified users of the specified login type to the vault. + + +

Syntax

Visual Basic 
Sub AddUsers3( _
+   ByRef ppoUserData() As EdmUserData2, _
+   ByVal UserType As EdmUserType _
+) 
+
C# 
void AddUsers3( 
+   out EdmUserData2[] ppoUserData,
+   EdmUserType UserType
+)
+
C++/CLI 
void AddUsers3( 
+&   [Out] array<EdmUserData2>^ ppoUserData,
+&   EdmUserType UserType
+) 
+ +

Parameters

ppoUserData
+
Array of EdmUserData2 structures; one structure for each user
UserType
+
Login type of users as defined in EdmUserType
+ +
+ + +

Example

See the IEdmUserMgr10 examples. +
+ +

Remarks

This method supersedes IEdmUserMgr7::AddUsers2 by providing the ability to add users by type to the vault.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5.html new file mode 100644 index 0000000..f4d9c2a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5.html @@ -0,0 +1,144 @@ + + + + + + IEdmUserMgr5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the users and user groups in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr5 
+
C# 
public interface IEdmUserMgr5 
+
C++/CLI 
public interface class IEdmUserMgr5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_members.html new file mode 100644 index 0000000..1b61edf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_members.html @@ -0,0 +1,121 @@ + + + + + + IEdmUserMgr5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr5.

+ + +

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodGetFirstLoggedInUserPositionStarts an enumeration of the users that are logged in to the specified vaults.  
 MethodGetFirstUserGroupPositionStarts an enumeration of the user groups in the vault.  
 MethodGetFirstUserPositionStarts an enumeration of the users in the vault.  
 MethodGetLoggedInUserGets the user currently running this program in the vault.  
 MethodGetNextLoggedInUserGets information about the next logged-in user in an enumeration of all logged-in users in the vault.  
 MethodGetNextUserGets the next user in an enumeration of all users in the vault.  
 MethodGetNextUserGroupGets the next user group in an enumeration of all user groups in the vault.  
 MethodGetUserGets a user with the specified name or ID.  
 MethodGetUserGroupGets a user group with the specified name or ID.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_methods.html new file mode 100644 index 0000000..2c769e2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5_methods.html @@ -0,0 +1,113 @@ + + + + + + IEdmUserMgr5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr5 members.

+

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodGetFirstLoggedInUserPositionStarts an enumeration of the users that are logged in to the specified vaults.  
 MethodGetFirstUserGroupPositionStarts an enumeration of the user groups in the vault.  
 MethodGetFirstUserPositionStarts an enumeration of the users in the vault.  
 MethodGetLoggedInUserGets the user currently running this program in the vault.  
 MethodGetNextLoggedInUserGets information about the next logged-in user in an enumeration of all logged-in users in the vault.  
 MethodGetNextUserGets the next user in an enumeration of all users in the vault.  
 MethodGetNextUserGroupGets the next user group in an enumeration of all user groups in the vault.  
 MethodGetUserGets a user with the specified name or ID.  
 MethodGetUserGroupGets a user group with the specified name or ID.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstLoggedInUserPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstLoggedInUserPosition.html new file mode 100644 index 0000000..aaeed05 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstLoggedInUserPosition.html @@ -0,0 +1,159 @@ + + + + + + GetFirstLoggedInUserPosition Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstLoggedInUserPosition Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetFirstLoggedInUserPosition Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
bsVaultNames
+
Optional newline-separated list of the names of the vaults for which to enumerate logged-in users; "" to enumerate users that are logged in to the current vault only
+
+ +
+ +
+ + +
+
+ Starts an enumeration of the users that are logged in to the specified vaults. + + +

Syntax

Visual Basic 
Function GetFirstLoggedInUserPosition( _
+   ByVal bsVaultNames As System.String _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstLoggedInUserPosition( 
+   System.string bsVaultNames
+)
+
C++/CLI 
IEdmPos5^ GetFirstLoggedInUserPosition( 
+&   System.String^ bsVaultNames
+) 
+ +

Parameters

bsVaultNames
+
Optional newline-separated list of the names of the vaults for which to enumerate logged-in users; "" to enumerate users that are logged in to the current vault only
+ +

Return Value

IEdmPos5; position of the first logged-in user in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first logged-in user to IEdmUserMgr5::GetNextLoggedInUser to get the first logged-in user in this list. Then call IEdmUserMgr5::GetNextLoggedInUser repeatedly to get the rest of the users that are logged in to the vault.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Call IEdmUserMgr5::GetLoggedInUser to only get the user who is currently running this program in the vault.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserGroupPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserGroupPosition.html new file mode 100644 index 0000000..782b68e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserGroupPosition.html @@ -0,0 +1,148 @@ + + + + + + GetFirstUserGroupPosition Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstUserGroupPosition Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetFirstUserGroupPosition Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the user groups in the vault. + + +

Syntax

Visual Basic 
Function GetFirstUserGroupPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstUserGroupPosition()
+
C++/CLI 
IEdmPos5^ GetFirstUserGroupPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first user group in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first user group to IEdmUserMgr5::GetNextUserGroup to get the first user group in this list. Then call IEdmUserMgr5::GetNextUserGroup repeatedly to get the rest of the user groups.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserPosition.html new file mode 100644 index 0000000..ac87c28 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetFirstUserPosition.html @@ -0,0 +1,148 @@ + + + + + + GetFirstUserPosition Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstUserPosition Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetFirstUserPosition Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the users in the vault. + + +

Syntax

Visual Basic 
Function GetFirstUserPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstUserPosition()
+
C++/CLI 
IEdmPos5^ GetFirstUserPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first user in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first user to IEdmUserMgr5::GetNextUser to get the first user in this list. Then call IEdmUserMgr5::GetNextUser repeatedly to get the rest of the users.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5. 

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetLoggedInUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetLoggedInUser.html new file mode 100644 index 0000000..fb2089b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetLoggedInUser.html @@ -0,0 +1,146 @@ + + + + + + GetLoggedInUser Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLoggedInUser Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetLoggedInUser Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the user currently running this program in the vault. + + +

Syntax

Visual Basic 
Function GetLoggedInUser() As IEdmUser5
+
C# 
IEdmUser5 GetLoggedInUser()
+
C++/CLI 
IEdmUser5^ GetLoggedInUser(); 
+ + + +

Return Value

IEdmUser5; current user
+ + + + +

Example

+

Remarks

This method returns the IEdmUser5 interface of the user currently logged in on the IEdmVault5 object from which this IEdmUserMgr5 interface is retrieved. IEdmUserMgr5::GetFirstLoggedInUserPosition and IEdmUserMgr5::GetNextLoggedInUser return information about all users currently logged in to the vault.

+

Return codes: 

+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextLoggedInUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextLoggedInUser.html new file mode 100644 index 0000000..708f821 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextLoggedInUser.html @@ -0,0 +1,192 @@ + + + + + + GetNextLoggedInUser Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextLoggedInUser Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetNextLoggedInUser Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position in the enumeration of the next logged-in user
+
+
+
pbsUserName
+
Name of the logged-in user (see Remarks)
+
+
+
pbsComputerName
+
Name of the computer in which the user is logged (see Remarks)
+
+
+
pbsVaultName
+
Name of the vault in which the user is logged (see Remarks)
+
+
+
poLoginTime
+
Date and time of the moment when the user logged in to the vault (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets information about the next logged-in user in an enumeration of all logged-in users in the vault. + + +

Syntax

Visual Basic 
Sub GetNextLoggedInUser( _
+   ByVal poPos As IEdmPos5, _
+   ByRef pbsUserName As System.String, _
+   ByRef pbsComputerName As System.String, _
+   ByRef pbsVaultName As System.String, _
+   ByRef poLoginTime As System.Object _
+) 
+
C# 
void GetNextLoggedInUser( 
+   IEdmPos5 poPos,
+   out System.string pbsUserName,
+   out System.string pbsComputerName,
+   out System.string pbsVaultName,
+   out System.object poLoginTime
+)
+
C++/CLI 
void GetNextLoggedInUser( 
+&   IEdmPos5^ poPos,
+&   [Out] System.String^ pbsUserName,
+&   [Out] System.String^ pbsComputerName,
+&   [Out] System.String^ pbsVaultName,
+&   [Out] System.Object^ poLoginTime
+) 
+ +

Parameters

poPos
+
IEdmPos5; position in the enumeration of the next logged-in user
pbsUserName
+
Name of the logged-in user (see Remarks)
pbsComputerName
+
Name of the computer in which the user is logged (see Remarks)
pbsVaultName
+
Name of the vault in which the user is logged (see Remarks)
poLoginTime
+
Date and time of the moment when the user logged in to the vault (see Remarks)
+ +
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first logged-in user in the list, IEdmPos5. Call IEdmUserMgr5::GetFirstLoggedInUserPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the logged-in users in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration. 

+

C++ users must free the strings returned in pbsUserName, pbsComputerName, and pbsVaultName with a call to SysFreeString. C++ users must initialize the VARIANT struct in poLoginTime with a call to VariantInit before calling this method. After the method has returned, the contents of the VARIANT struct must be freed by calling VariantClear.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUser.html new file mode 100644 index 0000000..8150d45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUser.html @@ -0,0 +1,161 @@ + + + + + + GetNextUser Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextUser Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetNextUser Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position in the enumeration of the next user
+
+ +
+ +
+ + +
+
+ Gets the next user in an enumeration of all users in the vault. + + +

Syntax

Visual Basic 
Function GetNextUser( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmUser5
+
C# 
IEdmUser5 GetNextUser( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmUser5^ GetNextUser( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position in the enumeration of the next user
+ +

Return Value

IEdmUser5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first user in the list, IEdmPos5. Call IEdmUserMgr5::GetFirstUserPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the users in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUserGroup.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUserGroup.html new file mode 100644 index 0000000..f75520f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetNextUserGroup.html @@ -0,0 +1,161 @@ + + + + + + GetNextUserGroup Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextUserGroup Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetNextUserGroup Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position in the enumeration of the next user group
+
+ +
+ +
+ + +
+
+ Gets the next user group in an enumeration of all user groups in the vault. + + +

Syntax

Visual Basic 
Function GetNextUserGroup( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmUserGroup5
+
C# 
IEdmUserGroup5 GetNextUserGroup( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmUserGroup5^ GetNextUserGroup( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position in the enumeration of the next user group
+ +

Return Value

IEdmUserGroup5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first user group in the list, IEdmPos5. Call IEdmUserMgr5::GetFirstUserGroupPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the user groups in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUser.html new file mode 100644 index 0000000..b5a78ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUser.html @@ -0,0 +1,160 @@ + + + + + + GetUser Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetUser Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetUser Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
Id or name of user to get
+
+ +
+ +
+ + +
+
+ Gets a user with the specified name or ID. + + +

Syntax

Visual Basic 
Function GetUser( _
+   ByRef poIdOrName As System.Object _
+) As IEdmUser5
+
C# 
IEdmUser5 GetUser( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmUser5^ GetUser( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
Id or name of user to get
+ +

Return Value

IEdmUser5
+ + + + +

Example

+

Remarks

C++ users must release the returned interface, IEdmUser5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The poIdOrName argument contains an unknown user name. ppoRetUser contains null when this happens in C++. +
  • E_EDM_INVALID_ID: The poIdOrName argument contains an invalid ID. +
  • E_EDM_DATABASE_ACCESS: Returned only for invalid IDs in SOLIDWORKS PDM Professional 5.2.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUserGroup.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUserGroup.html new file mode 100644 index 0000000..a2fcaac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr5~GetUserGroup.html @@ -0,0 +1,162 @@ + + + + + + GetUserGroup Method (IEdmUserMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetUserGroup Method (IEdmUserMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr5 Interface + : GetUserGroup Method (IEdmUserMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
ID or name of the user group to get
+
+ +
+ +
+ + +
+
+ Gets a user group with the specified name or ID. + + +

Syntax

Visual Basic 
Function GetUserGroup( _
+   ByRef poIdOrName As System.Object _
+) As IEdmUserGroup5
+
C# 
IEdmUserGroup5 GetUserGroup( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmUserGroup5^ GetUserGroup( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
ID or name of the user group to get
+ +

Return Value

IEdmUserGroup5
+ + + + +

Example

+

Remarks

 C++ users must release the returned interface, IEdmUserGroup5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The poIdOrName argument contains an unknown user group name. The return value contains null when this happens in C++. +
  • E_EDM_INVALID_ID: The poIdOrName argument contains an invalid ID. +
  • E_EDM_DATABASE_ACCESS: Returned only for invalid IDs in SOLIDWORKS PDM Professional 5.2.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6.html new file mode 100644 index 0000000..9d9edd1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6.html @@ -0,0 +1,140 @@ + + + + + + IEdmUserMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Obsolete. Superseded by IEdmUserMgr7.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr6 
+   Inherits IEdmUserMgr5 
+
C# 
public interface IEdmUserMgr6 : IEdmUserMgr5  
+
C++/CLI 
public interface class IEdmUserMgr6 : public IEdmUserMgr5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_members.html new file mode 100644 index 0000000..32a0383 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmUserMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodAddGroupsObsolete. Superseded by IEdmUserMgr7::AddGroups2.  
 MethodAddUsersObsolete. Superseded by IEdmUserMgr7::AddUsers2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_methods.html new file mode 100644 index 0000000..542c30f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUserMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr6 members.

+

Public Methods

+ + +
 NameDescription
 MethodAddGroupsObsolete. Superseded by IEdmUserMgr7::AddGroups2.  
 MethodAddUsersObsolete. Superseded by IEdmUserMgr7::AddUsers2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddGroups.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddGroups.html new file mode 100644 index 0000000..6788cb2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddGroups.html @@ -0,0 +1,155 @@ + + + + + + AddGroups Method (IEdmUserMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddGroups Method (IEdmUserMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr6 Interface + : AddGroups Method (IEdmUserMgr6)
+ +
+ + + +
+ +
+ + +
+
+
ppoGroupData
+
Array of EdmGroupData structures; one structure for each user group
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmUserMgr7::AddGroups2. + + +

Syntax

Visual Basic 
Sub AddGroups( _
+   ByRef ppoGroupData() As EdmGroupData _
+) 
+
C# 
void AddGroups( 
+   out EdmGroupData[] ppoGroupData
+)
+
C++/CLI 
void AddGroups( 
+&   [Out] array<EdmGroupData>^ ppoGroupData
+) 
+ +

Parameters

ppoGroupData
+
Array of EdmGroupData structures; one structure for each user group
+ +
+ + + + + +

Remarks

This method is superseded by IEdmUserMgr7::AddGroups2 which allows you to specify system permissions.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddUsers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddUsers.html new file mode 100644 index 0000000..a849a0a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr6~AddUsers.html @@ -0,0 +1,155 @@ + + + + + + AddUsers Method (IEdmUserMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddUsers Method (IEdmUserMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr6 Interface + : AddUsers Method (IEdmUserMgr6)
+ +
+ + + +
+ +
+ + +
+
+
ppoUserData
+
Array of EdmUserData structures; one structure for each user
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmUserMgr7::AddUsers2. + + +

Syntax

Visual Basic 
Sub AddUsers( _
+   ByRef ppoUserData() As EdmUserData _
+) 
+
C# 
void AddUsers( 
+   out EdmUserData[] ppoUserData
+)
+
C++/CLI 
void AddUsers( 
+&   [Out] array<EdmUserData>^ ppoUserData
+) 
+ +

Parameters

ppoUserData
+
Array of EdmUserData structures; one structure for each user
+ +
+ + + + + +

Remarks

This method is superseded by IEdmUserMgr7::AddUsers2 which allows you to specify system permissions.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7.html new file mode 100644 index 0000000..afdb657 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7.html @@ -0,0 +1,142 @@ + + + + + + IEdmUserMgr7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the users and user groups in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr7 
+   Inherits IEdmUserMgr5IEdmUserMgr6 
+
C# 
public interface IEdmUserMgr7 : IEdmUserMgr5IEdmUserMgr6  
+
C++/CLI 
public interface class IEdmUserMgr7 : public IEdmUserMgr5IEdmUserMgr6  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • supersedes IEdmUserMgr6. +
  • provides the ability to remove groups and users and manage folder permissions.  +
  • is extended by IEdmUserMgr8.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_members.html new file mode 100644 index 0000000..130e1d9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmUserMgr7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr7.

+ + +

Public Methods

+ + + + + + +
 NameDescription
 MethodAddGroups2Adds the specified user groups to the vault.  
 MethodAddUsers2Obsolete. Superseded by IEdmUserMgr10::AddUsers3.  
 MethodGetFolderPermissionsGets the permissions set on the specified folder for the specified user or group.  
 MethodRemoveGroupsRemoves the specified groups from the vault.  
 MethodRemoveUsersRemoves the specified users from the vault.  
 MethodSetFolderPermissionsSets specified permissions on a specified folder for a specified user or group.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_methods.html new file mode 100644 index 0000000..9ecd8e4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmUserMgr7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr7 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodAddGroups2Adds the specified user groups to the vault.  
 MethodAddUsers2Obsolete. Superseded by IEdmUserMgr10::AddUsers3.  
 MethodGetFolderPermissionsGets the permissions set on the specified folder for the specified user or group.  
 MethodRemoveGroupsRemoves the specified groups from the vault.  
 MethodRemoveUsersRemoves the specified users from the vault.  
 MethodSetFolderPermissionsSets specified permissions on a specified folder for a specified user or group.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddGroups2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddGroups2.html new file mode 100644 index 0000000..65af26f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddGroups2.html @@ -0,0 +1,157 @@ + + + + + + AddGroups2 Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddGroups2 Method (IEdmUserMgr7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : AddGroups2 Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
ppoGroupData
+
Array of EdmGroupData2 structures; one structure for each group
+
+ +
+ +
+ + +
+
+ Adds the specified user groups to the vault. + + +

Syntax

Visual Basic 
Sub AddGroups2( _
+   ByRef ppoGroupData() As EdmGroupData2 _
+) 
+
C# 
void AddGroups2( 
+   out EdmGroupData2[] ppoGroupData
+)
+
C++/CLI 
void AddGroups2( 
+&   [Out] array<EdmGroupData2>^ ppoGroupData
+) 
+ +

Parameters

ppoGroupData
+
Array of EdmGroupData2 structures; one structure for each group
+ +
+ + + + +

Example

+

Remarks

This method supersedes IEdmUserMgr6::AddGroups by providing the ability to specify permissions for added groups.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddUsers2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddUsers2.html new file mode 100644 index 0000000..9c0594b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~AddUsers2.html @@ -0,0 +1,157 @@ + + + + + + AddUsers2 Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddUsers2 Method (IEdmUserMgr7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : AddUsers2 Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
ppoUserData
+
Array of EdmUserData2 structures; one structure for each user
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmUserMgr10::AddUsers3. + + +

Syntax

Visual Basic 
Sub AddUsers2( _
+   ByRef ppoUserData() As EdmUserData2 _
+) 
+
C# 
void AddUsers2( 
+   out EdmUserData2[] ppoUserData
+)
+
C++/CLI 
void AddUsers2( 
+&   [Out] array<EdmUserData2>^ ppoUserData
+) 
+ +

Parameters

ppoUserData
+
Array of EdmUserData2 structures; one structure for each user
+ +
+ + + + +

Example

+

Remarks

This method supersedes IEdmUserMgr6::AddUsers by providing the ability to specify permissions for added users.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~GetFolderPermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~GetFolderPermissions.html new file mode 100644 index 0000000..ef694cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~GetFolderPermissions.html @@ -0,0 +1,187 @@ + + + + + + GetFolderPermissions Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFolderPermissions Method (IEdmUserMgr7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : GetFolderPermissions Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
+
+
+
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType
+
+
+
lFolderID
+
ID of folder for which to get permissions
+
+
+
lEdmGetPermFlags
+
Combination of EdmGetPermFlag bits (see Remarks)
+
+
+
ppoPermissions
+
Array of EdmFolderPermission structures; one structure for each permission
+
+ +
+ +
+ + +
+
+ Gets the permissions set on the specified folder for the specified user or group. + + +

Syntax

Visual Basic 
Sub GetFolderPermissions( _
+   ByVal lOwnerID As System.Integer, _
+   ByVal meOwnerType As EdmObjectType, _
+   ByVal lFolderID As System.Integer, _
+   ByVal lEdmGetPermFlags As System.Integer, _
+   ByRef ppoPermissions() As EdmFolderPermission _
+) 
+
C# 
void GetFolderPermissions( 
+   System.int lOwnerID,
+   EdmObjectType meOwnerType,
+   System.int lFolderID,
+   System.int lEdmGetPermFlags,
+   out EdmFolderPermission[] ppoPermissions
+)
+
C++/CLI 
void GetFolderPermissions( 
+&   System.int lOwnerID,
+&   EdmObjectType meOwnerType,
+&   System.int lFolderID,
+&   System.int lEdmGetPermFlags,
+&   [Out] array<EdmFolderPermission>^ ppoPermissions
+) 
+ +

Parameters

lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType
lFolderID
+
ID of folder for which to get permissions
lEdmGetPermFlags
+
Combination of EdmGetPermFlag bits (see Remarks)
ppoPermissions
+
Array of EdmFolderPermission structures; one structure for each permission
+ +
+ + +

Example

See the IEdmUserMgr7 examples. +
+ +

Remarks

This method returns not only permissions explicitly set on a folder, but also permissions inherited from parent folders, depending on the combination of EdmGetPermFlag bits in lEdmGetPermFlags.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveGroups.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveGroups.html new file mode 100644 index 0000000..60afc13 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveGroups.html @@ -0,0 +1,158 @@ + + + + + + RemoveGroups Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveGroups Method (IEdmUserMgr7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : RemoveGroups Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
poGroupIDs
+
Array of IDs of the groups to remove (see Remarks)
+
+ +
+ +
+ + +
+
+ Removes the specified groups from the vault. + + +

Syntax

Visual Basic 
Sub RemoveGroups( _
+   ByVal poGroupIDs() As System.Integer _
+) 
+
C# 
void RemoveGroups( 
+   System.int[] poGroupIDs
+)
+
C++/CLI 
void RemoveGroups( 
+&   System.array<int>^ poGroupIDs
+) 
+ +

Parameters

poGroupIDs
+
Array of IDs of the groups to remove (see Remarks)
+ +
+ + + + +

Example

+

Remarks

If you specify an ID in poGroupIDs that does not exist, it is ignored.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks the EdmSysPerm.EdmSysPerm_EditUserMgr permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveUsers.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveUsers.html new file mode 100644 index 0000000..4ff482e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~RemoveUsers.html @@ -0,0 +1,160 @@ + + + + + + RemoveUsers Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RemoveUsers Method (IEdmUserMgr7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : RemoveUsers Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
poUserIDs
+
Array of IDs of the users to remove (see Remarks)
+
+ +
+ +
+ + +
+
+ Removes the specified users from the vault. + + +

Syntax

Visual Basic 
Sub RemoveUsers( _
+   ByVal poUserIDs() As System.Integer _
+) 
+
C# 
void RemoveUsers( 
+   System.int[] poUserIDs
+)
+
C++/CLI 
void RemoveUsers( 
+&   System.array<int>^ poUserIDs
+) 
+ +

Parameters

poUserIDs
+
Array of IDs of the users to remove (see Remarks)
+ +
+ + + + +

Example

+

Remarks

If you specify an ID in poUserIDs that does not exist, it is ignored.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks the EdmSysPerm.EdmSysPerm_EditUserMgr permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~SetFolderPermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~SetFolderPermissions.html new file mode 100644 index 0000000..e183fcf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr7~SetFolderPermissions.html @@ -0,0 +1,155 @@ + + + + + + SetFolderPermissions Method (IEdmUserMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetFolderPermissions Method (IEdmUserMgr7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr7 Interface + : SetFolderPermissions Method (IEdmUserMgr7)
+ +
+ + + +
+ +
+ + +
+
+
poPermissions
+
Array of EdmFolderPermission structures; one structure for each permission assignment
+
+ +
+ +
+ + +
+
+ Sets specified permissions on a specified folder for a specified user or group. + + +

Syntax

Visual Basic 
Sub SetFolderPermissions( _
+   ByVal poPermissions() As EdmFolderPermission _
+) 
+
C# 
void SetFolderPermissions( 
+   EdmFolderPermission[] poPermissions
+)
+
C++/CLI 
void SetFolderPermissions( 
+&   array<EdmFolderPermission>^ poPermissions
+) 
+ +

Parameters

poPermissions
+
Array of EdmFolderPermission structures; one structure for each permission assignment
+ +
+ + +

Example

See the IEdmUserMgr7 examples. +
+ +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks the EdmSysPerm.EdmSysPerm_EditUserMgr permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8.html new file mode 100644 index 0000000..547ddd5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8.html @@ -0,0 +1,141 @@ + + + + + + IEdmUserMgr8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the users and user groups in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr8 
+   Inherits IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7 
+
C# 
public interface IEdmUserMgr8 : IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7  
+
C++/CLI 
public interface class IEdmUserMgr8 : public IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmUserMgr7 by providing the ability to display a user's picture and a popup with picture information. +
  • is extended by IEdmUserMgr9.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_members.html new file mode 100644 index 0000000..3154000 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmUserMgr8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr8.

+ + +

Public Methods

+ + +
 NameDescription
 MethodCreateUserPictureCreates a picture of the user to display in a form.  
 MethodShowUserPopupDisplays a popup window with information about the specified user when the mouse hovers over the specified area of the specified window.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_methods.html new file mode 100644 index 0000000..295a0cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmUserMgr8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr8 members.

+

Public Methods

+ + +
 NameDescription
 MethodCreateUserPictureCreates a picture of the user to display in a form.  
 MethodShowUserPopupDisplays a popup window with information about the specified user when the mouse hovers over the specified area of the specified window.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~CreateUserPicture.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~CreateUserPicture.html new file mode 100644 index 0000000..0531a05 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~CreateUserPicture.html @@ -0,0 +1,187 @@ + + + + + + CreateUserPicture Method (IEdmUserMgr8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateUserPicture Method (IEdmUserMgr8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr8 Interface + : CreateUserPicture Method (IEdmUserMgr8)
+ +
+ + + +
+ +
+ + +
+
+
hParent
+
Handle of parent window on which the picture should be drawn
+
+
+
poDestRect
+
EdmRect structure; bounding rectangle in which the picture should be drawn (see Remarks)
+
+
+
oUserID
+
ID or login name of the user for which to create a picture
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to receive progress information if the picture needs to be downloaded from an archive server
+
+
+
lEdmUserPictureFlags
+
Combination of EdmUserPictureFlag bits
+
+ +
+ +
+ + +
+
+ Creates a picture of the user to display in a form. + + +

Syntax

Visual Basic 
Function CreateUserPicture( _
+   ByVal hParent As System.Integer, _
+   ByRef poDestRect As EdmRect, _
+   ByVal oUserID As System.Object, _
+   Optional ByVal poCallback As EdmCallback, _
+   Optional ByVal lEdmUserPictureFlags As System.Integer _
+) As IEdmImage
+
C# 
IEdmImage CreateUserPicture( 
+   System.int hParent,
+   ref EdmRect poDestRect,
+   System.object oUserID,
+   EdmCallback poCallback,
+   System.int lEdmUserPictureFlags
+)
+
C++/CLI 
IEdmImage^ CreateUserPicture( 
+&   System.int hParent,
+&   EdmRect% poDestRect,
+&   System.Object^ oUserID,
+&   EdmCallback^ poCallback,
+&   System.int lEdmUserPictureFlags
+) 
+ +

Parameters

hParent
+
Handle of parent window on which the picture should be drawn
poDestRect
+
EdmRect structure; bounding rectangle in which the picture should be drawn (see Remarks)
oUserID
+
ID or login name of the user for which to create a picture
poCallback
+
Optional pointer to a class that implements IEdmCallback to receive progress information if the picture needs to be downloaded from an archive server
lEdmUserPictureFlags
+
Combination of EdmUserPictureFlag bits
+ +

Return Value

IEdmImage
+ + +

Example

See the IEdmUserMgr8 examples. +
+ +

Remarks

Call IEdmUserMgr8::ShowUserPopup to display a popup window with user information.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~ShowUserPopup.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~ShowUserPopup.html new file mode 100644 index 0000000..280fc41 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr8~ShowUserPopup.html @@ -0,0 +1,176 @@ + + + + + + ShowUserPopup Method (IEdmUserMgr8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ShowUserPopup Method (IEdmUserMgr8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr8 Interface + : ShowUserPopup Method (IEdmUserMgr8)
+ +
+ + + +
+ +
+ + +
+
+
hParent
+
Handle of the parent window
+
+
+
poTrackRect
+
EdmRect structure; bounding rectangle of the area in the window that will trigger the mouse hover event
+
+
+
oUserID
+
ID, login name, or full name of the user for which to display information in the popup window (see Remarks)
+
+ +
+ +
+ + +
+
+ Displays a popup window with information about the specified user when the mouse hovers over the specified area of the specified window. + + +

Syntax

Visual Basic 
Sub ShowUserPopup( _
+   ByVal hParent As System.Integer, _
+   ByRef poTrackRect As EdmRect, _
+   ByVal oUserID As System.Object _
+) 
+
C# 
void ShowUserPopup( 
+   System.int hParent,
+   ref EdmRect poTrackRect,
+   System.object oUserID
+)
+
C++/CLI 
void ShowUserPopup( 
+&   System.int hParent,
+&   EdmRect% poTrackRect,
+&   System.Object^ oUserID
+) 
+ +

Parameters

hParent
+
Handle of the parent window
poTrackRect
+
EdmRect structure; bounding rectangle of the area in the window that will trigger the mouse hover event
oUserID
+
ID, login name, or full name of the user for which to display information in the popup window (see Remarks)
+ +
+ + +

Example

See the IEdmUserMgr8 examples. +
+ +

Remarks

In the SOLIDWORKS PDM Professional user interface, whenever the mouse hovers over a user name, a popup window displays information about the user. The popup window displays until the mouse moves off the area containing the user name. Call this method to display a popup window when the mouse hovers over a user name in a Windows form.

+

If oUserID contains a full name that is not unique, the user to display is randomly selected by the system.

+

IEdmUser10::SetUserDataEx describes how to update the information displayed in the popup window.

+

Call IEdmUserMgr8::CreateUserPicture if you want to display the picture of a user in a Windows form.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_INVALIDARG: One or more of the arguments are invalid. +
  • E_EDM_NOT_LOGGED_IN: You must log in to the vault before calling this method.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2013
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9.html new file mode 100644 index 0000000..fe7bdf6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9.html @@ -0,0 +1,141 @@ + + + + + + IEdmUserMgr9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmUserMgr9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the users and user groups in the vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmUserMgr9 
+   Inherits IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8 
+
C# 
public interface IEdmUserMgr9 : IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8  
+
C++/CLI 
public interface class IEdmUserMgr9 : public IEdmUserMgr5IEdmUserMgr6IEdmUserMgr7IEdmUserMgr8  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmUserMgr8 by providing the ability to get and set the state and transition permissions for users and groups. +
  • is extended by IEdmUserMgr10.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_members.html new file mode 100644 index 0000000..68a4f8a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_members.html @@ -0,0 +1,114 @@ + + + + + + IEdmUserMgr9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmUserMgr9.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodGetStatePermissionsGets the state permissions for the specified owner and state.  
 MethodGetTransitionPermissionsGets the transition permissions for the specified owner and transition.  
 MethodSetStatePermissionsSets state permissions.  
 MethodSetTransitionPermissionsSets transition permissions.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_methods.html new file mode 100644 index 0000000..2b031f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmUserMgr9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmUserMgr9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmUserMgr9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmUserMgr9 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetStatePermissionsGets the state permissions for the specified owner and state.  
 MethodGetTransitionPermissionsGets the transition permissions for the specified owner and transition.  
 MethodSetStatePermissionsSets state permissions.  
 MethodSetTransitionPermissionsSets transition permissions.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetStatePermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetStatePermissions.html new file mode 100644 index 0000000..3e5067d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetStatePermissions.html @@ -0,0 +1,179 @@ + + + + + + GetStatePermissions Method (IEdmUserMgr9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetStatePermissions Method (IEdmUserMgr9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr9 Interface + : GetStatePermissions Method (IEdmUserMgr9)
+ +
+ + + +
+ +
+ + +
+
+
lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
+
+
+
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType; valid only if lOwnerID is not 0
+
+
+
lStateID
+
ID of state for which to get permissions; 0 to return permissions for all states
+
+
+
ppoPermissions
+
Array of EdmStatePermission structures; one structure for each permission assignment
+
+ +
+ +
+ + +
+
+ Gets the state permissions for the specified owner and state. + + +

Syntax

Visual Basic 
Sub GetStatePermissions( _
+   ByVal lOwnerID As System.Integer, _
+   ByVal meOwnerType As EdmObjectType, _
+   ByVal lStateID As System.Integer, _
+   ByRef ppoPermissions() As EdmStatePermission _
+) 
+
C# 
void GetStatePermissions( 
+   System.int lOwnerID,
+   EdmObjectType meOwnerType,
+   System.int lStateID,
+   out EdmStatePermission[] ppoPermissions
+)
+
C++/CLI 
void GetStatePermissions( 
+&   System.int lOwnerID,
+&   EdmObjectType meOwnerType,
+&   System.int lStateID,
+&   [Out] array<EdmStatePermission>^ ppoPermissions
+) 
+ +

Parameters

lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType; valid only if lOwnerID is not 0
lStateID
+
ID of state for which to get permissions; 0 to return permissions for all states
ppoPermissions
+
Array of EdmStatePermission structures; one structure for each permission assignment
+ +
+ + +

Example

See the IEdmUserMgr9 examples. +
+ +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetTransitionPermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetTransitionPermissions.html new file mode 100644 index 0000000..92ccb1d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~GetTransitionPermissions.html @@ -0,0 +1,179 @@ + + + + + + GetTransitionPermissions Method (IEdmUserMgr9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTransitionPermissions Method (IEdmUserMgr9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr9 Interface + : GetTransitionPermissions Method (IEdmUserMgr9)
+ +
+ + + +
+ +
+ + +
+
+
lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
+
+
+
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType; valid only if lOwnerID is not 0
+
+
+
lTransitionID
+
ID of transition for which to get permissions; 0 to return permissions for all transitions
+
+
+
ppoPermissions
+
Array of EdmTransitionPermission structures; one structure for each permission assignment
+
+ +
+ +
+ + +
+
+ Gets the transition permissions for the specified owner and transition. + + +

Syntax

Visual Basic 
Sub GetTransitionPermissions( _
+   ByVal lOwnerID As System.Integer, _
+   ByVal meOwnerType As EdmObjectType, _
+   ByVal lTransitionID As System.Integer, _
+   ByRef ppoPermissions() As EdmTransitionPermission _
+) 
+
C# 
void GetTransitionPermissions( 
+   System.int lOwnerID,
+   EdmObjectType meOwnerType,
+   System.int lTransitionID,
+   out EdmTransitionPermission[] ppoPermissions
+)
+
C++/CLI 
void GetTransitionPermissions( 
+&   System.int lOwnerID,
+&   EdmObjectType meOwnerType,
+&   System.int lTransitionID,
+&   [Out] array<EdmTransitionPermission>^ ppoPermissions
+) 
+ +

Parameters

lOwnerID
+
ID of the user or group for which to get permissions; 0 to return permissions for all users and groups
meOwnerType
+
Type of lOwnerID as defined in EdmObjectType; valid only if lOwnerID is not 0
lTransitionID
+
ID of transition for which to get permissions; 0 to return permissions for all transitions
ppoPermissions
+
Array of EdmTransitionPermission structures; one structure for each permission assignment
+ +
+ + +

Example

See the IEdmUserMgr9 examples. +
+ +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetStatePermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetStatePermissions.html new file mode 100644 index 0000000..22766e7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetStatePermissions.html @@ -0,0 +1,156 @@ + + + + + + SetStatePermissions Method (IEdmUserMgr9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetStatePermissions Method (IEdmUserMgr9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr9 Interface + : SetStatePermissions Method (IEdmUserMgr9)
+ +
+ + + +
+ +
+ + +
+
+
poPermissions
+
Array of EdmStatePermission structures; one structure for each permission assignment
+
+ +
+ +
+ + +
+
+ Sets state permissions. + + +

Syntax

Visual Basic 
Sub SetStatePermissions( _
+   ByVal poPermissions() As EdmStatePermission _
+) 
+
C# 
void SetStatePermissions( 
+   EdmStatePermission[] poPermissions
+)
+
C++/CLI 
void SetStatePermissions( 
+&   array<EdmStatePermission>^ poPermissions
+) 
+ +

Parameters

poPermissions
+
Array of EdmStatePermission structures; one structure for each permission assignment
+ +
+ + + + + +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks the EdmSysPerm.EdmSysPerm_EditUserMgr permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetTransitionPermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetTransitionPermissions.html new file mode 100644 index 0000000..07d7eb3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmUserMgr9~SetTransitionPermissions.html @@ -0,0 +1,156 @@ + + + + + + SetTransitionPermissions Method (IEdmUserMgr9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetTransitionPermissions Method (IEdmUserMgr9)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmUserMgr9 Interface + : SetTransitionPermissions Method (IEdmUserMgr9)
+ +
+ + + +
+ +
+ + +
+
+
poPermissions
+
Array of EdmTransitionPermission structures; one structure for each permission assignment
+
+ +
+ +
+ + +
+
+ Sets transition permissions. + + +

Syntax

Visual Basic 
Sub SetTransitionPermissions( _
+   ByVal poPermissions() As EdmTransitionPermission _
+) 
+
C# 
void SetTransitionPermissions( 
+   EdmTransitionPermission[] poPermissions
+)
+
C++/CLI 
void SetTransitionPermissions( 
+&   array<EdmTransitionPermission>^ poPermissions
+) 
+ +

Parameters

poPermissions
+
Array of EdmTransitionPermission structures; one structure for each permission assignment
+ +
+ + + + + +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The logged-in user lacks the EdmSysPerm.EdmSysPerm_EditUserMgr permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5.html new file mode 100644 index 0000000..c549ff8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5.html @@ -0,0 +1,143 @@ + + + + + + IEdmVariable5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariable5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariable5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a variable on a file or folder data card.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariable5 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmVariable5 : IEdmObject5  
+
C++/CLI 
public interface class IEdmVariable5 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5.

+

Use IEdmVariableMgr5 to enumerate the variables created with the Card Editor.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_members.html new file mode 100644 index 0000000..8cdf977 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_members.html @@ -0,0 +1,117 @@ + + + + + + IEdmVariable5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariable5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariable5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariable5.

+

Public Properties

+ + +
 NameDescription
 PropertyFlagsGets the style of this variable.  
 PropertyVariableTypeGets the type of data that can be stored in this variable.  
Top
+ +

Public Methods

+ + +
 NameDescription
 MethodGetFirstAttributePositionStarts an enumeration of the attributes to which this variable is mapped for the specified file type.  
 MethodGetNextAttributeGets the next attribute in an enumeration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_methods.html new file mode 100644 index 0000000..7432914 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmVariable5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariable5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariable5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariable5 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFirstAttributePositionStarts an enumeration of the attributes to which this variable is mapped for the specified file type.  
 MethodGetNextAttributeGets the next attribute in an enumeration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_properties.html new file mode 100644 index 0000000..4b9a2aa --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5_properties.html @@ -0,0 +1,110 @@ + + + + + + IEdmVariable5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariable5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariable5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariable5 members.

+

Public Properties

+ + +
 NameDescription
 PropertyFlagsGets the style of this variable.  
 PropertyVariableTypeGets the type of data that can be stored in this variable.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~Flags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~Flags.html new file mode 100644 index 0000000..f1ab985 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~Flags.html @@ -0,0 +1,149 @@ + + + + + + Flags Property (IEdmVariable5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Flags Property (IEdmVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariable5 Interface + : Flags Property (IEdmVariable5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the style of this variable. + + +

Syntax

Visual Basic 
ReadOnly Property Flags As System.Integer
+
C# 
System.int Flags {get;}
+
C++/CLI 
property System.int Flags {
+   System.int get();
+}
+ + + +

Property Value

Combination of EdmVariableFlags bits
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetFirstAttributePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetFirstAttributePosition.html new file mode 100644 index 0000000..685bfd5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetFirstAttributePosition.html @@ -0,0 +1,159 @@ + + + + + + GetFirstAttributePosition Method (IEdmVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstAttributePosition Method (IEdmVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariable5 Interface + : GetFirstAttributePosition Method (IEdmVariable5)
+ +
+ + + +
+ +
+ + +
+
+
bsFileExtension
+
Extension of file for which to get attributes, e.g., "DWG" or "DOC"; "" to get all attributes for all file types
+
+ +
+ +
+ + +
+
+ Starts an enumeration of the attributes to which this variable is mapped for the specified file type. + + +

Syntax

Visual Basic 
Function GetFirstAttributePosition( _
+   ByVal bsFileExtension As System.String _
+) As IEdmPos5
+
C# 
IEdmPos5 GetFirstAttributePosition( 
+   System.string bsFileExtension
+)
+
C++/CLI 
IEdmPos5^ GetFirstAttributePosition( 
+&   System.String^ bsFileExtension
+) 
+ +

Parameters

bsFileExtension
+
Extension of file for which to get attributes, e.g., "DWG" or "DOC"; "" to get all attributes for all file types
+ +

Return Value

IEdmPos5; position of the first attribute in the enumeration
+ + + + +

Example

+

Remarks

A variable in SOLIDWORKS PDM Professional can be mapped to zero or more block-attribute pairs. SOLIDWORKS PDM Professional uses the attributes when transferring data between the file data card and the file, itself. See the main SOLIDWORKS PDM Professional online help for more information.

+

After calling this method, pass the returned position of the first attribute to IEdmVariable5::GetNextAttribute to get the first attribute in this list. Then call IEdmVariable5::GetNextAttribute repeatedly to get the rest of the attributes.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetNextAttribute.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetNextAttribute.html new file mode 100644 index 0000000..1bee783 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~GetNextAttribute.html @@ -0,0 +1,160 @@ + + + + + + GetNextAttribute Method (IEdmVariable5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextAttribute Method (IEdmVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariable5 Interface + : GetNextAttribute Method (IEdmVariable5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position in the enumeration of the next attribute
+
+ +
+ +
+ + +
+
+ Gets the next attribute in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextAttribute( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmAttribute5
+
C# 
IEdmAttribute5 GetNextAttribute( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmAttribute5^ GetNextAttribute( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position in the enumeration of the next attribute
+ +

Return Value

IEdmAttribute5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first attribute in the list, IEdmPos5. Call IEdmVariable5::GetFirstAttributePosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the attributes in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmAttribute5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~VariableType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~VariableType.html new file mode 100644 index 0000000..161f64f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariable5~VariableType.html @@ -0,0 +1,149 @@ + + + + + + VariableType Property (IEdmVariable5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableType Property (IEdmVariable5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariable5 Interface + : VariableType Property (IEdmVariable5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of data that can be stored in this variable. + + +

Syntax

Visual Basic 
ReadOnly Property VariableType As EdmVariableType
+
C# 
EdmVariableType VariableType {get;}
+
C++/CLI 
property EdmVariableType VariableType {
+   EdmVariableType get();
+}
+ + + +

Property Value

Type of data that can be stored in this variable as defined in EdmVariableType
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5.html new file mode 100644 index 0000000..de2789c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5.html @@ -0,0 +1,142 @@ + + + + + + IEdmVariableMgr5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to manage the file and folder data card variables set up in the Card Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariableMgr5 
+
C# 
public interface IEdmVariableMgr5 
+
C++/CLI 
public interface class IEdmVariableMgr5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_members.html new file mode 100644 index 0000000..ee1af97 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmVariableMgr5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr5 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariableMgr5.

+ + +

Public Methods

+ + + + +
 NameDescription
 MethodEditVariablesDisplays the Edit Variables dialog box.  
 MethodGetFirstVariablePositionStarts an enumeration of the variables in the vault.  
 MethodGetNextVariableGets the next variable in an enumeration.  
 MethodGetVariableGets a variable with the specified ID or name.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_methods.html new file mode 100644 index 0000000..1b7df90 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmVariableMgr5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableMgr5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodEditVariablesDisplays the Edit Variables dialog box.  
 MethodGetFirstVariablePositionStarts an enumeration of the variables in the vault.  
 MethodGetNextVariableGets the next variable in an enumeration.  
 MethodGetVariableGets a variable with the specified ID or name.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~EditVariables.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~EditVariables.html new file mode 100644 index 0000000..5705572 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~EditVariables.html @@ -0,0 +1,157 @@ + + + + + + EditVariables Method (IEdmVariableMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EditVariables Method (IEdmVariableMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr5 Interface + : EditVariables Method (IEdmVariableMgr5)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Displays the Edit Variables dialog box. + + +

Syntax

Visual Basic 
Function EditVariables( _
+   ByVal hParentWnd As System.Integer _
+) As System.Boolean
+
C# 
System.bool EditVariables( 
+   System.int hParentWnd
+)
+
C++/CLI 
System.bool EditVariables( 
+&   System.int hParentWnd
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
+ +

Return Value

True if one or more variables are updated; false if not
+ + + + +

Example

+

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user lacks permission to edit variables.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetFirstVariablePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetFirstVariablePosition.html new file mode 100644 index 0000000..3d86ccd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetFirstVariablePosition.html @@ -0,0 +1,146 @@ + + + + + + GetFirstVariablePosition Method (IEdmVariableMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstVariablePosition Method (IEdmVariableMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr5 Interface + : GetFirstVariablePosition Method (IEdmVariableMgr5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the variables in the vault. + + +

Syntax

Visual Basic 
Function GetFirstVariablePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstVariablePosition()
+
C++/CLI 
IEdmPos5^ GetFirstVariablePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first variable in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first variable to IEdmVariableMgr5::GetNextVariable to get the first variable in this list. Then call IEdmVariableMgr5::GetNextVariable repeatedly to get the rest of the variables.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetNextVariable.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetNextVariable.html new file mode 100644 index 0000000..1105d5f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetNextVariable.html @@ -0,0 +1,160 @@ + + + + + + GetNextVariable Method (IEdmVariableMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextVariable Method (IEdmVariableMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr5 Interface + : GetNextVariable Method (IEdmVariableMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next variable in the list
+
+ +
+ +
+ + +
+
+ Gets the next variable in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextVariable( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmVariable5
+
C# 
IEdmVariable5 GetNextVariable( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmVariable5^ GetNextVariable( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next variable in the list
+ +

Return Value

IEdmVariable5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first variable in the list, IEdmPos5. Call IEdmVariableMgr5::GetFirstVariablePosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the variables in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmVariable5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetVariable.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetVariable.html new file mode 100644 index 0000000..165d525 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr5~GetVariable.html @@ -0,0 +1,158 @@ + + + + + + GetVariable Method (IEdmVariableMgr5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVariable Method (IEdmVariableMgr5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr5 Interface + : GetVariable Method (IEdmVariableMgr5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
ID or name of variable to get
+
+ +
+ +
+ + +
+
+ Gets a variable with the specified ID or name. + + +

Syntax

Visual Basic 
Function GetVariable( _
+   ByRef poIdOrName As System.Object _
+) As IEdmVariable5
+
C# 
IEdmVariable5 GetVariable( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmVariable5^ GetVariable( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
ID or name of variable to get
+ +

Return Value

IEdmVariable5; Null if poIdOrName is not valid
+ + + + +

Example

+

Remarks

C++ users not using smart-pointer wrapper functions must release the returned pointer, IEdmVariable5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The variable name or ID is not recognized.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6.html new file mode 100644 index 0000000..46af213 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6.html @@ -0,0 +1,142 @@ + + + + + + IEdmVariableMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to manage the file and folder data card variables set up in the Card Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariableMgr6 
+   Inherits IEdmVariableMgr5 
+
C# 
public interface IEdmVariableMgr6 : IEdmVariableMgr5  
+
C++/CLI 
public interface class IEdmVariableMgr6 : public IEdmVariableMgr5  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_members.html new file mode 100644 index 0000000..40d57e7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVariableMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariableMgr6.

+ + +

Public Methods

+ +
 NameDescription
 MethodAddVariablesAdds the specified variables to the vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_methods.html new file mode 100644 index 0000000..8078083 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVariableMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableMgr6 members.

+

Public Methods

+ +
 NameDescription
 MethodAddVariablesAdds the specified variables to the vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6~AddVariables.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6~AddVariables.html new file mode 100644 index 0000000..ae17fa0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr6~AddVariables.html @@ -0,0 +1,155 @@ + + + + + + AddVariables Method (IEdmVariableMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
AddVariables Method (IEdmVariableMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr6 Interface + : AddVariables Method (IEdmVariableMgr6)
+ +
+ + + +
+ +
+ + +
+
+
ppoVariables
+
Array of EdmVariableData structures; one structure for each variable (see Remarks)
+
+ +
+ +
+ + +
+
+ Adds the specified variables to the vault. + + +

Syntax

Visual Basic 
Sub AddVariables( _
+   ByRef ppoVariables() As EdmVariableData _
+) 
+
C# 
void AddVariables( 
+   out EdmVariableData[] ppoVariables
+)
+
C++/CLI 
void AddVariables( 
+&   [Out] array<EdmVariableData>^ ppoVariables
+) 
+ +

Parameters

ppoVariables
+
Array of EdmVariableData structures; one structure for each variable (see Remarks)
+ +
+ + +

Example

See the IEdmVariableMgr6 examples. +
+ +

Remarks

In the ppoVariables structure, set mlVariableID to 0 before calling this method. The ID of the new variable is returned in mlVariableID.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2007
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7.html new file mode 100644 index 0000000..961d071 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7.html @@ -0,0 +1,136 @@ + + + + + + IEdmVariableMgr7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to manage the file and folder data card variables set up in the Card Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariableMgr7 
+   Inherits IEdmVariableMgr5IEdmVariableMgr6 
+
C# 
public interface IEdmVariableMgr7 : IEdmVariableMgr5IEdmVariableMgr6  
+
C++/CLI 
public interface class IEdmVariableMgr7 : public IEdmVariableMgr5IEdmVariableMgr6  
+
+ + + + +

Remarks

This interface extends IEdmVariableMgr6.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_members.html new file mode 100644 index 0000000..c1e5cdf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVariableMgr7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariableMgr7.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetDrawingPropSheetAttributesGets all of the SLDDRW-card attributes that are linked to the $PRPSHEET block for the specified folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_methods.html new file mode 100644 index 0000000..8b2b6c6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVariableMgr7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableMgr7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableMgr7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableMgr7 members.

+

Public Methods

+ +
 NameDescription
 MethodGetDrawingPropSheetAttributesGets all of the SLDDRW-card attributes that are linked to the $PRPSHEET block for the specified folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7~GetDrawingPropSheetAttributes.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7~GetDrawingPropSheetAttributes.html new file mode 100644 index 0000000..16c878c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableMgr7~GetDrawingPropSheetAttributes.html @@ -0,0 +1,171 @@ + + + + + + GetDrawingPropSheetAttributes Method (IEdmVariableMgr7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDrawingPropSheetAttributes Method (IEdmVariableMgr7)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableMgr7 Interface + : GetDrawingPropSheetAttributes Method (IEdmVariableMgr7)
+ +
+ + + +
+ +
+ + +
+
+
lFolderID
+
ID of folder from which to get the values
+
+
+
ppoSrcAttribs
+
Array of attribute names used in the CustomProperty block
+
+
+
ppoDestAttribs
+
Array of attribute names used in the $PRPSheet block
+
+ +
+ +
+ + +
+
+ Gets all of the SLDDRW-card attributes that are linked to the $PRPSHEET block for the specified folder. + + +

Syntax

Visual Basic 
Sub GetDrawingPropSheetAttributes( _
+   ByVal lFolderID As System.Integer, _
+   ByRef ppoSrcAttribs() As System.String, _
+   ByRef ppoDestAttribs() As System.String _
+) 
+
C# 
void GetDrawingPropSheetAttributes( 
+   System.int lFolderID,
+   out System.string[] ppoSrcAttribs,
+   out System.string[] ppoDestAttribs
+)
+
C++/CLI 
void GetDrawingPropSheetAttributes( 
+&   System.int lFolderID,
+&   [Out] System.array<String^>^ ppoSrcAttribs,
+&   [Out] System.array<String^>^ ppoDestAttribs
+) 
+ +

Parameters

lFolderID
+
ID of folder from which to get the values
ppoSrcAttribs
+
Array of attribute names used in the CustomProperty block
ppoDestAttribs
+
Array of attribute names used in the $PRPSheet block
+ +
+ + + + + +

Remarks

This method is used internally by SOLIDWORKS PDM Professional to copy attributes from the model's CustomProperty block to the $PRPSHEET block. ppoSrcAttribs and ppoDestAttribs both have the same number of elements.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5.html new file mode 100644 index 0000000..08e3db3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5.html @@ -0,0 +1,140 @@ + + + + + + IEdmVariableValue5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariableValue5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the values of file and folder data card variables.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariableValue5 
+
C# 
public interface IEdmVariableValue5 
+
C++/CLI 
public interface class IEdmVariableValue5 
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_members.html new file mode 100644 index 0000000..ee84294 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmVariableValue5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableValue5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariableValue5.

+

Public Properties

+ +
 NameDescription
 PropertyVariableIDGets the ID of the variable to which this value belongs.  
Top
+ +

Public Methods

+ + + +
 NameDescription
 MethodGetFirstAttributePositionStarts an enumeration of the attributes mapped to this variable.  
 MethodGetNextAttributeGets the next attribute to which this variable is mapped in an enumeration.  
 MethodGetValueGets the value of this variable in the specified configuration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_methods.html new file mode 100644 index 0000000..a4adcfe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmVariableValue5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableValue5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableValue5 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetFirstAttributePositionStarts an enumeration of the attributes mapped to this variable.  
 MethodGetNextAttributeGets the next attribute to which this variable is mapped in an enumeration.  
 MethodGetValueGets the value of this variable in the specified configuration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_properties.html new file mode 100644 index 0000000..8babee2 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmVariableValue5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableValue5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableValue5 members.

+

Public Properties

+ +
 NameDescription
 PropertyVariableIDGets the ID of the variable to which this value belongs.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetFirstAttributePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetFirstAttributePosition.html new file mode 100644 index 0000000..951fba8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetFirstAttributePosition.html @@ -0,0 +1,144 @@ + + + + + + GetFirstAttributePosition Method (IEdmVariableValue5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstAttributePosition Method (IEdmVariableValue5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue5 Interface + : GetFirstAttributePosition Method (IEdmVariableValue5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the attributes mapped to this variable. + + +

Syntax

Visual Basic 
Function GetFirstAttributePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstAttributePosition()
+
C++/CLI 
IEdmPos5^ GetFirstAttributePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first attribute in the enumeration
+ + + + + +

Remarks

After calling this method, pass the returned position of the first attribute to IEdmVariableValue5::GetNextAttribute to get the first attribute in this list. Then call IEdmVariableValue5::GetNextAttribute repeatedly to get the rest of the variables.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetNextAttribute.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetNextAttribute.html new file mode 100644 index 0000000..00918a9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetNextAttribute.html @@ -0,0 +1,158 @@ + + + + + + GetNextAttribute Method (IEdmVariableValue5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextAttribute Method (IEdmVariableValue5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue5 Interface + : GetNextAttribute Method (IEdmVariableValue5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next attribute in the list
+
+ +
+ +
+ + +
+
+ Gets the next attribute to which this variable is mapped in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextAttribute( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmAttribute5
+
C# 
IEdmAttribute5 GetNextAttribute( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmAttribute5^ GetNextAttribute( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next attribute in the list
+ +

Return Value

IEdmAttribute5
+ + + + + +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first attribute in the list, IEdmPos5. Call IEdmVariableValue5::GetFirstAttributePosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the attributes in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmVariable5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetValue.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetValue.html new file mode 100644 index 0000000..6f2fc33 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~GetValue.html @@ -0,0 +1,156 @@ + + + + + + GetValue Method (IEdmVariableValue5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetValue Method (IEdmVariableValue5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue5 Interface + : GetValue Method (IEdmVariableValue5)
+ +
+ + + +
+ +
+ + +
+
+
bsConfiguration
+
Name of configuration for which to get the value; "" for folders and file types that do not support multiple configurations
+
+ +
+ +
+ + +
+
+ Gets the value of this variable in the specified configuration. + + +

Syntax

Visual Basic 
Function GetValue( _
+   ByVal bsConfiguration As System.String _
+) As System.Object
+
C# 
System.object GetValue( 
+   System.string bsConfiguration
+)
+
C++/CLI 
System.Object^ GetValue( 
+&   System.String^ bsConfiguration
+) 
+ +

Parameters

bsConfiguration
+
Name of configuration for which to get the value; "" for folders and file types that do not support multiple configurations
+ +

Return Value

Value of the variable
+ + +

Example

See the IEdmVariableValue5 examples. +
+ +

Remarks

C++ users should use VariantInit and VariantClear to handle the VARIANT struct properly.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: No value exists for the specified configuration.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~VariableID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~VariableID.html new file mode 100644 index 0000000..61a88cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue5~VariableID.html @@ -0,0 +1,147 @@ + + + + + + VariableID Property (IEdmVariableValue5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableID Property (IEdmVariableValue5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue5 Interface + : VariableID Property (IEdmVariableValue5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the variable to which this value belongs. + + +

Syntax

Visual Basic 
ReadOnly Property VariableID As System.Integer
+
C# 
System.int VariableID {get;}
+
C++/CLI 
property System.int VariableID {
+   System.int get();
+}
+ + + +

Property Value

ID of the variable to which this value belongs
+ + +

Example

See the IEdmVariableValue5 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6.html new file mode 100644 index 0000000..c3b7063 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6.html @@ -0,0 +1,138 @@ + + + + + + IEdmVariableValue6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVariableValue6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the values of file and folder data card variables.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVariableValue6 
+   Inherits IEdmVariableValue5 
+
C# 
public interface IEdmVariableValue6 : IEdmVariableValue5  
+
C++/CLI 
public interface class IEdmVariableValue6 : public IEdmVariableValue5  
+
+ + + +

Example

+

Remarks

This interface extends IEdmVariableValue5.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_members.html new file mode 100644 index 0000000..d486aa4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmVariableValue6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue6 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableValue6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVariableValue6.

+

Public Properties

+ + + +
 NameDescription
 PropertyVariableFlagsGets the flags set for this variable.  
 PropertyVariableNameGets the name of this variable.  
 PropertyVariableTypeGets the type of this variable.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_properties.html new file mode 100644 index 0000000..5a3df73 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6_properties.html @@ -0,0 +1,109 @@ + + + + + + IEdmVariableValue6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVariableValue6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVariableValue6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVariableValue6 members.

+

Public Properties

+ + + +
 NameDescription
 PropertyVariableFlagsGets the flags set for this variable.  
 PropertyVariableNameGets the name of this variable.  
 PropertyVariableTypeGets the type of this variable.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableFlags.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableFlags.html new file mode 100644 index 0000000..b41cd97 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableFlags.html @@ -0,0 +1,147 @@ + + + + + + VariableFlags Property (IEdmVariableValue6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableFlags Property (IEdmVariableValue6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue6 Interface + : VariableFlags Property (IEdmVariableValue6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the flags set for this variable. + + +

Syntax

Visual Basic 
ReadOnly Property VariableFlags As System.Integer
+
C# 
System.int VariableFlags {get;}
+
C++/CLI 
property System.int VariableFlags {
+   System.int get();
+}
+ + + +

Property Value

Combination of EdmVariableFlags bits
+ + +

Example

See the IEdmVariableValue6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableName.html new file mode 100644 index 0000000..bf3975f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableName.html @@ -0,0 +1,147 @@ + + + + + + VariableName Property (IEdmVariableValue6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableName Property (IEdmVariableValue6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue6 Interface + : VariableName Property (IEdmVariableValue6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this variable. + + +

Syntax

Visual Basic 
ReadOnly Property VariableName As System.String
+
C# 
System.string VariableName {get;}
+
C++/CLI 
property System.String^ VariableName {
+   System.String^ get();
+}
+ + + +

Property Value

Variable name
+ + +

Example

See the IEdmVariableValue6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableType.html new file mode 100644 index 0000000..fa47ca4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVariableValue6~VariableType.html @@ -0,0 +1,147 @@ + + + + + + VariableType Property (IEdmVariableValue6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VariableType Property (IEdmVariableValue6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVariableValue6 Interface + : VariableType Property (IEdmVariableValue6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of this variable. + + +

Syntax

Visual Basic 
ReadOnly Property VariableType As EdmVariableType
+
C# 
EdmVariableType VariableType {get;}
+
C++/CLI 
property EdmVariableType VariableType {
+   EdmVariableType get();
+}
+ + + +

Property Value

Type of variable as defined in EdmVariableType
+ + +

Example

See the IEdmVariableValue6 examples. +
+ + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10.html new file mode 100644 index 0000000..d7a2a62 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault10 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault10 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault10 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault10 
+   Inherits IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+
C# 
public interface IEdmVault10 : IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
C++/CLI 
public interface class IEdmVault10 : public IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_members.html new file mode 100644 index 0000000..20295c7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault10 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault10 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault10 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault10.

+ + +

Public Methods

+ +
 NameDescription
 MethodCreateCardViewEx2Displays a file or folder data card.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_methods.html new file mode 100644 index 0000000..c0f4a55 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault10 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault10 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault10 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault10 members.

+

Public Methods

+ +
 NameDescription
 MethodCreateCardViewEx2Displays a file or folder data card.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10~CreateCardViewEx2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10~CreateCardViewEx2.html new file mode 100644 index 0000000..8e7ce15 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault10~CreateCardViewEx2.html @@ -0,0 +1,166 @@ + + + + + + CreateCardViewEx2 Method (IEdmVault10) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateCardViewEx2 Method (IEdmVault10)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault10 Interface + : CreateCardViewEx2 Method (IEdmVault10)
+ +
+ + + +
+ +
+ + +
+
+
poArgs
+
EdmCardViewParams structure containing various members that control the creation of the view
+
+
+
poCallback
+
Pointer to a class that implements IEdmCardViewCallback6
+
+ +
+ +
+ + +
+
+ Displays a file or folder data card. + + +

Syntax

Visual Basic 
Function CreateCardViewEx2( _
+   ByRef poArgs As EdmCardViewParams, _
+   ByVal poCallback As System.Object _
+) As IEdmCardView63
+
C# 
IEdmCardView63 CreateCardViewEx2( 
+   ref EdmCardViewParams poArgs,
+   System.object poCallback
+)
+
C++/CLI 
IEdmCardView63^ CreateCardViewEx2( 
+&   EdmCardViewParams% poArgs,
+&   System.Object^ poCallback
+) 
+ +

Parameters

poArgs
+
EdmCardViewParams structure containing various members that control the creation of the view
poCallback
+
Pointer to a class that implements IEdmCardViewCallback6
+ +

Return Value

IEdmCardView63
+ + + + +

Example

+

Remarks

Use this method if you want complete control of the loading and saving of data to and from a custom file or folder data card. Use IEdmFolder5::CreateCardView if you want SOLIDWORKS PDM Professional to handle the loading and saving of data to and from a simple file or folder data card.

+

This method supersedes IEdmVault6::CreateCardViewEx by allowing you to pass a structure instead of individual parameters.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2009
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11.html new file mode 100644 index 0000000..560b4e1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11.html @@ -0,0 +1,143 @@ + + + + + + IEdmVault11 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault11 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault11 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault11 
+   Inherits IEdmVault10IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+
C# 
public interface IEdmVault11 : IEdmVault10IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
C++/CLI 
public interface class IEdmVault11 : public IEdmVault10IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_members.html new file mode 100644 index 0000000..48fee3b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_members.html @@ -0,0 +1,122 @@ + + + + + + IEdmVault11 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault11 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault11 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault11.

+

Public Properties

+ + +
 NameDescription
 PropertyItemRootFolderGets the interface to the invisible root folder of all items and item folders.  
 PropertyItemRootFolderIDGets the ID of the invisible root folder of all items and item folders.  
Top
+ +

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodBrowseForFolder2Displays a Browse for Folder dialog box in which the user can click a file or item folder.  
 MethodCreateNewVaultCreates a new vault.  
 MethodCreateNewVaultViewCreates a local view of a file vault in File Explorer.  
 MethodGetErrorMessageGets a description for the specified error code.  
 MethodGetErrorNameGets an internal error code name for the specified error code.  
 MethodGetLicenseGets all of the SOLIDWORKS PDM Professional licenses installed in this vault.  
 MethodGetLoggedInWindowsUserIDGets the ID of the user who is currently logged in through the SOLIDWORKS PDM Professional client software on this machine.  
 MethodInstallLicenseObsolete. Replaced by IEdmVault14::InstallLicense2.  
 MethodLogInWindowsUserLogs into SOLIDWORKS PDM Professional as the specified user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_methods.html new file mode 100644 index 0000000..5a73c9e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_methods.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault11 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault11 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault11 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault11 members.

+

Public Methods

+ + + + + + + + + +
 NameDescription
 MethodBrowseForFolder2Displays a Browse for Folder dialog box in which the user can click a file or item folder.  
 MethodCreateNewVaultCreates a new vault.  
 MethodCreateNewVaultViewCreates a local view of a file vault in File Explorer.  
 MethodGetErrorMessageGets a description for the specified error code.  
 MethodGetErrorNameGets an internal error code name for the specified error code.  
 MethodGetLicenseGets all of the SOLIDWORKS PDM Professional licenses installed in this vault.  
 MethodGetLoggedInWindowsUserIDGets the ID of the user who is currently logged in through the SOLIDWORKS PDM Professional client software on this machine.  
 MethodInstallLicenseObsolete. Replaced by IEdmVault14::InstallLicense2.  
 MethodLogInWindowsUserLogs into SOLIDWORKS PDM Professional as the specified user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_properties.html new file mode 100644 index 0000000..3f96e79 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmVault11 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault11 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault11 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault11 members.

+

Public Properties

+ + +
 NameDescription
 PropertyItemRootFolderGets the interface to the invisible root folder of all items and item folders.  
 PropertyItemRootFolderIDGets the ID of the invisible root folder of all items and item folders.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~BrowseForFolder2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~BrowseForFolder2.html new file mode 100644 index 0000000..d82c26f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~BrowseForFolder2.html @@ -0,0 +1,184 @@ + + + + + + BrowseForFolder2 Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BrowseForFolder2 Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : BrowseForFolder2 Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
bsMessage
+
Message to display in the dialog box
+
+
+
poDefaultFolder
+
IEdmFolder5; default folder to browse
+
+
+
lFlags
+
Combination of EdmBrowseForFolderFlag bits
+
+ +
+ +
+ + +
+
+ Displays a Browse for Folder dialog box in which the user can click a file or item folder. + + +

Syntax

Visual Basic 
Function BrowseForFolder2( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal bsMessage As System.String, _
+   ByVal poDefaultFolder As IEdmFolder5, _
+   ByVal lFlags As System.Integer _
+) As IEdmFolder5
+
C# 
IEdmFolder5 BrowseForFolder2( 
+   System.int hParentWnd,
+   System.string bsMessage,
+   IEdmFolder5 poDefaultFolder,
+   System.int lFlags
+)
+
C++/CLI 
IEdmFolder5^ BrowseForFolder2( 
+&   System.int hParentWnd,
+&   System.String^ bsMessage,
+&   IEdmFolder5^ poDefaultFolder,
+&   System.int lFlags
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
bsMessage
+
Message to display in the dialog box
poDefaultFolder
+
IEdmFolder5; default folder to browse
lFlags
+
Combination of EdmBrowseForFolderFlag bits
+ +

Return Value

IEdmFolder5; Null if the user clicks Cancel (see Remarks)
+ + + + +

Example

+

Remarks

This method supersedes IEdmVault5::BrowseForFolder by providing the ability to select items.

+

C++ users must release the returned interface, IEdmFolder5.

+

Return codes: 

+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVault.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVault.html new file mode 100644 index 0000000..91f77cf --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVault.html @@ -0,0 +1,352 @@ + + + + + + CreateNewVault Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateNewVault Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : CreateNewVault Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
bsArchiveServer
+
Name or IP number of the archive server computer; "" if the local comuter is the archive server
+
+
+
bsArchiveServerUserName
+
Name of the Windows user who logs in to the archive server
+
+
+
bsArchiveServerPassword
+
Password for the Windows user who logs in to the archive server
+
+
+
bsVaultName
+
Name of the vault to create
+
+
+
bsDescription
+
Description of the vault; appears in the vault properties window in the administration tool
+
+
+
bsArchiveRootFolder
+
Archive server vault folder; "" to use the default folder
+
+
+
bsSQLServer
+
Name or IP number of the SQL Server computer
+
+
+
bsSQLUserName
+
Name of the user who logs in to the SQL Server computer
+
+
+
bsSQLPassword
+
Password for the user who logs in to the SQL Server computer
+
+
+
bsSQLDatabaseName
+
Name of the SQL database for the new vault
+
+
+
lDateFmt
+
SQL Server date format code for the new vault (see Remarks)
+
+
+
bsAdminUserPassword
+
Password for the Admin user
+
+
+
lEdmCreateVaultFlag
+
Combination of EdmCreateVaultFlag bits
+
+
+
poCallback
+
Optional pointer to a class that implements IEdmCallback to obtain progress information
+
+
+
oExtra
+
(see Remarks)
+
+ +
+ +
+ + +
+
+ Creates a new vault. + + +

Syntax

Visual Basic 
Sub CreateNewVault( _
+   ByVal bsArchiveServer As System.String, _
+   ByVal bsArchiveServerUserName As System.String, _
+   ByVal bsArchiveServerPassword As System.String, _
+   ByVal bsVaultName As System.String, _
+   ByVal bsDescription As System.String, _
+   ByVal bsArchiveRootFolder As System.String, _
+   ByVal bsSQLServer As System.String, _
+   ByVal bsSQLUserName As System.String, _
+   ByVal bsSQLPassword As System.String, _
+   ByVal bsSQLDatabaseName As System.String, _
+   ByVal lDateFmt As System.Integer, _
+   ByVal bsAdminUserPassword As System.String, _
+   ByVal lEdmCreateVaultFlag As System.Integer, _
+   ByVal poCallback As EdmCallback, _
+   Optional ByVal oExtra As System.Object _
+) 
+
C# 
void CreateNewVault( 
+   System.string bsArchiveServer,
+   System.string bsArchiveServerUserName,
+   System.string bsArchiveServerPassword,
+   System.string bsVaultName,
+   System.string bsDescription,
+   System.string bsArchiveRootFolder,
+   System.string bsSQLServer,
+   System.string bsSQLUserName,
+   System.string bsSQLPassword,
+   System.string bsSQLDatabaseName,
+   System.int lDateFmt,
+   System.string bsAdminUserPassword,
+   System.int lEdmCreateVaultFlag,
+   EdmCallback poCallback,
+   System.object oExtra
+)
+
C++/CLI 
void CreateNewVault( 
+&   System.String^ bsArchiveServer,
+&   System.String^ bsArchiveServerUserName,
+&   System.String^ bsArchiveServerPassword,
+&   System.String^ bsVaultName,
+&   System.String^ bsDescription,
+&   System.String^ bsArchiveRootFolder,
+&   System.String^ bsSQLServer,
+&   System.String^ bsSQLUserName,
+&   System.String^ bsSQLPassword,
+&   System.String^ bsSQLDatabaseName,
+&   System.int lDateFmt,
+&   System.String^ bsAdminUserPassword,
+&   System.int lEdmCreateVaultFlag,
+&   EdmCallback^ poCallback,
+&   System.Object^ oExtra
+) 
+ +

Parameters

bsArchiveServer
+
Name or IP number of the archive server computer; "" if the local comuter is the archive server
bsArchiveServerUserName
+
Name of the Windows user who logs in to the archive server
bsArchiveServerPassword
+
Password for the Windows user who logs in to the archive server
bsVaultName
+
Name of the vault to create
bsDescription
+
Description of the vault; appears in the vault properties window in the administration tool
bsArchiveRootFolder
+
Archive server vault folder; "" to use the default folder
bsSQLServer
+
Name or IP number of the SQL Server computer
bsSQLUserName
+
Name of the user who logs in to the SQL Server computer
bsSQLPassword
+
Password for the user who logs in to the SQL Server computer
bsSQLDatabaseName
+
Name of the SQL database for the new vault
lDateFmt
+
SQL Server date format code for the new vault (see Remarks)
bsAdminUserPassword
+
Password for the Admin user
lEdmCreateVaultFlag
+
Combination of EdmCreateVaultFlag bits
poCallback
+
Optional pointer to a class that implements IEdmCallback to obtain progress information
oExtra
+
(see Remarks)
+ +
+ + + + +

Example

+

Remarks

See the CAST/CONVERT documentation in the SQL Server online help to learn more about the date format codes for lDateFmt. The following table lists the valid values for lDateFmt:

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Date CodesDate Format
112/31/99
299.12.31
331/12/99
431.12.99
531-12-99
631 Dec 99
7Dec 31, 99
1012-31-99
1199/12/31
12991231
1021999.12.31
10331/12/1999
10431.12.1999
10531-12-1999
10631 Dec 1999
107Dec 31, 1999
11012-31-1999
1111999/12/31
11219991231
1201999-12-31
+

+

Specify oExtra with one of the following:

+
    +
  • VT_BSTR containing either a CEX-file path to set up the vault with data from the export file or a valid vault configuration name like "Default", "Empty" or "SOLIDWORKS Quick Start"; for valid configuration names, see the Configure Vault step in the vault creation wizard of the administration tool +
  • VT_EMPTY to use default configuration
+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_VAULT_ALREADY_EXISTS: There is already a file vault with the specified name on the archive server. +
  • E_EDM_INVALID_VAULT_NAME: The vault name contains invalid characters or is longer than 31 characters. See the SOLIDWORKS PDM Professional administrative help for restrictions on valid characters in vault names. +
  • E_EDM_ARCHIVE_ROOT_FOLDER_DOES_NOT_EXIST: The root folder specified in bsArchiveRootFolder does not exist. +
  • E_EDM_INVALID_DATABASE_NAME: The specified SQL database name is invalid. See the SOLIDWORKS PDM Professional administrative help or the Microsoft SQL Server help for restrictions regarding database names. +
  • E_EDM_INSUFFICIENT_SQL_PERMISSION: The specified SQL user lacks permission to create a new database. (He or she must typically be a member of the sysadmin group.) +
  • E_EDM_SQLSERVER_UNSUPPORTED_VERSION: The SQL server version is not supported. (SQL Server 2000 is not supported by SOLIDWORKS PDM Professional  2010.) +
  • E_EDM_DATABASE_ALREADY_EXISTS: There is already an SQL database with the suggested name. +
  • E_EDM_SQLSERVER_LOGIN_FAILED: The provided SQL credentials are not valid. +
  • E_EDM_SQLSERVER_CANNOT_CONNECT: General failure connecting to the SQL-server machine. Maybe the name/IP contains a typo? +
  • E_EDM_INVALID_DATE_FORMAT_CODE: The lDateFmt argument is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVaultView.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVaultView.html new file mode 100644 index 0000000..b606885 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~CreateNewVaultView.html @@ -0,0 +1,200 @@ + + + + + + CreateNewVaultView Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateNewVaultView Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : CreateNewVaultView Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
bsArchiveServer
+
Name or IP number of the archive server computer; "" if the local comuter is the archive server
+
+
+
bsArchiveServerUserName
+
Name of the Windows user who logs in to the archive server
+
+
+
bsArchiveServerPassword
+
Password for the Windows user who logs in to the archive server
+
+
+
bsVaultName
+
Name of the vault for which to create a view
+
+
+
bsParentFolderPath
+
Full system path to the parent folder of the view; a subfolder with the same name as the vault is created in the parent folder
+
+
+
lEdmCreateVaultViewFlag
+
Combination of EdmCreateVaultViewFlag bits
+
+ +
+ +
+ + +
+
+ Creates a local view of a file vault in File Explorer. + + +

Syntax

Visual Basic 
Sub CreateNewVaultView( _
+   ByVal bsArchiveServer As System.String, _
+   ByVal bsArchiveServerUserName As System.String, _
+   ByVal bsArchiveServerPassword As System.String, _
+   ByVal bsVaultName As System.String, _
+   ByVal bsParentFolderPath As System.String, _
+   ByVal lEdmCreateVaultViewFlag As System.Integer _
+) 
+
C# 
void CreateNewVaultView( 
+   System.string bsArchiveServer,
+   System.string bsArchiveServerUserName,
+   System.string bsArchiveServerPassword,
+   System.string bsVaultName,
+   System.string bsParentFolderPath,
+   System.int lEdmCreateVaultViewFlag
+)
+
C++/CLI 
void CreateNewVaultView( 
+&   System.String^ bsArchiveServer,
+&   System.String^ bsArchiveServerUserName,
+&   System.String^ bsArchiveServerPassword,
+&   System.String^ bsVaultName,
+&   System.String^ bsParentFolderPath,
+&   System.int lEdmCreateVaultViewFlag
+) 
+ +

Parameters

bsArchiveServer
+
Name or IP number of the archive server computer; "" if the local comuter is the archive server
bsArchiveServerUserName
+
Name of the Windows user who logs in to the archive server
bsArchiveServerPassword
+
Password for the Windows user who logs in to the archive server
bsVaultName
+
Name of the vault for which to create a view
bsParentFolderPath
+
Full system path to the parent folder of the view; a subfolder with the same name as the vault is created in the parent folder
lEdmCreateVaultViewFlag
+
Combination of EdmCreateVaultViewFlag bits
+ +
+ + + + +

Example

+

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FOLDER_NOT_FOUND: The parent folder does not exist. +
  • E_EDM_VERSION_MISMATCH: The client version and the archive server version do not match. +
  • E_EDM_FVC_CANT_WRITE_TO_REGISTRY: Failed to write to the system registry. Possibly you are trying to create a shared view, and the logged-in Windows user lacks privileges to write to HKEY_LOCAL_MACHINE.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorMessage.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorMessage.html new file mode 100644 index 0000000..3422349 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorMessage.html @@ -0,0 +1,160 @@ + + + + + + GetErrorMessage Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetErrorMessage Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : GetErrorMessage Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
lHRESULT
+
Error code for which to get a description
+
+ +
+ +
+ + +
+
+ Gets a description for the specified error code. + + +

Syntax

Visual Basic 
Function GetErrorMessage( _
+   ByVal lHRESULT As System.Integer _
+) As System.String
+
C# 
System.string GetErrorMessage( 
+   System.int lHRESULT
+)
+
C++/CLI 
System.String^ GetErrorMessage( 
+&   System.int lHRESULT
+) 
+ +

Parameters

lHRESULT
+
Error code for which to get a description
+ +

Return Value

Description of the error code
+ + + + +

Example

+

Remarks

This method returns a readable error message for HRESULT error codes. For example, if lHRESULT is 0x80040204, then this method returns "You have not logged in to the file vault."

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorName.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorName.html new file mode 100644 index 0000000..5e71d0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetErrorName.html @@ -0,0 +1,158 @@ + + + + + + GetErrorName Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetErrorName Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : GetErrorName Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
lHRESULT
+
Error code for which to get the internal name
+
+ +
+ +
+ + +
+
+ Gets an internal error code name for the specified error code. + + +

Syntax

Visual Basic 
Function GetErrorName( _
+   ByVal lHRESULT As System.Integer _
+) As System.String
+
C# 
System.string GetErrorName( 
+   System.int lHRESULT
+)
+
C++/CLI 
System.String^ GetErrorName( 
+&   System.int lHRESULT
+) 
+ +

Parameters

lHRESULT
+
Error code for which to get the internal name
+ +

Return Value

Internal error code name
+ + + + +

Example

+

Remarks

This method returns the internal error code name for an HRESULT error code. For example, if lHRESULT is 0x80040204, this method returns "E_EDM_NOT_LOGGED_IN".

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLicense.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLicense.html new file mode 100644 index 0000000..f40a9cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLicense.html @@ -0,0 +1,160 @@ + + + + + + GetLicense Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLicense Method (IEdmVault11)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : GetLicense Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetLicense
+
Array of EdmLicense structures; one structure for each license that has one or more users (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets all of the SOLIDWORKS PDM Professional licenses installed in this vault. + + +

Syntax

Visual Basic 
Sub GetLicense( _
+   ByRef ppoRetLicense() As EdmLicense _
+) 
+
C# 
void GetLicense( 
+   out EdmLicense[] ppoRetLicense
+)
+
C++/CLI 
void GetLicense( 
+&   [Out] array<EdmLicense>^ ppoRetLicense
+) 
+ +

Parameters

ppoRetLicense
+
Array of EdmLicense structures; one structure for each license that has one or more users (see Remarks)
+ +
+ + + + +

Example

+

Remarks

In SOLIDWORKS PDM Professional:

+
    +
  • 2015 SP0 and later, licenses are shared among all vaults that use the same SolidNetwork License Server (SNL). See IEdmVault14::InstallLicense2. +
  • 2014 and earlier, licenses were shared among all vaults that were in the same SQL Server instance.
+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLoggedInWindowsUserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLoggedInWindowsUserID.html new file mode 100644 index 0000000..e94bcdb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~GetLoggedInWindowsUserID.html @@ -0,0 +1,155 @@ + + + + + + GetLoggedInWindowsUserID Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetLoggedInWindowsUserID Method (IEdmVault11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : GetLoggedInWindowsUserID Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
bsVault
+
Name of the vault for which to get the logged-in user
+
+ +
+ +
+ + +
+
+ Gets the ID of the user who is currently logged in through the SOLIDWORKS PDM Professional client software on this machine. + + +

Syntax

Visual Basic 
Function GetLoggedInWindowsUserID( _
+   ByVal bsVault As System.String _
+) As System.Integer
+
C# 
System.int GetLoggedInWindowsUserID( 
+   System.string bsVault
+)
+
C++/CLI 
System.int GetLoggedInWindowsUserID( 
+&   System.String^ bsVault
+) 
+ +

Parameters

bsVault
+
Name of the vault for which to get the logged-in user
+ +

Return Value

ID of the logged-in user; 0 if no one is logged in
+ + + + + +

Remarks

Any number of users can be logged into a vault at the same time by calling IEdmVault5::Login. However, only a single user can be logged into a machine either through the SOLIDWORKS PDM Professional client software or by calling IEdmVault5::LoginAuto. This is the user for whom this method returns an ID.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~InstallLicense.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~InstallLicense.html new file mode 100644 index 0000000..f669f86 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~InstallLicense.html @@ -0,0 +1,179 @@ + + + + + + InstallLicense Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InstallLicense Method (IEdmVault11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : InstallLicense Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
bsUserName
+
Name of a SOLIDWORKS PDM Professional user
+
+
+
bsPasswd
+
Password for bsUserName
+
+
+
bsVaultName
+
Name of vault for which to install a license
+
+
+
bsLicenseFilePath
+
Path to the license file
+
+ +
+ +
+ + +
+
+ Obsolete. Replaced by IEdmVault14::InstallLicense2. + + +

Syntax

Visual Basic 
Sub InstallLicense( _
+   ByVal bsUserName As System.String, _
+   ByVal bsPasswd As System.String, _
+   ByVal bsVaultName As System.String, _
+   ByVal bsLicenseFilePath As System.String _
+) 
+
C# 
void InstallLicense( 
+   System.string bsUserName,
+   System.string bsPasswd,
+   System.string bsVaultName,
+   System.string bsLicenseFilePath
+)
+
C++/CLI 
void InstallLicense( 
+&   System.String^ bsUserName,
+&   System.String^ bsPasswd,
+&   System.String^ bsVaultName,
+&   System.String^ bsLicenseFilePath
+) 
+ +

Parameters

bsUserName
+
Name of a SOLIDWORKS PDM Professional user
bsPasswd
+
Password for bsUserName
bsVaultName
+
Name of vault for which to install a license
bsLicenseFilePath
+
Path to the license file
+ +
+ + + + + +

Remarks

In SOLIDWORKS PDM Professional 2014 and earlier, licenses were shared among all vaults that were in the same SQL Server instance. Because licenses are shared among all vaults that use the same SolidNetwork License Server (SNL) in SOLIDWORKS PDM Professional 2015 SP0 and later, this method is obsolete and replaced by IEdmVault14::InstallLicense2.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolder.html new file mode 100644 index 0000000..bad1d86 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolder.html @@ -0,0 +1,147 @@ + + + + + + ItemRootFolder Property (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ItemRootFolder Property (IEdmVault11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : ItemRootFolder Property (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the interface to the invisible root folder of all items and item folders. + + +

Syntax

Visual Basic 
ReadOnly Property ItemRootFolder As IEdmFolder6
+
C# 
IEdmFolder6 ItemRootFolder {get;}
+
C++/CLI 
property IEdmFolder6^ ItemRootFolder {
+   IEdmFolder6^ get();
+}
+ + + +

Property Value

IEdmFolder6
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolderID.html new file mode 100644 index 0000000..3b2517d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~ItemRootFolderID.html @@ -0,0 +1,147 @@ + + + + + + ItemRootFolderID Property (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ItemRootFolderID Property (IEdmVault11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : ItemRootFolderID Property (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the invisible root folder of all items and item folders. + + +

Syntax

Visual Basic 
ReadOnly Property ItemRootFolderID As System.Integer
+
C# 
System.int ItemRootFolderID {get;}
+
C++/CLI 
property System.int ItemRootFolderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the root folder for all items and item folders
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~LogInWindowsUser.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~LogInWindowsUser.html new file mode 100644 index 0000000..34591bc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault11~LogInWindowsUser.html @@ -0,0 +1,175 @@ + + + + + + LogInWindowsUser Method (IEdmVault11) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LogInWindowsUser Method (IEdmVault11)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault11 Interface + : LogInWindowsUser Method (IEdmVault11)
+ +
+ + + +
+ +
+ + +
+
+
bsUserName
+
User name
+
+
+
bsPasswd
+
Password for bsUserName
+
+
+
bsVaultName
+
Name of vault to which to log in
+
+ +
+ +
+ + +
+
+ Logs into SOLIDWORKS PDM Professional as the specified user. + + +

Syntax

Visual Basic 
Sub LogInWindowsUser( _
+   ByVal bsUserName As System.String, _
+   ByVal bsPasswd As System.String, _
+   ByVal bsVaultName As System.String _
+) 
+
C# 
void LogInWindowsUser( 
+   System.string bsUserName,
+   System.string bsPasswd,
+   System.string bsVaultName
+)
+
C++/CLI 
void LogInWindowsUser( 
+&   System.String^ bsUserName,
+&   System.String^ bsPasswd,
+&   System.String^ bsVaultName
+) 
+ +

Parameters

bsUserName
+
User name
bsPasswd
+
Password for bsUserName
bsVaultName
+
Name of vault to which to log in
+ +
+ + + + + +

Remarks

This method works like IEdmVault5::LoginAuto, except this method does not display a login dialog box.

+

Any number of users can log in through the API, as long as they use the IEdmVault5::Login method. However, only one user at a time can log in through the SOLIDWORKS PDM Professional client user interface. Both IEdmVault11::LoginAuto and IEdmVault11::LogInWindowsUser log in the single user of the client user interface.

+

Call IEdmVault11::GetLoggedInWindowsUserID to obtain the ID of the user who is currently logged in through the client user interface.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_LOGIN_FAILED: The specified user name or password is incorrect. +
  • E_EDM_ALREADY_LOGGED_IN: Someone is already logged in from this client machine's user interface, or the IEdmVault object is already connected.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2010
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12.html new file mode 100644 index 0000000..5e11429 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12.html @@ -0,0 +1,140 @@ + + + + + + IEdmVault12 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault12 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault12 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault12 
+   Inherits IEdmVault10IEdmVault11IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+
C# 
public interface IEdmVault12 : IEdmVault10IEdmVault11IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
C++/CLI 
public interface class IEdmVault12 : public IEdmVault10IEdmVault11IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmVault11 by providing the ability to import administrative export (*.CEX) or card (*.CRD) files into the vault. +
  • is extended by IEdmVault13.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_members.html new file mode 100644 index 0000000..e853ad7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmVault12 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault12 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault12 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault12.

+ + +

Public Methods

+ + +
 NameDescription
 MethodCreatePluginMenu2Inserts into a menu with the specified handle all of the menu commands registered by the SOLIDWORKS PDM Professional add-ins.  
 MethodInstallFileInstalls administrative export files (*.CEX) and card files (*.CRD).  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_methods.html new file mode 100644 index 0000000..daefb15 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmVault12 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault12 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault12 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault12 members.

+

Public Methods

+ + +
 NameDescription
 MethodCreatePluginMenu2Inserts into a menu with the specified handle all of the menu commands registered by the SOLIDWORKS PDM Professional add-ins.  
 MethodInstallFileInstalls administrative export files (*.CEX) and card files (*.CRD).  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~CreatePluginMenu2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~CreatePluginMenu2.html new file mode 100644 index 0000000..267ad70 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~CreatePluginMenu2.html @@ -0,0 +1,197 @@ + + + + + + CreatePluginMenu2 Method (IEdmVault12) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreatePluginMenu2 Method (IEdmVault12)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault12 Interface + : CreatePluginMenu2 Method (IEdmVault12)
+ +
+ + + +
+ +
+ + +
+
+
hMenu
+
Handle of menu in which to insert command items
+
+
+
lInsertPosition
+
Zero-based index of position in menu where new items are inserted; -1 to append new menu items to the bottom of the menu
+
+
+
plStartID
+
Menu command ID to assign new commands when this method is called; next available menu command ID after this method returns
+
+
+
poSelObjects
+
IEdmSelectionList6; selected objects for which to display the menu
+
+
+
lCreateMenuFlags
+
Combination of CreateMenuFlags bits
+
+
+
plItemCount
+
Number of menu command items added
+
+ +
+ +
+ + +
+
+ Inserts into a menu with the specified handle all of the menu commands registered by the SOLIDWORKS PDM Professional add-ins. + + +

Syntax

Visual Basic 
Function CreatePluginMenu2( _
+   ByVal hMenu As System.Integer, _
+   ByVal lInsertPosition As System.Integer, _
+   ByRef plStartID As System.Integer, _
+   ByVal poSelObjects As IEdmSelectionList6, _
+   ByVal lCreateMenuFlags As System.Integer, _
+   ByRef plItemCount As System.Integer _
+) As IEdmMenu7
+
C# 
IEdmMenu7 CreatePluginMenu2( 
+   System.int hMenu,
+   System.int lInsertPosition,
+   out System.int plStartID,
+   IEdmSelectionList6 poSelObjects,
+   System.int lCreateMenuFlags,
+   out System.int plItemCount
+)
+
C++/CLI 
IEdmMenu7^ CreatePluginMenu2( 
+&   System.int hMenu,
+&   System.int lInsertPosition,
+&   [Out] System.int plStartID,
+&   IEdmSelectionList6^ poSelObjects,
+&   System.int lCreateMenuFlags,
+&   [Out] System.int plItemCount
+) 
+ +

Parameters

hMenu
+
Handle of menu in which to insert command items
lInsertPosition
+
Zero-based index of position in menu where new items are inserted; -1 to append new menu items to the bottom of the menu
plStartID
+
Menu command ID to assign new commands when this method is called; next available menu command ID after this method returns
poSelObjects
+
IEdmSelectionList6; selected objects for which to display the menu
lCreateMenuFlags
+
Combination of CreateMenuFlags bits
plItemCount
+
Number of menu command items added
+ +

Return Value

IEdmMenu7 (see Remarks)
+ + + + +

Example

+

Remarks

This method supersedes IEdmVault5::CreatePluginMenu by adding the ability to insert a menu for object types other than files and folders (e.g., items).

+

Use the returned interface to call IEdmMenu7::OnMenuItem2 when the user selects one of the command items added by this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~InstallFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~InstallFile.html new file mode 100644 index 0000000..37ba2f5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault12~InstallFile.html @@ -0,0 +1,170 @@ + + + + + + InstallFile Method (IEdmVault12) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InstallFile Method (IEdmVault12)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault12 Interface + : InstallFile Method (IEdmVault12)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Path to the file to install
+
+
+
lEdmInstallFileFlags
+
Combination of EdmInstallFileFlags bits
+
+
+
oInstallArg
+
ID of folder where to install the file; valid only if bsPath contains the path to a card file
+
+ +
+ +
+ + +
+
+ Installs administrative export files (*.CEX) and card files (*.CRD). + + +

Syntax

Visual Basic 
Sub InstallFile( _
+   ByVal bsPath As System.String, _
+   ByVal lEdmInstallFileFlags As System.Integer, _
+   ByVal oInstallArg As System.Object _
+) 
+
C# 
void InstallFile( 
+   System.string bsPath,
+   System.int lEdmInstallFileFlags,
+   System.object oInstallArg
+)
+
C++/CLI 
void InstallFile( 
+&   System.String^ bsPath,
+&   System.int lEdmInstallFileFlags,
+&   System.Object^ oInstallArg
+) 
+ +

Parameters

bsPath
+
Path to the file to install
lEdmInstallFileFlags
+
Combination of EdmInstallFileFlags bits
oInstallArg
+
ID of folder where to install the file; valid only if bsPath contains the path to a card file
+ +
+ + + + + +

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2011
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13.html new file mode 100644 index 0000000..8e42533 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault13 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault13 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault13 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault13 
+   Inherits IEdmVault10IEdmVault11IEdmVault12IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+
C# 
public interface IEdmVault13 : IEdmVault10IEdmVault11IEdmVault12IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
C++/CLI 
public interface class IEdmVault13 : public IEdmVault10IEdmVault11IEdmVault12IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_members.html new file mode 100644 index 0000000..f5eb4e9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_members.html @@ -0,0 +1,116 @@ + + + + + + IEdmVault13 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault13 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault13 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault13.

+ + +

Public Methods

+ +
 NameDescription
 MethodLoginEx

Allows an application that is not supplied and supported by SOLIDWORKS Corporation to:

+
    +
  • log into SOLIDWORKS PDM Professional
    - or - +
  • log into a vault view
    - or - +
  • directly access the vault database
+

when the same user is not already logged into a local view.

 
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_methods.html new file mode 100644 index 0000000..b995236 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmVault13 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault13 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault13 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault13 members.

+

Public Methods

+ +
 NameDescription
 MethodLoginEx

Allows an application that is not supplied and supported by SOLIDWORKS Corporation to:

+
    +
  • log into SOLIDWORKS PDM Professional
    - or - +
  • log into a vault view
    - or - +
  • directly access the vault database
+

when the same user is not already logged into a local view.

 
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13~LoginEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13~LoginEx.html new file mode 100644 index 0000000..26f4b4c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault13~LoginEx.html @@ -0,0 +1,189 @@ + + + + + + LoginEx Method (IEdmVault13) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LoginEx Method (IEdmVault13)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault13 Interface + : LoginEx Method (IEdmVault13)
+ +
+ + + +
+ +
+ + +
+
+
bsUserName
+
User name of user created in the SOLIDWORKS PDM Professional User Manager
+
+
+
bsPasswd
+
User password for bsUserName
+
+
+
bsVaultName
+
Name of vault
+
+
+
lEdmLoginFlags
+

Login flags:

+
    +
  • 0 = Nothing +
  • 1 = Web client
+
+ +
+ +
+ + +
+
+

Allows an application that is not supplied and supported by SOLIDWORKS Corporation to:

+
    +
  • log into SOLIDWORKS PDM Professional
    - or - +
  • log into a vault view
    - or - +
  • directly access the vault database
+

when the same user is not already logged into a local view.

+ + +

Syntax

Visual Basic 
Sub LoginEx( _
+   ByVal bsUserName As System.String, _
+   ByVal bsPasswd As System.String, _
+   ByVal bsVaultName As System.String, _
+   Optional ByVal lEdmLoginFlags As System.Integer _
+) 
+
C# 
void LoginEx( 
+   System.string bsUserName,
+   System.string bsPasswd,
+   System.string bsVaultName,
+   System.int lEdmLoginFlags
+)
+
C++/CLI 
void LoginEx( 
+&   System.String^ bsUserName,
+&   System.String^ bsPasswd,
+&   System.String^ bsVaultName,
+&   System.int lEdmLoginFlags
+) 
+ +

Parameters

bsUserName
+
User name of user created in the SOLIDWORKS PDM Professional User Manager
bsPasswd
+
User password for bsUserName
bsVaultName
+
Name of vault
lEdmLoginFlags
+

Login flags:

+
    +
  • 0 = Nothing +
  • 1 = Web client
+ +
+ + + + + +

Remarks

To make it easier to program and to comply with the SOLIDWORKS End User License Agreement (EULA), this method ensures that licenses are properly consumed by your application.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2014
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14.html new file mode 100644 index 0000000..f87c4cb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault14 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault14 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault14 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault14 
+   Inherits IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+ +
C++/CLI 
public interface class IEdmVault14 : public IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_members.html new file mode 100644 index 0000000..6975089 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault14 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault14 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault14 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault14.

+ + +

Public Methods

+ +
 NameDescription
 MethodInstallLicense2Installs a SOLIDWORKS PDM Professional license for this vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_methods.html new file mode 100644 index 0000000..ef67aa1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault14 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault14 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault14 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault14 members.

+

Public Methods

+ +
 NameDescription
 MethodInstallLicense2Installs a SOLIDWORKS PDM Professional license for this vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14~InstallLicense2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14~InstallLicense2.html new file mode 100644 index 0000000..258def3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault14~InstallLicense2.html @@ -0,0 +1,183 @@ + + + + + + InstallLicense2 Method (IEdmVault14) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InstallLicense2 Method (IEdmVault14)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault14 Interface + : InstallLicense2 Method (IEdmVault14)
+ +
+ + + +
+ +
+ + +
+
+
brUserName
+
Name of a SOLIDWORKS PDM Professional user
+
+
+
bsPasswd
+
Password for bsUserName
+
+
+
bsVaultName
+
Name of vault for which to install a license
+
+
+
bsSNLServers
+
Names of the port and server of the SolidNetwork License (SNL) server; for example, 25734@myserver
+
+ +
+ +
+ + +
+
+ Installs a SOLIDWORKS PDM Professional license for this vault. + + +

Syntax

Visual Basic 
Sub InstallLicense2( _
+   ByVal brUserName As System.String, _
+   ByVal bsPasswd As System.String, _
+   ByVal bsVaultName As System.String, _
+   ByVal bsSNLServers As System.String _
+) 
+
C# 
void InstallLicense2( 
+   System.string brUserName,
+   System.string bsPasswd,
+   System.string bsVaultName,
+   System.string bsSNLServers
+)
+
C++/CLI 
void InstallLicense2( 
+&   System.String^ brUserName,
+&   System.String^ bsPasswd,
+&   System.String^ bsVaultName,
+&   System.String^ bsSNLServers
+) 
+ +

Parameters

brUserName
+
Name of a SOLIDWORKS PDM Professional user
bsPasswd
+
Password for bsUserName
bsVaultName
+
Name of vault for which to install a license
bsSNLServers
+
Names of the port and server of the SolidNetwork License (SNL) server; for example, 25734@myserver
+ +
+ + + + + +

Remarks

In SOLIDWORKS PDM Professional:
+
    +
  • 2015 SP0 and later, licenses are shared among all vaults that use the same SolidNetwork License Server (SNL). +
  • 2014 and earlier, licenses were shared among all vaults that were in the same SQL Server instance.
+

Return codes:

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15.html new file mode 100644 index 0000000..eb40f9b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15.html @@ -0,0 +1,141 @@ + + + + + + IEdmVault15 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault15 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault15 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault15 
+   Inherits IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+ +
C++/CLI 
public interface class IEdmVault15 : public IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_members.html new file mode 100644 index 0000000..69f4a20 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault15 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault15 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault15 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault15.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetClientLogGets the contents of the current user's log.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_methods.html new file mode 100644 index 0000000..d574408 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault15 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault15 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault15 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault15 members.

+

Public Methods

+ +
 NameDescription
 MethodGetClientLogGets the contents of the current user's log.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15~GetClientLog.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15~GetClientLog.html new file mode 100644 index 0000000..46999ac --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault15~GetClientLog.html @@ -0,0 +1,154 @@ + + + + + + GetClientLog Method (IEdmVault15) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetClientLog Method (IEdmVault15)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault15 Interface + : GetClientLog Method (IEdmVault15)
+ +
+ + + +
+ +
+ + +
+
+
pbsRetLogs
+
Contents of the current user's log
+
+ +
+ +
+ + +
+
+ Gets the contents of the current user's log. + + +

Syntax

Visual Basic 
Sub GetClientLog( _
+   ByRef pbsRetLogs As System.String _
+) 
+
C# 
void GetClientLog( 
+   out System.string pbsRetLogs
+)
+
C++/CLI 
void GetClientLog( 
+&   [Out] System.String^ pbsRetLogs
+) 
+ +

Parameters

pbsRetLogs
+
Contents of the current user's log
+ +
+ + + + +

Example

+

Remarks

The current user's log appears when you click SOLIDWORKS PDM Administration > Local Settings > Log File in the SOLIDWORKS PDM Administration Tool. This method returns the full log.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015 SP03
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16.html new file mode 100644 index 0000000..66cb113 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16.html @@ -0,0 +1,142 @@ + + + + + + IEdmVault16 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault16 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault16 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+   +

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault16 
+   Inherits IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault15IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+ +
C++/CLI 
public interface class IEdmVault16 : public IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault15IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_members.html new file mode 100644 index 0000000..0dbc3a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault16 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault16 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault16 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault16.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetVaultTypeGets the type of this vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_methods.html new file mode 100644 index 0000000..f4ac7e8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault16 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault16 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault16 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault16 members.

+

Public Methods

+ +
 NameDescription
 MethodGetVaultTypeGets the type of this vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16~GetVaultType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16~GetVaultType.html new file mode 100644 index 0000000..ea2c2e4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault16~GetVaultType.html @@ -0,0 +1,142 @@ + + + + + + GetVaultType Method (IEdmVault16) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVaultType Method (IEdmVault16)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault16 Interface + : GetVaultType Method (IEdmVault16)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of this vault. + + +

Syntax

Visual Basic 
Function GetVaultType() As EdmVaultType
+
C# 
EdmVaultType GetVaultType()
+
C++/CLI 
EdmVaultType GetVaultType(); 
+ + + +

Return Value

Type of client installation as defined in EdmVaultType
+ + + + +

Example

+   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2016
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17.html new file mode 100644 index 0000000..4a87d37 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault17 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault17 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault17 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault17 
+   Inherits IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault15IEdmVault16IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9 
+ +
C++/CLI 
public interface class IEdmVault17 : public IEdmVault10IEdmVault11IEdmVault12IEdmVault13IEdmVault14IEdmVault15IEdmVault16IEdmVault5IEdmVault6IEdmVault7IEdmVault8IEdmVault9  
+
+ + + + +

Remarks

This interface:

+
    +
  • extends IEdmVault16 by providing the ability to specify whether to ignore a secondary database that is configured for the logged-in user. +
  • is extended by IEdmVault18.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_members.html new file mode 100644 index 0000000..c7cb309 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault17 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault17 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault17 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault17.

+ + +

Public Methods

+ +
 NameDescription
 MethodIgnoreSecondaryDatabaseConnectionSets whether to ignore a secondary database that is configured for the logged-in user.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_methods.html new file mode 100644 index 0000000..93c842f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault17 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault17 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault17 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault17 members.

+

Public Methods

+ +
 NameDescription
 MethodIgnoreSecondaryDatabaseConnectionSets whether to ignore a secondary database that is configured for the logged-in user.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17~IgnoreSecondaryDatabaseConnection.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17~IgnoreSecondaryDatabaseConnection.html new file mode 100644 index 0000000..5e97578 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault17~IgnoreSecondaryDatabaseConnection.html @@ -0,0 +1,152 @@ + + + + + + IgnoreSecondaryDatabaseConnection Method (IEdmVault17) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IgnoreSecondaryDatabaseConnection Method (IEdmVault17)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault17 Interface + : IgnoreSecondaryDatabaseConnection Method (IEdmVault17)
+ +
+ + + +
+ +
+ + +
+
+
vbIgnore
+
True to ignore a secondary database, false to use a secondary database
+
+ +
+ +
+ + +
+
+ Sets whether to ignore a secondary database that is configured for the logged-in user. + + +

Syntax

Visual Basic 
Sub IgnoreSecondaryDatabaseConnection( _
+   ByVal vbIgnore As System.Boolean _
+) 
+
C# 
void IgnoreSecondaryDatabaseConnection( 
+   System.bool vbIgnore
+)
+
C++/CLI 
void IgnoreSecondaryDatabaseConnection( 
+&   System.bool vbIgnore
+) 
+ +

Parameters

vbIgnore
+
True to ignore a secondary database, false to use a secondary database
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18.html new file mode 100644 index 0000000..57c7f78 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault18 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault18 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault18 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_members.html new file mode 100644 index 0000000..52e6a69 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault18 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault18 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault18 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault18.

+

Public Properties

+ +
 NameDescription
 PropertyMinimumSupportedClientSPGets the minimum client service pack supported by this vault's views.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_properties.html new file mode 100644 index 0000000..3bdaf26 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmVault18 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault18 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault18 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault18 members.

+

Public Properties

+ +
 NameDescription
 PropertyMinimumSupportedClientSPGets the minimum client service pack supported by this vault's views.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18~MinimumSupportedClientSP.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18~MinimumSupportedClientSP.html new file mode 100644 index 0000000..d246324 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault18~MinimumSupportedClientSP.html @@ -0,0 +1,147 @@ + + + + + + MinimumSupportedClientSP Property (IEdmVault18) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MinimumSupportedClientSP Property (IEdmVault18)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault18 Interface + : MinimumSupportedClientSP Property (IEdmVault18)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the minimum client service pack supported by this vault's views. + + +

Syntax

Visual Basic 
ReadOnly Property MinimumSupportedClientSP As System.Integer
+
C# 
System.int MinimumSupportedClientSP {get;}
+
C++/CLI 
property System.int MinimumSupportedClientSP {
+   System.int get();
+}
+ + + +

Property Value

Minimum supported client service pack (e.g., 0, 1, 2, 3, 4, 5)
+ + + + + +

Remarks

As of SOLIDWORKS PDM Professional 2017 SP01, client/server minor version mismatches are supported. For example, if this method returns "0", then for the current major version (e.g., 2017), an SP0 client machine works with vault views created with other service packs.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017 SP01
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19.html new file mode 100644 index 0000000..b73bba4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19.html @@ -0,0 +1,145 @@ + + + + + + IEdmVault19 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault19 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault19 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmVault18 by providing the ability to: +
      +
    • Call the Set Revision command to update a revision table in a SOLIDWORKS drawing in this vault. +
    • Copy an assembly tree of referenced parts and drawings to a destination folder.
+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_members.html new file mode 100644 index 0000000..1ef9b6e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmVault19 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault19 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault19 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault19.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodCopyTreeCopies the specified assembly and its referenced parts and drawings to the specified destination folder.  
 MethodGetRevisionTableSettingsGets the settings for revision tables of drawings in this vault.  
 MethodUpdateRevTableWithSetRevCmdGets whether to update revision tables of drawings in this vault.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_methods.html new file mode 100644 index 0000000..e105711 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmVault19 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault19 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault19 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault19 members.

+

Public Methods

+ + + +
 NameDescription
 MethodCopyTreeCopies the specified assembly and its referenced parts and drawings to the specified destination folder.  
 MethodGetRevisionTableSettingsGets the settings for revision tables of drawings in this vault.  
 MethodUpdateRevTableWithSetRevCmdGets whether to update revision tables of drawings in this vault.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~CopyTree.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~CopyTree.html new file mode 100644 index 0000000..6c3340c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~CopyTree.html @@ -0,0 +1,200 @@ + + + + + + CopyTree Method (IEdmVault19) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CopyTree Method (IEdmVault19)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault19 Interface + : CopyTree Method (IEdmVault19)
+ +
+ + + +
+ +
+ + +
+
+
lSrcFileID
+
ID of the assembly to copy
+
+
+
lSrcFileProjID
+
ID of the parent folder of lSrcFileID; only valid if lSrcFileID is not 0 or blank
+
+
+
lDestinationFolderPath
+
Full path name of destination folder
+
+
+
vbShowDlg
+
True to display the copy dialog, false to not
+
+
+
vbShowProgressBar
+
True to display a progress bar during the copy procedure, false to not
+
+
+
oCopyTreeOptions
+
Copy tree options as defined in EdmCopyTreeOptions
+
+
+
lHwnd
+
Parent window handle
+
+ +
+ +
+ + +
+
+ Copies the specified assembly and its referenced parts and drawings to the specified destination folder. + + +

Syntax

Visual Basic 
Sub CopyTree( _
+   ByVal lSrcFileID As System.Integer, _
+   ByVal lSrcFileProjID As System.Integer, _
+   ByVal lDestinationFolderPath As System.String, _
+   ByVal vbShowDlg As System.Boolean, _
+   ByVal vbShowProgressBar As System.Boolean, _
+   ByVal oCopyTreeOptions As EdmCopyTreeOptions, _
+   ByVal lHwnd As System.Integer _
+) 
+
C# 
void CopyTree( 
+   System.int lSrcFileID,
+   System.int lSrcFileProjID,
+   System.string lDestinationFolderPath,
+   System.bool vbShowDlg,
+   System.bool vbShowProgressBar,
+   EdmCopyTreeOptions oCopyTreeOptions,
+   System.int lHwnd
+)
+
C++/CLI 
void CopyTree( 
+&   System.int lSrcFileID,
+&   System.int lSrcFileProjID,
+&   System.String^ lDestinationFolderPath,
+&   System.bool vbShowDlg,
+&   System.bool vbShowProgressBar,
+&   EdmCopyTreeOptions oCopyTreeOptions,
+&   System.int lHwnd
+) 
+ +

Parameters

lSrcFileID
+
ID of the assembly to copy
lSrcFileProjID
+
ID of the parent folder of lSrcFileID; only valid if lSrcFileID is not 0 or blank
lDestinationFolderPath
+
Full path name of destination folder
vbShowDlg
+
True to display the copy dialog, false to not
vbShowProgressBar
+
True to display a progress bar during the copy procedure, false to not
oCopyTreeOptions
+
Copy tree options as defined in EdmCopyTreeOptions
lHwnd
+
Parent window handle
+ +
+ + +

Example

See the IEdmVault19 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~GetRevisionTableSettings.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~GetRevisionTableSettings.html new file mode 100644 index 0000000..e26a546 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~GetRevisionTableSettings.html @@ -0,0 +1,176 @@ + + + + + + GetRevisionTableSettings Method (IEdmVault19) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetRevisionTableSettings Method (IEdmVault19)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault19 Interface + : GetRevisionTableSettings Method (IEdmVault19)
+ +
+ + + +
+ +
+ + +
+
+
vbManagedInPDM
+
True if the revision table is managed by PDM Professional, false if managed by SOLIDWORKS
+
+
+
plNoOfRows
+
Number of visible rows in the revision table
+
+
+
vbRevTableOrder
+
True if the revision table order is ascending, false if descending
+
+
+
pbsRevPlaceholder
+
Revision table placeholder character
+
+ +
+ +
+ + +
+
+ Gets the settings for revision tables of drawings in this vault. + + +

Syntax

Visual Basic 
Sub GetRevisionTableSettings( _
+   ByRef vbManagedInPDM As System.Boolean, _
+   ByRef plNoOfRows As System.Integer, _
+   ByRef vbRevTableOrder As System.Boolean, _
+   ByRef pbsRevPlaceholder As System.String _
+) 
+
C# 
void GetRevisionTableSettings( 
+   out System.bool vbManagedInPDM,
+   out System.int plNoOfRows,
+   out System.bool vbRevTableOrder,
+   out System.string pbsRevPlaceholder
+)
+
C++/CLI 
void GetRevisionTableSettings( 
+&   [Out] System.bool vbManagedInPDM,
+&   [Out] System.int plNoOfRows,
+&   [Out] System.bool vbRevTableOrder,
+&   [Out] System.String^ pbsRevPlaceholder
+) 
+ +

Parameters

vbManagedInPDM
+
True if the revision table is managed by PDM Professional, false if managed by SOLIDWORKS
plNoOfRows
+
Number of visible rows in the revision table
vbRevTableOrder
+
True if the revision table order is ascending, false if descending
pbsRevPlaceholder
+
Revision table placeholder character
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~UpdateRevTableWithSetRevCmd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~UpdateRevTableWithSetRevCmd.html new file mode 100644 index 0000000..968432f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault19~UpdateRevTableWithSetRevCmd.html @@ -0,0 +1,152 @@ + + + + + + UpdateRevTableWithSetRevCmd Method (IEdmVault19) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UpdateRevTableWithSetRevCmd Method (IEdmVault19)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault19 Interface + : UpdateRevTableWithSetRevCmd Method (IEdmVault19)
+ +
+ + + +
+ +
+ + +
+
+
vbFlag
+
True to update revision tables of drawings, false to not
+
+ +
+ +
+ + +
+
+ Gets whether to update revision tables of drawings in this vault. + + +

Syntax

Visual Basic 
Sub UpdateRevTableWithSetRevCmd( _
+   ByRef vbFlag As System.Boolean _
+) 
+
C# 
void UpdateRevTableWithSetRevCmd( 
+   out System.bool vbFlag
+)
+
C++/CLI 
void UpdateRevTableWithSetRevCmd( 
+&   [Out] System.bool vbFlag
+) 
+ +

Parameters

vbFlag
+
True to update revision tables of drawings, false to not
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2018
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20.html new file mode 100644 index 0000000..5c938d0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20.html @@ -0,0 +1,141 @@ + + + + + + IEdmVault20 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault20 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault20 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmVault19 by providing the ability to get whether a specified user must add a comment when making specified workflow transitions for specified documents. +
  • is extended by IEdmVault21.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_members.html new file mode 100644 index 0000000..0d3ee6a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_members.html @@ -0,0 +1,113 @@ + + + + + + IEdmVault20 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault20 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault20 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault20.

+ + +

Public Methods

+ + + +
 NameDescription
 MethodGetArchiveServerLogGets the archive server's log.  
 MethodGetFilesGets the specified files in this vault.  
 MethodGetTransitionCommentPermissionsGets whether the specified user must add a state change comment for the specified workflow transitions for the specified documents.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_methods.html new file mode 100644 index 0000000..dba9d36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmVault20 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault20 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault20 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault20 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetArchiveServerLogGets the archive server's log.  
 MethodGetFilesGets the specified files in this vault.  
 MethodGetTransitionCommentPermissionsGets whether the specified user must add a state change comment for the specified workflow transitions for the specified documents.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetArchiveServerLog.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetArchiveServerLog.html new file mode 100644 index 0000000..f488b16 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetArchiveServerLog.html @@ -0,0 +1,152 @@ + + + + + + GetArchiveServerLog Method (IEdmVault20) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetArchiveServerLog Method (IEdmVault20)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault20 Interface + : GetArchiveServerLog Method (IEdmVault20)
+ +
+ + + +
+ +
+ + +
+
+
pbsRetLogs
+
Text in the archive server's log
+
+ +
+ +
+ + +
+
+ Gets the archive server's log. + + +

Syntax

Visual Basic 
Sub GetArchiveServerLog( _
+   ByRef pbsRetLogs As System.String _
+) 
+
C# 
void GetArchiveServerLog( 
+   out System.string pbsRetLogs
+)
+
C++/CLI 
void GetArchiveServerLog( 
+&   [Out] System.String^ pbsRetLogs
+) 
+ +

Parameters

pbsRetLogs
+
Text in the archive server's log
+ +
+ + +

Example

See the IEdmVault20 examples. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetFiles.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetFiles.html new file mode 100644 index 0000000..d93b5a5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetFiles.html @@ -0,0 +1,152 @@ + + + + + + GetFiles Method (IEdmVault20) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFiles Method (IEdmVault20)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault20 Interface + : GetFiles Method (IEdmVault20)
+ +
+ + + +
+ +
+ + +
+
+
poDocsIDs
+
Array of EdmDocIDs
+
+ +
+ +
+ + +
+
+ Gets the specified files in this vault. + + +

Syntax

Visual Basic 
Function GetFiles( _
+   ByVal poDocsIDs() As EdmDocIDs _
+) As System.Object()
+
C# 
System.object[] GetFiles( 
+   EdmDocIDs[] poDocsIDs
+)
+
C++/CLI 
System.array<Object^>^ GetFiles( 
+&   array<EdmDocIDs>^ poDocsIDs
+) 
+ +

Parameters

poDocsIDs
+
Array of EdmDocIDs
+ +

Return Value

Array of IEdmFile5s
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetTransitionCommentPermissions.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetTransitionCommentPermissions.html new file mode 100644 index 0000000..c0d1366 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault20~GetTransitionCommentPermissions.html @@ -0,0 +1,187 @@ + + + + + + GetTransitionCommentPermissions Method (IEdmVault20) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTransitionCommentPermissions Method (IEdmVault20)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault20 Interface + : GetTransitionCommentPermissions Method (IEdmVault20)
+ +
+ + + +
+ +
+ + +
+
+
lUserID
+
User ID (see Remarks)
+
+
+
poDocIds
+
Array of document IDs (see Remarks)
+
+
+
poTransNames
+
Array of workfow transition names (see Remarks)
+
+ +
+ +
+ + +
+
+ Gets whether the specified user must add a state change comment for the specified workflow transitions for the specified documents. + + +

Syntax

Visual Basic 
Function GetTransitionCommentPermissions( _
+   ByVal lUserID As System.Integer, _
+   ByVal poDocIds() As System.Integer, _
+   ByVal poTransNames() As System.String _
+) As System.Boolean()
+
C# 
System.bool[] GetTransitionCommentPermissions( 
+   System.int lUserID,
+   System.int[] poDocIds,
+   System.string[] poTransNames
+)
+
C++/CLI 
System.array<bool>^ GetTransitionCommentPermissions( 
+&   System.int lUserID,
+&   System.array<int>^ poDocIds,
+&   System.array<String^>^ poTransNames
+) 
+ +

Parameters

lUserID
+
User ID (see Remarks)
poDocIds
+
Array of document IDs (see Remarks)
poTransNames
+
Array of workfow transition names (see Remarks)
+ +

Return Value

Array of booleans (see Remarks)
+ + +

Example

See the IEdmVault20 examples. +
+ +

Remarks

The returned one-dimensional array contains (n * m) booleans indicating whether lUserID must add a state change comment on each workflow transition in poTransNames for each document in poDocIds. 

+

For:

+
    +
  • n = size of poDocIds +
  • m = size of poTransNames +
  • permbool_* = true or false
+

the returned array follows the order of elements in poDocIds and poTransNames as follows:

+

{

+

      permbool_poDocIds(0)_poTransNames(0)

+

      ...

+

      permbool_poDocIds(0)_poTransNames(m-1)

+

      permbool_poDocIds(1)_poTransNames(0)

+

      ...

+

      permbool_poDocIds(1)_poTransNames(m-1)

+

      ...

+

      ...

+

      permbool_poDocIds(n-1)_poTransNames(0)

+

      ...

+

      permbool_poDocIds(n-1)_poTransNames(m-1)

+

}

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2019
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21.html new file mode 100644 index 0000000..2987f17 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21.html @@ -0,0 +1,142 @@ + + + + + + IEdmVault21 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault21 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault21 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

+ + + +

Example

+

Remarks

This interface:

+
    +
  • extends IEdmVault20 by providing enhanced search functionality that includes multi-variable conditions, logical operators, and regular expressions.
+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_members.html new file mode 100644 index 0000000..5fa08ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault21 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault21 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault21 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault21.

+ + +

Public Methods

+ +
 NameDescription
 MethodCreateSearch2Creates an interface to a search object.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_methods.html new file mode 100644 index 0000000..c117be7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault21 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault21 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault21 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault21 members.

+

Public Methods

+ +
 NameDescription
 MethodCreateSearch2Creates an interface to a search object.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21~CreateSearch2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21~CreateSearch2.html new file mode 100644 index 0000000..2f4f57d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault21~CreateSearch2.html @@ -0,0 +1,160 @@ + + + + + + CreateSearch2 Method (IEdmVault21) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateSearch2 Method (IEdmVault21)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault21 Interface + : CreateSearch2 Method (IEdmVault21)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Creates an interface to a search object. + + +

Syntax

Visual Basic 
Function CreateSearch2() As IEdmSearch5
+
C# 
IEdmSearch5 CreateSearch2()
+
C++/CLI 
IEdmSearch5^ CreateSearch2(); 
+ + + +

Return Value

IEdmSearch5
+ + +

Example

See the IEdmVault21 examples. +
+ +

Remarks

This method creates a search object that allows you to search files and folders using multi-variable conditions, logical operators, and special search syntax. Once this search object is instantiated, special search syntax is allowed in all IEdmSearch* properties and method parameters. (See Search Syntax.)

+

To perform a search:

+
    +
  1. +

    Cast the returned IEdmSearch5 to IEdmSearch9.

    +
  2. +

    Add a single variable search condition using IEdmSearch8::AddVariable2. The new search allows you to specify the poValue parameter using special search syntax and eliminates the need to specify the lEdmVarOp parameter.

    +
  3. +

    Add a multi-variable search condition using IEdmSearch9::AddMultiVariableCondition. Special search syntax applies.

    +
  4. +

    Use the special search syntax in IEdmSearch5::FileNameIEdmSearch5::VersionCommentIEdmSearch5::State, and IEdmSearch6::SetToken.

    +
  5. +

    Call IEdmSearch5::GetFirstResult. If no results are returned, either nothing was found or there were search syntax errors.

    +
  6. +

    If step 5 returns no results, then see if there are search syntax errors by calling IEdmSearch9::GetSyntaxErrors. (Note: no syntax errors are reported unless advanced specifiers were placed before each search syntax.)

    +
  7. +

    If step 5 returns results, call IEdmSearch5::GetNextResult repeatedly to get further results.

+

C++ users must release the returned pointer, IEdmSearch5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2020
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22.html new file mode 100644 index 0000000..74fcdd5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22.html @@ -0,0 +1,146 @@ + + + + + + IEdmVault22 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault22 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault22 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

+ + + +

Example

+

Remarks

This interface extends IEdmVault21 by providing the ability to clear the Archive Server Get logssynchronize the vault's archive servers with the active directory, get all column sets assigned to the logged-in user, get the current column set for the logged-in user, and set a column set ID in the user's registry.

+

With IEdmVault22, add-ins can assign customized column sets to vault folders before they are browsed by:

+
    +
  1. Triggering a pre-browse-folder event (EdmCmdType.EdmCmd_PreBrowseFolder) when the logged-in user browses a folder. +
  2. Handling the event by: +
      +
    1. Getting all the column set IDs assigned to the logged-in user. +
    2. Specifying a column set ID for the folder to be browsed.
    +
  3. Triggering and handling a post-browse-folder event (EdmCmdType.EdmCmd_PostBrowseFolder).
+

For more information about customized column sets, see the SOLIDWORKS PDM Help > SOLIDWORKS PDM Administration Tool > Columns topics.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_members.html new file mode 100644 index 0000000..1f224f1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmVault22 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault22 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault22 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault22.

+ + +

Public Methods

+ + + + + +
 NameDescription
 MethodADRunSyncSynchronizes the vault's archive servers with the Active Directory.  
 MethodClearLogsDeletes the Archive Server Get logs.  
 MethodGetColumnSetsGets the column sets assigned to the currently logged-in user of this vault.  
 MethodGetCurrentColumnSetGets the current column set for the currently logged-in user of this vault.  
 MethodSetColumnSetIDSets the specified column set ID in the user's registry.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_methods.html new file mode 100644 index 0000000..30f2100 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22_methods.html @@ -0,0 +1,107 @@ + + + + + + IEdmVault22 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault22 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault22 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault22 members.

+

Public Methods

+ + + + + +
 NameDescription
 MethodADRunSyncSynchronizes the vault's archive servers with the Active Directory.  
 MethodClearLogsDeletes the Archive Server Get logs.  
 MethodGetColumnSetsGets the column sets assigned to the currently logged-in user of this vault.  
 MethodGetCurrentColumnSetGets the current column set for the currently logged-in user of this vault.  
 MethodSetColumnSetIDSets the specified column set ID in the user's registry.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ADRunSync.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ADRunSync.html new file mode 100644 index 0000000..d7dc078 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ADRunSync.html @@ -0,0 +1,152 @@ + + + + + + ADRunSync Method (IEdmVault22) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ADRunSync Method (IEdmVault22)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault22 Interface + : ADRunSync Method (IEdmVault22)
+ +
+ + + +
+ +
+ + +
+
+
bsArchiveName
+
Archive Server name
+
+ +
+ +
+ + +
+
+ Synchronizes the vault's archive servers with the Active Directory. + + +

Syntax

Visual Basic 
Sub ADRunSync( _
+   Optional ByVal bsArchiveName As System.String _
+) 
+
C# 
void ADRunSync( 
+   System.string bsArchiveName
+)
+
C++/CLI 
void ADRunSync( 
+&   System.String^ bsArchiveName
+) 
+ +

Parameters

bsArchiveName
+
Archive Server name
+ +
+ + + + + +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ClearLogs.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ClearLogs.html new file mode 100644 index 0000000..32fe993 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~ClearLogs.html @@ -0,0 +1,140 @@ + + + + + + ClearLogs Method (IEdmVault22) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ClearLogs Method (IEdmVault22)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault22 Interface + : ClearLogs Method (IEdmVault22)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Deletes the Archive Server Get logs. + + +

Syntax

Visual Basic 
Sub ClearLogs() 
+
C# 
void ClearLogs()
+
C++/CLI 
void ClearLogs(); 
+ + + +
+ + + + + +

Remarks

This method is valid only when the user has EdmSysPerm.EdmSysRight_MaySeeAdminTool permission.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetColumnSets.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetColumnSets.html new file mode 100644 index 0000000..be0f88b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetColumnSets.html @@ -0,0 +1,154 @@ + + + + + + GetColumnSets Method (IEdmVault22) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetColumnSets Method (IEdmVault22)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault22 Interface + : GetColumnSets Method (IEdmVault22)
+ +
+ + + +
+ +
+ + +
+
+
ppoCurrentColumns
+
Array of EdmColumnSets
+
+ +
+ +
+ + +
+
+ Gets the column sets assigned to the currently logged-in user of this vault. + + +

Syntax

Visual Basic 
Sub GetColumnSets( _
+   ByRef ppoCurrentColumns() As EdmColumnSet _
+) 
+
C# 
void GetColumnSets( 
+   out EdmColumnSet[] ppoCurrentColumns
+)
+
C++/CLI 
void GetColumnSets( 
+&   [Out] array<EdmColumnSet>^ ppoCurrentColumns
+) 
+ +

Parameters

ppoCurrentColumns
+
Array of EdmColumnSets
+ +
+ + +

Example

See the IEdmVault22 example. +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetCurrentColumnSet.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetCurrentColumnSet.html new file mode 100644 index 0000000..bca0b06 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~GetCurrentColumnSet.html @@ -0,0 +1,154 @@ + + + + + + GetCurrentColumnSet Method (IEdmVault22) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCurrentColumnSet Method (IEdmVault22)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault22 Interface + : GetCurrentColumnSet Method (IEdmVault22)
+ +
+ + + +
+ +
+ + +
+
+
poCurrentColumn
+
EdmColumnSet
+
+ +
+ +
+ + +
+
+ Gets the current column set for the currently logged-in user of this vault. + + +

Syntax

Visual Basic 
Sub GetCurrentColumnSet( _
+   ByRef poCurrentColumn As EdmColumnSet _
+) 
+
C# 
void GetCurrentColumnSet( 
+   out EdmColumnSet poCurrentColumn
+)
+
C++/CLI 
void GetCurrentColumnSet( 
+&   [Out] EdmColumnSet poCurrentColumn
+) 
+ +

Parameters

poCurrentColumn
+
EdmColumnSet
+ +
+ + +

Example

See the IEdmVault22 example +
+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~SetColumnSetID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~SetColumnSetID.html new file mode 100644 index 0000000..83a983e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault22~SetColumnSetID.html @@ -0,0 +1,155 @@ + + + + + + SetColumnSetID Method (IEdmVault22) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetColumnSetID Method (IEdmVault22)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault22 Interface + : SetColumnSetID Method (IEdmVault22)
+ +
+ + + +
+ +
+ + +
+
+
mlColumnSetID
+
ID of column set to register
+
+ +
+ +
+ + +
+
+ Sets the specified column set ID in the user's registry. + + +

Syntax

Visual Basic 
Sub SetColumnSetID( _
+   ByVal mlColumnSetID As System.Integer _
+) 
+
C# 
void SetColumnSetID( 
+   System.int mlColumnSetID
+)
+
C++/CLI 
void SetColumnSetID( 
+&   System.int mlColumnSetID
+) 
+ +

Parameters

mlColumnSetID
+
ID of column set to register
+ +
+ + +

Example

See the IEdmVault22 example +
+ +

Remarks

Before calling this method, use IEdmVault22::GetColumnSets to obtain all valid column set IDs for the currently logged-in user of this vault.

+

This method stores the column set ID at the following location in the registry:

+

User_Computer\HKEY_CURRENT_USER\SOFTWARE\SolidWorks\Applications\PDMWorks Enterprise\CTDMListView\ColumnSet\vault_name\user_name

+

After calling this method, call IEdmVault22::GetCurrentColumnSet to verify the current column set was changed.

  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2024
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5.html new file mode 100644 index 0000000..6f5e01b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5.html @@ -0,0 +1,163 @@ + + + + + + IEdmVault5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault5 
+
C# 
public interface IEdmVault5 
+
C++/CLI 
public interface class IEdmVault5 
+
+ + + +

Example

+

Remarks

This interface represents a SOLIDWORKS PDM Professional file vault. It is the highest-level interface within this API; most of the other interfaces in this API are retrieved from this interface either directly or indirectly.

+

Standalone programs using this API should first declare and create an instance of this interface. Because interfaces are abstract definitions and not implementations, they cannot be created directly using the New keyword.

+

The type library includes a creatable class called EdmVault5, which implements the IEdmVault5 interface.

+

You can create an instance of the EdmVault5 class with the New keyword, and because this class implements the IEdmVault5 interface, you can reference it with the variable declared as IEdmVault5 interface type. By convention, interface names begin with an uppercase letter I. Once the IEdmVault5 interface object is created, most of the other interface objects within this API are returned either directly or indirectly by methods and properties of the IEdmVault5 object or some other object that originated from it. Add-in programs are passed an IEdmVault5 object when the add-in is loaded and when needed.

+

To access this interface, stand-alone programs can:

+
    +
  • Obtain an instance through one of the accessors. +
  • Create an instance:
+
Dim vault as EdmVault5 
vault = new EdmVault5 +
+

 

+

After obtaining an instance, programs must call IEdmVault5::Login or IEdmVault5::LoginAuto to establish a connection with the file vault.

+

This interface:

+
+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_members.html new file mode 100644 index 0000000..8327379 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_members.html @@ -0,0 +1,136 @@ + + + + + + IEdmVault5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault5.

+

Public Properties

+ + + + + + + + +
 NameDescription
 PropertyCommandIDGets the command ID count.  
 PropertyIsLoggedInGets whether you are logged in to this vault.  
 PropertyLanguageGets the language used by the SOLIDWORKS PDM Professional client.  
 PropertyNameGets the name of this vault.  
 PropertyRootFolderGets the root folder of this vault.  
 PropertyRootFolderIDGets the database ID of the root folder of this vault.  
 PropertyRootFolderPathGets the file system path to the root folder of this vault.  
 PropertySilentModeGets whether the add-in is running in silent mode.  
Top
+ +

Public Methods

+ + + + + + + + + + + + + + + + + +
 NameDescription
 MethodBrowseForFileDisplays an Open or Save As dialog box in which the user can click one or more files.  
 MethodBrowseForFolderObsolete. Superseded by IEdmVault11::BrowseForFolder2.  
 MethodCreatePluginMenuObsolete. Superseded by IEdmVault12::CreatePluginMenu2.  
 MethodCreateSearchObsolete. Superseded by IEdmVault21::CreateSearch2.  
 MethodGetDictionaryGets or creates the specified dictionary.  
 MethodGetErrorStringGets the name and description for the specified error code returned by one of SOLIDWORKS PDM Professional's API methods.  
 MethodGetFileFromPathGets an interface to the file with the specified file system path.  
 MethodGetFolderFromPathGets an interface to a folder on the specified file system path.  
 MethodGetObjectGets an interface to a SOLIDWORKS PDM Professional object of the specified type and having the specified ID.  
 MethodGetVaultNameFromPathGets the name of the vault where the specified file or folder resides.  
 MethodGetVersionGets the version of SOLIDWORKS PDM Professional that is installed on this machine.  
 MethodLoginLogs in to the specified vault using the specified user name and password.  
 MethodLoginAutoLogs in to the specified vault.  
 MethodMsgBoxDisplays a message box to the user.  
 MethodRefreshFolderRefreshes the file listing in the specified folder.  
 MethodSetAddInWndObsolete. See Keeping Add-in Windows in the Foreground.  
 MethodVerifyVersionVerifies that the installed SOLIDWORKS PDM Professional is at the specified version level or higher.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_methods.html new file mode 100644 index 0000000..9736ec7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_methods.html @@ -0,0 +1,119 @@ + + + + + + IEdmVault5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault5 members.

+

Public Methods

+ + + + + + + + + + + + + + + + + +
 NameDescription
 MethodBrowseForFileDisplays an Open or Save As dialog box in which the user can click one or more files.  
 MethodBrowseForFolderObsolete. Superseded by IEdmVault11::BrowseForFolder2.  
 MethodCreatePluginMenuObsolete. Superseded by IEdmVault12::CreatePluginMenu2.  
 MethodCreateSearchObsolete. Superseded by IEdmVault21::CreateSearch2.  
 MethodGetDictionaryGets or creates the specified dictionary.  
 MethodGetErrorStringGets the name and description for the specified error code returned by one of SOLIDWORKS PDM Professional's API methods.  
 MethodGetFileFromPathGets an interface to the file with the specified file system path.  
 MethodGetFolderFromPathGets an interface to a folder on the specified file system path.  
 MethodGetObjectGets an interface to a SOLIDWORKS PDM Professional object of the specified type and having the specified ID.  
 MethodGetVaultNameFromPathGets the name of the vault where the specified file or folder resides.  
 MethodGetVersionGets the version of SOLIDWORKS PDM Professional that is installed on this machine.  
 MethodLoginLogs in to the specified vault using the specified user name and password.  
 MethodLoginAutoLogs in to the specified vault.  
 MethodMsgBoxDisplays a message box to the user.  
 MethodRefreshFolderRefreshes the file listing in the specified folder.  
 MethodSetAddInWndObsolete. See Keeping Add-in Windows in the Foreground.  
 MethodVerifyVersionVerifies that the installed SOLIDWORKS PDM Professional is at the specified version level or higher.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_properties.html new file mode 100644 index 0000000..c06b87f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5_properties.html @@ -0,0 +1,114 @@ + + + + + + IEdmVault5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault5 members.

+

Public Properties

+ + + + + + + + +
 NameDescription
 PropertyCommandIDGets the command ID count.  
 PropertyIsLoggedInGets whether you are logged in to this vault.  
 PropertyLanguageGets the language used by the SOLIDWORKS PDM Professional client.  
 PropertyNameGets the name of this vault.  
 PropertyRootFolderGets the root folder of this vault.  
 PropertyRootFolderIDGets the database ID of the root folder of this vault.  
 PropertyRootFolderPathGets the file system path to the root folder of this vault.  
 PropertySilentModeGets whether the add-in is running in silent mode.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFile.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFile.html new file mode 100644 index 0000000..6a157c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFile.html @@ -0,0 +1,218 @@ + + + + + + BrowseForFile Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BrowseForFile Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : BrowseForFile Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
lEdmBrowseFlags
+
Optional combination of EdmBrowseFlag bits
+
+
+
bsFilter
+
Optional filter string that limits the types of files displayed in the dialog box (see Remarks)
+
+
+
bsDefaultExtension
+
Optional default file extension to append if the user does not specify an extension
+
+
+
bsDefaultFileName
+
Optional default file name to display in the file name field of the dialog box
+
+
+
bsDefaultFolder
+
Optional path to the folder on which the dialog box should initially open
+
+
+
bsCaption
+
Optional caption for the dialog box
+
+ +
+ +
+ + +
+
+ Displays an Open or Save As dialog box in which the user can click one or more files. + + +

Syntax

Visual Basic 
Function BrowseForFile( _
+   ByVal hParentWnd As System.Integer, _
+   Optional ByVal lEdmBrowseFlags As System.Integer, _
+   Optional ByVal bsFilter As System.String, _
+   Optional ByVal bsDefaultExtension As System.String, _
+   Optional ByVal bsDefaultFileName As System.String, _
+   Optional ByVal bsDefaultFolder As System.String, _
+   Optional ByVal bsCaption As System.String _
+) As EdmStrLst5
+
C# 
EdmStrLst5 BrowseForFile( 
+   System.int hParentWnd,
+   System.int lEdmBrowseFlags,
+   System.string bsFilter,
+   System.string bsDefaultExtension,
+   System.string bsDefaultFileName,
+   System.string bsDefaultFolder,
+   System.string bsCaption
+)
+
C++/CLI 
EdmStrLst5^ BrowseForFile( 
+&   System.int hParentWnd,
+&   System.int lEdmBrowseFlags,
+&   System.String^ bsFilter,
+&   System.String^ bsDefaultExtension,
+&   System.String^ bsDefaultFileName,
+&   System.String^ bsDefaultFolder,
+&   System.String^ bsCaption
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
lEdmBrowseFlags
+
Optional combination of EdmBrowseFlag bits
bsFilter
+
Optional filter string that limits the types of files displayed in the dialog box (see Remarks)
bsDefaultExtension
+
Optional default file extension to append if the user does not specify an extension
bsDefaultFileName
+
Optional default file name to display in the file name field of the dialog box
bsDefaultFolder
+
Optional path to the folder on which the dialog box should initially open
bsCaption
+
Optional caption for the dialog box
+ +

Return Value

IEdmStrLst5; list of paths to multi-selected files; Null if the user clicks Cancel (see Remarks)
+ + + + +

Example

+

Remarks

If bsFilter is not empty, it contains the options for the Files of type combobox dropdown in the dialog box. Each option consists of a pair of substrings, where the first substring is the description that appears in the combobox dropdown:

+
+

All Image Files (*.JPG,*.BMP)

+

and the second substring consists of one or more extension filters delimited by semicolons:

+
+

*.JPG;*.BMP

+

The substrings are separated by a vertical bar, |, and the entire string is terminated with double vertical bars, ||.

+

For example, to give the combobox dropdown four options, including JPG and BMP file filters, specify bsFilter with the following string (without quotes):

+

"All Image Files (*.JPG,*.BMP)|*.JPG;*.BMP|JPEG-Files (*.JPG)|*.JPG|BMP-Files (*.BMP)|*.BMP|All Files (*.*)|*.*||"

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFolder.html new file mode 100644 index 0000000..cd789c5 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~BrowseForFolder.html @@ -0,0 +1,165 @@ + + + + + + BrowseForFolder Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
BrowseForFolder Method (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : BrowseForFolder Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
hParentWnd
+
Parent window handle
+
+
+
bsMessage
+
Message to display in the dialog box
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVault11::BrowseForFolder2. + + +

Syntax

Visual Basic 
Function BrowseForFolder( _
+   ByVal hParentWnd As System.Integer, _
+   ByVal bsMessage As System.String _
+) As IEdmFolder5
+
C# 
IEdmFolder5 BrowseForFolder( 
+   System.int hParentWnd,
+   System.string bsMessage
+)
+
C++/CLI 
IEdmFolder5^ BrowseForFolder( 
+&   System.int hParentWnd,
+&   System.String^ bsMessage
+) 
+ +

Parameters

hParentWnd
+
Parent window handle
bsMessage
+
Message to display in the dialog box
+ +

Return Value

IEdmFolder5; Null if the user clicks Cancel (see Remarks)
+ + + + + +

Remarks

C++ users must release the returned interface, IEdmFolder5.

+

Return codes: 

+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CommandID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CommandID.html new file mode 100644 index 0000000..fcd7a52 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CommandID.html @@ -0,0 +1,147 @@ + + + + + + CommandID Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CommandID Property (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : CommandID Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the command ID count. + + +

Syntax

Visual Basic 
ReadOnly Property CommandID As System.Integer
+
C# 
System.int CommandID {get;}
+
C++/CLI 
property System.int CommandID {
+   System.int get();
+}
+ + + +

Property Value

Command ID; count that is incremented for each new command launched by the user in this vault
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreatePluginMenu.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreatePluginMenu.html new file mode 100644 index 0000000..208bf2e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreatePluginMenu.html @@ -0,0 +1,204 @@ + + + + + + CreatePluginMenu Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreatePluginMenu Method (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : CreatePluginMenu Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
hMenu
+
Handle of menu in which to insert add-in commands
+
+
+
lInsertPosition
+
Zero-based index of the position in the menu where new menu items should be inserted; -1 to append new menu items to the bottom of the menu
+
+
+
plStartID
+
Next available menu command ID (see Remarks)
+
+
+
lSelFileCount
+
Number of selected files
+
+
+
lSelFolderCount
+
Number of selected folders
+
+
+
lCreateMenuFlags
+
Combination of CreateMenuFlags bits
+
+
+
plItemCount
+
Number of menu items added
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVault12::CreatePluginMenu2. + + +

Syntax

Visual Basic 
Function CreatePluginMenu( _
+   ByVal hMenu As System.Integer, _
+   ByVal lInsertPosition As System.Integer, _
+   ByRef plStartID As System.Integer, _
+   ByVal lSelFileCount As System.Integer, _
+   ByVal lSelFolderCount As System.Integer, _
+   ByVal lCreateMenuFlags As System.Integer, _
+   ByRef plItemCount As System.Integer _
+) As IEdmMenu5
+
C# 
IEdmMenu5 CreatePluginMenu( 
+   System.int hMenu,
+   System.int lInsertPosition,
+   out System.int plStartID,
+   System.int lSelFileCount,
+   System.int lSelFolderCount,
+   System.int lCreateMenuFlags,
+   out System.int plItemCount
+)
+
C++/CLI 
IEdmMenu5^ CreatePluginMenu( 
+&   System.int hMenu,
+&   System.int lInsertPosition,
+&   [Out] System.int plStartID,
+&   System.int lSelFileCount,
+&   System.int lSelFolderCount,
+&   System.int lCreateMenuFlags,
+&   [Out] System.int plItemCount
+) 
+ +

Parameters

hMenu
+
Handle of menu in which to insert add-in commands
lInsertPosition
+
Zero-based index of the position in the menu where new menu items should be inserted; -1 to append new menu items to the bottom of the menu
plStartID
+
Next available menu command ID (see Remarks)
lSelFileCount
+
Number of selected files
lSelFolderCount
+
Number of selected folders
lCreateMenuFlags
+
Combination of CreateMenuFlags bits
plItemCount
+
Number of menu items added
+ +

Return Value

IEdmMenu5 (see Remarks)
+ + +

Example

 

+
+ +

Remarks

When this method is called, plStartID should be the first free menu command ID that a new command is assigned. When this method returns, plStartID is the first free menu command ID after IDs for new menu commands have been reserved.

+

When the user chooses one of the menu items added by this method, your program must call IEdmMenu5::OnMenuItem.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreateSearch.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreateSearch.html new file mode 100644 index 0000000..5e9d2dc --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~CreateSearch.html @@ -0,0 +1,147 @@ + + + + + + CreateSearch Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateSearch Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : CreateSearch Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVault21::CreateSearch2. + + +

Syntax

Visual Basic 
Function CreateSearch() As IEdmSearch5
+
C# 
IEdmSearch5 CreateSearch()
+
C++/CLI 
IEdmSearch5^ CreateSearch(); 
+ + + +

Return Value

IEdmSearch5
+ + + + +

Example

+

Remarks

C++ users must release the returned pointer, IEdmSearch5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetDictionary.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetDictionary.html new file mode 100644 index 0000000..f6cfa24 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetDictionary.html @@ -0,0 +1,170 @@ + + + + + + GetDictionary Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetDictionary Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetDictionary Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsName
+
Name of dictionary to get or create
+
+
+
bCreateIfNew
+
True to create the dictionary if it does not exist, false to not
+
+ +
+ +
+ + +
+
+ Gets or creates the specified dictionary. + + +

Syntax

Visual Basic 
Function GetDictionary( _
+   ByVal bsName As System.String, _
+   ByVal bCreateIfNew As System.Boolean _
+) As IEdmDictionary5
+
C# 
IEdmDictionary5 GetDictionary( 
+   System.string bsName,
+   System.bool bCreateIfNew
+)
+
C++/CLI 
IEdmDictionary5^ GetDictionary( 
+&   System.String^ bsName,
+&   System.bool bCreateIfNew
+) 
+ +

Parameters

bsName
+
Name of dictionary to get or create
bCreateIfNew
+
True to create the dictionary if it does not exist, false to not
+ +

Return Value

IEdmDictionary5; Null if bCreateIfNew is false and the dictionary with bsName does not exist
+ + + + +

Example

+

Remarks

A dictionary in SOLIDWORKS PDM Professional is a way of storing arbitrary data in the SOLIDWORKS PDM Professional database. The data is organized into key-value pairs. The values are always strings. The keys can be either integers or strings.

+

NOTE: If you intend to store file- or folder-specific data and want the data to be deleted or copied whenever the file or folder is deleted or copied, consider using card variables instead of dictionaries. Card variables stored using IEdmEnumeratorVariable5 do not require corresponding controls in the file or folder data card.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The dictionary with the specified name does not exist, and bCreateIfNew is false. +
  • E_EDM_NOT_LOGGED_IN: You must call IEdmVault5::Login or IEdmVault5::LoginAuto before calling this method.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetErrorString.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetErrorString.html new file mode 100644 index 0000000..8461872 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetErrorString.html @@ -0,0 +1,175 @@ + + + + + + GetErrorString Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetErrorString Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetErrorString Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
lError
+
Error code for which to get a description
+
+
+
pbsErrorName
+
Error name as defined in Return codes; hexadecimal number if the error is unknown
+
+
+
pbsDescription
+
Description of the error
+
+ +
+ +
+ + +
+
+ Gets the name and description for the specified error code returned by one of SOLIDWORKS PDM Professional's API methods. + + +

Syntax

Visual Basic 
Sub GetErrorString( _
+   ByVal lError As System.Integer, _
+   Optional ByRef pbsErrorName As System.String, _
+   Optional ByRef pbsDescription As System.String _
+) 
+
C# 
void GetErrorString( 
+   System.int lError,
+   out System.string pbsErrorName,
+   out System.string pbsDescription
+)
+
C++/CLI 
void GetErrorString( 
+&   System.int lError,
+&   [Out] System.String^ pbsErrorName,
+&   [Out] System.String^ pbsDescription
+) 
+ +

Parameters

lError
+
Error code for which to get a description
pbsErrorName
+
Error name as defined in Return codes; hexadecimal number if the error is unknown
pbsDescription
+
Description of the error
+ +
+ + + + +

Example

+

Remarks

You do not have to be logged in to the vault to call this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFileFromPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFileFromPath.html new file mode 100644 index 0000000..05f97ca --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFileFromPath.html @@ -0,0 +1,171 @@ + + + + + + GetFileFromPath Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileFromPath Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetFileFromPath Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsFilePath
+
File system path to the file for which to get an interface
+
+
+
ppoRetParentFolder
+
IEdmFolder5; 0 to not return an interface
+
+ +
+ +
+ + +
+
+ Gets an interface to the file with the specified file system path. + + +

Syntax

Visual Basic 
Function GetFileFromPath( _
+   ByVal bsFilePath As System.String, _
+   Optional ByRef ppoRetParentFolder As IEdmFolder5 _
+) As IEdmFile5
+
C# 
IEdmFile5 GetFileFromPath( 
+   System.string bsFilePath,
+   out IEdmFolder5 ppoRetParentFolder
+)
+
C++/CLI 
IEdmFile5^ GetFileFromPath( 
+&   System.String^ bsFilePath,
+&   [Out] IEdmFolder5^ ppoRetParentFolder
+) 
+ +

Parameters

bsFilePath
+
File system path to the file for which to get an interface
ppoRetParentFolder
+
IEdmFolder5; 0 to not return an interface
+ +

Return Value

IEdmFile5; Null if file specified in bsFilePath does not exist
+ + + + +

Example

+

Remarks

Return codes: 

+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFolderFromPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFolderFromPath.html new file mode 100644 index 0000000..8db9860 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetFolderFromPath.html @@ -0,0 +1,160 @@ + + + + + + GetFolderFromPath Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFolderFromPath Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetFolderFromPath Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsFolderPath
+
File system path to the folder
+
+ +
+ +
+ + +
+
+ Gets an interface to a folder on the specified file system path. + + +

Syntax

Visual Basic 
Function GetFolderFromPath( _
+   ByVal bsFolderPath As System.String _
+) As IEdmFolder5
+
C# 
IEdmFolder5 GetFolderFromPath( 
+   System.string bsFolderPath
+)
+
C++/CLI 
IEdmFolder5^ GetFolderFromPath( 
+&   System.String^ bsFolderPath
+) 
+ +

Parameters

bsFolderPath
+
File system path to the folder
+ +

Return Value

IEdmFolder5; Null if the folder in bsFolderPath is not found
+ + + + +

Example

+

Remarks

C++ users must release the returned interface, IEdmFolder5.

+

Return codes: 

+
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetObject.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetObject.html new file mode 100644 index 0000000..79db616 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetObject.html @@ -0,0 +1,168 @@ + + + + + + GetObject Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetObject Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetObject Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of object to get as defined in EdmObjectType
+
+
+
lObjectID
+
ID of object to get
+
+ +
+ +
+ + +
+
+ Gets an interface to a SOLIDWORKS PDM Professional object of the specified type and having the specified ID. + + +

Syntax

Visual Basic 
Function GetObject( _
+   ByVal eType As EdmObjectType, _
+   ByVal lObjectID As System.Integer _
+) As IEdmObject5
+
C# 
IEdmObject5 GetObject( 
+   EdmObjectType eType,
+   System.int lObjectID
+)
+
C++/CLI 
IEdmObject5^ GetObject( 
+&   EdmObjectType eType,
+&   System.int lObjectID
+) 
+ +

Parameters

eType
+
Type of object to get as defined in EdmObjectType
lObjectID
+
ID of object to get
+ +

Return Value

IEdmObject5
+ + + + +

Example

+

Remarks

As of SOLIDWORKS PDM Professional 2008 you can call IEdmVault9::GetObjects to get interfaces to several objects at once, which is more efficient than calling this method multiple times.

+

C++ users must release the returned pointer, IEdmObject5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: The provided ID was not valid. +
  • E_EDM_PERMISSION_DENIED: The logged-in user does not have permission to see the requested object.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVaultNameFromPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVaultNameFromPath.html new file mode 100644 index 0000000..0f7e53a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVaultNameFromPath.html @@ -0,0 +1,158 @@ + + + + + + GetVaultNameFromPath Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVaultNameFromPath Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetVaultNameFromPath Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsPath
+
Full system path to a file or folder
+
+ +
+ +
+ + +
+
+ Gets the name of the vault where the specified file or folder resides. + + +

Syntax

Visual Basic 
Function GetVaultNameFromPath( _
+   ByVal bsPath As System.String _
+) As System.String
+
C# 
System.string GetVaultNameFromPath( 
+   System.string bsPath
+)
+
C++/CLI 
System.String^ GetVaultNameFromPath( 
+&   System.String^ bsPath
+) 
+ +

Parameters

bsPath
+
Full system path to a file or folder
+ +

Return Value

Vault name
+ + + + +

Example

+

Remarks

You do not need to call IEdmVault5::Login or IEdmVault5::LoginAuto before calling this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_KEY_NOT_FOUND: The specified path is not in any vault.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVersion.html new file mode 100644 index 0000000..2fdfc63 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~GetVersion.html @@ -0,0 +1,165 @@ + + + + + + GetVersion Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVersion Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : GetVersion Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
plMajor
+
Major version number
+
+
+
plMinor
+
Minor version number
+
+ +
+ +
+ + +
+
+ Gets the version of SOLIDWORKS PDM Professional that is installed on this machine. + + +

Syntax

Visual Basic 
Sub GetVersion( _
+   ByRef plMajor As System.Integer, _
+   ByRef plMinor As System.Integer _
+) 
+
C# 
void GetVersion( 
+   out System.int plMajor,
+   out System.int plMinor
+)
+
C++/CLI 
void GetVersion( 
+&   [Out] System.int plMajor,
+&   [Out] System.int plMinor
+) 
+ +

Parameters

plMajor
+
Major version number
plMinor
+
Minor version number
+ +
+ + + + +

Example

+

Remarks

You do not need to call IEdmVault5::Login or IEdmVault5::LoginAuto before calling this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~IsLoggedIn.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~IsLoggedIn.html new file mode 100644 index 0000000..a9dd987 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~IsLoggedIn.html @@ -0,0 +1,149 @@ + + + + + + IsLoggedIn Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IsLoggedIn Property (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : IsLoggedIn Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether you are logged in to this vault. + + +

Syntax

Visual Basic 
ReadOnly Property IsLoggedIn As System.Boolean
+
C# 
System.bool IsLoggedIn {get;}
+
C++/CLI 
property System.bool IsLoggedIn {
+   System.bool get();
+}
+ + + +

Property Value

True if logged in, false if not
+ + + + +

Example

+

Remarks

Log in to the vault by calling IEdmVault5::Login or IEdmVault5::LoginAuto.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Language.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Language.html new file mode 100644 index 0000000..f599876 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Language.html @@ -0,0 +1,147 @@ + + + + + + Language Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Language Property (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : Language Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the language used by the SOLIDWORKS PDM Professional client. + + +

Syntax

Visual Basic 
ReadOnly Property Language As EdmLanguage
+
C# 
EdmLanguage Language {get;}
+
C++/CLI 
property EdmLanguage Language {
+   EdmLanguage get();
+}
+ + + +

Property Value

Language as defined in EdmLanguage
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Login.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Login.html new file mode 100644 index 0000000..8af3991 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Login.html @@ -0,0 +1,180 @@ + + + + + + Login Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Login Method (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : Login Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsUserName
+
User name of user created in the SOLIDWORKS PDM Professional User Manager
+
+
+
bsPasswd
+
Password for bsUserName
+
+
+
bsVaultName
+
Vault name
+
+ +
+ +
+ + +
+
+ Logs in to the specified vault using the specified user name and password. + + +

Syntax

Visual Basic 
Sub Login( _
+   ByVal bsUserName As System.String, _
+   ByVal bsPasswd As System.String, _
+   ByVal bsVaultName As System.String _
+) 
+
C# 
void Login( 
+   System.string bsUserName,
+   System.string bsPasswd,
+   System.string bsVaultName
+)
+
C++/CLI 
void Login( 
+&   System.String^ bsUserName,
+&   System.String^ bsPasswd,
+&   System.String^ bsVaultName
+) 
+ +

Parameters

bsUserName
+
User name of user created in the SOLIDWORKS PDM Professional User Manager
bsPasswd
+
Password for bsUserName
bsVaultName
+
Vault name
+ +
+ + + + + +

Remarks

If your application is custom (i.e., it is not supplied or supported by SOLIDWORKS PDM Professional) and your application:

+
    +
  • logs into SOLIDWORKS PDM Professional
    - or - +
  • logs into a vault view
    - or - +
  • directly accesses a vault database
+

when the same user is not already logged into a local view, you must first call IEdmVault13::LoginEx or IEdmVault5::LoginAuto to comply with the SOLIDWORKS End User License Agreement (EULA). Call IEdmVault13::LoginEx or IEdmVault5::LoginAuto before calling this method to ensure that licenses are properly consumed by your application.

+

Call IEdmVault5::LoginAuto to log in as a user already logged into a vault view through File Explorer or into a vault through the SOLIDWORKS PDM Professional client software. You do not need to specify a username and password when you call IEdmVault5::LoginAuto to share a license with the already logged-in user.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_ALREADY_LOGGED_IN: You are already logged into this vault. +
  • E_EDM_LOGIN_FAILED: You entered an invalid user name or password. +
  • E_EDM_CANT_OPEN_DATABASE: The database could not be opened.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~LoginAuto.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~LoginAuto.html new file mode 100644 index 0000000..e875285 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~LoginAuto.html @@ -0,0 +1,167 @@ + + + + + + LoginAuto Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
LoginAuto Method (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : LoginAuto Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsVaultName
+
Vault name
+
+
+
hParentWnd
+
Parent window handle; used when the login dialog box displays to ensure it remains visible
+
+ +
+ +
+ + +
+
+ Logs in to the specified vault. + + +

Syntax

Visual Basic 
Sub LoginAuto( _
+   ByVal bsVaultName As System.String, _
+   ByVal hParentWnd As System.Integer _
+) 
+
C# 
void LoginAuto( 
+   System.string bsVaultName,
+   System.int hParentWnd
+)
+
C++/CLI 
void LoginAuto( 
+&   System.String^ bsVaultName,
+&   System.int hParentWnd
+) 
+ +

Parameters

bsVaultName
+
Vault name
hParentWnd
+
Parent window handle; used when the login dialog box displays to ensure it remains visible
+ +
+ + +

Example

See the IEdmVault5 examples. +
+ +

Remarks

This method differs from IEdmVault5::Login in that this method does not require the username and password. This method logs into the vault as the same user that is already logged into either the vault view through File Explorer or the vault through the SOLIDWORKS PDM Professional client software. This method allows you to share the license of the already logged-in user. If no user is already logged into the specified file vault, a login dialog box displays. Also unlike IEdmVault5::Login, this method properly consumes a license without first calling IEdmVault13::LoginEx to comply with the SOLIDWORKS End User License Agreement (EULA)

+

You can retrieve the ID of the SOLIDWORKS PDM Professional client user by calling IEdmVault11::GetLoggedInWindowsUserID. You can also log in silently as the SOLIDWORKS PDM Professional client by calling IEdmVault11::LogInWindowsUser.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_ALREADY_LOGGED_IN: You are already logged in to this vault. +
  • E_EDM_CANT_OPEN_DATABASE: The database could not be opened (Maybe the vault name was incorrect?). +
  • E_EDM_CANCELLED_BY_USER: The log-in dialog box displays, but the user clicked Cancel instead of logging in.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~MsgBox.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~MsgBox.html new file mode 100644 index 0000000..1559cfb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~MsgBox.html @@ -0,0 +1,183 @@ + + + + + + MsgBox Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
MsgBox Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : MsgBox Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
bsMsg
+
Message to display in the message box
+
+
+
eType
+
Optional style of the message box as defined in EdmMBoxType
+
+
+
bsCaption
+
Optional string to display for the message box caption
+
+ +
+ +
+ + +
+
+ Displays a message box to the user. + + +

Syntax

Visual Basic 
Function MsgBox( _
+   ByVal lParentWnd As System.Integer, _
+   ByVal bsMsg As System.String, _
+   Optional ByVal eType As EdmMBoxType, _
+   Optional ByVal bsCaption As System.String _
+) As EdmMBoxResult
+
C# 
EdmMBoxResult MsgBox( 
+   System.int lParentWnd,
+   System.string bsMsg,
+   EdmMBoxType eType,
+   System.string bsCaption
+)
+
C++/CLI 
EdmMBoxResult MsgBox( 
+&   System.int lParentWnd,
+&   System.String^ bsMsg,
+&   EdmMBoxType eType,
+&   System.String^ bsCaption
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
bsMsg
+
Message to display in the message box
eType
+
Optional style of the message box as defined in EdmMBoxType
bsCaption
+
Optional string to display for the message box caption
+ +

Return Value

Button clicked as defined in EdmMBoxResult
+ + + + +

Example

+

Remarks

The only advantage of this method over the standard Visual Basic MsgBox function is that, with this method, you can specify a parent window handle to ensure that the message box stays on top of whatever parent window you have. For add-ins the parent window is usually the File Explorer window.

+

You do not need to call IEdmVault5::Login or IEdmVault5::LoginAuto before calling this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The user pressed Cancel.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Name.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Name.html new file mode 100644 index 0000000..c42e3f4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~Name.html @@ -0,0 +1,149 @@ + + + + + + Name Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Name Property (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : Name Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the name of this vault. + + +

Syntax

Visual Basic 
ReadOnly Property Name As System.String
+
C# 
System.string Name {get;}
+
C++/CLI 
property System.String^ Name {
+   System.String^ get();
+}
+ + + +

Property Value

Name of this vault
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RefreshFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RefreshFolder.html new file mode 100644 index 0000000..bdb2245 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RefreshFolder.html @@ -0,0 +1,162 @@ + + + + + + RefreshFolder Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RefreshFolder Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : RefreshFolder Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
bsFolderPath
+
File system path to the folder to refresh
+
+ +
+ +
+ + +
+
+ Refreshes the file listing in the specified folder. + + +

Syntax

Visual Basic 
Sub RefreshFolder( _
+   ByVal bsFolderPath As System.String _
+) 
+
C# 
void RefreshFolder( 
+   System.string bsFolderPath
+)
+
C++/CLI 
void RefreshFolder( 
+&   System.String^ bsFolderPath
+) 
+ +

Parameters

bsFolderPath
+
File system path to the folder to refresh
+ +
+ + + + +

Example

+

Remarks

If you use API methods to add, check out, or change the state of a file, the API does not automatically refresh its folder in File Explorer. That would be inefficient when processing a large number of files. If you check in a file using the API and browse to its folder using File Explorer, it appears to the user that the file is still checked out. This folder can be refreshed by one of the following techniques:

+
    +
  • Calling this method  +
  • Pressing F5 +
  • Navigating to a different folder and back again
+

There is no way to force a refresh on other machines.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolder.html new file mode 100644 index 0000000..3be18d3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolder.html @@ -0,0 +1,151 @@ + + + + + + RootFolder Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RootFolder Property (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : RootFolder Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the root folder of this vault. + + +

Syntax

Visual Basic 
ReadOnly Property RootFolder As IEdmFolder5
+
C# 
IEdmFolder5 RootFolder {get;}
+
C++/CLI 
property IEdmFolder5^ RootFolder {
+   IEdmFolder5^ get();
+}
+ + + +

Property Value

IEdmFolder5
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderID.html new file mode 100644 index 0000000..64f2b34 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderID.html @@ -0,0 +1,147 @@ + + + + + + RootFolderID Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RootFolderID Property (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : RootFolderID Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the database ID of the root folder of this vault. + + +

Syntax

Visual Basic 
ReadOnly Property RootFolderID As System.Integer
+
C# 
System.int RootFolderID {get;}
+
C++/CLI 
property System.int RootFolderID {
+   System.int get();
+}
+ + + +

Property Value

ID of the root folder of this vault
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderPath.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderPath.html new file mode 100644 index 0000000..f8aa4ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~RootFolderPath.html @@ -0,0 +1,151 @@ + + + + + + RootFolderPath Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
RootFolderPath Property (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : RootFolderPath Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file system path to the root folder of this vault. + + +

Syntax

Visual Basic 
ReadOnly Property RootFolderPath As System.String
+
C# 
System.string RootFolderPath {get;}
+
C++/CLI 
property System.String^ RootFolderPath {
+   System.String^ get();
+}
+ + + +

Property Value

File system path to the root folder of this vault
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SetAddInWnd.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SetAddInWnd.html new file mode 100644 index 0000000..8989504 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SetAddInWnd.html @@ -0,0 +1,163 @@ + + + + + + SetAddInWnd Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SetAddInWnd Method (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : SetAddInWnd Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
lAddInWnd
+
Add-in window handle
+
+
+
lParentWnd
+
File Explorer window handle; EdmCmd::mlParentWnd passed to IEdmAddIn5::OnCmd
+
+ +
+ +
+ + +
+
+ Obsolete. See Keeping Add-in Windows in the Foreground. + + +

Syntax

Visual Basic 
Sub SetAddInWnd( _
+   ByVal lAddInWnd As System.Integer, _
+   ByVal lParentWnd As System.Integer _
+) 
+
C# 
void SetAddInWnd( 
+   System.int lAddInWnd,
+   System.int lParentWnd
+)
+
C++/CLI 
void SetAddInWnd( 
+&   System.int lAddInWnd,
+&   System.int lParentWnd
+) 
+ +

Parameters

lAddInWnd
+
Add-in window handle
lParentWnd
+
File Explorer window handle; EdmCmd::mlParentWnd passed to IEdmAddIn5::OnCmd
+ +
+ + + + + +

Remarks

This method ensures that windows created from add-ins written in Visual Basic 6 do not appear behind the application window. Since VBA is no longer supported, this method is obsolete and should not be used.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SilentMode.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SilentMode.html new file mode 100644 index 0000000..2f7b1db --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~SilentMode.html @@ -0,0 +1,147 @@ + + + + + + SilentMode Property (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
SilentMode Property (IEdmVault5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : SilentMode Property (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether the add-in is running in silent mode. + + +

Syntax

Visual Basic 
ReadOnly Property SilentMode As System.Boolean
+
C# 
System.bool SilentMode {get;}
+
C++/CLI 
property System.bool SilentMode {
+   System.bool get();
+}
+ + + +

Property Value

True if in silent mode, false if dialog boxes are displayed
+ + + + + +

Remarks

This property always returns true on SOLIDWORKS PDM Professional's Web Server. When in silent mode, add-ins may not display a user interface, because that blocks the server.
+ + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~VerifyVersion.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~VerifyVersion.html new file mode 100644 index 0000000..9ec6105 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault5~VerifyVersion.html @@ -0,0 +1,166 @@ + + + + + + VerifyVersion Method (IEdmVault5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VerifyVersion Method (IEdmVault5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault5 Interface + : VerifyVersion Method (IEdmVault5)
+ +
+ + + +
+ +
+ + +
+
+
lMajor
+
Minimum major version number
+
+
+
lMinor
+
Minimum minor version number
+
+ +
+ +
+ + +
+
+ Verifies that the installed SOLIDWORKS PDM Professional is at the specified version level or higher. + + +

Syntax

Visual Basic 
Sub VerifyVersion( _
+   ByVal lMajor As System.Integer, _
+   ByVal lMinor As System.Integer _
+) 
+
C# 
void VerifyVersion( 
+   System.int lMajor,
+   System.int lMinor
+)
+
C++/CLI 
void VerifyVersion( 
+&   System.int lMajor,
+&   System.int lMinor
+) 
+ +

Parameters

lMajor
+
Minimum major version number
lMinor
+
Minimum minor version number
+ +
+ + + + +

Example

+

Remarks

Add-ins that depend on a specific SOLIDWORKS PDM Professional version should make themselves impossible to install on earlier versions of SOLIDWORKS PDM Professional. To do this, set the minimum version of SOLIDWORKS PDM Professional in mlRequiredVersionMajor and mlRequiredVersionMinor of the EdmAddInInfo structure that is passed as a parameter in IEdmAddIn5::GetAddInInfo.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_UNSUPPORTED_PROGRAM_VERSION: The installed program is at a version level that is lower than the specified version.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6.html new file mode 100644 index 0000000..bc06fe8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6.html @@ -0,0 +1,139 @@ + + + + + + IEdmVault6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault6 
+   Inherits IEdmVault5 
+
C# 
public interface IEdmVault6 : IEdmVault5  
+
C++/CLI 
public interface class IEdmVault6 : public IEdmVault5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_members.html new file mode 100644 index 0000000..ffe19d7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmVault6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodCreateCardViewExObsolete. Superseded by IEdmVault10::CreateCardViewEx2.  
 MethodGetCardIDGets the ID of a card of the specified type, with the specified name, and in the specified folder.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_methods.html new file mode 100644 index 0000000..d275682 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmVault6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault6 members.

+

Public Methods

+ + +
 NameDescription
 MethodCreateCardViewExObsolete. Superseded by IEdmVault10::CreateCardViewEx2.  
 MethodGetCardIDGets the ID of a card of the specified type, with the specified name, and in the specified folder.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~CreateCardViewEx.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~CreateCardViewEx.html new file mode 100644 index 0000000..87d0853 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~CreateCardViewEx.html @@ -0,0 +1,197 @@ + + + + + + CreateCardViewEx Method (IEdmVault6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateCardViewEx Method (IEdmVault6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault6 Interface + : CreateCardViewEx Method (IEdmVault6)
+ +
+ + + +
+ +
+ + +
+
+
lEdmCardViewFlags
+
Combination of EdmCardViewFlag bits
+
+
+
lCardID
+
ID of card to display (see Remarks)
+
+
+
lParentWindow
+
Parent window handle
+
+
+
lX
+
X-position in pixels of the parent window
+
+
+
lY
+
Y-position in pixels of the parent window
+
+
+
poCallback
+
Pointer to a class that implements IEdmCardViewCallback6
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVault10::CreateCardViewEx2. + + +

Syntax

Visual Basic 
Function CreateCardViewEx( _
+   ByVal lEdmCardViewFlags As System.Integer, _
+   ByVal lCardID As System.Integer, _
+   ByVal lParentWindow As System.Integer, _
+   ByVal lX As System.Integer, _
+   ByVal lY As System.Integer, _
+   ByVal poCallback As IEdmCardViewCallback6 _
+) As IEdmCardView6
+
C# 
IEdmCardView6 CreateCardViewEx( 
+   System.int lEdmCardViewFlags,
+   System.int lCardID,
+   System.int lParentWindow,
+   System.int lX,
+   System.int lY,
+   IEdmCardViewCallback6 poCallback
+)
+
C++/CLI 
IEdmCardView6^ CreateCardViewEx( 
+&   System.int lEdmCardViewFlags,
+&   System.int lCardID,
+&   System.int lParentWindow,
+&   System.int lX,
+&   System.int lY,
+&   IEdmCardViewCallback6^ poCallback
+) 
+ +

Parameters

lEdmCardViewFlags
+
Combination of EdmCardViewFlag bits
lCardID
+
ID of card to display (see Remarks)
lParentWindow
+
Parent window handle
lX
+
X-position in pixels of the parent window
lY
+
Y-position in pixels of the parent window
poCallback
+
Pointer to a class that implements IEdmCardViewCallback6
+ +

Return Value

IEdmCardView6
+ + + + + +

Remarks

Use this method if you want complete control of the loading and saving of data to and from a custom file or folder data card. Use IEdmFolder5::CreateCardView if you want SOLIDWORKS PDM Professional to handle the loading and saving of data to and from a simple file or folder data card.

+

To obtain lCardID, call IEdmVault6::GetCardID.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: The specified card ID is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~GetCardID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~GetCardID.html new file mode 100644 index 0000000..1a515f7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault6~GetCardID.html @@ -0,0 +1,172 @@ + + + + + + GetCardID Method (IEdmVault6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetCardID Method (IEdmVault6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault6 Interface + : GetCardID Method (IEdmVault6)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of card to get as defined in EdmCardType
+
+
+
bsName
+
Name of the card to get
+
+
+
lFolderID
+
ID of the folder in which the card is stored; 0 for search cards and template
+
+ +
+ +
+ + +
+
+ Gets the ID of a card of the specified type, with the specified name, and in the specified folder. + + +

Syntax

Visual Basic 
Function GetCardID( _
+   ByVal eType As EdmCardType, _
+   ByVal bsName As System.String, _
+   Optional ByVal lFolderID As System.Integer _
+) As System.Integer
+
C# 
System.int GetCardID( 
+   EdmCardType eType,
+   System.string bsName,
+   System.int lFolderID
+)
+
C++/CLI 
System.int GetCardID( 
+&   EdmCardType eType,
+&   System.String^ bsName,
+&   System.int lFolderID
+) 
+ +

Parameters

eType
+
Type of card to get as defined in EdmCardType
bsName
+
Name of the card to get
lFolderID
+
ID of the folder in which the card is stored; 0 for search cards and template
+ +

Return Value

Card ID; 0 if not found
+ + + + + +

Remarks

After calling this method, you can use the returned ID in calls to IEdmVault5::GetObject or IEdmVault6::CreateCardViewEx.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: The specified card was not found.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7.html new file mode 100644 index 0000000..04269b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7.html @@ -0,0 +1,147 @@ + + + + + + IEdmVault7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault7 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault7 
+   Inherits IEdmVault5IEdmVault6 
+
C# 
public interface IEdmVault7 : IEdmVault5IEdmVault6  
+
C++/CLI 
public interface class IEdmVault7 : public IEdmVault5IEdmVault6  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_members.html new file mode 100644 index 0000000..f0ab501 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault7 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault7.

+ + +

Public Methods

+ +
 NameDescription
 MethodCreateUtilityCreates a utility interface of the specified type.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_methods.html new file mode 100644 index 0000000..b6fc87a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault7 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault7 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault7 members.

+

Public Methods

+ +
 NameDescription
 MethodCreateUtilityCreates a utility interface of the specified type.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7~CreateUtility.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7~CreateUtility.html new file mode 100644 index 0000000..93ed95d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault7~CreateUtility.html @@ -0,0 +1,164 @@ + + + + + + CreateUtility Method (IEdmVault7) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
CreateUtility Method (IEdmVault7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault7 Interface + : CreateUtility Method (IEdmVault7)
+ +
+ + + +
+ +
+ + +
+
+
eType
+
Type of interface to create as defined in EdmUtility
+
+ +
+ +
+ + +
+
+ Creates a utility interface of the specified type. + + +

Syntax

Visual Basic 
Function CreateUtility( _
+   ByVal eType As EdmUtility _
+) As System.Object
+
C# 
System.object CreateUtility( 
+   EdmUtility eType
+)
+
C++/CLI 
System.Object^ CreateUtility( 
+&   EdmUtility eType
+) 
+ +

Parameters

eType
+
Type of interface to create as defined in EdmUtility
+ +

Return Value

Interface
+ + + + +

Example

+

Remarks

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8.html new file mode 100644 index 0000000..31c1d33 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8.html @@ -0,0 +1,147 @@ + + + + + + IEdmVault8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault8 
+   Inherits IEdmVault5IEdmVault6IEdmVault7 
+
C# 
public interface IEdmVault8 : IEdmVault5IEdmVault6IEdmVault7  
+
C++/CLI 
public interface class IEdmVault8 : public IEdmVault5IEdmVault6IEdmVault7  
+
+ + + +

Example

+

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_members.html new file mode 100644 index 0000000..e53cb52 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_members.html @@ -0,0 +1,115 @@ + + + + + + IEdmVault8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault8 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault8.

+

Public Properties

+ +
 NameDescription
 PropertyClientTypeGets the type of client installation.  
Top
+ +

Public Methods

+ + + +
 NameDescription
 MethodGetVaultViewsGets all of the views set up on this vault.  
 MethodGetWin32WindowConverts the specified window handle to an Win32Window interface that can be used in the .NET Framework.  
 MethodOpenContainingFolderOpens File Explorer on the specified folder and selects the specified file.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_methods.html new file mode 100644 index 0000000..44a441a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_methods.html @@ -0,0 +1,105 @@ + + + + + + IEdmVault8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault8 members.

+

Public Methods

+ + + +
 NameDescription
 MethodGetVaultViewsGets all of the views set up on this vault.  
 MethodGetWin32WindowConverts the specified window handle to an Win32Window interface that can be used in the .NET Framework.  
 MethodOpenContainingFolderOpens File Explorer on the specified folder and selects the specified file.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_properties.html new file mode 100644 index 0000000..f8b304b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmVault8 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault8 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault8 members.

+

Public Properties

+ +
 NameDescription
 PropertyClientTypeGets the type of client installation.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~ClientType.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~ClientType.html new file mode 100644 index 0000000..6fa078e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~ClientType.html @@ -0,0 +1,147 @@ + + + + + + ClientType Property (IEdmVault8) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
ClientType Property (IEdmVault8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault8 Interface + : ClientType Property (IEdmVault8)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the type of client installation. + + +

Syntax

Visual Basic 
ReadOnly Property ClientType As EdmClientType
+
C# 
EdmClientType ClientType {get;}
+
C++/CLI 
property EdmClientType ClientType {
+   EdmClientType get();
+}
+ + + +

Property Value

Type of client installation as defined in EdmClientType
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetVaultViews.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetVaultViews.html new file mode 100644 index 0000000..d4315ef --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetVaultViews.html @@ -0,0 +1,163 @@ + + + + + + GetVaultViews Method (IEdmVault8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetVaultViews Method (IEdmVault8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault8 Interface + : GetVaultViews Method (IEdmVault8)
+ +
+ + + +
+ +
+ + +
+
+
ppoRetViews
+
Array of EdmViewInfo structures; one structure for each view
+
+
+
bOnlyLoggedIn
+
True to get views in which you are currently logged, false to get all views
+
+ +
+ +
+ + +
+
+ Gets all of the views set up on this vault. + + +

Syntax

Visual Basic 
Sub GetVaultViews( _
+   ByRef ppoRetViews() As EdmViewInfo, _
+   ByVal bOnlyLoggedIn As System.Boolean _
+) 
+
C# 
void GetVaultViews( 
+   out EdmViewInfo[] ppoRetViews,
+   System.bool bOnlyLoggedIn
+)
+
C++/CLI 
void GetVaultViews( 
+&   [Out] array<EdmViewInfo>^ ppoRetViews,
+&   System.bool bOnlyLoggedIn
+) 
+ +

Parameters

ppoRetViews
+
Array of EdmViewInfo structures; one structure for each view
bOnlyLoggedIn
+
True to get views in which you are currently logged, false to get all views
+ +
+ + +

Example

See the IEdmVault8 examples. +
+ +

Remarks

You do not have to call IEdmVault5::Login or IEdmVault5::LoginAuto before calling this method.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetWin32Window.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetWin32Window.html new file mode 100644 index 0000000..1848098 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~GetWin32Window.html @@ -0,0 +1,152 @@ + + + + + + GetWin32Window Method (IEdmVault8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetWin32Window Method (IEdmVault8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault8 Interface + : GetWin32Window Method (IEdmVault8)
+ +
+ + + +
+ +
+ + +
+
+
lHwnd
+
Window handle to convert
+
+ +
+ +
+ + +
+
+ Converts the specified window handle to an Win32Window interface that can be used in the .NET Framework. + + +

Syntax

Visual Basic 
Function GetWin32Window( _
+   ByVal lHwnd As System.Integer _
+) As System.Object
+
C# 
System.object GetWin32Window( 
+   System.int lHwnd
+)
+
C++/CLI 
System.Object^ GetWin32Window( 
+&   System.int lHwnd
+) 
+ +

Parameters

lHwnd
+
Window handle to convert
+ +

Return Value

IWin32Window interface
+ + +

Example

+ +   + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~OpenContainingFolder.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~OpenContainingFolder.html new file mode 100644 index 0000000..66e9e3b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault8~OpenContainingFolder.html @@ -0,0 +1,186 @@ + + + + + + OpenContainingFolder Method (IEdmVault8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
OpenContainingFolder Method (IEdmVault8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault8 Interface + : OpenContainingFolder Method (IEdmVault8)
+ +
+ + + +
+ +
+ + +
+
+
oFilePathOrID
+
ID or path of file to select; 0 to ignore (see Remarks)
+
+
+
oFolderPathOrID
+
ID or path of folder on which to open File Explorer; 0 to ignore
+
+ +
+ +
+ + +
+
+ Opens File Explorer on the specified folder and selects the specified file. + + +

Syntax

Visual Basic 
Sub OpenContainingFolder( _
+   ByVal oFilePathOrID As System.Object, _
+   Optional ByVal oFolderPathOrID As System.Object _
+) 
+
C# 
void OpenContainingFolder( 
+   System.object oFilePathOrID,
+   System.object oFolderPathOrID
+)
+
C++/CLI 
void OpenContainingFolder( 
+&   System.Object^ oFilePathOrID,
+&   System.Object^ oFolderPathOrID
+) 
+ +

Parameters

oFilePathOrID
+
ID or path of file to select; 0 to ignore (see Remarks)
oFolderPathOrID
+
ID or path of folder on which to open File Explorer; 0 to ignore
+ +
+ + +

Example

+ + + + + + + + + + + + + + + +
+

OpenContainingFolder 102, 33

+

Opens folder with ID, 33, and selects file with ID, 102.

+

OpenContainingFolder “c:\TheVault\SubFolder\test.txtâ€

+

Opens folder, SubFolder, and selects file, test.txt.

+

OpenContainingFolder 0, 45

+

Opens the parent folder of folder with ID, 45, and selects the folder with ID, 45.

+

OpenContainingFolder 321, 0

+

Opens first folder where file with ID, 321, is found and selects the file.

+

OpenContainingFolder 0, “c:\TheVault\SubFolderâ€

+

Opens the vault root folder and selects the folder, SubFolder.

+
+ +

Remarks

If oFilePathOrID is a path to a file, oFolderPathOrID is ignored.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.4
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9.html new file mode 100644 index 0000000..3860189 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9.html @@ -0,0 +1,141 @@ + + + + + + IEdmVault9 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault9 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVault9 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVault9 
+   Inherits IEdmVault5IEdmVault6IEdmVault7IEdmVault8 
+
C# 
public interface IEdmVault9 : IEdmVault5IEdmVault6IEdmVault7IEdmVault8  
+
C++/CLI 
public interface class IEdmVault9 : public IEdmVault5IEdmVault6IEdmVault7IEdmVault8  
+
+ + + +

Example

+

Remarks

This interface:

+
+

Accessors


+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_members.html new file mode 100644 index 0000000..4003882 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVault9 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault9 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault9 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVault9.

+ + +

Public Methods

+ +
 NameDescription
 MethodGetObjectsGets interfaces to all of the specified objects.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_methods.html new file mode 100644 index 0000000..8704568 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVault9 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVault9 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVault9 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVault9 members.

+

Public Methods

+ +
 NameDescription
 MethodGetObjectsGets interfaces to all of the specified objects.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9~GetObjects.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9~GetObjects.html new file mode 100644 index 0000000..1ec6295 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVault9~GetObjects.html @@ -0,0 +1,154 @@ + + + + + + GetObjects Method (IEdmVault9) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetObjects Method (IEdmVault9)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVault9 Interface + : GetObjects Method (IEdmVault9)
+ +
+ + + +
+ +
+ + +
+
+
ppoObjects
+
Array of EdmObjectInfo structures; one structure for each interface to retrieve
+
+ +
+ +
+ + +
+
+ Gets interfaces to all of the specified objects. + + +

Syntax

Visual Basic 
Sub GetObjects( _
+   ByRef ppoObjects() As EdmObjectInfo _
+) 
+
C# 
void GetObjects( 
+   out EdmObjectInfo[] ppoObjects
+)
+
C++/CLI 
void GetObjects( 
+&   [Out] array<EdmObjectInfo>^ ppoObjects
+) 
+ +

Parameters

ppoObjects
+
Array of EdmObjectInfo structures; one structure for each interface to retrieve
+ +
+ + + + +

Example

+

Remarks

Call this method to get interfaces to several objects at once, which is more efficient than calling IEdmVault5::GetObject multiple times.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2008
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5.html new file mode 100644 index 0000000..b907823 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5.html @@ -0,0 +1,143 @@ + + + + + + IEdmVersion5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion5 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVersion5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the version of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVersion5 
+
C# 
public interface IEdmVersion5 
+
C++/CLI 
public interface class IEdmVersion5 
+
+ + + +

Example

+

Remarks

This interface:

+ +

Whenever a new or modified file is checked in, a new version of it is created and stored in the file vault. The versions are denoted by numbers, e.g., 1,2,3, etc.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_members.html new file mode 100644 index 0000000..a75d67b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_members.html @@ -0,0 +1,123 @@ + + + + + + IEdmVersion5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVersion5.

+

Public Properties

+ + + + + + + + +
 NameDescription
 PropertyCommentGets the comment that is entered during the check-in of this version.  
 PropertyFileDateGets the modification date for this version.  
 PropertyFileSizeGets the file size for this version.  
 PropertyHasRevisionGets whether this version has one or more revisions.  
 PropertyUserGets the user who checked in this version.  
 PropertyUserIDGets the ID of the user who checked in this version.  
 PropertyVersionDateGets the time when this version was created.  
 PropertyVersionNoGets the version number of this version.  
Top
+ +

Public Methods

+ + + + +
 NameDescription
 MethodGetFileCopyRetrieves from the archive a copy of this version of a file and places it in the specified location.  
 MethodGetFirstRevisionPositionStarts an enumeration of the revisions of this version.  
 MethodGetNextRevisionGets the next revision set on this version in an enumeration.  
 MethodRollbackObsolete. Superseded by IEdmVersion6::Rollback2.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_methods.html new file mode 100644 index 0000000..4152d3c --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_methods.html @@ -0,0 +1,106 @@ + + + + + + IEdmVersion5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVersion5 members.

+

Public Methods

+ + + + +
 NameDescription
 MethodGetFileCopyRetrieves from the archive a copy of this version of a file and places it in the specified location.  
 MethodGetFirstRevisionPositionStarts an enumeration of the revisions of this version.  
 MethodGetNextRevisionGets the next revision set on this version in an enumeration.  
 MethodRollbackObsolete. Superseded by IEdmVersion6::Rollback2.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_properties.html new file mode 100644 index 0000000..9b893fb --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5_properties.html @@ -0,0 +1,114 @@ + + + + + + IEdmVersion5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVersion5 members.

+

Public Properties

+ + + + + + + + +
 NameDescription
 PropertyCommentGets the comment that is entered during the check-in of this version.  
 PropertyFileDateGets the modification date for this version.  
 PropertyFileSizeGets the file size for this version.  
 PropertyHasRevisionGets whether this version has one or more revisions.  
 PropertyUserGets the user who checked in this version.  
 PropertyUserIDGets the ID of the user who checked in this version.  
 PropertyVersionDateGets the time when this version was created.  
 PropertyVersionNoGets the version number of this version.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Comment.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Comment.html new file mode 100644 index 0000000..dbfa4ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Comment.html @@ -0,0 +1,149 @@ + + + + + + Comment Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Comment Property (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : Comment Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the comment that is entered during the check-in of this version. + + +

Syntax

Visual Basic 
ReadOnly Property Comment As System.String
+
C# 
System.string Comment {get;}
+
C++/CLI 
property System.String^ Comment {
+   System.String^ get();
+}
+ + + +

Property Value

Version comment
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileDate.html new file mode 100644 index 0000000..331a9cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileDate.html @@ -0,0 +1,147 @@ + + + + + + FileDate Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileDate Property (IEdmVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : FileDate Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the modification date for this version. + + +

Syntax

Visual Basic 
ReadOnly Property FileDate As System.Object
+
C# 
System.object FileDate {get;}
+
C++/CLI 
property System.Object^ FileDate {
+   System.Object^ get();
+}
+ + + +

Property Value

Modification date
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileSize.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileSize.html new file mode 100644 index 0000000..24151e3 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~FileSize.html @@ -0,0 +1,147 @@ + + + + + + FileSize Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileSize Property (IEdmVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : FileSize Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the file size for this version. + + +

Syntax

Visual Basic 
ReadOnly Property FileSize As System.Integer
+
C# 
System.int FileSize {get;}
+
C++/CLI 
property System.int FileSize {
+   System.int get();
+}
+ + + +

Property Value

File size
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFileCopy.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFileCopy.html new file mode 100644 index 0000000..ddc84cd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFileCopy.html @@ -0,0 +1,185 @@ + + + + + + GetFileCopy Method (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFileCopy Method (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : GetFileCopy Method (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+
lParentWnd
+
Parent window handle
+
+
+
poPathOrFolderID
+
ID or path of the folder where to copy the file; 0 to place a copy of the file in all of its shared folders (default) (see Remarks)
+
+
+
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
+
+
+
bsNewName
+
Optional new name of the copied file; "" to create a copy using the file's current name
+
+ +
+ +
+ + +
+
+ Retrieves from the archive a copy of this version of a file and places it in the specified location. + + +

Syntax

Visual Basic 
Sub GetFileCopy( _
+   ByVal lParentWnd As System.Integer, _
+   Optional ByRef poPathOrFolderID As System.Object, _
+   Optional ByVal lEdmGetFlags As System.Integer, _
+   Optional ByVal bsNewName As System.String _
+) 
+
C# 
void GetFileCopy( 
+   System.int lParentWnd,
+   ref System.object poPathOrFolderID,
+   System.int lEdmGetFlags,
+   System.string bsNewName
+)
+
C++/CLI 
void GetFileCopy( 
+&   System.int lParentWnd,
+&   System.Object^% poPathOrFolderID,
+&   System.int lEdmGetFlags,
+&   System.String^ bsNewName
+) 
+ +

Parameters

lParentWnd
+
Parent window handle
poPathOrFolderID
+
ID or path of the folder where to copy the file; 0 to place a copy of the file in all of its shared folders (default) (see Remarks)
lEdmGetFlags
+
Optional combination of EdmGetFlag bits; default is EdmGetFlag.EdmGet_MakeReadOnly
bsNewName
+
Optional new name of the copied file; "" to create a copy using the file's current name
+ +
+ + + + +

Example

+

Remarks

If you specify a folder path in poPathOrFolderID, it must be terminated by a backslash ('\').

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_FILE_NOT_FOUND: The file was not found in the vault. +
  • E_EDM_PERMISSION_DENIED: The user is not permitted to see the specified version of the file.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFirstRevisionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFirstRevisionPosition.html new file mode 100644 index 0000000..f733d32 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetFirstRevisionPosition.html @@ -0,0 +1,149 @@ + + + + + + GetFirstRevisionPosition Method (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstRevisionPosition Method (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : GetFirstRevisionPosition Method (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the revisions of this version. + + +

Syntax

Visual Basic 
Function GetFirstRevisionPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstRevisionPosition()
+
C++/CLI 
IEdmPos5^ GetFirstRevisionPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first revision in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first revision to IEdmVersion5::GetNextRevision to get the first revision in this list. Then call IEdmVersion5::GetNextRevision repeatedly to get the rest of the revisions.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetNextRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetNextRevision.html new file mode 100644 index 0000000..b357dec --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~GetNextRevision.html @@ -0,0 +1,161 @@ + + + + + + GetNextRevision Method (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextRevision Method (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : GetNextRevision Method (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next revision in the list
+
+ +
+ +
+ + +
+
+ Gets the next revision set on this version in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextRevision( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmRevision5
+
C# 
IEdmRevision5 GetNextRevision( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmRevision5^ GetNextRevision( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next revision in the list
+ +

Return Value

IEdmRevision5
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first revision in the list, IEdmPos5. Call IEdmVersion5::GetFirstRevisionPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the revisions in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmRevision5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~HasRevision.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~HasRevision.html new file mode 100644 index 0000000..75b6334 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~HasRevision.html @@ -0,0 +1,147 @@ + + + + + + HasRevision Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
HasRevision Property (IEdmVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : HasRevision Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets whether this version has one or more revisions. + + +

Syntax

Visual Basic 
ReadOnly Property HasRevision As System.Boolean
+
C# 
System.bool HasRevision {get;}
+
C++/CLI 
property System.bool HasRevision {
+   System.bool get();
+}
+ + + +

Property Value

True if this version has one or more revisions, false if not
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Rollback.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Rollback.html new file mode 100644 index 0000000..2e26ee9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~Rollback.html @@ -0,0 +1,146 @@ + + + + + + Rollback Method (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback Method (IEdmVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : Rollback Method (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVersion6::Rollback2. + + +

Syntax

Visual Basic 
Sub Rollback() 
+
C# 
void Rollback()
+
C++/CLI 
void Rollback(); 
+ + + +
+ + + + + +

Remarks

This method deletes both the file data and the file data card data when it deletes versions. You cannot undo this rollback, unless you restore a complete backup of the database and the file archives.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user does not have permission to delete files. +
  • E_EDM_INVALID_REVISION_NUMBER: The version does not exist.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~User.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~User.html new file mode 100644 index 0000000..41aca36 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~User.html @@ -0,0 +1,149 @@ + + + + + + User Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
User Property (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : User Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the user who checked in this version. + + +

Syntax

Visual Basic 
ReadOnly Property User As IEdmUser5
+
C# 
IEdmUser5 User {get;}
+
C++/CLI 
property IEdmUser5^ User {
+   IEdmUser5^ get();
+}
+ + + +

Property Value

IEdmUser5
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~UserID.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~UserID.html new file mode 100644 index 0000000..3c4e5f9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~UserID.html @@ -0,0 +1,147 @@ + + + + + + UserID Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
UserID Property (IEdmVersion5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : UserID Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the ID of the user who checked in this version. + + +

Syntax

Visual Basic 
ReadOnly Property UserID As System.Integer
+
C# 
System.int UserID {get;}
+
C++/CLI 
property System.int UserID {
+   System.int get();
+}
+ + + +

Property Value

ID of the user who checked in this version
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionDate.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionDate.html new file mode 100644 index 0000000..b8188ff --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionDate.html @@ -0,0 +1,149 @@ + + + + + + VersionDate Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionDate Property (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : VersionDate Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the time when this version was created. + + +

Syntax

Visual Basic 
ReadOnly Property VersionDate As System.Object
+
C# 
System.object VersionDate {get;}
+
C++/CLI 
property System.Object^ VersionDate {
+   System.Object^ get();
+}
+ + + +

Property Value

Check-in time for this version
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionNo.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionNo.html new file mode 100644 index 0000000..c638993 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion5~VersionNo.html @@ -0,0 +1,149 @@ + + + + + + VersionNo Property (IEdmVersion5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
VersionNo Property (IEdmVersion5)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion5 Interface + : VersionNo Property (IEdmVersion5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the version number of this version. + + +

Syntax

Visual Basic 
ReadOnly Property VersionNo As System.Integer
+
C# 
System.int VersionNo {get;}
+
C++/CLI 
property System.int VersionNo {
+   System.int get();
+}
+ + + +

Property Value

Version number
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 5.2
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6.html new file mode 100644 index 0000000..a534a0b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6.html @@ -0,0 +1,139 @@ + + + + + + IEdmVersion6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion6 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVersion6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the version of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVersion6 
+   Inherits IEdmVersion5 
+
C# 
public interface IEdmVersion6 : IEdmVersion5  
+
C++/CLI 
public interface class IEdmVersion6 : public IEdmVersion5  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_members.html new file mode 100644 index 0000000..0cab510 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVersion6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVersion6.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmVersion8::Rollback3.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_methods.html new file mode 100644 index 0000000..8d2aca6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVersion6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVersion6 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback2Obsolete. Superseded by IEdmVersion8::Rollback3.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6~Rollback2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6~Rollback2.html new file mode 100644 index 0000000..b86e621 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion6~Rollback2.html @@ -0,0 +1,159 @@ + + + + + + Rollback2 Method (IEdmVersion6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback2 Method (IEdmVersion6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion6 Interface + : Rollback2 Method (IEdmVersion6)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment for this rollback
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmVersion8::Rollback3. + + +

Syntax

Visual Basic 
Sub Rollback2( _
+   ByVal bsComment As System.String _
+) 
+
C# 
void Rollback2( 
+   System.string bsComment
+)
+
C++/CLI 
void Rollback2( 
+&   System.String^ bsComment
+) 
+ +

Parameters

bsComment
+
Comment for this rollback
+ +
+ + + + + +

Remarks

This method deletes both the file data and the file data card data when it deletes versions. You cannot undo this rollback, unless you restore a complete backup of the database and the file archives.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user does not have permission to delete files. +
  • E_EDM_INVALID_REVISION_NUMBER: The version does not exist.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7.html new file mode 100644 index 0000000..57ce135 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7.html @@ -0,0 +1,139 @@ + + + + + + IEdmVersion7 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion7 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVersion7 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the version of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVersion7 
+   Inherits IEdmVersion5IEdmVersion6 
+
C# 
public interface IEdmVersion7 : IEdmVersion5IEdmVersion6  
+
C++/CLI 
public interface class IEdmVersion7 : public IEdmVersion5IEdmVersion6  
+
+ + + + +

Remarks

This interface:

+
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_members.html new file mode 100644 index 0000000..1c28b04 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVersion7 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion7 Interface Members
+ See Also  + + Properties  + +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion7 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVersion7.

+

Public Properties

+ +
 NameDescription
 PropertyFileSize2Gets the 64-bit file size for this version.  
Top
+ + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_properties.html new file mode 100644 index 0000000..84e37ae --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmVersion7 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion7 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion7 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVersion7 members.

+

Public Properties

+ +
 NameDescription
 PropertyFileSize2Gets the 64-bit file size for this version.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7~FileSize2.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7~FileSize2.html new file mode 100644 index 0000000..4b5a686 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion7~FileSize2.html @@ -0,0 +1,149 @@ + + + + + + FileSize2 Property (IEdmVersion7) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
FileSize2 Property (IEdmVersion7)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion7 Interface + : FileSize2 Property (IEdmVersion7)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the 64-bit file size for this version. + + +

Syntax

Visual Basic 
ReadOnly Property FileSize2 As System.Long
+
C# 
System.long FileSize2 {get;}
+
C++/CLI 
property System.int64 FileSize2 {
+   System.int64 get();
+}
+ + + +

Property Value

File size
+ + + + +

Example

+ + + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2015
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8.html new file mode 100644 index 0000000..c758705 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8.html @@ -0,0 +1,138 @@ + + + + + + IEdmVersion8 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion8 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmVersion8 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the version of a file.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmVersion8 
+   Inherits IEdmVersion5IEdmVersion6IEdmVersion7 
+
C# 
public interface IEdmVersion8 : IEdmVersion5IEdmVersion6IEdmVersion7  
+
C++/CLI 
public interface class IEdmVersion8 : public IEdmVersion5IEdmVersion6IEdmVersion7  
+
+ + + +

Example

+

Remarks

This interface extends IEdmVersion7.

+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_members.html new file mode 100644 index 0000000..7ff50a0 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_members.html @@ -0,0 +1,111 @@ + + + + + + IEdmVersion8 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion8 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion8 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmVersion8.

+ + +

Public Methods

+ +
 NameDescription
 MethodRollback3Discards all versions of the file after this version.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_methods.html new file mode 100644 index 0000000..788ec4f --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8_methods.html @@ -0,0 +1,103 @@ + + + + + + IEdmVersion8 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmVersion8 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmVersion8 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmVersion8 members.

+

Public Methods

+ +
 NameDescription
 MethodRollback3Discards all versions of the file after this version.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8~Rollback3.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8~Rollback3.html new file mode 100644 index 0000000..b7aa765 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmVersion8~Rollback3.html @@ -0,0 +1,167 @@ + + + + + + Rollback3 Method (IEdmVersion8) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Rollback3 Method (IEdmVersion8)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmVersion8 Interface + : Rollback3 Method (IEdmVersion8)
+ +
+ + + +
+ +
+ + +
+
+
bsComment
+
Comment for this rollback
+
+
+
vbRedirectParentRefs
+
True to roll back the file with its parent references, false to roll back the file without its parent references
+
+ +
+ +
+ + +
+
+ Discards all versions of the file after this version. + + +

Syntax

Visual Basic 
Sub Rollback3( _
+   ByVal bsComment As System.String, _
+   ByVal vbRedirectParentRefs As System.Boolean _
+) 
+
C# 
void Rollback3( 
+   System.string bsComment,
+   System.bool vbRedirectParentRefs
+)
+
C++/CLI 
void Rollback3( 
+&   System.String^ bsComment,
+&   System.bool vbRedirectParentRefs
+) 
+ +

Parameters

bsComment
+
Comment for this rollback
vbRedirectParentRefs
+
True to roll back the file with its parent references, false to roll back the file without its parent references
+ +
+ + + + + +

Remarks

This method deletes both the file data and the file data card data when it deletes versions. You cannot undo this rollback, unless you restore a complete backup of the database and the file archives.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_PERMISSION_DENIED: The user does not have permission to delete files. +
  • E_EDM_INVALID_REVISION_NUMBER: The version does not exist.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional 2017
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5.html new file mode 100644 index 0000000..99a995d --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5.html @@ -0,0 +1,135 @@ + + + + + + IEdmWorkflow5 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow5 Interface
+ See Also  + Members   +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmWorkflow5 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Obsolete. Superseded by IEdmWorkflow6.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmWorkflow5 
+
C# 
public interface IEdmWorkflow5 
+
C++/CLI 
public interface class IEdmWorkflow5 
+
+ + + + + + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_members.html new file mode 100644 index 0000000..6420fa7 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_members.html @@ -0,0 +1,118 @@ + + + + + + IEdmWorkflow5 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow5 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow5 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmWorkflow5.

+

Public Properties

+ +
 NameDescription
 PropertyInitialStateObsolete. Superseded by IEdmWorkflow6::InitialState.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodGetFirstStatePositionObsolete. Superseded by IEdmWorkflow6::GetFirstStatePosition.  
 MethodGetFirstTransitionPositionObsolete. Superseded by IEdmWorkflow6::GetFirstTransitionPosition.  
 MethodGetNextStateObsolete. Superseded by IEdmWorkflow6::GetNextState.  
 MethodGetNextTransitionObsolete. Superseded by IEdmWorkflow6::GetNextTransition.  
 MethodGetStateObsolete. Superseded by IEdmWorkflow6::GetState.  
 MethodGetTransitionObsolete. Superseded by IEdmWorkflow6::GetTransition.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_methods.html new file mode 100644 index 0000000..b652eba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmWorkflow5 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow5 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmWorkflow5 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodGetFirstStatePositionObsolete. Superseded by IEdmWorkflow6::GetFirstStatePosition.  
 MethodGetFirstTransitionPositionObsolete. Superseded by IEdmWorkflow6::GetFirstTransitionPosition.  
 MethodGetNextStateObsolete. Superseded by IEdmWorkflow6::GetNextState.  
 MethodGetNextTransitionObsolete. Superseded by IEdmWorkflow6::GetNextTransition.  
 MethodGetStateObsolete. Superseded by IEdmWorkflow6::GetState.  
 MethodGetTransitionObsolete. Superseded by IEdmWorkflow6::GetTransition.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_properties.html new file mode 100644 index 0000000..8dedd03 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5_properties.html @@ -0,0 +1,107 @@ + + + + + + IEdmWorkflow5 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow5 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow5 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmWorkflow5 members.

+

Public Properties

+ +
 NameDescription
 PropertyInitialStateObsolete. Superseded by IEdmWorkflow6::InitialState.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstStatePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstStatePosition.html new file mode 100644 index 0000000..3dd071a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstStatePosition.html @@ -0,0 +1,140 @@ + + + + + + GetFirstStatePosition Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstStatePosition Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetFirstStatePosition Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetFirstStatePosition. + + +

Syntax

Visual Basic 
Function GetFirstStatePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstStatePosition()
+
C++/CLI 
IEdmPos5^ GetFirstStatePosition(); 
+ + + +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstTransitionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstTransitionPosition.html new file mode 100644 index 0000000..3808ac6 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetFirstTransitionPosition.html @@ -0,0 +1,140 @@ + + + + + + GetFirstTransitionPosition Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstTransitionPosition Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetFirstTransitionPosition Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetFirstTransitionPosition. + + +

Syntax

Visual Basic 
Function GetFirstTransitionPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstTransitionPosition()
+
C++/CLI 
IEdmPos5^ GetFirstTransitionPosition(); 
+ + + +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextState.html new file mode 100644 index 0000000..72c8fb9 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextState.html @@ -0,0 +1,152 @@ + + + + + + GetNextState Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextState Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetNextState Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
 
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetNextState. + + +

Syntax

Visual Basic 
Function GetNextState( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmState5
+
C# 
IEdmState5 GetNextState( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmState5^ GetNextState( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
 
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextTransition.html new file mode 100644 index 0000000..d376f45 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetNextTransition.html @@ -0,0 +1,152 @@ + + + + + + GetNextTransition Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextTransition Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetNextTransition Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
 
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetNextTransition. + + +

Syntax

Visual Basic 
Function GetNextTransition( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmTransition5
+
C# 
IEdmTransition5 GetNextTransition( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmTransition5^ GetNextTransition( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
 
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetState.html new file mode 100644 index 0000000..7400a61 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetState.html @@ -0,0 +1,152 @@ + + + + + + GetState Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetState Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetState Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
 
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetState. + + +

Syntax

Visual Basic 
Function GetState( _
+   ByRef poIdOrName As System.Object _
+) As IEdmState5
+
C# 
IEdmState5 GetState( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmState5^ GetState( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
 
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetTransition.html new file mode 100644 index 0000000..ce4fb23 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~GetTransition.html @@ -0,0 +1,152 @@ + + + + + + GetTransition Method (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTransition Method (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : GetTransition Method (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
 
+
+ +
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::GetTransition. + + +

Syntax

Visual Basic 
Function GetTransition( _
+   ByRef poIdOrName As System.Object _
+) As IEdmTransition5
+
C# 
IEdmTransition5 GetTransition( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmTransition5^ GetTransition( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
 
+ +
+ + + + + +   + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~InitialState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~InitialState.html new file mode 100644 index 0000000..04f48f1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow5~InitialState.html @@ -0,0 +1,147 @@ + + + + + + InitialState Property (IEdmWorkflow5) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InitialState Property (IEdmWorkflow5)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow5 Interface + : InitialState Property (IEdmWorkflow5)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Obsolete. Superseded by IEdmWorkflow6::InitialState. + + +

Syntax

Visual Basic 
ReadOnly Property InitialState As IEdmState6
+
C# 
IEdmState6 InitialState {get;}
+
C++/CLI 
property IEdmState6^ InitialState {
+   IEdmState6^ get();
+}
+ + + +
+ + + + + + + + +

See Also

+ +
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6.html new file mode 100644 index 0000000..e9abdfe --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6.html @@ -0,0 +1,140 @@ + + + + + + IEdmWorkflow6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmWorkflow6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access a workflow set up using SOLIDWORKS PDM Professional's Workflow Editor.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmWorkflow6 
+   Inherits IEdmObject5 
+
C# 
public interface IEdmWorkflow6 : IEdmObject5  
+
C++/CLI 
public interface class IEdmWorkflow6 : public IEdmObject5  
+
+ + + +

Example

+

Remarks

This interface inherits from IEdmObject5 and supersedes IEdmWorkflow5.

+

Use IEdmWorkflowMgr6 to enumerate the installed workflows.

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_members.html new file mode 100644 index 0000000..14dda16 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_members.html @@ -0,0 +1,119 @@ + + + + + + IEdmWorkflow6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow6 Interface Members
+ See Also  + + Properties  + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmWorkflow6.

+

Public Properties

+ + +
 NameDescription
 PropertyDescriptionGets the description of this workflow that is entered in the SOLIDWORKS PDM Professional Workflow Editor.  
 PropertyInitialStateGets the state in which new files are placed when they are checked in the first time.  
Top
+ +

Public Methods

+ + + + + + +
 NameDescription
 MethodGetFirstStatePositionStarts an enumeration of the states in this workflow.  
 MethodGetFirstTransitionPositionStarts an enumeration of the state transitions in this workflow.  
 MethodGetNextStateGets the next workflow state in an enumeration.  
 MethodGetNextTransitionGets the next workflow state transition in an enumeration.  
 MethodGetStateGets the workflow state with the specified ID or name.  
 MethodGetTransitionGets the workflow state transition with the specified ID.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_methods.html new file mode 100644 index 0000000..acda2a4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_methods.html @@ -0,0 +1,108 @@ + + + + + + IEdmWorkflow6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmWorkflow6 members.

+

Public Methods

+ + + + + + +
 NameDescription
 MethodGetFirstStatePositionStarts an enumeration of the states in this workflow.  
 MethodGetFirstTransitionPositionStarts an enumeration of the state transitions in this workflow.  
 MethodGetNextStateGets the next workflow state in an enumeration.  
 MethodGetNextTransitionGets the next workflow state transition in an enumeration.  
 MethodGetStateGets the workflow state with the specified ID or name.  
 MethodGetTransitionGets the workflow state transition with the specified ID.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_properties.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_properties.html new file mode 100644 index 0000000..57ae7f1 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6_properties.html @@ -0,0 +1,108 @@ + + + + + + IEdmWorkflow6 Interface Properties + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflow6 Interface Properties
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflow6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmWorkflow6 members.

+

Public Properties

+ + +
 NameDescription
 PropertyDescriptionGets the description of this workflow that is entered in the SOLIDWORKS PDM Professional Workflow Editor.  
 PropertyInitialStateGets the state in which new files are placed when they are checked in the first time.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~Description.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~Description.html new file mode 100644 index 0000000..90b4f60 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~Description.html @@ -0,0 +1,147 @@ + + + + + + Description Property (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
Description Property (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : Description Property (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the description of this workflow that is entered in the SOLIDWORKS PDM Professional Workflow Editor. + + +

Syntax

Visual Basic 
ReadOnly Property Description As System.String
+
C# 
System.string Description {get;}
+
C++/CLI 
property System.String^ Description {
+   System.String^ get();
+}
+ + + +

Property Value

Workflow description
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstStatePosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstStatePosition.html new file mode 100644 index 0000000..9ea375e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstStatePosition.html @@ -0,0 +1,144 @@ + + + + + + GetFirstStatePosition Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstStatePosition Method (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetFirstStatePosition Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the states in this workflow. + + +

Syntax

Visual Basic 
Function GetFirstStatePosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstStatePosition()
+
C++/CLI 
IEdmPos5^ GetFirstStatePosition(); 
+ + + +

Return Value

IEdmPos5; position of the first workflow state in the enumeration
+ + +

Example

See the IEdmWorkflow6 examples. +
+ +

Remarks

After calling this method, pass the returned position of the first workflow state to IEdmWorkflow6::GetNextState to get the first workflow state in this list. Then call IEdmWorkflow6::GetNextState repeatedly to get the rest of the workflow states.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstTransitionPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstTransitionPosition.html new file mode 100644 index 0000000..52bcb86 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetFirstTransitionPosition.html @@ -0,0 +1,146 @@ + + + + + + GetFirstTransitionPosition Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstTransitionPosition Method (IEdmWorkflow6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetFirstTransitionPosition Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of the state transitions in this workflow. + + +

Syntax

Visual Basic 
Function GetFirstTransitionPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstTransitionPosition()
+
C++/CLI 
IEdmPos5^ GetFirstTransitionPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first workflow state transition in the enumeration
+ + + + +

Example

+

Remarks

After calling this method, pass the returned position of the first workflow state transition to IEdmWorkflow6::GetNextTransition to get the first workflow state transition in this list. Then call IEdmWorkflow6::GetNextTransition repeatedly to get the rest of the workflow state transitions.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextState.html new file mode 100644 index 0000000..171ea1b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextState.html @@ -0,0 +1,159 @@ + + + + + + GetNextState Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextState Method (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetNextState Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next workflow state in the list
+
+ +
+ +
+ + +
+
+ Gets the next workflow state in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextState( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmState6
+
C# 
IEdmState6 GetNextState( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmState6^ GetNextState( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next workflow state in the list
+ +

Return Value

IEdmState6
+ + +

Example

See the IEdmWorkflow6 examples. +
+ +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first workflow state in the list, IEdmPos5. Call IEdmWorkflow6::GetFirstStatePosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the workflow states in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmState6.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextTransition.html new file mode 100644 index 0000000..a40298b --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetNextTransition.html @@ -0,0 +1,161 @@ + + + + + + GetNextTransition Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextTransition Method (IEdmWorkflow6)
+ See Also  + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetNextTransition Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next workflow state transition in the list
+
+ +
+ +
+ + +
+
+ Gets the next workflow state transition in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextTransition( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmTransition6
+
C# 
IEdmTransition6 GetNextTransition( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmTransition6^ GetNextTransition( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next workflow state transition in the list
+ +

Return Value

IEdmTransition6
+ + + + +

Example

+

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first workflow state transition in the list, IEdmPos5. Call IEdmWorkflow6::GetFirstTransitionPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the workflow state transitions in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmTransition6.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetState.html new file mode 100644 index 0000000..f78e1ba --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetState.html @@ -0,0 +1,157 @@ + + + + + + GetState Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetState Method (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetState Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+
poIdOrName
+
ID or name of workflow state to get
+
+ +
+ +
+ + +
+
+ Gets the workflow state with the specified ID or name. + + +

Syntax

Visual Basic 
Function GetState( _
+   ByRef poIdOrName As System.Object _
+) As IEdmState6
+
C# 
IEdmState6 GetState( 
+   ref System.object poIdOrName
+)
+
C++/CLI 
IEdmState6^ GetState( 
+&   System.Object^% poIdOrName
+) 
+ +

Parameters

poIdOrName
+
ID or name of workflow state to get
+ +

Return Value

IEdmState6; Null if poIdOrName is invalid
+ + + + + +

Remarks

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmState6.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • S_FALSE: poIdOrName contains an invalid name. +
  • E_EDM_INVALID_ID: poIdOrName contain an invalid ID.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetTransition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetTransition.html new file mode 100644 index 0000000..e8cf85a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~GetTransition.html @@ -0,0 +1,156 @@ + + + + + + GetTransition Method (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetTransition Method (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : GetTransition Method (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+
lTransitionID
+
ID of workflow state transition to get
+
+ +
+ +
+ + +
+
+ Gets the workflow state transition with the specified ID. + + +

Syntax

Visual Basic 
Function GetTransition( _
+   ByVal lTransitionID As System.Integer _
+) As IEdmTransition6
+
C# 
IEdmTransition6 GetTransition( 
+   System.int lTransitionID
+)
+
C++/CLI 
IEdmTransition6^ GetTransition( 
+&   System.int lTransitionID
+) 
+ +

Parameters

lTransitionID
+
ID of workflow state transition to get
+ +

Return Value

IEdmTransition6
+ + + + + +

Remarks

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmTransition6.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_INVALID_ID: lTransitionID is invalid.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~InitialState.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~InitialState.html new file mode 100644 index 0000000..2b4f7b4 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflow6~InitialState.html @@ -0,0 +1,147 @@ + + + + + + InitialState Property (IEdmWorkflow6) + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
InitialState Property (IEdmWorkflow6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflow6 Interface + : InitialState Property (IEdmWorkflow6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Gets the state in which new files are placed when they are checked in the first time. + + +

Syntax

Visual Basic 
ReadOnly Property InitialState As IEdmState6
+
C# 
IEdmState6 InitialState {get;}
+
C++/CLI 
property IEdmState6^ InitialState {
+   IEdmState6^ get();
+}
+ + + +

Property Value

IEdmState6
+ + + + + + + + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6.html new file mode 100644 index 0000000..13d8300 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6.html @@ -0,0 +1,137 @@ + + + + + + IEdmWorkflowMgr6 Interface + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflowMgr6 Interface
+ See Also  + Members   + Example
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + : IEdmWorkflowMgr6 Interface
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+

Allows you to access the workflows installed in a file vault.

+
NOTE: Click the Members link, located near the top of the topic, to see this interface's methods and properties.
+

Syntax

Visual Basic 
Public Interface IEdmWorkflowMgr6 
+
C# 
public interface IEdmWorkflowMgr6 
+
C++/CLI 
public interface class IEdmWorkflowMgr6 
+
+ + + +

Example

+

Remarks

This interface inherits from IDispatch. See IDispatch Interface (Automation).

+

Accessors

+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_members.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_members.html new file mode 100644 index 0000000..b38a660 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_members.html @@ -0,0 +1,112 @@ + + + + + + IEdmWorkflowMgr6 Interface Members + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflowMgr6 Interface Members
+ See Also  + + + Methods  +
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflowMgr6 Interface
+
+ +
+ + +
+
+

The following tables list the members exposed by IEdmWorkflowMgr6.

+ + +

Public Methods

+ + +
 NameDescription
 MethodGetFirstWorkflowPositionStarts an enumeration of all the workflows in the vault.  
 MethodGetNextWorkflowGets the next workflow in an enumeration.  
Top
+ + + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_methods.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_methods.html new file mode 100644 index 0000000..054affd --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6_methods.html @@ -0,0 +1,104 @@ + + + + + + IEdmWorkflowMgr6 Interface Methods + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
IEdmWorkflowMgr6 Interface Methods
+ See Also 
+ + + + + + + +
  
+EPDM.Interop.epdm Namespace + : IEdmWorkflowMgr6 Interface
+
+ +
+ + +
+
+

For a list of all members of this type, see IEdmWorkflowMgr6 members.

+

Public Methods

+ + +
 NameDescription
 MethodGetFirstWorkflowPositionStarts an enumeration of all the workflows in the vault.  
 MethodGetNextWorkflowGets the next workflow in an enumeration.  
Top
+ +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetFirstWorkflowPosition.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetFirstWorkflowPosition.html new file mode 100644 index 0000000..39662c8 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetFirstWorkflowPosition.html @@ -0,0 +1,144 @@ + + + + + + GetFirstWorkflowPosition Method (IEdmWorkflowMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetFirstWorkflowPosition Method (IEdmWorkflowMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflowMgr6 Interface + : GetFirstWorkflowPosition Method (IEdmWorkflowMgr6)
+ +
+ + + +
+ +
+ + +
+
+ +
+ + +
+
+ Starts an enumeration of all the workflows in the vault. + + +

Syntax

Visual Basic 
Function GetFirstWorkflowPosition() As IEdmPos5
+
C# 
IEdmPos5 GetFirstWorkflowPosition()
+
C++/CLI 
IEdmPos5^ GetFirstWorkflowPosition(); 
+ + + +

Return Value

IEdmPos5; position of the first workflow in the enumeration
+ + +

Example

See the IEdmWorkflowMgr6 examples. +
+ +

Remarks

After calling this method, pass the returned position of the first workflow to IEdmWorkflowMgr6::GetNextWorkflow to get the first workflow in this list. Then call IEdmWorkflowMgr6::GetNextWorkflow repeatedly to get the rest of the workflows.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmPos5.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetNextWorkflow.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetNextWorkflow.html new file mode 100644 index 0000000..993889a --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmWorkflowMgr6~GetNextWorkflow.html @@ -0,0 +1,159 @@ + + + + + + GetNextWorkflow Method (IEdmWorkflowMgr6) + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
GetNextWorkflow Method (IEdmWorkflowMgr6)
+ See Also  +
+ + + + + + + +
+ + + + +
+EPDM.Interop.epdm Namespace + > IEdmWorkflowMgr6 Interface + : GetNextWorkflow Method (IEdmWorkflowMgr6)
+ +
+ + + +
+ +
+ + +
+
+
poPos
+
IEdmPos5; position of the next workflow in the list
+
+ +
+ +
+ + +
+
+ Gets the next workflow in an enumeration. + + +

Syntax

Visual Basic 
Function GetNextWorkflow( _
+   ByVal poPos As IEdmPos5 _
+) As IEdmWorkflow6
+
C# 
IEdmWorkflow6 GetNextWorkflow( 
+   IEdmPos5 poPos
+)
+
C++/CLI 
IEdmWorkflow6^ GetNextWorkflow( 
+&   IEdmPos5^ poPos
+) 
+ +

Parameters

poPos
+
IEdmPos5; position of the next workflow in the list
+ +

Return Value

IEdmWorkflow6
+ + +

Example

See the IEdmWorkflowMgr6 examples. +
+ +

Remarks

Before calling this method the first time, you must populate poPos with the interface to the position of the first workflow in the list, IEdmPos5. Call IEdmWorkflowMgr6::GetFirstWorkflowPosition to obtain poPos.

+

After calling this method the first time, poPos is automatically incremented every time it is called. Call this method repeatedly to obtain the rest of the workflows in the list.

+

Be sure to call IEdmPos5::IsNull before you call this method to ensure you have not reached the end of the enumeration.

+

C++ users not using smart-pointer wrapper functions must release the returned interface, IEdmWorkflow6.

+

Return codes: 

+
    +
  • S_OK: The method successfully executed. +
  • E_EDM_END_OF_LIST: You have gone past the end of the list.
  + +

See Also

+

Availability

SOLIDWORKS PDM Professional Version 6.0
+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace.html new file mode 100644 index 0000000..6629f8e --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace.html @@ -0,0 +1,509 @@ + + + + + + EPDM.Interop.epdm Namespace + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + +
SOLIDWORKS PDM Professional API HelpSend Feedback
EPDM.Interop.epdm Namespace
+ See Also  + Inheritance Hierarchy
+ + + + + + + +
+
+ +
+
+
+ SOLIDWORKS PDM Professional API +

Interfaces

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InterfaceDescription
IEdmAddCustomRefs

Allows you to create or manage user-defined file references.

IEdmAddCustomRefs2

Allows you to create or manage user-defined file references.

IEdmAddIn5

Allows you to create a SOLIDWORKS PDM Professional add-in.

IEdmAddInDrawButton5

Allows you to dynamically draw an add-in toolbar button.

IEdmAddInMgr5

Allows you to administer add-ins.

IEdmAddInMgr6

Allows you to administer add-ins.

IEdmAddInMgr7

Allows you to administer add-ins.

IEdmAddInMgr8

Allows you to administer add-ins.

IEdmAddInMgr9

Allows you to administer add-ins.

IEdmAttribute5

Allows access to a file attribute that is used when data is transferred between a file data card and a file.

IEdmBatchAdd

Allows you to add several files and folders to the vault at once.

IEdmBatchAdd2

Allows you to display a dialog box with information about several files and folders being added to the vault all at once.

IEdmBatchAddFolders

Allows you to add several folders to the vault all at once.

IEdmBatchChangeState

Allows you to change states or revoke transitions of several files at once.

IEdmBatchChangeState2

Allows you to change states or revoke transitions of several files at once.

IEdmBatchChangeState3

Allows you to change states or revoke transitions of several files all at once.

IEdmBatchChangeState4

Allows you to change states or revoke transitions of several files all at once.

IEdmBatchChangeState5

Allows you to change states or revoke transitions of several files all at once.

IEdmBatchChangeState6

Allows you to change states or revoke transitions of several files all at once.

IEdmBatchDelete

Allows you to delete several files and folders from the vault at once.

IEdmBatchDelete2

Allows you to delete several files and folders from the vault at once.

IEdmBatchDelete3

Allows you to delete several files and folders from the vault all at once.

IEdmBatchGet

Allows you to get several files from the vault all at once.

IEdmBatchItemGeneration

Allows you to generate items from a file structure.

IEdmBatchItemGeneration2

Allows you to generate several items from file structures all at once.

IEdmBatchItemReferenceUpdate

Allows you to add or remove several item references all at once.

IEdmBatchListing

Allows you to create a listing of various file or folder properties.

IEdmBatchListing2

Allows you to create a listing of various file or folder properties and specify from which configuration file the variables should be read.

IEdmBatchListing3

Allows you to create a listing of several file, folder, or internal component properties all at once.

IEdmBatchListing4

Allows you to create a listing of several file, folder, or internal component properties all at once.

IEdmBatchRefVars

Allows you to access several file reference variables all at once.

IEdmBatchUnlock

Allows you to unlock, check in, or undo check-outs of multiple files all at once.

IEdmBatchUnlock2

Allows you to unlock, check in, or undo check-outs of multiple files all at once.

IEdmBatchUpdate

Allows you to set the values of several file and folder card variables all at once.

IEdmBatchUpdate2

Allows you to set the values of several file and folder card variables all at once.

IEdmBitmap5

Allows you to access a bitmap image.

IEdmBom

Allows you to access a Bill of Materials (BOM).

IEdmBomCell

Allows you to access a single row in a Bill of Materials (BOM).

IEdmBomCell2

Allows you to access a single row in a Bill of Materials (BOM).

IEdmBomMgr

Allows you to access the Bill of Materials (BOM) layouts installed in a vault.

IEdmBomMgr2

Allows you to access the Bill of Materials (BOM) layouts installed in a vault.

IEdmBomMgr3 Allows you to add a SOLIDWORKS Bill of Materials (BOM) to a non-SOLIDWORKS document.
IEdmBomView

Allows you to access a Bill of Materials (BOM) view.

IEdmBomView2

Allows you to access a Bill of Materials (BOM) view.

IEdmBomView3

Allows you to access a Bill of Materials (BOM) view.

IEdmBomView4

Allows you to access a Bill of Materials (BOM) view.

IEdmCallback

Monitors the progress of a supported API operation.

IEdmCallback6

Monitors the progress of a supported API operation.

IEdmCallback8

Monitors the progress of a supported API operation.

IEdmCard5

Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor.

IEdmCard6

Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor.

IEdmCard7 Allows you to access the file or folder data card that is created with the SOLIDWORKS PDM Professional's Card Editor.
IEdmCardControl5

Allows you to access a control in a file or folder data card.

IEdmCardControl6

Allows you to access a control in a file or folder data card.

IEdmCardControl7

Allows you to access a control in a file or folder data card.

IEdmCardView5

Allows you to create a window containing a file or folder data card that you can edit.

IEdmCardView6

Allows you to create a window containing a file or folder data card that you can edit.

IEdmCardView61

Allows you to create a window containing a file or folder data card that you can edit.

IEdmCardView63

Allows you to create a window containing a file or folder data card that you can edit.

IEdmCardView64

Allows you to create a window containing a file or folder data card that you can edit.

IEdmCardViewCallback6

Handles customized loading and saving of data in a card view.

IEdmCategory6

Allows you to access a category.

IEdmCategoryMgr6

Allows you to access all of the categories that have been set up in a vault.

IEdmClearLocalCache

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

IEdmClearLocalCache2

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

IEdmClearLocalCache3

Removes specified checked-in files and folders from the local file vault view cache. Only files that are not referenced by checked-out files are cleared.

IEdmCmdMgr5

Allows you to add menu commands, toolbar buttons, and command hooks to SOLIDWORKS PDM Professional.

IEdmCmdMgr6

Allows you to add menu commands, toolbar buttons, and command hooks to SOLIDWORKS PDM Professional.

IEdmCmdNode

Allows you to access a file changing state.

IEdmData

Allows you to access the properties of an object created by a template.

IEdmDictionary5

Allows you to access key-value pairs of data in the SOLIDWORKS PDM Professional database.

IEdmEnum

Allows you to access and enumerate a list of elements.

IEdmEnumeratorCustomReference5

Allows you to access custom file references.

IEdmEnumeratorCustomReference6

Allows you to access user-defined file references.

IEdmEnumeratorCustomReference7

Allows you to access user-defined file references.

IEdmEnumeratorVariable10

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVariable5

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVariable6

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVariable7

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVariable8

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVariable9

Allows you to access the contents of a file or folder data card.

IEdmEnumeratorVersion5

Allows you to access the versions and revisions of a file.

IEdmEnumeratorVersion6

Allows you to access the versions and revisions of a file.

IEdmEnumeratorVersion7

Allows you to access the versions and revisions of a file.

IEdmFile10

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile11

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile12

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile13

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile14

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile15

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile16

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile17

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile18

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile5

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile6

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile7

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile8

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFile9

Allows you to access a file in SOLIDWORKS PDM Professional.

IEdmFindUser

Allows you to search for users in the vault.

IEdmFolder10 Allows you to access the contents of a file system folder in the vault.
IEdmFolder11 Allows you to access the contents of a file system folder in the vault.
IEdmFolder12 Allows you to access the contents of a file system folder in the vault.
IEdmFolder13 Allows you to access the contents of a file system folder in the vault.
IEdmFolder5

Allows you to access the contents of a file system folder in the vault.

IEdmFolder6

Allows you to access the contents of a file system folder in the vault.

IEdmFolder7

Allows you to access the contents of a file system folder in the vault.

IEdmFolder8 Allows you to access the contents of a file system folder in the vault.
IEdmFolder9 Allows you to access the contents of a file system folder in the vault.
IEdmFolderData5

Allows you to specify user and group permissions and file data cards when creating a folder with IEdmFolder5::AddFolder.

IEdmGetCSVersionDialog

Allows you to restore files in cold storage.

IEdmGetOpCallback

Controls and monitors IEdmBatchGet operations.

IEdmGetOpCallback2

Controls and monitors IEdmBatchGet operations.

IEdmGetOpCallback3

Controls and monitors IEdmBatchGet operations.

IEdmHistory

Allows you to access the history listing of files or folders.

IEdmHistory2

Allows you to access the history listing of files or folders.

IEdmHistory3

Allows you to access the sorted history listing of files or folders.

IEdmHistoryUpdate

Allows you to access the version and revision comments of files.

IEdmImage

Allows you to paint an image on a window.

IEdmInbox5

Allows you to access the messages sent to a user.

IEdmItem

Allows you to access an item.

IEdmLabel5

Allows you to access a file or folder label.

IEdmLabel6

Allows you to access a file or folder label.

IEdmMenu5

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

IEdmMenu6

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

IEdmMenu7

Allows you to add add-ins registered in SOLIDWORKS PDM Professional to your own menus and toolbars.

IEdmMessage5

Allows you to encapsulate a single message in the inbox.

IEdmObject5

Contains several properties and methods that are common to all derived interfaces.

IEdmPos5

Allows you to identify the position of an element in a list of elements.

IEdmRawReferenceMgr

Allows you to update file reference paths directly in the checked-out files.

IEdmReference10

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmReference5

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmReference6

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmReference7

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmReference8

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmReference9

Allows you to enumerate referenced and referencing files and set up user-defined references.

IEdmRefItem

Allows you to access an item in an IEdmRefItemContainer.

IEdmRefItem2 Allows you to access an item in an IEdmRefItemContainer.
IEdmRefItemContainer

Allows you to access items in file reference dialogs.

IEdmRevision5

Allows you to access a single revision of a file.

IEdmRevision6

Allows you to access a single revision of a file.

IEdmRevision7

Allows you to access a single revision of a file.

IEdmRevisionMgr

Allows you to update revision numbers on many files all at once.

IEdmRevisionMgr2

Allows you to update revision numbers on many files all at once.

IEdmRevisionMgr3

Allows you to update revision numbers on many files all at once.

IEdmSearch10

Allows you to quickly find files or folders.

IEdmSearch5

Allows you to quickly find files or folders.

IEdmSearch6

Allows you to quickly find files or folders.

IEdmSearch7

Allows you to quickly find files or folders.

IEdmSearch8

Allows you to quickly find files or folders.

IEdmSearch9

Allows you to quickly find files or folders.

IEdmSearchResult5

Allows you to access a search result.

IEdmSearchResult6

Allows you to access a search result.

IEdmSelectionList5

Allows you to access a list of files or folders.

IEdmSelectionList6

Allows you to access a list of objects of any EdmObjectType.

IEdmSerNoGen6

Obsolete. Superseded by IEdmSerNoGen7.

IEdmSerNoGen7

Allows you to manage serial numbers.

IEdmSerNoGen8

Allows you to manage serial numbers.

IEdmSerNoValue

Allows you to access the serial number generated by IEdmSerNoGen7::AllocSerNoValue.

IEdmState5

Allows you to access a workflow state.

IEdmState6

Allows you to access a workflow state.

IEdmState7

Allows you to access a workflow state.

IEdmStrLst5

Allows you to access a list of arbitrary strings.

IEdmSWBom Allows you to access a SOLIDWORKS BOM.
IEdmSWBomCell Allows you to access a cell in a custom SOLIDWORKS BOM table.
IEdmSWBomColumn Allows you to access a column in a custom SOLIDWORKS BOM table.
IEdmSWBomRow Allows you to access a row in a custom SOLIDWORKS BOM table.
IEdmTaskInstance

Allows you to access the task instance of an add-in.

IEdmTaskMgr Allows you to manage task add-ins.
IEdmTaskProperties

Allows you to access the task definition of an add-in.

IEdmTemplate5

Allows you to access a single template.

IEdmTemplate53

Allows you to access a single template.

IEdmTemplate6

Allows you to access a single template.

IEdmTemplateMgr5

Allows you to access the templates installed in the file vault.

IEdmTransition10

Allows you to access a workflow transition.

IEdmTransition5

Allows you to access a workflow transition.

IEdmTransition6

Allows you to access a workflow transition.

IEdmTransition7

Allows you to access a workflow transition.

IEdmTransition8

Allows you to access a workflow transition.

IEdmTransition9

Allows you to access a workflow transition.

IEdmUnlockOpCallback

Allows you to access information and gain control of IEdmBatchUnlock operations.

IEdmUpdateReferences

Allows you to mend broken file references.

IEdmUser10

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser11

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser5

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser6

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser7

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser8

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUser9

Allows you to access a user in SOLIDWORKS PDM Professional.

IEdmUserGroup5

Allows you to access a user group in SOLIDWORKS PDM Professional.

IEdmUserGroup6

Allows you to access a user group in SOLIDWORKS PDM Professional.

IEdmUserGroup7

Allows you to access a user group in SOLIDWORKS PDM Professional.

IEdmUserGroup8

Allows you to access a user group in SOLIDWORKS PDM Professional.

IEdmUserGroup9

Allows you to access a user group in SOLIDWORKS PDM Professional.

IEdmUserMgr10

Allows you to access the users and user groups in the vault.

IEdmUserMgr5

Allows you to access the users and user groups in the vault.

IEdmUserMgr6

Obsolete. Superseded by IEdmUserMgr7.

IEdmUserMgr7

Allows you to access the users and user groups in the vault.

IEdmUserMgr8

Allows you to access the users and user groups in the vault.

IEdmUserMgr9

Allows you to access the users and user groups in the vault.

IEdmVariable5

Allows you to access a variable on a file or folder data card.

IEdmVariableMgr5

Allows you to manage the file and folder data card variables set up in the Card Editor.

IEdmVariableMgr6

Allows you to manage the file and folder data card variables set up in the Card Editor.

IEdmVariableMgr7

Allows you to manage the file and folder data card variables set up in the Card Editor.

IEdmVariableValue5

Allows you to access the values of file and folder data card variables.

IEdmVariableValue6

Allows you to access the values of file and folder data card variables.

IEdmVault10

Allows you to access a file vault.

IEdmVault11

Allows you to access a file vault.

IEdmVault12

Allows you to access a file vault.

IEdmVault13

Allows you to access a file vault.

IEdmVault14

Allows you to access a file vault.

IEdmVault15

Allows you to access a file vault.

IEdmVault16   +

Allows you to access a file vault.

IEdmVault17

Allows you to access a file vault.

IEdmVault18

Allows you to access a file vault.

IEdmVault19

Allows you to access a file vault.

IEdmVault20

Allows you to access a file vault.

IEdmVault21

Allows you to access a file vault.

IEdmVault22

Allows you to access a file vault.

IEdmVault5

Allows you to access a file vault.

IEdmVault6

Allows you to access a file vault.

IEdmVault7

Allows you to access a file vault.

IEdmVault8

Allows you to access a file vault.

IEdmVault9

Allows you to access a file vault.

IEdmVersion5

Allows you to access the version of a file.

IEdmVersion6

Allows you to access the version of a file.

IEdmVersion7

Allows you to access the version of a file.

IEdmVersion8

Allows you to access the version of a file.

IEdmWorkflow5

Obsolete. Superseded by IEdmWorkflow6.

IEdmWorkflow6

Allows you to access a workflow set up using SOLIDWORKS PDM Professional's Workflow Editor.

IEdmWorkflowMgr6

Allows you to access the workflows installed in a file vault.

+

Structures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StructureDescription
EdmAddFileInfo Contains information about a file.
EdmAddInFileInfo Contains information about a single file in an add-in package.
EdmAddInInfo Provides SOLIDWORKS PDM Professional with information about your add-in. 
EdmAddInInfo2 Provides SOLIDWORKS PDM Professional with information about your add-in.
EdmAddInMenuInfo Contains information about a menu command implemented by an add-in.
EdmAttributeData Contains information about an attribute mapping in a variable (EdmVariableData).
EdmBatchDelErrInfo Contains information about an error that occurred during execution of IEdmBatchDelete::CommitDelete.
EdmBatchError Contains error information.
EdmBatchError2 Contains error information.
EdmBomColumn Contains information about a single column in a Bill of Materials.
EdmBomInfo Contains information about a Bill of Materials.
EdmBomLayout Contains information about a Bill of Materials layout.
EdmBomLayout2 Contains information about a Bill of Materials layout.
EdmBomVersion Contains information about a Bill of Materials version, revision, or label.
EdmBrokenParentInfo Contains broken parent information.
EdmCardViewParams Contains card view parameters.
EdmChangeStateTransitionInfo Workflow state transition information.
EdmCheckRef Contains information about a file reference.
EdmCmd Contains the kind of command issued and information common to all files and folders affected by the command.
EdmCmdData Contains command data.
EdmCmdInfo Contains information about menu command items.
EdmColumnSet Contains information about a column set's name and ID.
EdmCopyTreeOptions Contains options for copying an assembly tree of files to a destination folder.
EdmDeletedItems Contains information about deleted items.
EdmDocIDs Contains information about one document in the vault; used in IEdmVault20::GetFiles.
EdmFileInfo Information about a file or folder that is added to or removed from the vault.
EdmFolderInfo Information about a folder that is added to the vault.
EdmFolderPermission Contains permission settings.
EdmGenItemInfo Contains information about generated items.
EdmGetVarData Contains extra file information.
EdmGroupData Contains information about a user group.
EdmGroupData2 Contains information about a user group.
EdmHistoryItem Contains a history item.
EdmItemRef Contains information about an item reference.
EdmLicense Contains information about a license type and is returned by IEdmVault11::GetLicense.
EdmListCol Contains information about a column in a file listing.
EdmListFile Holds information about a file returned by the IEdmBatchListing::GetFiles method.
EdmListFile2 Holds information about a file returned by the IEdmBatchListing4::GetFiles2 method.
EdmListFolder Contains information about a folder returned from IEdmBatchListing::GetFolders.
EdmListRef Contains information about file references.
EdmMemberFolder Adds a user as a member of a group to a specific folder.
EdmObjectInfo Use in calls to IEdmVault9::GetObjects.
EdmPoint Holds a point.
EdmRawReference Contains information about a file reference.
EdmRect Encapsulates a rectangle and is identical to the Win32 RECT struct.
EdmRefVar Holds information about a single file reference variable; i.e., a variable stored on the reference relationship between an assembly file and one of its part files.
EdmRevComponent Obsolete. Superseded by EdmRevComponent2.
EdmRevComponent2 Holds information about a single revision number component.
EdmRevCounter Used in calls to IEdmRevisionMgr::SetRevisionCounters, this structure holds information about a single counter.
EdmRevError Returned from IEdmRevisionMgr::Commit if something goes wrong when incrementing the revision number on a file.
EdmRevNo Holds information about a revision number and is returned from IEdmRevisionMgr2::GetRevisionNumbers..
EdmSelectionObject Contains data returned from IEdmSelectionList6::GetNext2.
EdmSelItem Contains information about one selected file; e.g., used with IEdmBatchUnlock::AddSelection.
EdmSelItem2 Contains information about a selected item.
EdmSimpleXRefInfo Contains cross-reference information.
EdmStatePermission Contains state permission information.
EdmTaskInfo Used by IEdmTaskMgr::RunTask.
EdmTaskMenuCmd Used by IEdmTaskProperties::SetMenuCmds when an add-in adds menu commands to launch a task.
EdmTaskSel Passed as argument to IEdmTaskProperties::SetSel.
EdmTaskSetupPage Used by the method IEdmTaskProperties::SetSetupPages.
EdmTransitionPermission Contains transition permission information.
EdmUnlockErrInfo Contains extended information about an error message. 
EdmUpdatedRefPath Contains old and new path information for references that are moved or renamed by another client.
EdmUserData Obsolete. Superseded by EdmUserData2 in SOLIDWORKS PDM Professional 2010 and later.
EdmUserData2 Contains information about a user to be created.
EdmUserDataEx Contains information about a user.
EdmVariableData Contains information about a variable created with IEdmVariableMgr6::AddVariables.
EdmVarVal Passed to IEdmBatchItemGeneration2::AddSelection2 to update a variable value.
EdmViewInfo Contains information about a file vault view.
EdmWorkflowInfo Holds information about a file's workflow state.
+ +

Enumerations

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EnumerationDescription
CreateMenuFlags Types of menu used in calls to IEdmVault5::CreatePluginMenu. Bitmask.
EdmAddAddInFlags Options for adding add-ins. Used by IEdmAddInMgr5::AddAddIns.
EdmAddCallbackMsgID Message IDs used in the message box during an add operation.
EdmAddFileDlgFlag Flags used in IEdmBatchAdd2::ShowDlg to control the appearance of the dialog box.
EdmAddFlag Options for adding a file to a folder to the vault, copying a file or folder within the vault, or copying/moving a tree of files and folders. Bitmask.
EdmAddInFileInfoFlags Types of file in the add-in package used in EdmAddInFileInfo. Bitmask.
EdmBatchAddFlag Flags used by IEdmBatchAdd::CommitAdd.
EdmBatchAddFolderFlag Flags used by IEdmBatchAddFolders::AddFolder to specify the behavior of the added folder.
EdmBatchCreateFolderFlag Flags used by IEdmBatchAddFolders::Create.
EdmBatchFlags Flags used in IEdmBatchUpdate::SetVar and IEdmBatchUpdate2::SetFolderVar to control the behavior of IEdmBatchUpdate and IEdmBatchUpdate2Bitmask.
EdmBomColumnType Types of Bill of Material (BOM) column content; specified in EdmBomColumn and in calls to IEdmBomCell:GetVar, and IEdmBomCell::SetVar.
EdmBomFlag Bill of Materials options used in calls to IEdmFile7::GetComputedBOM. Bitmask.
EdmBomInsertRowOption Bill of Materials row insertion options for IEdmBomView2::InsertRow.
EdmBomSetVarOption Types of value passed in IEdmBomCell::SetVar.
EdmBomType Types of BOM passed in EdmBomInfo and EdmBomLayout2 structures.
EdmBomVersionType Types of content specified in EdmBomVersion.meType.
EdmBrowseFlag Browse options used in calls to IEdmVault5::BrowseForFile. Bitmask.
EdmBrowseForFolderFlag Browse options used in calls to IEdmVault11::BrowseForFolder2.
EdmButtonState States of a toolbar button; used in calls to IEdmAddInDrawButton5:DrawToolbarButton, IEdmCmdMgr5::AddToolbarImage, and IEdmMenu5::GetButtonImages.
EdmCardControlType File or folder data card control types; used in calls to IEdmCardControl5::ControlType.
EdmCardFlag Options for file data card behavior used in EdmCmdData; use these flags to tell SOLIDWORKS PDM Professional what to do when IEdmAddIn5::OnCmd returns.
EdmCardType Types of data card used in calls to IEdmVault6::GetCardID.
EdmCardViewFlag Options for appearance and functionality of card views created with IEdmVault10::CreateCardViewEx2 and IEdmFolder10::CreateCardView2. Bitmask.
EdmCardViewUpdateType Card control update types; used in calls to IEdmCardView63::Update.
EdmChangeStateFileListFlag Options for returning files when making calls to IEdmBatchChangeState::GetFileList. Bitmask.
EdmClientType Types of SOLIDWORKS PDM Professional client; used in calls to IEdmVault8::ClientType.
EdmCmdNodeProp Types of command node property; used in calls to IEdmCmdNode::GetProperty.
EdmCmdType Reasons for SOLIDWORKS PDM Professional to call IEdmAddIn5::OnCmd.
EdmColType Types of file listing column content; specified in the EdmListCol structure.
EdmCopyFlag Options for copying files when making calls to IEdmFolder5::CopyFile. Bitmask.
EdmCopyType Types of file copy operations.
EdmCreateListExFlags Options for creating lists used in calls to IEdmBatchListing2::CreateListEx. Bitmask.
EdmCreateReferenceFlags Options for creating custom references used in calls to IEdmAddCustomRefs::CreateTree.
EdmCreateVaultFlag Options for creating new vaults used in calls to IEdmVault11::CreateNewVault.
EdmCreateVaultViewFlag Options for creating vault views used in calls to IEdmVault11::CreateNewVaultView.
EdmDataPropertyType Property types; used in calls to IEdmData::Get and IEdmData::Set.
EdmDataType Data types; used in calls to IEdmData::Type.
EdmDefaultValueType Default value types in SOLIDWORKS PDM Professional; used in calls to IEdmCardViewCallback6::GetCtrlData.
EdmDefValComp Return options when calling IEdmCardViewCallback6::GetDefaultValueComponent.
EdmFileType Types of SOLIDWORKS PDM Professional file; used in calls to IEdmFile8::FileType.
EdmFindUserProp Properties to get or set when calling IEdmFindUser::GetPropt and IEdmFindUser::SetPropt.
EdmFolderHistoryFlag Options for adding folders when calling IEdmHistory::AddFolder. Bitmask.
EdmFolderInfoFlag Return codes in EdmFolderInfo which is returned from IEdmBatchAddFolders::Create.
EdmGetCmdFlags Options for retrieving files from the vault used in calls to IEdmBatchGet::CreateTree. Bitmask.
EdmGetConfirmReason Types of confirmation to specify when calling IEdmGetOpCallback::ConfirmReplace.
EdmGetFileListFlag Files to return by IEdmBatchGet::GetFileList. Bitmask.
EdmGetFlag Options for retrieving files used in calls to IEdmFile5::GetFileCopy, IEdmEnumeratorVersion5::GetFileCopy, IEdmVersion5::GetFileCopy, and IEdmRevision5::GetFileCopy. Bitmask.
EdmGetMenuInfoFlags Flags returned from IEdmSearch7::GetMenuInfo.
EdmGetMsgFlag Types of message returned used in calls to IEdmInbox5::GetFirstMessagePosition.
EdmGetOpError Cold storage file retrieval error codes; used in calls to IEdmGetOpCallback2::ReportFailureEx.
EdmGetOpMsg Log error messages; used in calls to IEdmGetOpCallback::LogMessage.
EdmGetOpReply Options for continuing with a command; returned from IEdmGetOpCallback2::ReportFailureEx.
EdmGetPermFlag Options for returning folder permissions used in calls to IEdmUserMgr7::GetFolderPermissions.
EdmGetVarDataFlag Options specified in EdmGetVarData to describe a file. Bitmask.
EdmGroupDataFlags Options specified in EdmGroupData used by IEdmUserMgr6::AddGroups to create new groups.
EdmGroupSetting User group settings used by IEdmUserGroup9::SetSettingsVar.
EdmHistoryType Types of history record; used by the IEdmHistory interface. Bitmask.
EdmIncRevFlags Increment revisions used in IEdmFile5::IncrementRevision. Bitmask.
EdmInstallFileFlags Operations used in calls to IEdmVault12::InstallFile to control the installation of data.
EdmItemGenerationFlags Flags that control the behavior of IEdmBatchItemGeneration::CreateTree
EdmItemLinkType Types of linked files to items.
EdmLangCode Localization language used in IEdmHistory3::GetEventDescription.
EdmLanguage Types of languages; used by IEdmVault5::Language.
EdmLaunchSearchFlags Flags which control the behavior of IEdmSearch7::LaunchApp.
EdmLibVer Type library and SOLIDWORKS PDM version numbers.
EdmLicenseType Types of license types, which are used in struct EdmLicense.
EdmListFileFlags Flags passed to IEdmBatchListing::AddFile. Bitmask.
EdmListFolderFlags Flags used in calls to IEdmBatchListing::AddFolder to tell how to add the folder to the list.
EdmListRetFileFlag Flags returned in an IEdmBatchListing column if you specify column type EdmCol_EdmListRetFileFlag.
EdmLockFlag Flags used in IEdmFile5::LockFile. Bitmask.
EdmMBoxResult Types of clicked button returned by IEdmVault5::MsgBox.
EdmMBoxType Types of widget to insert or display in IEdmVault5::MsgBox. Bitmask.
EdmMenuFlags Flags used by IEdmCmdMgr5::AddCmd when writing an add-in that supports menu commands. Bitmask
EdmMenuStrType Types of arguments sent to IEdmMenu5::GetString to specify which string to return.
EdmMsgType Types of messages sent to a user.
EdmObjectType

Types of objects returned by IEdmObject5::ObjectTypeIEdmFile5::ObjectType, and IEdmFolder5::ObjectType.

EdmProgressType Types of progress bars that are affected by certain operations.
EdmRawRefFlags Flags used in EdmRawReference. Bitmask.
EdmRefFlags Types of item reference. Bitmask.
EdmRefItemProperty Types of property that can be accessed in IEdmRefItem objects via IEdmRefItem::GetProperty and IEdmRefItem::SetProperty.
EdmRefItemType Items to return from IEdmRefItemContainer::GetItems.
EdmRefreshFlag Flags that cause SOLIDWORKS PDM Professional to refresh elements of the user interface. Bitmask.
EdmRefType Types of references to return from IEdmRefItem::GetRefs.
EdmRepaintType Types of flags passed into IEdmImage::Reposition to control how to handle repainting of the background window.
EdmResolveAction Types of flags that you return to SOLIDWORKS PDM Professional from IEdmCallback6::Resolve. Bitmask.
EdmResolveReason Types of flags, which contain the reason for the function call, to pass to your implementation of IEdmCallback6::ResolveBitmask.
EdmRevComponentFlags Flags used to control the members of the struct EdmRevComponent2. Bitmask.
EdmRightFlags Flags used in calls to IEdmFolder5::HasRights and IEdmFolder5::HasRightsEx to check user rights. Bitmask.
EdmSearchToken Values that determine which search criteria to set.
EdmStateFlags Flags used in calls to IEdmFile5::ChangeState to set options for the operation. Bitmask.
EdmSysPerm Types of system permissions for a user or group.
EdmSysRightFlags Obsolete. Superseded by EdmSysPerm.
EdmTaskFlag Task add-in flags used in IEdmTaskProperties::TaskFlags and EdmTaskInfo. Bitmask.
EdmTaskStatus Task add-in statuses.
EdmTransitionRightFlags Transition permission flags.
EdmTransitionType Types of transitions.
EdmUnlockBuildTreeFlags Flags used to control the creation of the check-in file tree created by the IEdmBatchUnlock interface. Bitmask.
EdmUnlockEvent Types of check-in command passed to the IEdmUnlockOpCallback interface to notify the caller about what is happening while checking in files with the IEdmBatchUnlock interface.
EdmUnlockEventMsg Type of check-in commands passed to IEdmUnlockOpCallback while checking in files with the IEdmBatchUnlock interface in order to notify the caller about the progress of the operation.
EdmUnlockFileListFlag Flags telling IEdmBatchUnlock::GetFileList what kind of files to get. Bitmask.
EdmUnlockFlag Flags used in IEdmFile5::UnlockFile to control the behavior of the check-in operation. Bitmask.
EdmUnlockOpMsg Types of constant passed to IEdmUnlockOpCallback::MsgBox when the caller should either display a message to the user or process the message in some other way.
EdmUnlockOpReply Types of operations returned from your IEdmUnlockOpCallback::MsgBox method if you implement an IEdmUnlockOpCallback interface to use with the IEdmBatchUnlock interface.
EdmUnlockStatusFlag Statuses returned by IEdmBatchUnlock2::GetStatus.
EdmUserDataExFlag Flags that tell which members of EdmUserDataEx are valid. Bitmask.
EdmUserDataFlags Flags used in EdmUserData's mlFlags field when adding users with IEdmUserMgr6::AddUsers.
EdmUserPictureFlag Flags that are passed in the lEdmUserPictureFlags argument of  IEdmUserMgr8::CreateUserPicture.
EdmUserSetting User settings used by IEdmUser11::SetSettingsVar.
EdmUserType Type of user passed in UserType of IEdmUserMgr10::AddUsers3.
EdmUtility Constants that are passed to the IEdmVault7::CreateUtility to create utility interfaces of various kinds.
EdmVariableFlags Flags that set the style of variables used in file and folder data cards. Bitmask.
EdmVariableType Constants that identify the data type of a variable.
EdmVarOp Operators for variable searches.
EdmVaultType Vault types.
+ + +

See Also

+
+ + +
+ + \ No newline at end of file diff --git a/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace_hierarchy.html b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace_hierarchy.html new file mode 100644 index 0000000..40f8a67 --- /dev/null +++ b/documentation/api_extracted/EPDM.Interop.epdm~EPDM.Interop.epdm_namespace_hierarchy.html @@ -0,0 +1,103 @@ + + + + + + EPDM.Interop.epdm Namespace Inheritance Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + SOLIDWORKS PDM Professional API Help + + + + Send Feedback
+ + EPDM.Interop.epdm Namespace Inheritance Hierarchy + +
+ See Also +
+ + + + +
+ + + + + +
+ +
+ +
+
+
+
+

Inheritance Hierarchy

System.Object
   System.ValueType
      EPDM.Interop.epdm.EdmAddFileInfo
      EPDM.Interop.epdm.EdmAddInFileInfo
      EPDM.Interop.epdm.EdmAddInInfo
      EPDM.Interop.epdm.EdmAddInInfo2
      EPDM.Interop.epdm.EdmAddInMenuInfo
      EPDM.Interop.epdm.EdmAttributeData
      EPDM.Interop.epdm.EdmBatchDelErrInfo
      EPDM.Interop.epdm.EdmBatchError
      EPDM.Interop.epdm.EdmBatchError2
      EPDM.Interop.epdm.EdmBomColumn
      EPDM.Interop.epdm.EdmBomInfo
      EPDM.Interop.epdm.EdmBomLayout
      EPDM.Interop.epdm.EdmBomLayout2
      EPDM.Interop.epdm.EdmBomVersion
      EPDM.Interop.epdm.EdmBrokenParentInfo
      EPDM.Interop.epdm.EdmCardViewParams
      EPDM.Interop.epdm.EdmChangeStateTransitionInfo
      EPDM.Interop.epdm.EdmCheckRef
      EPDM.Interop.epdm.EdmCmd
      EPDM.Interop.epdm.EdmCmdData
      EPDM.Interop.epdm.EdmCmdInfo
      EPDM.Interop.epdm.EdmColumnSet
      EPDM.Interop.epdm.EdmCopyTreeOptions
      EPDM.Interop.epdm.EdmDeletedItems
      EPDM.Interop.epdm.EdmDocIDs
      EPDM.Interop.epdm.EdmFileInfo
      EPDM.Interop.epdm.EdmFolderInfo
      EPDM.Interop.epdm.EdmFolderPermission
      EPDM.Interop.epdm.EdmGenItemInfo
      EPDM.Interop.epdm.EdmGetVarData
      EPDM.Interop.epdm.EdmGroupData
      EPDM.Interop.epdm.EdmGroupData2
      EPDM.Interop.epdm.EdmHistoryItem
      EPDM.Interop.epdm.EdmItemRef
      EPDM.Interop.epdm.EdmLicense
      EPDM.Interop.epdm.EdmListCol
      EPDM.Interop.epdm.EdmListFile
      EPDM.Interop.epdm.EdmListFile2
      EPDM.Interop.epdm.EdmListFolder
      EPDM.Interop.epdm.EdmListRef
      EPDM.Interop.epdm.EdmMemberFolder
      EPDM.Interop.epdm.EdmObjectInfo
      EPDM.Interop.epdm.EdmPoint
      EPDM.Interop.epdm.EdmRawReference
      EPDM.Interop.epdm.EdmRect
      EPDM.Interop.epdm.EdmRefVar
      EPDM.Interop.epdm.EdmRevComponent
      EPDM.Interop.epdm.EdmRevComponent2
      EPDM.Interop.epdm.EdmRevCounter
      EPDM.Interop.epdm.EdmRevError
      EPDM.Interop.epdm.EdmRevNo
      EPDM.Interop.epdm.EdmSelectionObject
      EPDM.Interop.epdm.EdmSelItem
      EPDM.Interop.epdm.EdmSelItem2
      EPDM.Interop.epdm.EdmSimpleXRefInfo
      EPDM.Interop.epdm.EdmStatePermission
      EPDM.Interop.epdm.EdmTaskInfo
      EPDM.Interop.epdm.EdmTaskMenuCmd
      EPDM.Interop.epdm.EdmTaskSel
      EPDM.Interop.epdm.EdmTaskSetupPage
      EPDM.Interop.epdm.EdmTransitionPermission
      EPDM.Interop.epdm.EdmUnlockErrInfo
      EPDM.Interop.epdm.EdmUpdatedRefPath
      EPDM.Interop.epdm.EdmUserData
      EPDM.Interop.epdm.EdmUserData2
      EPDM.Interop.epdm.EdmUserDataEx
      EPDM.Interop.epdm.EdmVariableData
      EPDM.Interop.epdm.EdmVarVal
      EPDM.Interop.epdm.EdmViewInfo
      EPDM.Interop.epdm.EdmWorkflowInfo
+ +

See Also

+
+ +
+ + + \ No newline at end of file diff --git a/documentation/api_extracted/EditAuthor.gif b/documentation/api_extracted/EditAuthor.gif new file mode 100644 index 0000000000000000000000000000000000000000..825dde67a18d1204741ac8e23a1bfa2ccb6b8f29 GIT binary patch literal 4689 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%0APk=)gdm&2$Oq8rJ7Gy4mKi&5WLPGvp7*9XMA6VW zGz^dC;!Ptr-Op-Du(eA6)jQS}|Hw5U-8}oT9fCGz9DeO!=AQ?{pEy1u< zV8-8wN>9V*rw0^#aVi{iAS?48UFQ|{9VnD<7Jfq{UCwzt+h6$6o4!4e{?;kupm)|Z zqM&!ZpfjmxFQH&RCgc!K^C#&OfDmegD>l~1H?$5xEEXQa%HWOMG%Iw2Oh z`DX@ltTaMwOmlw4vEd3G?P#slv|!lD5X!9`{L4yG|Gyt zD}r$qr31_#@WOJ9(!$9KPiY0)x}?s!@(ixBvALL%Td7}B>Ljh~(5dROuIk2B^$@E1 za;pZKs|KYRjSH0?I;@x0tZ^JmNMKFmvL>5ZZzfqH3hj+IV^4ELns@aap?W^Ida=2B zd9r#%TD_`MW3i{YSBc>rRr`~yR(mO>Qd*?%Q)f)9gICrV?kF^B*?QuYUT3ab zf6}Jjxv5TXvaYAJ_Eby#FH`lpLG?!{^|FQf^F9p@K5W~da%*CP%T$9~YPFLM`-H6F zq7UcNlJ9?Qsy&FD%TpZJJkG%u&J~+RKj->u$4Z=i8UtGze^Z zmB&L;cyya52bzF$p(^dCP5dI7nR(3>EzMO^&DFAIwr)$EO-qAMOCzy`o7d9Z($YGm zw09(Q`v}lw)7tIR+CyyZ%WLf>0)tbn0$J-&Uh9Z1|D_H8`i0`wi9G&f3;)d&UnJvC z>$c6?cb-`w`A?Wp^i0O IC;-^}FS~4=W&i*H literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/ExecuteTemplate.gif b/documentation/api_extracted/ExecuteTemplate.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e069085ca015e15a2ca12553ffc9def2139a281 GIT binary patch literal 5887 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 VAMp}D@f2V27GDwAJ`e!`06W{z)CT|n literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Execute_Template_2_Example_CSharp.htm b/documentation/api_extracted/Execute_Template_2_Example_CSharp.htm new file mode 100644 index 0000000..6e16cd1 --- /dev/null +++ b/documentation/api_extracted/Execute_Template_2_Example_CSharp.htm @@ -0,0 +1,335 @@ + + + +Execute Template and Return Data Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Execute Template and Return Data Example (C#)

+

This example shows how to execute a template to create a +folder structure in a vault and return information.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type TemplateCSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project.
+//     d. Click OK
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the form, replace the code in Form1.Designer.cs with 
+//        this code.
+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, and click Add).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  4. Ensure that a template exists in the vault that you plan to 
+//     select and that a template card is assigned to that template.
+//     NOTE: This example assumes that the template in your selected vault
+//     creates a folder structure and that folder structure does not already
+//     exist in the selected vault.
+//  5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. Displays the Execute Template dialog box.
+//     a. Select a vault view.
+//     b. Click Execute Template.
+//     c. Displays a message box showing the name of the template to execute.
+//     d. Click OK to close the message box.
+//     e. A template card dialog may appear to prompt for values. 
+//        1. Type values.
+//        2. Click OK.  
+//  2. Displays a message box informing you that a new folder structure
+//     is, or is not, created in the selected vault.
+//  3. Click OK.
+//  4. If a folder structure is created, displays a message box with 
+//     information about the folder structure. 
+//  5. Click OK.
+//  6. Close the Execute Template dialog box.
+//  7. Examine the selected vault to verify that a new folder
+//     structure based on the template is, or is not, created.
+//----------------------------------------------------------------------------
+
//Form1.cs
+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace TemplateCSharp
+{
+     public partial class Form1 : Form
+     + {
+         public Form1()
+         + {
+             + InitializeComponent();
+         + }
+
+         IEdmVault5 vault1 = new EdmVault5();

+         public void Form1_Load(System.Object sender, System.EventArgs e)
+         + {
+             try {

+                 IEdmVault8 vault = (IEdmVault8)vault1;
+                 EdmViewInfo[] Views = null;

+                 + vault.GetVaultViews(out Views, false);
+                 + VaultsComboBox.Items.Clear();
+                 foreach (EdmViewInfo View in Views) {
+                     + VaultsComboBox.Items.Add(View.mbsVaultName);
+                 + }
+                 if (VaultsComboBox.Items.Count > 0) {
+                     + VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                 + }
+             + } catch (System.Runtime.InteropServices.COMException ex) {
+                 MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+             + } catch (Exception ex) {
+                 MessageBox.Show(ex.Message);
+             + }

+         + }

+        private void ExecuteTemplateButton_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+                IEdmVault7 vault2 = null;
+                if (vault1 == null)
+                {
+                    vault1 = new EdmVault5();
+                }
+                vault2 = (IEdmVault7)vault1;

+                if (!vault1.IsLoggedIn)
+                {
+                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+                }

+                //Access template in the selected vault
+                IEdmTemplateMgr5 templateMgr = default(IEdmTemplateMgr5);
+                templateMgr = (IEdmTemplateMgr5)vault2.CreateUtility(EdmUtility.EdmUtil_TemplateMgr);
+                IEdmPos5 pos = default(IEdmPos5);
+                pos = templateMgr.GetFirstTemplatePosition();
+                IEdmTemplate53 template = null;

+                string message = "";
+                message = "Installed template in vault, " + vault2.Name + ", to use:" + "\n" + "\n";

+                while (!pos.IsNull)
+                {

+                    template = (IEdmTemplate53)templateMgr.GetNextTemplate(pos);

+                    message = message + template.GetMenuString() + "\n";
+                    //Display message box with name of template
+                    MessageBox.Show(message);

+                    //Create template folders in the selected vault 
+                    //using this template
+                    EdmRefreshFlag refreshFlag = default(EdmRefreshFlag);
+                    object[] retData = null;
+                    refreshFlag = (EdmRefreshFlag)template.RunEx(this.Handle.ToInt32(), vault1.RootFolderIDout retData);

+                    if (retData.Length <= 0)
+                    {
+                        MessageBox.Show("No folder structure created.");
+                    }
+                    else
+                    {
+                        MessageBox.Show("The new folder structure based on the template is created in the selected vault.");
+                        if (refreshFlag == EdmRefreshFlag.EdmRefresh_FileList)
+                        {
+                            vault1.RefreshFolder(vault1.RootFolderPath);
+                        }

+                        //Show a message box with information about the folder structure created by the template
+                        long idx = 0;
+                        idx = retData.GetLowerBound(0);
+                        long upper = 0;
+                        upper = retData.GetUpperBound(0);

+                        EdmData data = default(EdmData);
+                        message = "Template generated:" + "\n";
+                        string row = null;

+                        while (idx <= upper)
+                        {
+                            data = (EdmData)retData[idx];
+                            switch (data.Type)
+                            {
+                                case EdmDataType.EdmData_File:
+                                    row = "Type=File, Path=" + data.Get(EdmDataPropertyType.EdmProp_Path);
+                                    break;
+                                case EdmDataType.EdmData_Folder:
+                                    row = "Type=Folder, path=" + data.Get(EdmDataPropertyType.EdmProp_Path);
+                                    break;
+                                case EdmDataType.EdmData_Variable:
+                                    row = "Type=Variable, Name=" + data.Get(EdmDataPropertyType.EdmProp_Name) + ", Value=" + data.Get(EdmDataPropertyType.EdmProp_Value);
+                                    break;
+                                case EdmDataType.EdmData_Link:
+                                    row = "Type=Link, Name=" + data.Get(EdmDataPropertyType.EdmProp_LinkPath);
+                                    break;
+                                default:
+                                    row = "No data";
+                                    break;
+                            }

+                            idx = idx + 1;
+                            message = message + row + "\n";
+                        }

+                        MessageBox.Show(message);
+                    }

+                }

+ } catch (System.Runtime.InteropServices.COMException ex) {
+ MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+ } catch (Exception ex) {
+ MessageBox.Show(ex.Message);
+ }

+   }
+   }
+}

+ +
+
//Form1.Designer.cs
+
+
+
namespace TemplateCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label1 = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.ExecuteTemplateButton = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(24, 24);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(91, 13);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(27, 41);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(242, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // ExecuteTemplateButton
+            // 
+            this.ExecuteTemplateButton.Location = new System.Drawing.Point(27, 81);
+            this.ExecuteTemplateButton.Name = "ExecuteTemplateButton";
+            this.ExecuteTemplateButton.Size = new System.Drawing.Size(113, 23);
+            this.ExecuteTemplateButton.TabIndex = 2;
+            this.ExecuteTemplateButton.Text = "Execute Template";
+            this.ExecuteTemplateButton.Click += new System.EventHandler(ExecuteTemplateButton_Click);
+            this.ExecuteTemplateButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.ExecuteTemplateButton.UseVisualStyleBackColor = true;
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(290, 125);
+            this.Controls.Add(this.ExecuteTemplateButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.label1);
+            this.Name = "Form1";
+            this.Text = "Execute Template";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Button ExecuteTemplateButton;
+ 
+    #endregion
+    }
+}
+
+ + + + + diff --git a/documentation/api_extracted/Execute_Template_2_Example_VBNET.htm b/documentation/api_extracted/Execute_Template_2_Example_VBNET.htm new file mode 100644 index 0000000..69f551a --- /dev/null +++ b/documentation/api_extracted/Execute_Template_2_Example_VBNET.htm @@ -0,0 +1,284 @@ + + + +Execute Template and Return Data Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Execute Template and Return Data Example (VB.NET)

+

This example shows how to execute a template to create a +folder structure in a vault and return information.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type TemplateVBNET in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the form, replace the code in Form1.Designer.vb with 
+'        this code.
+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that a template exists in the vault that you plan to 
+'     select and that a template card is assigned to that template.
+'     NOTE: This example assumes that the template in your selected vault
+'     creates a folder structure and that folder structure does not already
+'     exist in the selected vault.
+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays the Execute Template dialog box.
+'     a. Select a vault view.
+'     b. Click Execute Template.
+'     c. Displays a message box showing the name of the template to execute.
+'     d. Click OK to close the message box.
+'     e. A template card dialog may appear to prompt for values. 
+'        1. Type values.
+'        2. Click OK.  
+'  2. Displays a message box informing you that a new folder structure
+'     is, or is not, created in the selected vault.
+'  3. Click OK.
+'  4. If a folder structure is created, displays a message box with 
+'     information about the folder structure. 
+'  5. Click OK.
+'  6. Close the Execute Template dialog box.
+'  7. Examine the selected vault to verify that a new folder
+'     structure based on the template is, or is not, created.
+'----------------------------------------------------------------------------
+'Form1.vb
+

+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm

+Public Class Form1
+    Dim vault1 As IEdmVault5 = New EdmVault5()
+    Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+    Dim Views As EdmViewInfo() = Nothing
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

+        Try
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+    Private Sub ExecuteTemplateButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ExecuteTemplateButton.Click

+        Try
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)

+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If

+            'Access template in the selected vault
+            Dim templateMgr As IEdmTemplateMgr5
+            templateMgr = vault1.CreateUtility(EdmUtility.EdmUtil_TemplateMgr)
+            Dim pos As IEdmPos5
+            pos = templateMgr.GetFirstTemplatePosition
+            Dim template As IEdmTemplate53 = Nothing

+            Dim message As String = ""
+            message = "Installed template in vault, " + vault.Name + ", to use:" + vbLf + vbLf

+            While Not pos.IsNull

+                template = templateMgr.GetNextTemplate(pos)

+                message = message + template.GetMenuString + vbLf
+                'Display message box with name of template +to execute
+                MessageBox.Show(message)

+                'Create template folders in the selected vault 
+                'using this template
+                Dim refreshFlag As EdmRefreshFlag
+                Dim retData() As Object
+                refreshFlag = template.RunEx(Me.Handle.ToInt32(), vault1.RootFolderID, retData)

+                If retData.Length <= 0 Then
+                    MessageBox.Show("No folder structure created.")
+                Else
+                    MessageBox.Show("The new folder structure based on the template is created in the selected vault.")
+                    If refreshFlag = EdmRefreshFlag.EdmRefresh_FileList Then
+                        vault1.RefreshFolder(vault1.RootFolderPath)
+                    End If

+                    'Show a message box with information about the folder structure created by the template
+                    Dim idx As Long
+                    idx = LBound(retData)
+                    Dim upper As Long
+                    upper = UBound(retData)

+                    Dim data As EdmData
+                    message = "Template generated:" + vbLf
+                    Dim row As String

+                    While idx <= upper
+                        data = retData(idx)
+                        Select Case data.Type
+                            Case EdmDataType.EdmData_File
+                                row = "Type=File, Path=" + data.Get(EdmDataPropertyType.EdmProp_Path)
+                            Case EdmDataType.EdmData_Folder
+                                row = "Type=Folder, path=" + data.Get(EdmDataPropertyType.EdmProp_Path)
+                            Case EdmDataType.EdmData_Variable
+                                row = "Type=Variable, Name=" + data.Get(EdmDataPropertyType.EdmProp_Name) + ", Value=" + data.Get(EdmDataPropertyType.EdmProp_Value)
+                            Case EdmDataType.EdmData_Link
+                                row = "Type=Link, Name=" + data.Get(EdmDataPropertyType.EdmProp_LinkPath)
+                            Case Else
+                                row = "No data"
+                        End Select

+                        idx = idx + 1
+                        message = message + row + vbLf
+                    End While

+                    MessageBox.Show(message)
+                End If

+            End While

+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try

+    End Sub

+End Class

+ +
+
'Form1.Designer.vb
+
+
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.ExecuteTemplateButton = New System.Windows.Forms.Button()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'ExecuteTemplateButton
+        '
+        Me.ExecuteTemplateButton.Location = New System.Drawing.Point(30, 75)
+        Me.ExecuteTemplateButton.Name = "ExecuteTemplateButton"
+        Me.ExecuteTemplateButton.Size = New System.Drawing.Size(102, 23)
+        Me.ExecuteTemplateButton.TabIndex = 0
+        Me.ExecuteTemplateButton.Text = "Execute Template"
+        Me.ExecuteTemplateButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.ExecuteTemplateButton.UseVisualStyleBackColor = True
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(30, 39)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(169, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Location = New System.Drawing.Point(27, 23)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(91, 13)
+        Me.Label1.TabIndex = 2
+        Me.Label1.Text = "Select vault view:"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(246, 123)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.ExecuteTemplateButton)
+        Me.Name = "Form1"
+        Me.Text = "Execute Template"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents ExecuteTemplateButton As System.Windows.Forms.Button
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Label1 As System.Windows.Forms.Label
+ 
+End Class
+
+ + +

 

+ + + + diff --git a/documentation/api_extracted/Execute_Template_Example_CSharp.htm b/documentation/api_extracted/Execute_Template_Example_CSharp.htm new file mode 100644 index 0000000..ea0b4ac --- /dev/null +++ b/documentation/api_extracted/Execute_Template_Example_CSharp.htm @@ -0,0 +1,278 @@ + + + +Execute Template Example (C#) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Execute Template Example (C#)

+

This example shows how to execute a template to create a +folder structure in a vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//     a. Click File > New > Project > Visual C# > Windows Forms Application.
+//     b. Type TemplateCSharp in Name.
+//     c. Click Browse and navigate to the folder where to create the project.
+//     d. Click OK
+//     e. Click Show All Files in the Solution Explorer toolbar and expand 
+//        Form1.cs in the Solution Explorer.
+//     f. Replace the code in Form1.cs with this code.
+//     g. To create the form, replace the code in Form1.Designer.cs with 
+//        this code.
+//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assemblies > Framework in the left-side panel, browse to the top folder of 
+//     your SOLIDWORKS PDM Professional installation, locate and click 
+//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+//  4. Ensure that a template exists in the vault that you plan to 
+//     select and that a template card is assigned to that template.
+//     NOTE: This example assumes that the template in your selected vault
+//     creates a folder structure and that folder structure does not already
+//     exist in the selected vault.
+//  5. Click Debug > Start Debugging or press F5.
+//
+// Postconditions: 
+//  1. Displays the Execute Template dialog box.
+//     a. Select a vault.
+//     b. Click Execute Template.
+//     c. Displays a message box showing the name of the template to execute.
+//     d. Click OK to close the message box.
+//     e. Creates the folder structure defined for the template at the selected
+//        vault's root folder and prompts for variable values, if any  
+//        exist for the template card and template. 
+//  2. Displays a message box informing you that a new folder structure
+//     was created in the selected vault.
+//     - or -
+//     Displays a message box informing you that a folder structure
+//     was not created.
+//  3. Click OK to close the message box.
+//  4. Close the Execute Template dialog box.
+//  5. Examine the selected vault to verify that a new folder
+//     structure based on the template was, or was not, created.
+//----------------------------------------------------------------------------
+
//Form1.cs
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+ 
+namespace TemplateCSharp
+{
+	public partial class Form1 : Form
+	{
+		public Form1()
+		{
+			InitializeComponent();
+		}
+		IEdmVault5 vault1 = new EdmVault5();
+ 
+		public void Form1_Load(System.Object sender, System.EventArgs e)
+		{
+			try {
+ 
+			IEdmVault8 vault = (IEdmVault8)vault1;
+			EdmViewInfo[] Views = null;
+ 
+			vault.GetVaultViews(out Views, false);
+			VaultsComboBox.Items.Clear();
+			foreach (EdmViewInfo View in Views) {
+				VaultsComboBox.Items.Add(View.mbsVaultName);
+			}
+			if (VaultsComboBox.Items.Count > 0) {
+				VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+			}
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+		}
+ 
+	}
+ 
+	private void ExecuteTemplateButton_Click(System.Object sender, System.EventArgs e)
+	{
+		try {
+			IEdmVault7 vault2 = null;
+			if (vault1 == null) {
+				vault1 = new EdmVault5();
+			}
+			vault2 = (IEdmVault7)vault1;
+ 
+			if (!vault1.IsLoggedIn) {
+				vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
+			}
+ 
+			//Access template in the selected vault
+			IEdmTemplateMgr5 templateMgr = default(IEdmTemplateMgr5);
+			templateMgr = (IEdmTemplateMgr5)vault2.CreateUtility(EdmUtility.EdmUtil_TemplateMgr);
+			IEdmPos5 pos = default(IEdmPos5);
+			pos = templateMgr.GetFirstTemplatePosition();
+			IEdmTemplate5 template = null;
+ 
+			string message = "";
+			message = "Installed template in vault, " + vault1.Name + ", to use:" + "\n\n";
+ 
+ 
+			while (!pos.IsNull) {
+				template = templateMgr.GetNextTemplate(pos);
+ 
+				string menuString = "";
+				menuString = template.GetMenuString();
+				message = message + menuString + "\n";
+				//Display message box with name of template
+				//to use in the selected vault
+				MessageBox.Show(message);
+ 
+				//Create template folders in the selected vault 
+				//using this template
+				EdmRefreshFlag refreshFlag = default(EdmRefreshFlag);
+				refreshFlag = (EdmRefreshFlag)template.Run(this.Handle.ToInt32(), vault1.RootFolderID);
+ 
+				//Make sure folder structure created
+				//Exit application if it is not created
+				if (refreshFlag == EdmRefreshFlag.EdmRefresh_Nothing) {
+					MessageBox.Show("Folder structure not created.");
+					return;
+				} else {
+					//Folder structure created
+					if (refreshFlag == EdmRefreshFlag.EdmRefresh_FileList) {
+						vault1.RefreshFolder(vault1.RootFolderPath);
+						MessageBox.Show("The new folder structure based on the template was created in the selected vault.");
+					}
+				}
+ 
+			}
+ 
+ 
+ 
+		} catch (System.Runtime.InteropServices.COMException ex) {
+			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+		} catch (Exception ex) {
+			MessageBox.Show(ex.Message);
+		}
+ 
+	  }
+     }
+}
+ +
+
//Form1.Designer.cs
+
+
+
namespace TemplateCSharp
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+ 
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+ 
+        #region Windows Form Designer generated code
+ 
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label1 = new System.Windows.Forms.Label();
+            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
+            this.ExecuteTemplateButton = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(24, 24);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(91, 13);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "Select vault view:";
+            // 
+            // VaultsComboBox
+            // 
+            this.VaultsComboBox.FormattingEnabled = true;
+            this.VaultsComboBox.Location = new System.Drawing.Point(27, 41);
+            this.VaultsComboBox.Name = "VaultsComboBox";
+            this.VaultsComboBox.Size = new System.Drawing.Size(242, 21);
+            this.VaultsComboBox.TabIndex = 1;
+            // 
+            // ExecuteTemplateButton
+            // 
+            this.ExecuteTemplateButton.Location = new System.Drawing.Point(27, 81);
+            this.ExecuteTemplateButton.Name = "ExecuteTemplateButton";
+            this.ExecuteTemplateButton.Size = new System.Drawing.Size(113, 23);
+            this.ExecuteTemplateButton.TabIndex = 2;
+            this.ExecuteTemplateButton.Text = "Execute Template";
+            this.ExecuteTemplateButton.Click += new System.EventHandler(ExecuteTemplateButton_Click);
+            this.ExecuteTemplateButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.ExecuteTemplateButton.UseVisualStyleBackColor = true;
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(290, 125);
+            this.Controls.Add(this.ExecuteTemplateButton);
+            this.Controls.Add(this.VaultsComboBox);
+            this.Controls.Add(this.label1);
+            this.Name = "Form1";
+            this.Text = "Execute Template";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+ 
+        }
+ 
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ComboBox VaultsComboBox;
+        private System.Windows.Forms.Button ExecuteTemplateButton;
+ 
+    #endregion
+    }
+}
+
+ + + + + diff --git a/documentation/api_extracted/Execute_Template_Example_VBNET.htm b/documentation/api_extracted/Execute_Template_Example_VBNET.htm new file mode 100644 index 0000000..b2fd4dc --- /dev/null +++ b/documentation/api_extracted/Execute_Template_Example_VBNET.htm @@ -0,0 +1,257 @@ + + + +Execute Template Example (VB.NET) + + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Execute Template Example (VB.NET)

+

This example shows how to execute a template to create a +folder structure in a vault.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
+'     b. Type TemplateVBNET in Name.
+'     c. Click Browse and navigate to the folder where to create the project.
+'     d. Click OK
+'     e. Click Show All Files in the Solution Explorer toolbar and expand 
+'        Form1.vb in the Solution Explorer.
+'     f. Replace the code in Form1.vb with this code.
+'     g. To create the form, replace the code in Form1.Designer.vb with 
+'        this code.
+'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assemblies > Framework in the left-side panel, browse to the top folder of 
+'     your SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
+'  4. Ensure that a template exists in the vault that you plan to 
+'     select and that a template card is assigned to that template.
+'     NOTE: This example assumes that the template in your selected vault
+'     creates a folder structure and that folder structure does not already
+'     exist in the selected vault.
+'  5. Click Debug > Start Debugging or press F5.
+'
+' Postconditions: 
+'  1. Displays the Execute Template dialog box.
+'     a. Select a vault.
+'     b. Click Execute Template.
+'     c. Displays a message box showing the name of the template to execute.
+'     d. Click OK to close the message box.
+'     e. Creates the folder structure defined for the template at the selected
+'        vault's root folder and prompts for variable values, if any  
+'        exist for the template card and template. 
+'  2. Displays a message box informing you that a new folder structure
+'     was created in the selected vault.
+'     - or -
+'     Displays a message box informing you that a folder structure
+'     was not created.
+'  3. Click OK to close the message box.
+'  4. Close the Execute Template dialog box.
+'  5. Examine the selected vault to verify that a new folder
+'     structure based on the template was, or was not, created.
+'----------------------------------------------------------------------------
+'Form1.vb
+ 
+Imports System.IO
+Imports System.Xml.Serialization
+Imports System.Collections
+Imports System.Collections.Generic
+Imports System.Data
+Imports System.Diagnostics
+Imports System.Windows.Forms
+Imports System.ComponentModel
+Imports EPDM.Interop.epdm
+ 
+Public Class Form1
+    Dim vault1 As IEdmVault5 = New EdmVault5()
+    Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
+    Dim Views As EdmViewInfo() = Nothing
+    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
+ 
+        Try
+            vault.GetVaultViews(Views, False)
+            VaultsComboBox.Items.Clear()
+            For Each View As EdmViewInfo In Views
+                VaultsComboBox.Items.Add(View.mbsVaultName)
+            Next
+            If VaultsComboBox.Items.Count > 0 Then
+                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
+            End If
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+ 
+    End Sub
+ 
+    Private Sub ExecuteTemplateButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ExecuteTemplateButton.Click
+ 
+        Try
+            Dim vault2 As IEdmVault7 = Nothing
+            If vault1 Is Nothing Then
+                vault1 = New EdmVault5()
+            End If
+            vault2 = DirectCast(vault1, IEdmVault7)
+ 
+            If Not vault1.IsLoggedIn Then
+                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
+            End If
+ 
+            'Access template in the selected vault
+            Dim templateMgr As IEdmTemplateMgr5
+            templateMgr = vault1.CreateUtility(EdmUtility.EdmUtil_TemplateMgr)
+            Dim pos As IEdmPos5
+            pos = templateMgr.GetFirstTemplatePosition
+            Dim template As IEdmTemplate5 = Nothing
+ 
+            Dim message As String = "" 
+            message = "Installed template in vault, " + vault.Name + ", to use:" + vbLf + vbLf
+ 
+            While Not pos.IsNull
+ 
+                template = templateMgr.GetNextTemplate(pos)
+ 
+                message = message + template.GetMenuString + vbLf
+                'Display message box with name of template
+                'to use in the selected vault
+                MessageBox.Show(message)
+ 
+                'Create template folders in the selected vault 
+                'using this template
+                Dim refreshFlag As EdmRefreshFlag
+                Dim retData() As Object = Nothing
+                refreshFlag = template.Run(Me.Handle.ToInt32(), vault1.RootFolderID)
+
                'Make sure folder structure is created
+                'Exit application if it is not
+                If refreshFlag = EdmRefreshFlag.EdmRefresh_Nothing Then
+                    MessageBox.Show("Folder structure not created.")
+                    Exit Sub
+                Else
+                    'Folder structure created
+                    If refreshFlag = EdmRefreshFlag.EdmRefresh_FileList Then
+                        vault1.RefreshFolder(vault1.RootFolderPath)
+                        MessageBox.Show("The new folder structure based on the template was created in the selected vault.")
+                    End If
+                End If
+ 
+            End While
+ 
+
+        Catch ex As System.Runtime.InteropServices.COMException
+            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
+        Catch ex As Exception
+            MessageBox.Show(ex.Message)
+        End Try
+ 
+    End Sub
+ 
+End Class
+ +
+
'Form1.Designer.vb
+
+
+
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+ 
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+ 
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+ 
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.ExecuteTemplateButton = New System.Windows.Forms.Button()
+        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
+        Me.Label1 = New System.Windows.Forms.Label()
+        Me.SuspendLayout()
+        '
+        'ExecuteTemplateButton
+        '
+        Me.ExecuteTemplateButton.Location = New System.Drawing.Point(30, 75)
+        Me.ExecuteTemplateButton.Name = "ExecuteTemplateButton"
+        Me.ExecuteTemplateButton.Size = New System.Drawing.Size(102, 23)
+        Me.ExecuteTemplateButton.TabIndex = 0
+        Me.ExecuteTemplateButton.Text = "Execute Template"
+        Me.ExecuteTemplateButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+        Me.ExecuteTemplateButton.UseVisualStyleBackColor = True
+        '
+        'VaultsComboBox
+        '
+        Me.VaultsComboBox.FormattingEnabled = True
+        Me.VaultsComboBox.Location = New System.Drawing.Point(30, 39)
+        Me.VaultsComboBox.Name = "VaultsComboBox"
+        Me.VaultsComboBox.Size = New System.Drawing.Size(169, 21)
+        Me.VaultsComboBox.TabIndex = 1
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Location = New System.Drawing.Point(27, 23)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(91, 13)
+        Me.Label1.TabIndex = 2
+        Me.Label1.Text = "Select vault view:"
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(246, 123)
+        Me.Controls.Add(Me.Label1)
+        Me.Controls.Add(Me.VaultsComboBox)
+        Me.Controls.Add(Me.ExecuteTemplateButton)
+        Me.Name = "Form1"
+        Me.Text = "Execute Template"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+ 
+    End Sub
+    Friend WithEvents ExecuteTemplateButton As System.Windows.Forms.Button
+    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
+    Friend WithEvents Label1 As System.Windows.Forms.Label
+ 
+End Class
+
+ + +

 

+ + + + diff --git a/documentation/api_extracted/FavoriteSearch.gif b/documentation/api_extracted/FavoriteSearch.gif new file mode 100644 index 0000000000000000000000000000000000000000..347758bf9a960fdf11d5c34508b3875103bbfa75 GIT binary patch literal 4788 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 + + +Favorite Search Example (C#) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Favorite Search Example (C#)

+

This example shows how to perform a favorite search.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

+ +
//----------------------------------------------------------------------------
+// Preconditions:
+//  1. Start Microsoft Visual Studio.
+//  2. Click File > New > Project > Visual C# > Windows Forms Application.
+//  3. Type FavoriteSearch_CSharp in Name.
+//  4. Click Browse to navigate to the folder where to create the project.
+//  5. Click OK.
+//  6. Click Show All Files in the Solution Explorer toolbar and expand 
+//     Form1.cs in the Solution Explorer. 
+//  7. Replace the code in Form1.cs with this code.
+//  8. To create the form, replace the code in Form1.Designer.cs with this code.
+//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+//     name in the Solution Explorer, click Add Reference, click 
+//     Assembly > Framework in the left-side panel, browse to the top folder of your 
+//     SOLIDWORKS PDM Professional installation, locate and select 
+//     EPDM.Interop.epdm.dll, click Open, and click Add).
+// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
+//     Embed Interop Types to False to handle methods that pass arrays of 
+//     structures.
+// 11. Ensure that you know the name of a saved favorite search, and that search
// finds at least one vault file whose extension (e.g., sldprt) +// has a file data card (e.g. Quick Start Data Card) with a Description field. +// 12. Check out the vault file and add a description. Check it back in.
// 13. Use the Admin Tool to create a new column set for complete search results.
//     (Right-click on Admin Tool > vault_name > Columns > Search Result Columns and select New Column Set.
// 14. Click Add and select Description from the Variable dropdown +// 15. Save the new column set with name, MyFavoriteSearchResults.
// 16. Double-click Admin Tool > vault_name > Cards > Search Cards > Complete Search.
// 17. In the Card Properties panel, select the View and Preferred checkboxes next to MyFavoriteSearchResults.
// 18. Save and close the Card Editor dialog.

// 19. Click Debug > Start Debugging or press F5.
+// +// Postconditions:  +//  1. Displays a dialog.
//  2. Select a vault. +// 3. Type in a favorite search name.
//  4. Click Perform Search.
//  5. Displays search results, including the custom search column, Description.

//  6. Close the dialog.
+//---------------------------------------------------------------------------- 
+
//Form1.cs
+

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using EPDM.Interop.epdm;
+

+namespace FavoriteSearch_CSharp
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+        private IEdmVault5 vault1 = null;

+        public void Form1_Load(System.Object sender, System.EventArgs e)
+        {
+            try
+            {
+                vault1 = new EdmVault5();
+                IEdmVault8 vault = (IEdmVault8)vault1;
+                EdmViewInfo[] Views = null;

+                vault.GetVaultViews(out Views, false);
+                VaultsComboBox.Items.Clear();
+                foreach (EdmViewInfo View in Views)
+                {
+                    VaultsComboBox.Items.Add(View.mbsVaultName);
+                }
+                if (VaultsComboBox.Items.Count > 0)
+                {
+                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
+                }
+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
+        }


+        public void PerformSearch_Click(System.Object sender, System.EventArgs e)
+        {

+            try
+            {
+               

+

+                +IEdmVault9 vault2 = + +null;

+

+ +                + +if (vault1 == + +null)

+

+ +                    +vault1 = + +new +EdmVault5();

+

+ +                +vault2 = (IEdmVault9)vault1;

+

+ +                + +if (!vault1.IsLoggedIn)

+

+ +                    +vault1.LoginAuto(VaultsComboBox.Text, +this.Handle.ToInt32());

+

+ 

+

+ +                +IEdmSearch10 oSearch = (IEdmSearch10)vault1.CreateSearch();

+

+ +                +IEdmSearchResult6 oSearchResult = +(IEdmSearchResult6)oSearch.GetFirstFavoriteResult(TextBox1.Text, + +true); + + +// get custom search result columns, if present

+

+ 

+

+ +                + +do

+

+ +                +{

+

+ +                    + + +// oSearchResult will have default values like path or ID, even if custom +columns do not exist

+

+ +                    +ListBox1.Items.Add("ID: +" + oSearchResult.ID);

+

+ +                    +ListBox1.Items.Add("Name: +" + oSearchResult.Name);

+

+ +                    +ListBox1.Items.Add("Path: +" + oSearchResult.Path);

+

+ +                    +ListBox1.Items.Add("Version: +" + oSearchResult.Version);

+

+ +                    +EdmListCol[] oColsInfo = + +null;

+

+ +                    + + +string[] +oStrValues = + +null;

+

+ + +                    + +oSearchResult.GetCustomColumnsInfo(out oColsInfo);

+

+ +                    +oSearchResult.GetCustomColumnValues(out oStrValues);

+

+ +                    + +if +(oColsInfo != + +null)

+

+ +       +             {

+

+ +                        + + +for +(int +i = 0; i <= oColsInfo.Length - 1; i++)

+

+ +                            +ListBox1.Items.Add(oColsInfo[i].mbsCaption + + +": " ++ oStrValues[i]);

+

+ +                    +}

+

+ 

+

+ +                    +oSearchResult = (IEdmSearchResult6)oSearch.GetNextResult();

+

+ +                +}

+

+                + +while (oSearchResult != + +null); + +

+

+

+            }
+            catch (System.Runtime.InteropServices.COMException ex)
+            {
+                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }

+        }
+    }
+}

+

+ +
+
//Form1.Designer.cs
+
+
+

+ namespace + FavoriteSearch_CSharp

+

+ {

+

+ +     + partial + class + + + Form1 +

+

+ +     {

+

+ +         + + /// + <summary>

+

+ +         /// + Required designer variable.

+

+ +         + + /// + </summary>

+

+ +         + + private + System.ComponentModel.IContainer components = + null;

+

+  

+

+ +         + + /// + <summary>

+

+ +         + + /// Clean up any resources being + used.

+

+ +         + + /// + </summary>

+

+ +         + + /// + <param name="disposing">true + if managed resources should be disposed; otherwise, false.</param>

+

+ +         + + protected + override + + + void + Dispose(bool + disposing)

+

+ +         + {

+

+ +             + + if (disposing && (components != + + + null))

+

+ +             + {

+

+ +                 + components.Dispose();

+

+ +             + }

+

+ +             + + base.Dispose(disposing);

+

+ +         + }

+

+  

+

+ +         + + #region Windows Form Designer + generated code

+

+  

+

+ +         + + /// + <summary>

+

+ +         + + /// Required method for Designer + support - do not modify

+

+ +         + + /// the contents of this method + with the code editor.

+

+ +         /// + + + </summary>

+

+ +         + + private + void InitializeComponent()

+

+ +         + {

+

+ +             + + this.VaultsLabel = + + new + System.Windows.Forms.Label();

+

+ +             + + this.VaultsComboBox = + + new + System.Windows.Forms.ComboBox();

+

+ +             + + this.PerformSearch = + + new + System.Windows.Forms.Button();

+

+ +             + + this.TextBox1 = + + new + System.Windows.Forms.TextBox();

+

+ +             + + this.Label1 = + new + System.Windows.Forms.Label();

+

+ +             + + this.Label2 = + new + System.Windows.Forms.Label();

+

+ +             + + this.ListBox1 = + + new + System.Windows.Forms.ListBox();

+

+ +             + + this.SuspendLayout();

+

+ +             + + // +

+

+ +             + + // VaultsLabel

+

+ +             + + // +

+

+ +             + + this.VaultsLabel.AutoSize = + + true;

+

+ +             + + this.VaultsLabel.Location = + + new + System.Drawing.Point(36, 24);

+

+ +             + + this.VaultsLabel.Name = + + "VaultsLabel";

+

+ +             + + this.VaultsLabel.Size = + + new + System.Drawing.Size(91, 13);

+

+ +             + + this.VaultsLabel.TabIndex = 0;

+

+ +             + + this.VaultsLabel.Text = + + "Select vault view:";

+

+ +             + + // +

+

+ +             + + // VaultsComboBox

+

+ +             + + // +

+

+ +             + + this.VaultsComboBox.FormattingEnabled + = + + true;

+

+ +             + + this.VaultsComboBox.Location = + + + new + System.Drawing.Point(39, 40);

+

+ +             + + this.VaultsComboBox.Name = + + "VaultsComboBox";

+

+ +             + + this.VaultsComboBox.Size = + + new + System.Drawing.Size(157, 21);

+

+ +             + + this.VaultsComboBox.TabIndex = 1;

+

+ +             + + // +

+

+ +             + + // PerformSearch

+

+ +             + + // +

+

+ +             + + this.PerformSearch.Location = + + + new + System.Drawing.Point(215, 101);

+

+ +             + + this.PerformSearch.Name = + + "PerformSearch";

+

+ +             + + this.PerformSearch.Size = + + new + System.Drawing.Size(96, 23);

+

+ +             + + this.PerformSearch.TabIndex = 6;

+

+ +             + + this.PerformSearch.Text = + + "Perform Search";

+

+ +             + + this.PerformSearch.UseVisualStyleBackColor + = + + true;

+

+ +             + + this.PerformSearch.Click += + + new + System.EventHandler(this.PerformSearch_Click);

+

+ +             + + // +

+

+ +             + + // TextBox1

+

+ +             + + // +

+

+ +             + + this.TextBox1.Location = + + new + System.Drawing.Point(39, 103);

+

+ +             + + this.TextBox1.Name = + + "TextBox1";

+

+ +             this.TextBox1.Size = + + new + System.Drawing.Size(157, 20);

+

+ +             + + this.TextBox1.TabIndex = 7;

+

+ +             + + // +

+

+ +             + + // Label1

+

+ +             + + // +

+

+ +             + + this.Label1.AutoSize = + + true;

+

+ +             + + this.Label1.Location = + + new + System.Drawing.Point(39, 84);

+

+ +             + + this.Label1.Name = + + "Label1";

+

+ +             + + this.Label1.Size = + + new + System.Drawing.Size(136, 13);

+

+ +             + + this.Label1.TabIndex = 8;

+

+ +             + + this.Label1.Text = + + "Type favorite search name:";

+

+ +             + + // +

+

+ +             // Label2

+

+ +             + + // +

+

+ +             + + this.Label2.AutoSize = + + true;

+

+ +             + + this.Label2.Location = + + new + System.Drawing.Point(39, 164);

+

+ +             + + this.Label2.Name = + + "Label2";

+

+ +             + + this.Label2.Size = + + new + System.Drawing.Size(45, 13);

+

+ +             + + this.Label2.TabIndex = 10;

+

+ +             + + this.Label2.Text = + + "Results:";

+

+ +             + + // +

+

+ +             + + // ListBox1

+

+ +             + + // +

+

+ +             + + this.ListBox1.FormattingEnabled = + + + true;

+

+ +             + + this.ListBox1.HorizontalScrollbar = + + + true;

+

+ +             + + this.ListBox1.Location = + + new + System.Drawing.Point(39, 181);

+

+ +             + + this.ListBox1.Name = + + "ListBox1";

+

+ +             + + this.ListBox1.ScrollAlwaysVisible = + + + true;

+

+ +             + + this.ListBox1.Size = + + new + System.Drawing.Size(340, 264);

+

+ +             + + this.ListBox1.TabIndex = 11;

+

+ +             + + // +

+

+ +             + + // Form1

+

+ +             + + // +

+

+ +             + + this.AutoScaleDimensions = + + new + System.Drawing.SizeF(6F, 13F);

+

+ +             + + this.AutoScaleMode = + System.Windows.Forms.AutoScaleMode.Font;

+

+ +             + + this.ClientSize = + + new + System.Drawing.Size(407, 472);

+

+ +             + + this.Controls.Add(this.ListBox1);

+

+ +             + + this.Controls.Add(this.Label2);

+

+ +             + + this.Controls.Add(this.Label1);

+

+ +             + + this.Controls.Add(this.TextBox1);

+

+ +             + + this.Controls.Add(this.PerformSearch);

+

+ +             + + this.Controls.Add(this.VaultsComboBox);

+

+ +             + + this.Controls.Add(this.VaultsLabel);

+

+ +             + + this.Name = + "Form1";

+

+ +             + + this.Text = + "Favorite Search";

+

+ +             + + this.Load += + new System.EventHandler(this.Form1_Load);

+

+ +             + + this.ResumeLayout(false);

+

+ +             + + this.PerformLayout();

+

+  

+

+ +         + }

+

+ +         + + internal + System.Windows.Forms.Label VaultsLabel;

+

+ +         + + internal + System.Windows.Forms.ComboBox VaultsComboBox;

+

+ +         + + internal + System.Windows.Forms.Button PerformSearch;

+

+ +         + + internal + System.Windows.Forms.TextBox TextBox1;

+

+ +         + + internal + System.Windows.Forms.Label Label1;

+

+ +         + + internal + System.Windows.Forms.Label Label2;

+

+ +         + + internal + System.Windows.Forms.ListBox ListBox1;

+

+  

+

+ +         + + #endregion

+

+ +     }

+

+ }

+

+  

+

+  

+ +

 

+ + + + diff --git a/documentation/api_extracted/Favorite_Search_Example_VBNET.htm b/documentation/api_extracted/Favorite_Search_Example_VBNET.htm new file mode 100644 index 0000000..d902a41 --- /dev/null +++ b/documentation/api_extracted/Favorite_Search_Example_VBNET.htm @@ -0,0 +1,1889 @@ + + + +Favorite Search Example (VB.NET) + + + + + + + +

SOLIDWORKS PDM Professional API Help

+

Favorite Search Example (VB.NET)

+

This example shows how to perform a favorite search.

+

NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

+

 

+ +

'----------------------------------------------------------------------------
+' Preconditions:
+'  1. Start Microsoft Visual Studio.
+'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
+'  3. Type FavoriteSearch in Name.
+'  4. Click Browse to navigate to the folder where to create the project.
+'  5. Click OK.
+
+'  6. Click Show All Files in the Solution Explorer toolbar and expand 
+'     Form1.vb in the Solution Explorer. 
+'  7. Replace the code in Form1.vb with this code.
+'  8. To create the form, replace the code in
Form1.Designer.vb with this code.
+'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
+'     name in the Solution Explorer, click Add Reference, click 
+'     Assembly > Framework in the left-side panel, browse to the top folder of your 
+'     SOLIDWORKS PDM Professional installation, locate and click 
+'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
+' 10. Right-click EPDM.Interop.epdm in References, select Properties, and set 
+'     Embed Interop Types to False to handle methods that pass arrays of 
+'     structures.
'
11. Ensure that you know the name of a saved favorite search, and that search
+'     finds at least one vault file whose extension (e.g., +sldprt)
'    
has a file data card (e.g. Quick +Start Data Card) with a Description field.
' 12. Check out the vault file and add a description. Check it back in.
+' 13. Use the Admin Tool to create a new column set for complete search results.
+'     (Right-click on Admin Tool > vault_name > Columns > Search Result Columns and select New Column Set.
+' 14. Click Add and select Description from +the Variable dropdown
' 15. Save the new column set with name, MyFavoriteSearchResults.
+' 16. Double-click Admin Tool > vault_name > Cards > Search Cards > Complete Search.
+' 17. In the Card Properties panel, select the View and Preferred checkboxes next to MyFavoriteSearchResults.
+' 18. Save and close the Card Editor dialog.

+' 19. Click Debug > Start Debugging or press F5.

+'
+' Postconditions: 
+'  1. Displays a dialog.
+'  2. Select a vault.
'  +3. Type in a favorite search name.

+'  4. Click Perform Search.
+'  5. Displays search results, including the custom search column, +Description.

+'  6. Close the dialog.
+'---------------------------------------------------------------------------- 

+
'Form1.vb
+

+Imports +System.IO

+

+Imports +System.Xml.Serialization

+

+Imports +System.Collections

+

+Imports +System.Collections.Generic

+

+Imports +System.Data

+

+Imports +System.Diagnostics

+

+Imports +System.Windows.Forms

+

+Imports +System.ComponentModel

+

+Imports +EPDM.Interop.epdm

+

+ 

+

+Public + + +Class + + +Form1

+

+ 

+

+ +    +Private vault1 +As +IEdmVault5 = + +Nothing

+

+ 

+

+ +    +Public +Sub Form1_Load(ByVal +sender +As +System.Object, + +ByVal +e +As +System.EventArgs) +Handles +MyBase.Load

+

+ 

+

+ +        + +Try

+

+ +            +vault1 = + +New +EdmVault5()

+

+ +            + +Dim vault +As IEdmVault8 = + +DirectCast(vault1, +IEdmVault8)

+

+ +            + +Dim Views +As EdmViewInfo() = + +Nothing

+

+ 

+

+ +            +vault.GetVaultViews(Views, + +False)

+

+ +            +VaultsComboBox.Items.Clear()

+

+ +            + +For +Each View +As EdmViewInfo +In +Views

+

+ +                +VaultsComboBox.Items.Add(View.mbsVaultName)

+

+ +            + +Next

+

+ +            + +If VaultsComboBox.Items.Count > 0 + + +Then

+

+ +                +VaultsComboBox.Text = + +DirectCast(VaultsComboBox.Items(0), + + +String)

+

+ +            + +End +If

+

+ +        + +Catch ex +As +System.Runtime.InteropServices.COMException

+

+ +            +MessageBox.Show("HRESULT = 0x" ++ ex.ErrorCode.ToString("X") + +" " + ex.Message)

+

+ +        + +Catch ex +As Exception

+

+ +            +MessageBox.Show(ex.Message)

+

+ +        + +End +Try

+

+ +    +End +Sub

+

+ 

+

+ 

+

+ +    +Public +Sub PerformSearch_Click(ByVal +sender +As +System.Object, + +ByVal +e +As +System.EventArgs) +Handles PerformSearch.Click

+

+ +        + +Try

+

+ 

+

+ +            + +Dim vault2 +As IEdmVault7 = + +Nothing

+

+ +            + +If vault1 +Is +Nothing + + +Then

+

+ +                +vault1 = + +New +EdmVault5()

+

+ +            + +End +If

+

+ +            +vault2 = + +DirectCast(vault1, +IEdmVault9)

+

+ +            + +If +Not vault1.IsLoggedIn + +Then

+

+ +                +vault1.LoginAuto(VaultsComboBox.Text, +Me.Handle.ToInt32())

+

+ +            + +End +If

+

+ 

+

+ +            + +Dim oSearch +As IEdmSearch10 = +vault1.CreateSearch()

+

+ +            + +Dim oSearchResult +As +IEdmSearchResult6 = oSearch.GetFirstFavoriteResult(TextBox1.Text, + +True) + + +'get custom search result columns, if present

+

+ 

+

+ +            + +Do

+

+ +                + +'oSearchResult will have +default values like path or ID, even if custom columns do not exist

+

+ +            +    ListBox1.Items.Add("ID: +" & oSearchResult.ID)

+

+ +                +ListBox1.Items.Add("Name: +" & oSearchResult.Name)

+

+ +                +ListBox1.Items.Add("Path: +" & oSearchResult.Path)

+

+ +                +ListBox1.Items.Add("Version: +" & oSearchResult.Version)

+

+ 

+

+ +                + +Dim oColsInfo() +As +EdmListCol = + +Nothing

+

+ +                + +Dim oStrValues() +As + + +String += + +Nothing

+

+ 

+

+ + +                + + + +oSearchResult.GetCustomColumnsInfo(oColsInfo)

+

+ +                +oSearchResult.GetCustomColumnValues(oStrValues)

+

+ 

+

+ +                + +If oColsInfo + +IsNot + + +Nothing + + +Then

+

+ +                    + + +For +i +As + + +Integer += 0 +To +oColsInfo.Length - 1

+

+ 

+

+ +                        +ListBox1.Items.Add(oColsInfo(i).mbsCaption & + +": " +& oStrValues(i))

+

+ 

+

+ +                    + + +Next +i

+

+ 

+

+ +                + +End +If

+

+ 

+

+ +                +oSearchResult = oSearch.GetNextResult() +'Get next result

+

+ 

+

+ +            + +Loop +Until oSearchResult +Is + + +Nothing

+

+ 

+

+ +        + +Catch ex +As +System.Runtime.InteropServices.COMException

+

+ +            +MessageBox.Show("HRESULT = 0x" ++ ex.ErrorCode.ToString("X") + +" " + ex.Message)

+

+ +        + +Catch ex +As Exception

+

+ +            +MessageBox.Show(ex.Message)

+

+ +        + +End +Try

+

+ 

+

+ +    +End +Sub

+

+ 

+

+End +Class

+

+ +
+
'Form1.Designer.vb
+

+ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>

+

+ Partial + + + Class + + + Form1

+

+ +     + Inherits + System.Windows.Forms.Form

+

+  

+

+ +     + + 'Form overrides dispose to clean up the component list.

+

+ +     + <System.Diagnostics.DebuggerNonUserCode()>

+

+ +     + Protected + Overrides + + + Sub + Dispose(ByVal + disposing + + As + + + Boolean)

+

+ +         + + Try

+

+ +             + + If disposing + + AndAlso + components + + IsNot + + + Nothing + + + Then

+

+ +           +       components.Dispose()

+

+ +             + + End + If

+

+ +         + + Finally

+

+ +             + + MyBase.Dispose(disposing)

+

+ +         + + End + Try

+

+ +     + End + Sub

+

+  

+

+ +     + + 'Required by the Windows Form Designer

+

+ +     + Private components + + As + System.ComponentModel.IContainer

+

+  

+

+ +     + + 'NOTE: The following procedure is required by the Windows Form Designer

+

+ +     + + 'It can be modified using the Windows Form Designer.  

+

+ +     + + 'Do not modify it using the code editor.

+

+ +     + <System.Diagnostics.DebuggerStepThrough()>

+

+ +     + Private + Sub InitializeComponent()

+

+ +         + + Me.VaultsLabel = + + New + System.Windows.Forms.Label()

+

+ +         + + Me.VaultsComboBox = + + New + System.Windows.Forms.ComboBox()

+

+ +         + + Me.PerformSearch = + + New + System.Windows.Forms.Button()

+

+ +         + + Me.TextBox1 = + + New + System.Windows.Forms.TextBox()

+

+ +         + + Me.Label1 = + New + System.Windows.Forms.Label()

+

+ +         + + Me.Label2 = + New + System.Windows.Forms.Label()

+

+ +         + + Me.ListBox1 = + + New + System.Windows.Forms.ListBox()

+

+ +         + + Me.SuspendLayout()

+

+ +         + + '

+

+ +         + + 'VaultsLabel

+

+ +         + + '

+

+ +         + + Me.VaultsLabel.AutoSize = + + True

+

+ +         + + Me.VaultsLabel.Location = + + New + System.Drawing.Point(36, 24)

+

+ +         + + Me.VaultsLabel.Name = + + "VaultsLabel"

+

+ +         + + Me.VaultsLabel.Size = + + New + System.Drawing.Size(91, 13)

+

+ +         + + Me.VaultsLabel.TabIndex = 0

+

+ +         + + Me.VaultsLabel.Text = + + "Select vault view:"

+

+ +         + + '

+

+ +         + + 'VaultsComboBox

+

+ +         + + '

+

+ +         + + Me.VaultsComboBox.FormattingEnabled + = + + True

+

+ +         + + Me.VaultsComboBox.Location = + + + New + System.Drawing.Point(39, 40)

+

+ +         + + Me.VaultsComboBox.Name = + + "VaultsComboBox"

+

+ +         + + Me.VaultsComboBox.Size = + + New + System.Drawing.Size(157, 21)

+

+ +         + + Me.VaultsComboBox.TabIndex = 1

+

+ +         + + '

+

+ +         + + 'PerformSearch

+

+ +         + + '

+

+ +         + + Me.PerformSearch.Location = + + + New + System.Drawing.Point(215, 101)

+

+ +         + + Me.PerformSearch.Name = + + "PerformSearch"

+

+ +         + + Me.PerformSearch.Size = + + New + System.Drawing.Size(96, 23)

+

+ +         + + Me.PerformSearch.TabIndex = 6

+

+ +         + + Me.PerformSearch.Text = + + "Perform Search"

+

+ +         + + Me.PerformSearch.UseVisualStyleBackColor + = + + True

+

+ +         + + '

+

+ +         + + 'TextBox1

+

+ +         + + '

+

+ +         + + Me.TextBox1.Location = + + New + System.Drawing.Point(39, 103)

+

+ +         + + Me.TextBox1.Name = + + "TextBox1"

+

+ +         + + Me.TextBox1.Size = + + New + System.Drawing.Size(157, 20)

+

+ +         + + Me.TextBox1.TabIndex = 7

+

+ +         + + '

+

+ +         + + 'Label1

+

+ +         + + '

+

+ +         + + Me.Label1.AutoSize = + + True

+

+ +         + + Me.Label1.Location = + + New + System.Drawing.Point(39, 84)

+

+ +         + + Me.Label1.Name = + + "Label1"

+

+ +         + + Me.Label1.Size = + + New + System.Drawing.Size(136, 13)

+

+ +         + + Me.Label1.TabIndex = 8

+

+ +         + + Me.Label1.Text = + + "Type favorite search name:"

+

+ +         + + '

+

+ +         + + 'Label2

+

+ +         + + + '

+

+ +         + + Me.Label2.AutoSize = + + True

+

+ +         + + Me.Label2.Location = + + New + System.Drawing.Point(39, 164)

+

+ +         + + Me.Label2.Name = + + "Label2"

+

+ +         + + Me.Label2.Size = + + New + System.Drawing.Size(45, 13)

+

+ +         + + Me.Label2.TabIndex = 10

+

+ +         + + Me.Label2.Text = + + "Results:"

+

+ +         + + '

+

+ +         + + 'ListBox1

+

+ +         + + '

+

+ +         + + Me.ListBox1.FormattingEnabled = + + + True

+

+ +         + + Me.ListBox1.HorizontalScrollbar = + + + True

+

+ +         + + Me.ListBox1.Location = + + New + System.Drawing.Point(39, 181)

+

+ +         + + Me.ListBox1.Name = + + "ListBox1"

+

+ +         + + Me.ListBox1.ScrollAlwaysVisible = + + + True

+

+ +         + + Me.ListBox1.Size = + + New + System.Drawing.Size(340, 264)

+

+ +         + + Me.ListBox1.TabIndex = 11

+

+ +         + + '

+

+ +         + + 'Form1

+

+ +         + + '

+

+ +         + + Me.AutoScaleDimensions = + + New + System.Drawing.SizeF(6.0!, 13.0!)

+

+ +         + + Me.AutoScaleMode = + System.Windows.Forms.AutoScaleMode.Font

+

+ +         + + Me.ClientSize = + + New + System.Drawing.Size(407, 472)

+

+ +         + + Me.Controls.Add(Me.ListBox1)

+

+ +         + + Me.Controls.Add(Me.Label2)

+

+ +         + + Me.Controls.Add(Me.Label1)

+

+ +         + + Me.Controls.Add(Me.TextBox1)

+

+ +         Me.Controls.Add(Me.PerformSearch)

+

+ +         + + Me.Controls.Add(Me.VaultsComboBox)

+

+ +         + + Me.Controls.Add(Me.VaultsLabel)

+

+ +         + + Me.Name = + "Form1"

+

+ +         + + Me.Text = + "Favorite Search"

+

+ +         + + Me.ResumeLayout(False)

+

+ +         + + Me.PerformLayout()

+

+  

+

+ +     + End + Sub

+

+ +     + Friend + WithEvents VaultsLabel + + As + System.Windows.Forms.Label

+

+ +     + Friend + WithEvents VaultsComboBox + + As + System.Windows.Forms.ComboBox

+

+ +     + Friend + WithEvents PerformSearch + + As + System.Windows.Forms.Button

+

+ +     + Friend + WithEvents TextBox1 + + As + TextBox

+

+ +     + Friend + WithEvents Label1 + + As + Label

+

+ +     + Friend + WithEvents Label2 + + As + Label

+

+ +     + Friend + WithEvents ListBox1 + + As + ListBox

+

+  

+

+ End + Class

+

+  

+ + + + + diff --git a/documentation/api_extracted/FileInfo.gif b/documentation/api_extracted/FileInfo.gif new file mode 100644 index 0000000000000000000000000000000000000000..4654fdb9d141fbdf6a31dfe668e56d73508346bb GIT binary patch literal 8200 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/FileVarData.gif b/documentation/api_extracted/FileVarData.gif new file mode 100644 index 0000000000000000000000000000000000000000..f09b35d2c5701cf16ef291f9368e9206f2564bff GIT binary patch literal 8022 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/FindRevisions.gif b/documentation/api_extracted/FindRevisions.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ebbeea20e98f4b0224686a2d052faee361090d1 GIT binary patch literal 5494 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 QeJ$e7%DK-W8~`5w1$EN}wEzGB literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/FindUsers.gif b/documentation/api_extracted/FindUsers.gif new file mode 100644 index 0000000000000000000000000000000000000000..94207dde07f52d90692c3804805690f7cab39e8e GIT binary patch literal 8336 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
  • T_1~t>7B2 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 ag+6qm7v1PbM|#qgzI3MB9NZTV2mm`0J>Mz- literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_CSharp.htm b/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_CSharp.htm new file mode 100644 index 0000000..9965742 --- /dev/null +++ b/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_CSharp.htm @@ -0,0 +1,303 @@ + + + +Find Data Cards with Description Variable Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Data Cards with Description Variable Example (C#)

    +

    This example shows how to find the data cards in your vault that have a +Description variable.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > C# > Windows Forms Application.
    +//  3. Type CardsVariableCSharp in Name.
    +//  4. Click the Browse button and browse to the folder where to create the project.
    +//  5. Click OK
    +//  6. Create a form similar to the form shown above and change: 
    +//     a. Label to VaultsLabel.
    +//     b. Combo box to VaultsComboBox
    +//     c. Button to FindCardsButton.   
    +//  7. Replace the code in Form1.cs with this code.
    +//  8. Replace the code in Form1.Designer.cs with this code.
    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and select 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +// 11. Open the Immediate window.
    +// 12. Switch back to the Form1.cs code window.
    +// 13. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click the Find cards with Description variable button.
    +//     The cards in your vault with a Description variable are
    +//     printed to the Immediate window. 
    +//  4. Examine the Immediate window.
    +//  5. Close the dialog.
    +//---------------------------------------------------------------------------- 
    +
    //Form1.cs
    +
    using System;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;
    +using EPDM.Interop.epdm;
    +using System.Collections;
    + 
    +namespace CardsVariableCSharp
    +{
    +	public partial class Form1 : Form
    +	{
    +		public Form1()
    +		{
    +			InitializeComponent();
    +		}   
    + 
    +		void CardsVariableCSharp_Load(System.Object sender, System.EventArgs e)
    +		{
    + 
    +			try
    +			{
    +				//Declare and create an instance of IEdmVault5
    +				IEdmVault5 vault1 = new EdmVault5();
    + 
    +				//Cast IEdmVault5 to IEdmVault8
    +				IEdmVault8 vault = (IEdmVault8)vault1;
    + 
    +				EdmViewInfo[] Views = null;
    + 
    +				vault.GetVaultViews(out Views, false);
    + 
    +				VaultsComboBox.Items.Clear();
    +				foreach (EdmViewInfo View in Views)
    +				{
    +					VaultsComboBox.Items.Add(View.mbsVaultName);
    +				}
    +				if (VaultsComboBox.Items.Count > 0)
    +				{
    +					VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +				}
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    +		}
    + 
    +		private void FindCardsButton_Click(System.Object sender, System.EventArgs e)
    +		{
    + 
    +			try
    +			{
    +				//Declare and create an instance of IEdmVault5 object
    +				IEdmVault5 vault = new EdmVault5();
    + 
    +				//Log into selected vault as the current user
    +				vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    + 
    +				ArrayList Cards = new ArrayList();
    +				Cards.Clear();
    + 
    +				IEdmFolder5 Folder = default(IEdmFolder5);
    +				Folder = vault.RootFolder;
    + 
    +				IEdmVariableMgr5 VarMgr = default(IEdmVariableMgr5);
    +				VarMgr = (IEdmVariableMgr5)vault;
    + 
    +				//You could get the "Description" variable directly,
    +				//but get it by enumerating through all
    +				//the variables until it's found -
    +				//Dim DescVar As IEdmVariable5
    +				//DescVar = VarMgr.GetVariable("Description")
    + 
    +				IEdmPos5 VarPos = default(IEdmPos5);
    +				VarPos = VarMgr.GetFirstVariablePosition();
    +				while (!VarPos.IsNull)
    +				{
    +					IEdmVariable5 Var = default(IEdmVariable5);
    +					Var = VarMgr.GetNextVariable(VarPos);
    +					if (!(Var.Name == "Description"))
    +						continue;
    +					IEdmPos5 AttPos = default(IEdmPos5);
    +					AttPos = Var.GetFirstAttributePosition("");
    +					while (!AttPos.IsNull)
    +					{
    +						IEdmAttribute5 Att = default(IEdmAttribute5);
    +						Att = Var.GetNextAttribute(AttPos);
    +						string[] Extensions = null;
    +						Extensions = Att.Extensions.Split(',');
    +						string Extension = null;
    +						foreach (string Extension_loopVariable in Extensions)
    +						{
    +							Extension = Extension_loopVariable;
    +							IEdmCard5 Card = default(IEdmCard5);
    +							IEdmCard6 Card1 = default(IEdmCard6);
    +							try
    +							{
    +								Card = Folder.GetCard(Extension);
    +								Card1 = (IEdmCard6)Card;
    +								if (Card1.CardType == EdmCardType.EdmCard_File)
    +								{
    +									if (!Cards.Contains(Card.Name))
    +									{
    +										Cards.Add(Card.Name);
    +									}
    +								}
    +							} catch (System.Runtime.InteropServices.COMException ex) 
    +							{
    +								//E_EDM_INVALID_NAME
    +								if (!(ex.ErrorCode == unchecked((int)0x8004021d)))
    +								{
    +									throw new System.Runtime.InteropServices.COMException(ex.Message, ex.ErrorCode);
    +								}
    +							}
    +						}
    +					}
    +				}
    + 
    +				string CardName = null;
    +				foreach (string CardName_loopVariable in Cards)
    +				{
    +					CardName = CardName_loopVariable;
    +					Debug.Print(CardName);
    +				}
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    +		}
    + 
    + 
    +	}
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace CardsVariableCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used
    +        /// </summary>
    +        /// <param name="disposing">True if managed resources should be disposed; otherwise false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FindCardsButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(86, 23);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(70, 55);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FindCardsButton
    +            // 
    +            this.FindCardsButton.Location = new System.Drawing.Point(70, 95);
    +            this.FindCardsButton.Name = "FindCardsButton";
    +            this.FindCardsButton.Size = new System.Drawing.Size(121, 50);
    +            this.FindCardsButton.TabIndex = 2;
    +            this.FindCardsButton.Text = "Find cards with Description variable";
    +            this.FindCardsButton.UseVisualStyleBackColor = true;
    +            this.FindCardsButton.Click += new System.EventHandler(this.FindCardsButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(272, 173);
    +            this.Controls.Add(this.FindCardsButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Find cards with Description";
    +            this.Load += new System.EventHandler(this.CardsVariableCSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button FindCardsButton;
    +    }
    +}
    +
     
    +
    + +

     

    + + + + diff --git a/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_VBNET.htm b/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_VBNET.htm new file mode 100644 index 0000000..59b82ac --- /dev/null +++ b/documentation/api_extracted/Find_Data_Cards_with_Description_Variable_Example_VBNET.htm @@ -0,0 +1,263 @@ + + + +Find Data Cards with Description Variable Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Data Cards with Description Variable Example (VB.NET)

    +

    This example shows how to find the data cards in your vault that have a +Description variable.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type Exercise3 in Name.
    +'  4. Click the Browse button and browse to the folder where to create the project.
    +'  5. Click OK
    +'  6. Create a form similar to the form shown above and change: 
    +'     a. Label to VaultsLabel.
    +'     b. Combo box to VaultsComboBox
    +'     c. Button to FindCardsButton.   
    +'  7. Replace the code in Form1.vb with this code.
    +'  8. Replace the code in Form1.Designer.vb with this code.
    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 10. Right-click EPDM.Interop.epdm in References, select Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Open the Immediate window.
    +' 12. Switch back to the Form1.vb code window.
    +' 13. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click the Find cards with Description variable button.
    +'     The cards in your vault with a Description variable are
    +'     printed to the Immediate window. 
    +'  4. Examine the Immediate window.
    +'  5. Close the dialog.
    +'---------------------------------------------------------------------------- 
    +
    'Form1.vb
    + 
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Exercise4
    + 
    +  Private Sub Exercise4_Load( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles MyBase.Load
    + 
    +    Try
    +      'Declare and create an instance of IEdmVault5
    +      'Cast IEdmVault5 to IEdmVault8
    +      Dim vault As IEdmVault8 = New EdmVault5
    +      Dim Views() As EdmViewInfo = Nothing
    + 
    +      vault.GetVaultViews(Views, False)
    +      VaultsComboBox.Items.Clear()
    +      For Each View As EdmViewInfo In Views
    +        VaultsComboBox.Items.Add(View.mbsVaultName)
    +      Next
    +      If VaultsComboBox.Items.Count > 0 Then
    +        VaultsComboBox.Text = VaultsComboBox.Items(0)
    +      End If
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +  Private Sub FindCardsButton_Click( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles FindCardsButton.Click
    + 
    +    Try
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    + 
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +        Me.Handle.ToInt32())
    + 
    +      Dim Cards As New ArrayList
    +      Cards.Clear()
    + 
    +      Dim Folder As IEdmFolder5
    +      Folder = vault.RootFolder
    + 
    +      Dim VarMgr As IEdmVariableMgr5
    +      VarMgr = vault
    + 
    +      'You could get the "Description" variable directly,
    +      'but get it by enumerating through all
    +      'the variables until it's found -
    +      'Dim DescVar As IEdmVariable5
    +      'DescVar = VarMgr.GetVariable("Description")
    + 
    +      Dim VarPos As IEdmPos5
    +      VarPos = VarMgr.GetFirstVariablePosition
    +      While Not VarPos.IsNull
    +        Dim Var As IEdmVariable5
    +        Var = VarMgr.GetNextVariable(VarPos)
    +        If Not Var.Name = "Description" _
    +          Then Continue While
    +        Dim AttPos As IEdmPos5
    +        AttPos = Var.GetFirstAttributePosition("")
    +        While Not AttPos.IsNull
    +          Dim Att As IEdmAttribute5
    +          Att = Var.GetNextAttribute(AttPos)
    +          Dim Extensions() As String
    +          Extensions = Att.Extensions.Split(",")
    +          Dim Extension As String
    +          For Each Extension In Extensions
    +            Dim Card As IEdmCard5
    +            Try
    +              Card = Folder.GetCard(Extension)
    +              If Card.cardtype = _
    +                EdmCardType.EdmCard_File Then
    +                If Not Cards.Contains(Card.NameThen
    +                  Cards.Add(Card.Name)
    +                End If
    +              End If
    +            Catch ex As _
    +              Runtime.InteropServices.COMException
    +              'E_EDM_INVALID_NAME
    +              If Not ex.ErrorCode = &H8004021D Then
    +                Throw New _
    +                  Runtime.InteropServices.COMException _
    +                  (ex.Message, ex.ErrorCode)
    +              End If
    +            End Try
    +          Next Extension
    +        End While
    +      End While
    + 
    +      Dim CardName As String
    +      For Each CardName In Cards
    +        Debug.Print(CardName)
    +      Next CardName
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Exercise4
    +  Inherits System.Windows.Forms.Form
    + 
    +  'Form overrides dispose to clean up the component list.
    +  <System.Diagnostics.DebuggerNonUserCode()> _
    +  Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +    Try
    +      If disposing AndAlso components IsNot Nothing Then
    +        components.Dispose()
    +      End If
    +    Finally
    +      MyBase.Dispose(disposing)
    +    End Try
    +  End Sub
    + 
    +  'Required by the Windows Form Designer
    +  Private components As System.ComponentModel.IContainer
    + 
    +  'NOTE: The following procedure is required by the Windows Form Designer
    +  'It can be modified using the Windows Form Designer.  
    +  'Do not modify it using the code editor.
    +  <System.Diagnostics.DebuggerStepThrough()> _
    +  Private Sub InitializeComponent()
    +        Me.FindCardsButton = New System.Windows.Forms.Button()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.SuspendLayout()
    +        '
    +        'FindCardsButton
    +        '
    +        Me.FindCardsButton.Location = New System.Drawing.Point(37, 96)
    +        Me.FindCardsButton.Margin = New System.Windows.Forms.Padding(2)
    +        Me.FindCardsButton.Name = "FindCardsButton"
    +        Me.FindCardsButton.Size = New System.Drawing.Size(212, 41)
    +        Me.FindCardsButton.TabIndex = 20
    +        Me.FindCardsButton.Text = "Find cards with Description variable"
    +        Me.FindCardsButton.UseVisualStyleBackColor = True
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(58, 37)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(169, 21)
    +        Me.VaultsComboBox.TabIndex = 19
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(96, 9)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 18
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'Exercise4
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(301, 155)
    +        Me.Controls.Add(Me.FindCardsButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2)
    +        Me.Name = "Exercise4"
    +        Me.Text = "Find cards with Description"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +  Friend WithEvents FindCardsButton As System.Windows.Forms.Button
    +  Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +  Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/Find_Revisions_Using_Component_Example_CSharp.htm b/documentation/api_extracted/Find_Revisions_Using_Component_Example_CSharp.htm new file mode 100644 index 0000000..8efc483 --- /dev/null +++ b/documentation/api_extracted/Find_Revisions_Using_Component_Example_CSharp.htm @@ -0,0 +1,245 @@ + + + +Find Revisions Using Component Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Revisions Using Component Example (C#)

    +

    This example shows how to find the revision numbers using +the revision number component named Alpha Revision Component.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
     
    +//----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > C# > Windows Forms Application.
    +//  3. Type FindRevisionsCSharp in Name.
    +//  4. Click the Browse button and browse to the folder where to create the project.
    +//  5. Click OK
    +//  6. Create a form similar to the form shown above and change: 
    +//     a. Label to VaultsLabel.
    +//     b. Combo box to VaultsComboBox
    +//     c. Button to FindRevisionsButton.   
    +//  7. Replace the code in Form1.cs with this code.
    +//  8. Replace the code in Form1.Designer.cs with this code.
    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +// 11. Open the Immediate window.
    +// 12. Switch back to the Form1.cs code window.
    +// 13. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click the Find revisions that use Alpha Revision Component button.
    +//  4. Prints the names of the revision numbers using the revision number 
    +//     component Alpha Revision Component to the Immediate window. 
    +//  5. Examine the Immediate window.
    +//  6. Close the dialog.
    +//---------------------------------------------------------------------------- 
    +
    +
    //Form1.cs
    + 
    +using EPDM.Interop.epdm;
    +using System;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;
    + 
    +namespace FindRevisionsCSharp
    +{
    +	public partial class Form1 : Form
    +	{
    +		public Form1()
    +		{
    +			InitializeComponent();   
    +		}
    + 
    +		void FindRevisionsCSharp_Load(System.Object sender, System.EventArgs e)
    +		{
    +			try
    +			{
    +				//Declare and create an instance of IEdmVault5
    +				IEdmVault5 vault1 = new EdmVault5();
    + 
    +				//Cast IEdmVault5 to IEdmVault8
    +				IEdmVault8 vault = (IEdmVault8)vault1;
    + 
    +				EdmViewInfo[] Views = null;
    + 
    + 
    +				vault.GetVaultViews(out Views, false);
    +				VaultsComboBox.Items.Clear();
    +				foreach (EdmViewInfo View in Views)
    +				{
    +					VaultsComboBox.Items.Add(View.mbsVaultName);
    +				}
    +				if (VaultsComboBox.Items.Count > 0)
    +				{
    +					VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +				}
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    +		}
    + 
    + 
    +		private void FindRevisionsButton_Click(System.Object sender, System.EventArgs e)
    +	    {
    +		    try {
    +			        //Declare and create an instance of IEdmVault5 object
    +                                   //and cast to IEdmVault7
    +			        IEdmVault5 vault = new EdmVault5();
    +			        IEdmVault7 vault1 = (IEdmVault7)vault; 
    + 
    +			        //Log into selected vault as the current user
    +			        vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    + 
    +			        Debug.Print("Revision numbers that use revision number component \"Alpha Revision Component\":");
    +			        Debug.Print("");
    + 
    +			        IEdmRevisionMgr2 RevMgr = default(IEdmRevisionMgr2);
    +			        RevMgr = (IEdmRevisionMgr2)vault1.CreateUtility(EdmUtility.EdmUtil_RevisionMgr);
    + 
    +			        EdmRevNo[] RevNumbers = null;
    +			        RevMgr.GetRevisionNumbers(nullout RevNumbers);
    +			        foreach ( EdmRevNo RevNo in RevNumbers) {
    +				        EdmRevComponent2[] RevComponents = null;
    +				        RevMgr.GetRevisionNumberComponents2(-RevNo.mlRevNoID, out RevComponents);
    +				        foreach ( EdmRevComponent2 RevComponent in RevComponents) {
    +					        if (RevComponent.mbsComponentName == "Alpha Revision Component") {
    +						        Debug.Print("  " + RevNo.mbsRevNoName);
    +					        }
    +				        }
    +			        }
    + 
    +		        } catch (System.Runtime.InteropServices.COMException ex) {
    +			        MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +		        } catch (Exception ex) {
    +			        MessageBox.Show(ex.Message);
    +		    }
    +	    }
    +	}
    +}
    + +
    //Form1.Designer.cs
    +
    namespace FindRevisionsCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">True if managed resources should be disposed; otherwise false</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FindRevisionsButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(112, 37);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(94, 77);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FindRevisionsButton
    +            // 
    +            this.FindRevisionsButton.Location = new System.Drawing.Point(94, 136);
    +            this.FindRevisionsButton.Name = "FindRevisionsButton";
    +            this.FindRevisionsButton.Size = new System.Drawing.Size(121, 50);
    +            this.FindRevisionsButton.TabIndex = 2;
    +            this.FindRevisionsButton.Text = "Find revisions that use Alpha Revision Component";
    +            this.FindRevisionsButton.UseVisualStyleBackColor = true;
    +            this.FindRevisionsButton.Click += new System.EventHandler(this.FindRevisionsButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(304, 209);
    +            this.Controls.Add(this.FindRevisionsButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Find revisions using component";
    +            this.Load += new System.EventHandler(this.FindRevisionsCSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button FindRevisionsButton;
    +    }
    +}
    + + + + + diff --git a/documentation/api_extracted/Find_Revisions_Using_Component_Example_VBNET.htm b/documentation/api_extracted/Find_Revisions_Using_Component_Example_VBNET.htm new file mode 100644 index 0000000..de6c430 --- /dev/null +++ b/documentation/api_extracted/Find_Revisions_Using_Component_Example_VBNET.htm @@ -0,0 +1,224 @@ + + + +Find Revisions Using Component Example (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Revisions Using Component Example (VB.NET)

    +

    This example shows how to find the revision numbers using +the revision number component named Alpha Revision Component.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type Exercise5 in Name.
    +'  4. Click the Browse button and browse to the folder where to create the project.
    +'  5. Click OK
    +'  6. Create a form similar to the form shown above and change: 
    +'     a. Label to VaultsLabel.
    +'     b. Combo box to VaultsComboBox
    +'     c. Button to FindRevisionsButton.   
    +'  7. Replace the code in Form1.vb with this code.
    +'  8. Replace the code in Form1.Designer.vb with this code.
    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and select 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Open the Immediate window.
    +' 12. Switch back to the Form1.vb code window.
    +' 13. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click the Find revisions that use Alpha Revision Component button.
    +'  4. Prints the names of the revision numbers using the revision number 
    +'     component named Alpha Revision Component to the Immediate window. 
    +'  5. Examine the Immediate window.
    +'  6. Close the dialog.
    +'---------------------------------------------------------------------------- 
    +'Form1.vb
    + 
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Exercise5
    + 
    +  Private Sub Exercise5_Load( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles MyBase.Load
    + 
    +    Try
    +      Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +      vault.GetVaultViews(Views, False)
    +      VaultsComboBox.Items.Clear()
    +      For Each View As EdmViewInfo In Views
    +        VaultsComboBox.Items.Add(View.mbsVaultName)
    +      Next
    +      If VaultsComboBox.Items.Count > 0 Then
    +        VaultsComboBox.Text = VaultsComboBox.Items(0)
    +      End If
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +  Private Sub FindRevisionsButton_Click( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles FindRevisionsButton.Click
    + 
    +    Try
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    + 
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +         Me.Handle.ToInt32())
    + 
    +            Debug.Print _
    +              ("Revision numbers that use revision number component ""Alpha Revision Component"":")
    +      Debug.Print("")
    + 
    +      Dim RevMgr As IEdmRevisionMgr2
    +      RevMgr = vault.CreateUtility( _
    +        EdmUtility.EdmUtil_RevisionMgr)
    + 
    +      Dim RevNumbers() As EdmRevNo = Nothing
    +      RevMgr.GetRevisionNumbers(Nothing, RevNumbers)
    +      Dim RevNo As EdmRevNo
    +      For Each RevNo In RevNumbers
    +        Dim RevComponents() As EdmRevComponent2 = Nothing
    +        RevMgr.GetRevisionNumberComponents2 _
    +          (-RevNo.mlRevNoID, RevComponents)
    +        Dim RevComponent As EdmRevComponent2
    +        For Each RevComponent In RevComponents
    +                    If RevComponent.mbsCocmponentName = "  " & Alpha Revision Component" _
    +            Then
    +                        Debug.Print(RevNo.mbsRevNoName)
    +                    End If
    +        Next RevComponent
    +      Next RevNo
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    +End Class
    + +
    'Form1.Designer.vb
    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Exercise5
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.FindRevisionsButton = New System.Windows.Forms.Button()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.SuspendLayout()
    +        '
    +        'FindRevisionsButton
    +        '
    +        Me.FindRevisionsButton.Location = New System.Drawing.Point(95, 107)
    +        Me.FindRevisionsButton.Margin = New System.Windows.Forms.Padding(2)
    +        Me.FindRevisionsButton.Name = "FindRevisionsButton"
    +        Me.FindRevisionsButton.Size = New System.Drawing.Size(132, 50)
    +        Me.FindRevisionsButton.TabIndex = 23
    +        Me.FindRevisionsButton.Text = "Find revisions that use Alpha Revision Component"
    +        Me.FindRevisionsButton.UseVisualStyleBackColor = True
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(95, 47)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(132, 21)
    +        Me.VaultsComboBox.TabIndex = 22
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(113, 24)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 21
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'Exercise5
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(328, 176)
    +        Me.Controls.Add(Me.FindRevisionsButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2)
    +        Me.Name = "Exercise5"
    +        Me.Text = "Find revisions using component"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents FindRevisionsButton As System.Windows.Forms.Button
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    + 
    +End Class
    + +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Find_Users_Example_CSharp.htm b/documentation/api_extracted/Find_Users_Example_CSharp.htm new file mode 100644 index 0000000..abc8a8c --- /dev/null +++ b/documentation/api_extracted/Find_Users_Example_CSharp.htm @@ -0,0 +1,410 @@ + + + +Find Users Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Users Example (C#)

    +

    This example shows how to find users in the +vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type FindUser_CSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, and click Add).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the +Find Users dialog box.
    +
    +//     a. Select a vault +view.
    +
    +//     b. In +Full name contains, type a substring of the full name of a
    +
    +//        +user that exists in the vault.
    +
    +//     c. Click +Find Users.
    +
    +//        +A message box confirms the substring typed in Postconditions
    +
    +//        +step 1b.
    +
    +//     +d. Click OK.
    +
    +//        +Displays a Search for users dialog.
    +
    +//     +e. Click Find.
    +
    +//        +Displays a Search for users dialog with results.
    +
    +//     +f. Click the first row.
    +
    +//     +g. Click Select.
    +
    +//        +* Displays a message box with the updated user information.
    +
    +//        +* The selected user's phone and website information are updated.
    +
    +//     +h. Click OK.
    +
    +//  +2. Updates the Find Users dialog box with the full name and picture,
    +//     if it exists, of the last user found whose full name contains the substring
    +
    +//     +typed in Postconditions step 1b.
    +
    +//  3. Close the Find +Users dialog box.
    +//----------------------------------------------------------------------------

    +
    //Form1.cs
    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace FindUser_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        IEdmVault5 vault1;
    +        IEdmVault8 vault;
    +        EdmViewInfo[] Views = null;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }


    +        private void FindUsers_Click(System.Object sender, System.EventArgs e)
    +         + {
    +           try {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null) {
    +                   + vault1 = new EdmVault5();
    +                + }
    +                + vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn) {
    +                   + vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                + }

    +                //Get the user search interface 
    +                IEdmFindUser poFind = default(IEdmFindUser);
    +                + poFind = (IEdmFindUser)vault2.CreateUtility(EdmUtility.EdmUtil_FindUser);

    + +               +//Search for a user with specified text in the full user name 
    +                + poFind.SetPropt(EdmFindUserProp.Edmfup_FullName, this.TextBox1.Text);
    +                string val = null;
    +                + val = (string)poFind.GetPropt(EdmFindUserProp.Edmfup_FullName);
    +                MessageBox.Show("Find users whose full +names contain " + "\"" + val + "\"");

    +                + poFind.ShowFindUI(this.Handle.ToInt32(), true"Search for users");

    +                IEdmEnum poResult = default(IEdmEnum);
    +                + poResult = poFind.Result;
    +                string str = "Found " + poResult.Count.ToString() + " users with full +names containing, " + 
    +                                         +"\""
     + this.TextBox1.Text + "\"" + ":";

    +                + System.Drawing.Image oImg = default(System.Drawing.Image);
    +                IEdmUser10 poUser = default(IEdmUser10);
    +                +EdmUserDataEx UserInfo = new EdmUserDataEx();

    +               //Specify which user data fields are valid
    +               UserInfo.mlEdmUserDataExFlags = (int)EdmUserDataExFlag.Edmudex_All;

    +                foreach ( object foundUser in poResult) {
    +                       poUser = (IEdmUser10)foundUser;

    +                        //Get user's information
    +                        + poUser.GetUserDataEx(ref UserInfo);

    +                        //Update user's information
    +                        + UserInfo.mbsPhone = "123456789";
    +                       UserInfo.mbsWebSite1 = "http://www.solidworks.com";
    +                       UserInfo.mbsWebSite2 = "https://www.facebook.com/solidworks";
    +                       poUser.SetUserDataEx(ref UserInfo);
    +                       str = str + "\n" + "Full name: " + UserInfo.mbsCompleteName + ", Phone: " + UserInfo.mbsPhone + 
    +                                           +", WebSite1: "
     + UserInfo.mbsWebSite1 + ", Website2: " + UserInfo.mbsWebSite2;            +
    +               +}

    +                MessageBox.Show(str);

    +                //Display the picture, if available, of the last user found 
    +                if ((UserInfo.mbsPicturePath != null)) {
    +             +     this.TextBox2.Text = UserInfo.mbsCompleteName;
    +                  +oImg = System.Drawing.Bitmap.FromFile(UserInfo.mbsPicturePath);
    +         +         this.CreateGraphics().DrawImage(oImg, 40, 220);
    +                 }

    +        + } catch (System.Runtime.InteropServices.COMException ex) {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +        + } catch (Exception ex) {
    +                MessageBox.Show(ex.Message);
    +        + }

    +      + }
    +    }
    +}

    + +
    +
    //Form1.Designer.cs
    +
    +
    +

    + namespace FindUser_CSharp
    + {
    +     partial class Form1
    +     {
    +         /// <summary>
    +         /// Required designer variable.
    +         /// </summary>
    +         private System.ComponentModel.IContainer components = null;

    +         /// <summary>
    +         /// Clean up any resources being used.
    +         /// </summary>
    +         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +         protected override void Dispose(bool disposing)
    +         {
    +             if (disposing && (components != null))
    +             {
    +                 components.Dispose();
    +             }
    +             base.Dispose(disposing);
    +         }

    +         #region Windows Form Designer generated code

    +         /// <summary>
    +         /// Required method for Designer support - do not modify
    +         /// the contents of this method with the code editor.
    +         /// </summary>
    +         private void InitializeComponent()
    +         {
    +             this.FindUsers = new System.Windows.Forms.Button();
    +             this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +             this.Label1 = new System.Windows.Forms.Label();
    +             this.Label2 = new System.Windows.Forms.Label();
    +             this.TextBox1 = new System.Windows.Forms.TextBox();
    +             this.Label3 = new System.Windows.Forms.Label();
    +             this.TextBox2 = new System.Windows.Forms.TextBox();
    +             this.SuspendLayout();
    +             // 
    +             // FindUsers
    +             // 
    +             this.FindUsers.Location = new System.Drawing.Point(72, 136);
    +             this.FindUsers.Name = "FindUsers";
    +             this.FindUsers.Size = new System.Drawing.Size(66, 23);
    +             this.FindUsers.TabIndex = 0;
    +             this.FindUsers.Text = "Find Users";
    +             this.FindUsers.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +             this.FindUsers.UseVisualStyleBackColor = true;
    +             this.FindUsers.Click += new System.EventHandler(this.FindUsers_Click);
    +             // 
    +             // VaultsComboBox
    +             // 
    +             this.VaultsComboBox.FormattingEnabled = true;
    +             this.VaultsComboBox.Location = new System.Drawing.Point(30, 39);
    +             this.VaultsComboBox.Name = "VaultsComboBox";
    +             this.VaultsComboBox.Size = new System.Drawing.Size(169, 21);
    +             this.VaultsComboBox.TabIndex = 1;
    +             // 
    +             // Label1
    +             // 
    +             this.Label1.AutoSize = true;
    +             this.Label1.Location = new System.Drawing.Point(27, 23);
    +             this.Label1.Name = "Label1";
    +             this.Label1.Size = new System.Drawing.Size(91, 13);
    +             this.Label1.TabIndex = 2;
    +             this.Label1.Text = "Select vault view:";
    +             // 
    +             // Label2
    +             // 
    +             this.Label2.AutoSize = true;
    +             this.Label2.Location = new System.Drawing.Point(27, 77);
    +             this.Label2.Name = "Label2";
    +             this.Label2.Size = new System.Drawing.Size(98, 13);
    +             this.Label2.TabIndex = 3;
    +             this.Label2.Text = "Full name contains:";
    +             // 
    +             // TextBox1
    +             // 
    +             this.TextBox1.Location = new System.Drawing.Point(32, 93);
    +             this.TextBox1.Name = "TextBox1";
    +             this.TextBox1.Size = new System.Drawing.Size(167, 20);
    +             this.TextBox1.TabIndex = 4;
    +             // 
    +             // Label3
    +             // 
    +             this.Label3.AutoSize = true;
    +             this.Label3.Location = new System.Drawing.Point(29, 172);
    +             this.Label3.Name = "Label3";
    +             this.Label3.Size = new System.Drawing.Size(83, 13);
    +             this.Label3.TabIndex = 6;
    +             this.Label3.Text = "Last user found:";
    +             // 
    +             // TextBox2
    +             // 
    +             this.TextBox2.Location = new System.Drawing.Point(30, 188);
    +             this.TextBox2.Name = "TextBox2";
    +             this.TextBox2.Size = new System.Drawing.Size(169, 20);
    +             this.TextBox2.TabIndex = 7;
    +             // 
    +             // Form1
    +             // 
    +             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +             this.ClientSize = new System.Drawing.Size(406, 447);
    +             this.Controls.Add(this.TextBox2);
    +             this.Controls.Add(this.Label3);
    +             this.Controls.Add(this.TextBox1);
    +             this.Controls.Add(this.Label2);
    +             this.Controls.Add(this.Label1);
    +             this.Controls.Add(this.VaultsComboBox);
    +             this.Controls.Add(this.FindUsers);
    +             this.Name = "Form1";
    +             this.Text = "Find Users";
    +             this.Load += new System.EventHandler(this.Form1_Load);
    +             this.ResumeLayout(false);
    +             this.PerformLayout();

    +         }
    +         internal System.Windows.Forms.Button FindUsers;
    +         internal System.Windows.Forms.ComboBox VaultsComboBox;
    +         internal System.Windows.Forms.Label Label1;
    +         internal System.Windows.Forms.Label Label2;
    +         internal System.Windows.Forms.TextBox TextBox1;
    +         internal System.Windows.Forms.Label Label3;
    +         internal System.Windows.Forms.TextBox TextBox2;


    +         #endregion
    +     }
    + }

    +
     
    +
    + + + + + diff --git a/documentation/api_extracted/Find_Users_Example_VBNET.htm b/documentation/api_extracted/Find_Users_Example_VBNET.htm new file mode 100644 index 0000000..f1bd1ed --- /dev/null +++ b/documentation/api_extracted/Find_Users_Example_VBNET.htm @@ -0,0 +1,304 @@ + + + +Find Users Example (VB.NET) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Find Users Example (VB.NET)

    +

    This example shows how to find users in the +vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type FindUser in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Find Users dialog box.
    +'     a. Select a vault view.
    +'     b. In Full name contains, type a substring of the full name of a 
    +'        user that exists in the vault.
    +'     c. Click Find Users.
    +'        A message box confirms the substring typed in Postconditions
    +'        step 1b. 
    +'     d. Click OK.
    +'        Displays a Search for users dialog.
    +'     e. Click Find.
    +'        Displays a Search for users dialog with results.
    +'     f. Click the first row.
    +'     g. Click Select.
    +'        * Displays a message box with the updated user information.
    +'        * The selected user's phone and website information are updated.
    +'     h. Click OK.
    +'  2. Updates the Find Users dialog box with the full name and picture, if
    +'     it exists, of the last user found whose full name contains the substring 
    +'     typed in Postconditions step 1b. 
    +'  3. Close the Find Users dialog box.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1
    +    Dim vault1 As IEdmVault5 = New EdmVault5()
    +    Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +    Dim Views As EdmViewInfo() = Nothing
    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +    Private Sub FindUsers_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles FindUsers.Click

    +        Try
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Get the user search interface 
    +            Dim poFind As IEdmFindUser
    +            poFind = vault2.CreateUtility(EdmUtility.EdmUtil_FindUser)

    +            'Search for a user with specified text in the full user name 
    +            poFind.SetPropt(EdmFindUserProp.Edmfup_FullName, Me.TextBox1.Text)
    +            Dim val As String
    +            val = poFind.GetPropt(EdmFindUserProp.Edmfup_FullName)
    +            MessageBox.Show("Find users whose full +names contain " & """" & val & """")

    +            poFind.ShowFindUI(Me.Handle.ToInt32(), True"Search for users")

    +            Dim poResult As IEdmEnum
    +            poResult = poFind.Result
    +            Dim str As String = "Found " & poResult.Count.ToString & " users with full +names containing, " & """" & Me.TextBox1.Text & """" & ":"

    +            Dim oImg As System.Drawing.Image
    +            Dim poUser As IEdmUser10
    +            Dim UserInfo As EdmUserDataEx = New EdmUserDataEx()
    +            UserInfo.mlEdmUserDataExFlags = EdmUserDataExFlag.Edmudex_All

    +            For Each element In poResult
    +                poUser = element

    +                'Get user's information
    +                poUser.GetUserDataEx(UserInfo)

    +                'Update user's information
    +                UserInfo.mbsPhone = "123456789"
    +                UserInfo.mbsWebSite1 = "http://www.solidworks.com"
    +                UserInfo.mbsWebSite2 = "https://www.facebook.com/solidworks"
    +                poUser.SetUserDataEx(UserInfo)

    +                str = str & vbLf & "Full name: " & UserInfo.mbsCompleteName & ", Phone: " & UserInfo.mbsPhone & ", WebSite1: " & UserInfo.mbsWebSite1 & ", Website2: " & UserInfo.mbsWebSite2
    +            Next

    +            MessageBox.Show(str)

    +            'Display the picture, if available, of the last user found 
    +            If Not UserInfo.mbsPicturePath = Nothing Then
    +                Me.TextBox2.Text = UserInfo.mbsCompleteName
    +                oImg = System.Drawing.Bitmap.FromFile(UserInfo.mbsPicturePath)
    +                Me.CreateGraphics().DrawImage(oImg, 40, 220)
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +End Class

    + +
    +
    'Form1.Designer.vb
    +
    +
    +

    + <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    + Partial Class Form1
    +     Inherits System.Windows.Forms.Form

    +     'Form overrides dispose to clean up the component list.
    +     <System.Diagnostics.DebuggerNonUserCode()> _
    +     Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +         Try
    +             If disposing AndAlso components IsNot Nothing Then
    +                 components.Dispose()
    +             End If
    +         Finally
    +             MyBase.Dispose(disposing)
    +         End Try
    +     End Sub

    +     'Required by the Windows Form Designer
    +     Private components As System.ComponentModel.IContainer

    +     'NOTE: The following procedure is required by the Windows Form Designer
    +     'It can be modified using the Windows Form Designer.  
    +     'Do not modify it using the code editor.
    +     <System.Diagnostics.DebuggerStepThrough()> _
    +     Private Sub InitializeComponent()
    +         Me.FindUsers = New System.Windows.Forms.Button()
    +         Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +         Me.Label1 = New System.Windows.Forms.Label()
    +         Me.Label2 = New System.Windows.Forms.Label()
    +         Me.TextBox1 = New System.Windows.Forms.TextBox()
    +         Me.Label3 = New System.Windows.Forms.Label()
    +         Me.TextBox2 = New System.Windows.Forms.TextBox()
    +         Me.SuspendLayout()
    +         '
    +         'FindUsers
    +         '
    +         Me.FindUsers.Location = New System.Drawing.Point(72, 136)
    +         Me.FindUsers.Name = "FindUsers"
    +         Me.FindUsers.Size = New System.Drawing.Size(66, 23)
    +         Me.FindUsers.TabIndex = 0
    +         Me.FindUsers.Text = "Find Users"
    +         Me.FindUsers.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +         Me.FindUsers.UseVisualStyleBackColor = True
    +         '
    +         'VaultsComboBox
    +         '
    +         Me.VaultsComboBox.FormattingEnabled = True
    +         Me.VaultsComboBox.Location = New System.Drawing.Point(30, 39)
    +         Me.VaultsComboBox.Name = "VaultsComboBox"
    +         Me.VaultsComboBox.Size = New System.Drawing.Size(169, 21)
    +         Me.VaultsComboBox.TabIndex = 1
    +         '
    +         'Label1
    +         '
    +         Me.Label1.AutoSize = True
    +         Me.Label1.Location = New System.Drawing.Point(27, 23)
    +         Me.Label1.Name = "Label1"
    +         Me.Label1.Size = New System.Drawing.Size(91, 13)
    +         Me.Label1.TabIndex = 2
    +         Me.Label1.Text = "Select vault view:"
    +         '
    +         'Label2
    +         '
    +         Me.Label2.AutoSize = True
    +         Me.Label2.Location = New System.Drawing.Point(27, 77)
    +         Me.Label2.Name = "Label2"
    +         Me.Label2.Size = New System.Drawing.Size(104, 13)
    +         Me.Label2.TabIndex = 3
    +         Me.Label2.Text = "Full name contains:"
    +         '
    +         'TextBox1
    +         '
    +         Me.TextBox1.Location = New System.Drawing.Point(32, 93)
    +         Me.TextBox1.Name = "TextBox1"
    +         Me.TextBox1.Size = New System.Drawing.Size(167, 20)
    +         Me.TextBox1.TabIndex = 4
    +         '
    +         'Label3
    +         '
    +         Me.Label3.AutoSize = True
    +         Me.Label3.Location = New System.Drawing.Point(29, 172)
    +         Me.Label3.Name = "Label3"
    +         Me.Label3.Size = New System.Drawing.Size(83, 13)
    +         Me.Label3.TabIndex = 6
    +         Me.Label3.Text = "Last user found:"
    +         '
    +         'TextBox2
    +         '
    +         Me.TextBox2.Location = New System.Drawing.Point(30, 188)
    +         Me.TextBox2.Name = "TextBox2"
    +         Me.TextBox2.Size = New System.Drawing.Size(169, 20)
    +         Me.TextBox2.TabIndex = 7
    +         '
    +         'Form1
    +         '
    +         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +         Me.ClientSize = New System.Drawing.Size(406, 447)
    +         Me.Controls.Add(Me.TextBox2)
    +         Me.Controls.Add(Me.Label3)
    +         Me.Controls.Add(Me.TextBox1)
    +         Me.Controls.Add(Me.Label2)
    +         Me.Controls.Add(Me.Label1)
    +         Me.Controls.Add(Me.VaultsComboBox)
    +         Me.Controls.Add(Me.FindUsers)
    +         Me.Name = "Form1"
    +         Me.Text = "Find Users"
    +         Me.ResumeLayout(False)
    +         Me.PerformLayout()

    +     End Sub
    +     Friend WithEvents FindUsers As System.Windows.Forms.Button
    +     Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +     Friend WithEvents Label1 As System.Windows.Forms.Label
    +     Friend WithEvents Label2 As System.Windows.Forms.Label
    +     Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    +     Friend WithEvents Label3 As System.Windows.Forms.Label
    +     Friend WithEvents TextBox2 As System.Windows.Forms.TextBox

    + End Class

    + + +

     

    + + + + diff --git a/documentation/api_extracted/FolderPermissions.gif b/documentation/api_extracted/FolderPermissions.gif new file mode 100644 index 0000000000000000000000000000000000000000..ee0d5c5424fda4e26ad0134e59602a69761fe2db GIT binary patch literal 22212 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GenConfigValues.gif b/documentation/api_extracted/GenConfigValues.gif new file mode 100644 index 0000000000000000000000000000000000000000..3c35f026d45bddbeb6c460c9f7ac25f0a2c11ec2 GIT binary patch literal 10141 zcmV;OCt}z~Nk%w1VNL=^0e1iZA^8LW00000EC2ui08Ro&0f+wp{{R305D*X;5D*#` z7#tcM9T^)Q8y_PeBqkyyCnPB|Gcz?}w>l9DJr)u=XSzIpu|3T1InMV%aK1s#@<-SD zN+B3dB^^vGCrvRdOGryiNli-L|4}3xQz#%(J2p>DPf<}(Q&wh7kGokdCRam0SyWnB ziOXG*{9DcHVkaAAGACkRVrO1xV3N^jUukJ+X>Vz9Zf$*P-T8AC7jbHHb8~ZXZ+vj0 z+H|G=c&*-h7zleH5q>KmdUSq%d4GO025UiAztCy#%nW(Ou ztgW22u%fi9t+Tf#3$#Hqv`9L(R7SXAQ?sA0wVbuKrM9@Oy1OO{y+Sd+N;$t`Qoe6v zxQ!CNk`%h9xV@^lysW*wvBbQyzrer1yS&20DGA0xDaJ%E#z{58Rz$~fVa0rK#+Met zufM~v#KW|}#@7)yBNU#=OqS!PCwu2+uh)&POuNPCCz7L(OJT&3VcK|K-h^x2 zg?ZeIf!vpm-kz7=u&dygeX}?~HrxmyPe7jPa(N@2#cnx2x*L#q7(; z?9a~a)zs_a?CwWap+_xt<&{{a8{z!3Yw8vDj6`^!80 z&`8Lu3fuW?&{qumkQs%fCHC^$Hk(Jo&>n0bJnZZGG>q?OP;*!aplXHGc#+z=I1PPQ1AB~kI$RKN7yt-xv5jM(Iiul*9Cqm8haXA?;)ouK z=ZttLrl{g(r-27vcQD2%WF8J~ObS*hiD=}2LYf(jxSpn+rxDCU1)@<)z?kZn^K05B-PjcbsRXy=C7 z7-f`CCaUP7j6TWaqmV`_>7cUH=*k-Hkwv;BvZKcqDr_8jXO_@%8=%%Z#eNU*9E*2uhEAPBm zq+6;n_~J{=zWlPf&c9d4d&N2d$2;&ktn$lmzW8GEL9KOiu>b<;?BZIX+9<2>#vFI- zv9f_OTOzq6muxa*%7FLn$}G1$skbge8t!c;LuT&B#k!{su_Ev#0TqmHx;%xTWXs2E5pCXS~^VrO^ zU8ra}#ys=gipH#W{-$`-rp&l+PuY#!9CA~{VjViImk1tmvqUzaL=Flulvggz<
    zxfP0cUWMkEUtW3Tk|UGB){ylAk3nJgs$n6p$1c0<$c_r?y6LK|`|f_~N%-%22ES+7 z8?${PXm#)1_wu&w?L4K-^YVAiQ*u+<*vxW61mYYzJ#V~Ed$>&!*nDFCE$H7e%=*J< z?!M+#DE{>4?`zKfFzMf7{xPSgt~%>ti`(lsRESX+(14EkLm`Z1y9PQ?KK0?91dk=W z;Qh`+6(pYSLUugK+~#@KiXQVoNJ5!0Z+a!0(uG>X!WM3W2;E?f2-1-b5p-sTHDt~B z%4a_F+2V)(wpbrDhDgLA#*cj~F%}ED#VuSOFjevA{sb2_EYQXaobFghwJY z0um1x4Bp2!&_|B34SBTzp$J7-!b%$Hgn*mYlzJhEPI^)hGWg#2WbjEr5P}soa0Ve( z$x0E-M+B@Sge$oL%UB9R6+FPj8O|VwUdmw)dr*WhH9<^R7}JJXGO2XJ|2tqxhme@_~;njImGWX=5R}(Z*h^Q9VTnfIH)9yE$rU zK6C!8Pd?{EhyWCek7)y_vNqt)Z7@<}dHO*k2br<63Dj&MgCuPvIY~-d@}fan-rq9W zsZHYHqaekD{OlrvkbYDZFmQ%RMf%F`y>g|v#Dy8maE3V8R1bPcgiaHoiC6g4r%X`h zE1B@qR}gcjIMstq<8THuSQDG@NWcNM+0EG%!V%-d$35(!g>&)=9lZ#^I^W5jO2~7K zVo>9j?AeX^gtZs*A;KMrHOGK1)L39B=*NEWg9$zqXB?EMY%E#Pdf0oj&uJ$>gkNH!A{W!s3~l(Ee#s zms-that$5|m?}51SBOI#0uE&;gdenOk9yE!3SMpN8QB8@G@doB%?*GUx)Fd%oTmtH zOs87a$m7_R3N>Ay^`vE;QA$CGpfo@(jR<-iT3`MWn0wfS zl9#OHACsoFPX2`mn7m{p@4?7&c&cP@tJ|vPVI1GcLLtylTzbr79!~J;{x;aTUGx+| zt!)(VblaKM^PKg&>j6P_-`tIOu2Z^fzOGpN3}^4M6+QXvCpU!EM*52QzIWV!AoEKI z0t-u^8<;B*7Ak3C1z^$%HYkJ*tVh0X!@~WHFd!=o;Zu)#!Nbb5g!^b;S--Hp@BOre z2dSaSq%4w^WO3hKj986w6h$y7ot84`iNHK?QdwUV! zUIZt`O>RyML0&^JH@eGB?r<-{+uaU@1E|OhE>o4aW%vd#j8KRzXkiLdaDu?q9BA%Z z*UpuwGs53mi8fR8XZ*0J7;8axB*tCWP;C4ud-kG&T?I0hZo&WEXwv=x165dJ?2?#-_{UFv@mu2j z=s*82Zm^B?yZ`<0SAP$X(TDo?ff4w}|19>;|6ut4|Npmt0my&+mw)(Ie~my29zbtg zmJWlLMMe+=K|lkApaT}D130iiYPM$alzBza3-lyj;$;XT*bQdoUF(H{=XG9c#b=&p zaiv!TFw|!#*hbv2Pm9JU@x>=^^+NsxP-+bz2-r{R&3Q5F4q@zF{XWy z(G6Vi1i!Ef@wbQX=L|lu4VMszf;fnTScrn?4E{op42`gei|7fCSPPI?3&Jpolvs(D zXo-;siH_(Ai}(q+kOo7*fVt&>RW&<0Kn75d11F$?#F9?Vm0jrNPHE*_nMYmO1y9a3 zUDV}Vc-Ch#h(_c^1oRP$H&}#Wm4+rpVq%C!N7r4dFk(drVEGkt#KK{C;A&{30aI9o z+CYU?_yf*hVa}jntL6;&0!6?I-Hn0;z}s6TpgOG%5mSEYH zW_bY@umV!R4QmJ)xK)x5I6&UyO%pHy55NEn;F7JlR&AzTpn?wQU?uZ$lYT@8VjGS()N6qidQ><86Rl{ zn5>CLwOA#DS(p}dm~9gome5_1L7N(qLBFygpdo$Jw~vy!DU^wnmg$cr13bEUm?TMx zkFlG^lSr{Soo5rB%=tFhNiv515*o=9hr>yn#kpd~nVp2UoaWgqks+F>&={m?ozST# z)ES?>lanGtp3~AIywE}|R2%jg8{H|K-#MA#*>p35oaAzz2r4Mext8SuEi3(!#p6>ac4l1E)lR-3E zp@Z@^jUgMo&^I*Fqr3qryTKztY9rdw9e5+6LIR?Tf}|7$Ee1L*CmN+~S#K(u4lLTB z59*VQNkLhvo7uT2KKi5E(Hoairotg9*J3S9$|OpfBWwCR1^T4UBBdv~pzH~qbZVjf zsVFf*q&s4!&`}+NI;j4G>LYKOEp6JNhpIf|`8IiqpbOffnK`MHTB(+LshFCnl}eLv zgf0{Msl%ck#loqiTB@dcs-y~-f61Dx+N!Sls-?=Bs9GhOTC28ttGJ4(gA=K)(G6hm z0>B!q!aA(PTCB!;tjL*(mJiwTCLW4t=O8a+PbaW+O6LDt;-4q zyXuw-Kmb-MHtEm;xw@|G+OF>UuJ9VK@;a~dTCetculSm;`ns?D+OLuI0*jHN=2{8p zs;>Teun3#53cIij+prG%un-%u{tB>wH?RdOu^5}N8oRL^+p!+|u^^kP6f3alK(MZn zt|6PUD!Z~Q+y1gH`?4N8vgA6jyM?kad$Ty3vpT!8JPWfjOQke>vIg6;L|e2*d$dTK zv?2>JGh4DXJG4q0wNg8^R9m$%%d|l2v_fmOT-&u?`?X*TuRn`hLCXv_8@6bhwrab! zR6DlisxRN`$l>4`io3)S|x0SoOoZGoxo43cax0&0wo?E)6d%8Ibx{rIfsN1@(`??>i zx|n;huv@#fd%FrNyP`|GxZAtF`@8W9x+k)`kqf-Wd%VbNslq$E#hbj&`@F!ryu_=y z&|AIM{#(1!`?e-az1Q2l-rKpt>kQLNy5C#A<}0}2yStD^rx=UoWKgazzp2L4*b9n9KjMi!4zD<7JR`G zYzV)AzxN8T`zyZ}^S^9cMuAbnCVavuoWd%+!YtgvF8snU+``@P3><8)01KMp3&Qk^ zsR1BaJVlE^yM3n#bjK^c6`TpoX2uu#%CA)xc zYW%jl<-b&1#aDdAXhcJAoDNzH$1O|8dK}4;Jjs-t!hGDv?s~(ZxwqV;A#HrfifqV> zEXO$u$(4M{sGQ1?e94&1u9^&xoZJhZT*#vA#?HmahfK;iYs#wJ%f9@}NX*KuytI9i z!vr9BvP{UDs>`FC%eY+1z#PreJk2aD%)@-EFMyDILbmX*3Ig=WZXC{`{KJW?%Qwr* z)SS-hoXRGLMrC}>nXJv*U~dfy&Y+CQiOk4yOwQ1}&i?$*m27f#Va@Q|xbjTT8nO-c z9Jc5T&<_33VeDLXLC^(_so5+n2rZK8K+9{}&=CF6AZ^3}a2FI^(aL+!QU(4GvdkwN z4Y(d1(l8yM(?A{6mR!@gdeg9s06Hy_+tAW~`_n@G z)KIM#G)>f!b<=8$)bNndOWo6H>(o*G)logwRE3E!PJyRZ6|pF5L}!UD!`O!*FfTfGoa$P1igPxU(ABl0Dg! zUD=j>*`Sixnd;YoUDsT#*`OWTw#wO#E!d)c+NfRB+RWIUz0IGU+OUn3 zz!<#U+}+*Y{oUXl-r_ypFKhAhsw%*;4m&Q31n zWM1Y^P30CXa5Pf5R{qqS9u&&?gfJFab5dT0!Q-SMU&Fjj( z>_!afmD<}=K|{li0L7jT$Byb=tLn_Y?cBb{>s=MoUhUWJ(%oL}<_;LnZqx7p?g~Kd z);{h{eeUu;?~lIT>pm6#(C)>4>q3F;U90W%9`Jac?vvWvM3L|A{_e<*wg4~i4o~I; zpPA536$qczN^RG6OTrJo@vWZU^=j1f-0sM{!+(qZ*(QJTD4+5wzw#{K@-Dwd9gMXN zXbG#(ywH8~aP77SP_i}83k!|&K!3(MueI*v??Hd`?mM!wA)1oFO+}CNP!G>a&kIpy zu92V$HQxsy)V!Wud(zAVD+ew^;_TdXrH`aANEu~_UZ5lW&iYltKH~b_jZ5x zc%S!rzxRCK_YbVzHrx%gQT1`Tq*~RR6Y;zYCQA=7b)#s?YkmU)Zis z*08^~vtRp}I^fTI<3^kNyPy1E-TO53^@IK|`vfcemY?Zhe*DUR{VLwUzYqPnApNF4 z=#6arM2q~`U;Z)8{BgbgqAv;EU;0@L{?DBG=0E=kj{eRM`LfUc-v9pLT>V8${s8e$ z;6Q=}4IV_8P~k#`4IMs&7*XOxiWMzh#F$azMu-7CehfhHSvry>O`b%V(&US7yj=2v zr+`2@L6UN<>efQ#$pAdl_5A5^=TM?WjUFw^jpI_LO`Sf48dd64s#Ph13@H-n)^sdi z!jwtVCQhAP&7MV@HmOy%ZQZ_w8&~e!jUNq;RJ+sb%a}83=F*ij?_k1(hbpC;Sn*=U zjU7K8n6)5Y!zK5+?3*r-&A??VfBpu27BOVfrA?nkomwH~&zHf@+?-35;Lx>g6CJHu z_io<3eKTcU*>z?>HdE2Qom_dk+`pYahaSCmaKppH7SDCu^K$N>n@a~DUi|pB)C*gm zS^Sjt?(IK+Cm&z_eEJa06Gop-J$v{42g9!~Kmi9F@4mtEyF-%okn^uWv$*MoKnW+L zu(xgu%nLyU`E#&Cq`CnyL=i_Mu|yM3L@`AbS7fn87hi-iMj2Pk)^id|FTVscOfknK(=08y ze6mb6*JQIzH{WcnCBDL{{^Joe;lwjfJ@@33OqO(+lYnmOyt7Y34@ERlMV0##(AUx- zw8=CVrLhzRTR)sZJ zl)4xJ0$+axHdtYYCAL^&k3}|FWtU~PS!bVxHd<+o9ia<6Wu>(aL2SiUS8sWxpaOBn zCAVC2&qX&~b=PILU3cGwH(q(?rMF&t)uo_XII)!})opK`)Z11^pkM}p59V%$eD_61 z7l&uc-*7GL7KdB!XZEWqsk@cMsm(I@4Rr#L!bO}(n$xs^U)n=y>-`LS3K`E z_g2tvz%PY>f@gN;y?5V#2R?Y=hbO*x-~;#_`Q4FM{u$<%@4b26n`d76=beWhdg-Z8 z9((S;&)#_P$0xsh;VI}i=awHv_3Tq@zrE7j&8NS9`;YHl`{}XgKm7gm2cY%#Cq3^) z?;{1&9!UQDcRvO;aD3=vnald+KKR9NQMvm?1~s@r4tCIk9|U0tML0qa2B3o`%%BNT z_zM-LaDyw<;0jylLKN08hAiaZ3~@-q9pVs%HzZ*Yg*ZeaiV%Y8lVHdw_%{pY34=w1 zVicu#!WZ^Xhc)~m46kU#9omqGIjkZNvB*U)PSK2K6ygz`wmyfoPihrx;@T+C3p&=( zj(5ak9`(3KKK9X%dIU)wKSIYq5;Bj4?8P7xDM&*GK#(3WIL*V6sV= z+eBwN)wxb~w$q*Od}lY+^t5n}vz&(-K?G6&Pk#2(pZ^4CK-HOo2#g?t?CaMT_y)&& z>WNnofM`S|I#G&N)S?%~Xht=g=$oj`qMAqp`|a4 zYF4#s!Ktbgs0niFR>eA2wRLr=D+Mc7$+}jyddsY({6boX+E%*Ol~PZO>s9A!{#U;C zRZn=8t6v2>*hB$VuY^TxVz2d0v>sNmkA>`*3>((SR@SmqnygwcyIIb9D6@O*Y-mLr zC#nW^w5LTaqZs>D$EMb`uRYId^GaE+eZ)O?gKci(_}Q%-4Q{wK3vhKi+_EYauBJT- z-Msc0;S$%mGUF{$lxy3d%uOgfxo%K^a^0ad_qpFiSag$XlCJfnyyX3wPqv$0@V2+C zvPCY}&}&_x_?EhL!)|@?D>nD`7rL^wDs78GH{Xh_!0bh^dH3sG|2CLZPYXj+HJg$H z^H;$Zo-fi0yx#pf*uw&&oq&l_w69TjyZ5DUiSA1s_qfBKki`B~M zu&O0eA>%HWxymg;C<4GN&QF=y%|+eIQq^qLRB&h~V8C;p^}J_3_u0>X26UhWJ!nD~ z+R%qabfOi#Xht{M(T|37q$NFRN>|#_mj*+eA*SXh*O@^o0Rs#~J!(>y+SI2;b*fdp zYF4+})vtzitYtlGTG!gvx5jm@b-im|_uALL26nJ7v*~nn+RmVc!JCzBGwX1A5}sya zsFyu$lr_89&pviaq)lyZhgVLUayGP!vh8k{J6F~=_NTR-Y;*p%+g0eswz^S5ZgPtHMl@qicGH3kiUvChCwA}TkgWc@i zL647X=kT+)-9P9t<=ThtcDgSI?m;Dc-SwWFy9YS$dj~vd?jB!c2j1}2IeKGrjPSA_ z-tkB2duy5gc*>vU?hMJe zU-j3!KJBxgeC<~y!-+G$xGyg{qWK^nxsfa}2+ zT)`PsA{WfSA;dv8GD2<$ryyiJC0xRvdcp;i{=%Q5CnOZYD|EUn+`%N|LZW*bHPFH+ z3_~$oEi(MVEj&XkOv5rX39oCzjT=Mtu);Z{L)o&!|HH$Q!>i(0yf|#UK2*3rlsq0J zM2$1VKr9J4OhkfP#5;UMNYuka1j9*;xJcwfOf1AoWJHp1L{6+XO@u&E?6)z5!$urL zQ#3bJTthQtMM|W?R0PFUj74tqLMRl(Ta-nw3a3v@hfw52YV$&16vkm(wqle-WF*Gb z`o(2r#$^5cGL~CruS+qnp)W&N}LqLSaZ!9xcG)7w_M=CSNaZE>boW@t& z#dh3AuR6g?l*c!t9bHt#dz?0YF#r$#gvWj4M`hzbS`0>X97r8=Kz*#mgv3V#6boBn zM~9>_eo49wnMjI!u@~3|339d{DMgJGGLEb>IZHX7qq&e2$sHrfl0>zicm#AXtnd@bvQKjsuj?IbSi ztR3%cNbn5L*F?<(NQXy|gz=nC^Xx3&R8K*G1ozBN_#7?yq>1`;DK2<{{{+wg70>}C z&;m8k14YmTRnP@x&<1tT2ZhiGmCy;L&uk}Jk`@Z< z)JKKXNR?DYT?H;!02WXHZFmGLorF$p)ItT-Gwsti4OK10Q#x(aQAO1?1=CgKg;9mo zSdG_~+~MOHE6(mQokS#?!64bxTi(^3u7T_sg;eOGV= zRfn|4qi&SK_6)io~W^Gn&Z7G6<(nm$ug=N@=Rn}oGR)fV>Vr2#}Pyhe` z02m+uE^vlQ5QLBYSV$1rkri2ql>}2Tg_A|um0ekrRaus0S#Et)mep2B7z9BWgq+RU zD@{y5ZC7^{(_1ambtO|e#npZlR7y}f)$-|;2i@-^S{ zMc?#QU+=YE;$7eOMc?FY-}$xP + + +Generate Configuration Values Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Generate Configuration Values Example (C#)

    +

    This example shows how to copy card control variable values from one +configuration to another.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type Files_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Check out a file that has a data card with two or more configurations.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Copy +Control Values to Configurations dialog box.
    +//    a. Select a vault view.
    +//       +Folder is set to the root folder. 
    +//    b. Select a file that has a data card with two or more +configurations.
    +//    c. Displays the data card.
    +//    d. Click Copy Control Values.
    +//       Copies the value set in Preconditions +step 5 to all configurations.

    +// 2. Close +the dialog box.
    +// 3. Inspect the control values in all of the configurations of the data card.         

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Threading.Tasks;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace Files_CSharp
    +{
    +    public partial class MainForm : Form
    +    {
    +        Dictionary<int,IEdmFolder5> oFoldersArray = new Dictionary<intIEdmFolder5>();
    +        Dictionary<intIEdmFile5> oFileArray = new Dictionary<intIEdmFile5>();
    +        IEdmCardView63 edmCardView;

    +        public MainForm()
    +        {
    +            InitializeComponent();
    +        }

    +        private void MainForm_Load(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5
    +                IEdmVault5 vault1 = new EdmVault5();

    +                //Cast IEdmVault5 to IEdmVault8
    +                IEdmVault8 vault = (IEdmVault8)vault1;

    +                EdmViewInfo[] Views = null;

    +                //Populate the form with the names of 
    +                //the vaults on the computer
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +        private void VaultsComboBox_SelectedIndexChanged(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5 
    +                IEdmVault5 vault = new EdmVault5();

    +                //Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());

    +                IEdmPos5 folderPos = vault.RootFolder.GetFirstSubFolderPosition();

    +                FoldersComboBox.Items.Clear();
    +                oFoldersArray.Clear();

    +                int i = FoldersComboBox.Items.Add("\\");
    +                oFoldersArray[i] = vault.RootFolder;

    +                while (!folderPos.IsNull)
    +                {
    +                    IEdmFolder5 edmFolder = vault.RootFolder.GetNextSubFolder(folderPos);

    +                    i = FoldersComboBox.Items.Add(edmFolder.Name);
    +                    oFoldersArray[i] = edmFolder;
    +                }

    +                FoldersComboBox.Text = (string)FoldersComboBox.Items[0];
    +            }catch(Exception)
    +            {
    +                FoldersComboBox.Items.Clear();
    +                oFoldersArray.Clear();
    +                FoldersComboBox.Text = "Error";
    +            }
    +        }

    +        private void FoldersComboBox_SelectedIndexChanged(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                int i = FoldersComboBox.SelectedIndex;
    +                IEdmFolder5 edmFolder = oFoldersArray[i];
    +               
    +                IEdmPos5 filePos = edmFolder.GetFirstFilePosition();
    +                
    +                FilesComboBox.Items.Clear();
    +                oFileArray.Clear();

    +                while (!filePos.IsNull)
    +                {
    +                    IEdmFile5 edmFile = edmFolder.GetNextFile(filePos);

    +                    i = FilesComboBox.Items.Add(edmFile.Name);
    +                    oFileArray[i] = edmFile;
    +                }

    +                FilesComboBox.Text = (string)FilesComboBox.Items[0];
    +            }
    +            catch (Exception ex)
    +            {
    +                FilesComboBox.Items.Clear();
    +                oFileArray.Clear();
    +                FilesComboBox.Text = "Error";
    +            }

    +        }

    +        private void ShowDataCard()
    +        {
    +            if (edmCardView != null)
    +                edmCardView.ShowWindow(false);

    +            int i = FoldersComboBox.SelectedIndex;
    +            IEdmFolder5 edmFolder = oFoldersArray[i];

    +            i = FilesComboBox.SelectedIndex;
    +            IEdmFile5 edmFile = oFileArray[i];

    +            IEdmVault10 vault1 = (IEdmVault10)edmFolder.Vault;
    +          
    +            EdmCardViewParams @params = default(EdmCardViewParams);
    +            @params.mlFileID = edmFile.ID;
    +            @params.mlFolderID = edmFolder.ID;
    +            @params.mlCardID = 0;
    +            @params.mlX = 10;
    +            @params.mlY = 15;
    +            @params.mhParentWindow = CardPanel.Handle.ToInt32();
    +            @params.mlEdmCardViewFlags = (int)EdmCardViewFlag.EdmCvf_Normal;

    +            edmCardView = vault1.CreateCardViewEx2(@params, this);
    +            if (edmCardView == null)
    +            {
    +                MessageBox.Show("The file does not have a card.");
    +                return;
    +            }

    +            edmCardView.SetFocus(0);

    +            int width = 0;
    +            int height = 0;
    +            edmCardView.GetCardSize(out width, out height);
    +            CardPanel.Width = width+20;
    +            CardPanel.Height = height+20;
    +            edmCardView.ShowWindow(true);
    +        }

    +        private void FilesComboBox_SelectedIndexChanged(object sender, EventArgs e)
    +        {
    +            ShowDataCard();
    +        }

    +        private void DoBtn_Click(object sender, EventArgs e)
    +        {
    +            int i = FoldersComboBox.SelectedIndex;
    +            IEdmFolder5 edmFolder = oFoldersArray[i];

    +            i = FilesComboBox.SelectedIndex;
    +            IEdmFile14 edmFile = (IEdmFile14)oFileArray[i];

    +            List<string> cfgList = new List<string>();
    +            EdmStrLst5 configLst =  edmFile.GetConfigurations();
    +            IEdmPos5 cfgPos = configLst.GetHeadPosition();
    +            while(!cfgPos.IsNull)
    +            {
    +                string configName = configLst.GetNext(cfgPos);
    +                cfgList.Add(configName);
    +            }

    +            foreach (string configName in cfgList)
    +                // Move variable values from "@" to configName
    +                edmFile.GenerateDefaultConfigValues(edmFile.ID, "@", configName, ""false);

    +            ShowDataCard();
    +        }
    +    }
    +}

    +

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace Files_CSharp
    +{
    +    partial class MainForm
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.DoBtn = new System.Windows.Forms.Button();
    +            this.CardPanel = new System.Windows.Forms.Panel();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FoldersComboBox = new System.Windows.Forms.ComboBox();
    +            this.FilesComboBox = new System.Windows.Forms.ComboBox();
    +            this.label1 = new System.Windows.Forms.Label();
    +            this.label2 = new System.Windows.Forms.Label();
    +            this.label3 = new System.Windows.Forms.Label();
    +            this.label4 = new System.Windows.Forms.Label();
    +            this.SuspendLayout();
    +            // 
    +            // DoBtn
    +            // 
    +            this.DoBtn.Location = new System.Drawing.Point(223, 108);
    +            this.DoBtn.Name = "DoBtn";
    +            this.DoBtn.Size = new System.Drawing.Size(271, 23);
    +            this.DoBtn.TabIndex = 0;
    +            this.DoBtn.Text = "Copy Control Values";
    +            this.DoBtn.UseVisualStyleBackColor = true;
    +            this.DoBtn.Click += new System.EventHandler(this.DoBtn_Click);
    +            // 
    +            // CardPanel
    +            // 
    +            this.CardPanel.AutoScroll = true;
    +            this.CardPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
    +            this.CardPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    +            this.CardPanel.Location = new System.Drawing.Point(12, 162);
    +            this.CardPanel.Name = "CardPanel";
    +            this.CardPanel.Size = new System.Drawing.Size(841, 479);
    +            this.CardPanel.TabIndex = 1;
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(108, 25);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(273, 21);
    +            this.VaultsComboBox.TabIndex = 2;
    +            this.VaultsComboBox.SelectedIndexChanged += new System.EventHandler(this.VaultsComboBox_SelectedIndexChanged);
    +            // 
    +            // FoldersComboBox
    +            // 
    +            this.FoldersComboBox.FormattingEnabled = true;
    +            this.FoldersComboBox.Location = new System.Drawing.Point(108, 52);
    +            this.FoldersComboBox.Name = "FoldersComboBox";
    +            this.FoldersComboBox.Size = new System.Drawing.Size(434, 21);
    +            this.FoldersComboBox.TabIndex = 3;
    +            this.FoldersComboBox.SelectedIndexChanged += new System.EventHandler(this.FoldersComboBox_SelectedIndexChanged);
    +            // 
    +            // FilesComboBox
    +            // 
    +            this.FilesComboBox.FormattingEnabled = true;
    +            this.FilesComboBox.Location = new System.Drawing.Point(108, 79);
    +            this.FilesComboBox.Name = "FilesComboBox";
    +            this.FilesComboBox.Size = new System.Drawing.Size(434, 21);
    +            this.FilesComboBox.TabIndex = 4;
    +            this.FilesComboBox.SelectedIndexChanged += new System.EventHandler(this.FilesComboBox_SelectedIndexChanged);
    +            // 
    +            // label1
    +            // 
    +            this.label1.AutoSize = true;
    +            this.label1.Location = new System.Drawing.Point(9, 25);
    +            this.label1.Name = "label1";
    +            this.label1.Size = new System.Drawing.Size(31, 13);
    +            this.label1.TabIndex = 5;
    +            this.label1.Text = "Vault";
    +            // 
    +            // label2
    +            // 
    +            this.label2.AutoSize = true;
    +            this.label2.Location = new System.Drawing.Point(9, 52);
    +            this.label2.Name = "label2";
    +            this.label2.Size = new System.Drawing.Size(36, 13);
    +            this.label2.TabIndex = 6;
    +            this.label2.Text = "Folder";
    +            // 
    +            // label3
    +            // 
    +            this.label3.AutoSize = true;
    +            this.label3.Location = new System.Drawing.Point(9, 79);
    +            this.label3.Name = "label3";
    +            this.label3.Size = new System.Drawing.Size(23, 13);
    +            this.label3.TabIndex = 7;
    +            this.label3.Text = "File";
    +            // 
    +            // label4
    +            // 
    +            this.label4.AutoSize = true;
    +            this.label4.Location = new System.Drawing.Point(12, 143);
    +            this.label4.Name = "label4";
    +            this.label4.Size = new System.Drawing.Size(57, 13);
    +            this.label4.TabIndex = 8;
    +            this.label4.Text = "Data card:";
    +            // 
    +            // MainForm
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(913, 670);
    +            this.Controls.Add(this.label4);
    +            this.Controls.Add(this.label3);
    +            this.Controls.Add(this.label2);
    +            this.Controls.Add(this.label1);
    +            this.Controls.Add(this.FilesComboBox);
    +            this.Controls.Add(this.FoldersComboBox);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.CardPanel);
    +            this.Controls.Add(this.DoBtn);
    +            this.Name = "MainForm";
    +            this.Text = "Copy Control Values to Configurations";
    +            this.Load += new System.EventHandler(this.MainForm_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Button DoBtn;
    +        private System.Windows.Forms.Panel CardPanel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.ComboBox FoldersComboBox;
    +        private System.Windows.Forms.ComboBox FilesComboBox;
    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Label label2;
    +        private System.Windows.Forms.Label label3;
    +        private System.Windows.Forms.Label label4;
    +    }
    +}

    +

    +

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Generate_Config_Values_Example_VBNET.htm b/documentation/api_extracted/Generate_Config_Values_Example_VBNET.htm new file mode 100644 index 0000000..a13a89f --- /dev/null +++ b/documentation/api_extracted/Generate_Config_Values_Example_VBNET.htm @@ -0,0 +1,420 @@ + + + +Generate Configuration Values Example (VB.NET + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Generate Configuration Values Example (VB.NET)

    +

    This example shows how to copy card control variable values from one +configuration to another.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type Files in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Check out a file that has a data card with two or more configurations.
    +' 5. Modify a control variable in the @ configuration.

    +' 6. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Copy Control Values +to Configurations dialog box.
    +'    a. Select a vault view.
    +'       Folder is set +to the root folder. 
    +'    b. Select a file that has a data card with two or more +configurations.
    +'    c. Displays the data card.
    +'    d. Click Copy Control Values.
    +'       Copies the value set in Preconditions step +5 to all configurations.

    + +' 2. Close the dialog box.
    +' 3. Inspect the control values in all of the configurations of the data card.         

    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System
    +Imports System.Collections.Generic
    +Imports System.ComponentModel
    +Imports System.Data
    +Imports System.Drawing
    +Imports System.Linq
    +Imports System.Text
    +Imports System.Threading.Tasks
    +Imports System.Windows.Forms
    +Imports EPDM.Interop.epdm

    +
    + Partial Public Class MainForm
    + Inherits Form

    + Private oFoldersArray As Dictionary(Of Integer,IEdmFolder5) = New Dictionary(Of IntegerIEdmFolder5)()
    + Private oFileArray As New Dictionary(Of IntegerIEdmFile5)()
    + Private edmCardView As IEdmCardView63

    + Public Sub New()
    + InitializeComponent()
    + End Sub

    + Private Sub MainForm_Load(ByVal sender As ObjectByVal e As EventArgsHandles Me.Load
    + Try
    + +'Declare and create an instance of IEdmVault5
    + Dim vault1 As IEdmVault5 = New EdmVault5()

    + 'Cast IEdmVault5 to IEdmVault8
    + Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)

    + Dim Views() As EdmViewInfo = Nothing

    + 'Populate the form with the names of 
    + 'the vaults on the computer
    + vault.GetVaultViews(Views, False)
    + VaultsComboBox.Items.Clear()
    + For Each View As EdmViewInfo In Views
    + VaultsComboBox.Items.Add(View.mbsVaultName)
    + Next View


    + Catch ex As System.Runtime.InteropServices.COMException
    + MessageBox.Show("HRESULT = 0x" & ex.ErrorCode.ToString("X") & ex.Message)
    + Catch ex As Exception
    + MessageBox.Show(ex.Message)
    + End Try

    + End Sub

    + Private Sub VaultsComboBox_SelectedIndexChanged(ByVal sender As ObjectByVal e As EventArgsHandles VaultsComboBox.SelectedIndexChanged
    + Try
    + +'Declare and create an instance of IEdmVault5 
    + Dim vault As IEdmVault5 = New EdmVault5()

    + +'Log into selected vault as the current user
    + vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())

    + Dim folderPos As IEdmPos5 = vault.RootFolder.GetFirstSubFolderPosition()

    + FoldersComboBox.Items.Clear()
    + oFoldersArray.Clear()

    + Dim i As Integer = FoldersComboBox.Items.Add("\")
    + oFoldersArray(i) = vault.RootFolder

    + Do While Not folderPos.IsNull
    + Dim edmFolder As IEdmFolder5 = vault.RootFolder.GetNextSubFolder(folderPos)

    + i = FoldersComboBox.Items.Add(edmFolder.Name)
    + oFoldersArray(i) = edmFolder
    + Loop

    + FoldersComboBox.Text = CStr(FoldersComboBox.Items(0))
    + Catch e1 As Exception
    + FoldersComboBox.Items.Clear()
    + oFoldersArray.Clear()
    + FoldersComboBox.Text = "Error"
    + End Try
    + End Sub

    + Private Sub FoldersComboBox_SelectedIndexChanged(ByVal sender As ObjectByVal e As EventArgsHandles FoldersComboBox.SelectedIndexChanged
    + Try
    + Dim i As Integer = FoldersComboBox.SelectedIndex
    + Dim edmFolder As IEdmFolder5 = oFoldersArray(i)

    + Dim filePos As IEdmPos5 = edmFolder.GetFirstFilePosition()

    + FilesComboBox.Items.Clear()
    + oFileArray.Clear()

    + Do While Not filePos.IsNull
    + Dim edmFile As IEdmFile5 = edmFolder.GetNextFile(filePos)

    + i = FilesComboBox.Items.Add(edmFile.Name)
    + oFileArray(i) = edmFile
    + Loop

    + FilesComboBox.Text = CStr(FilesComboBox.Items(0))
    + Catch ex As Exception
    + FilesComboBox.Items.Clear()
    + oFileArray.Clear()
    + FilesComboBox.Text = "Error"
    + End Try

    + End Sub

    + Private Sub ShowDataCard()
    + If edmCardView IsNot Nothing Then
    + edmCardView.ShowWindow(False)
    + End If

    + Dim i As Integer = FoldersComboBox.SelectedIndex
    + Dim edmFolder As IEdmFolder5 = oFoldersArray(i)

    + i = FilesComboBox.SelectedIndex
    + Dim edmFile As IEdmFile5 = oFileArray(i)

    + Dim vault1 As IEdmVault10 = DirectCast(edmFolder.VaultIEdmVault10)

    + Dim params As EdmCardViewParams = Nothing
    + params.mlFileID = edmFile.ID
    + params.mlFolderID = edmFolder.ID
    + params.mlCardID = 0
    + params.mlX = 10
    + params.mlY = 15
    + params.mhParentWindow = CardPanel.Handle.ToInt32()
    + params.mlEdmCardViewFlags = CInt(EdmCardViewFlag.EdmCvf_Normal)

    + edmCardView = vault1.CreateCardViewEx2(params, Me)
    + If edmCardView Is Nothing Then
    + MessageBox.Show("The file does not have a card.")
    + Return
    + End If

    + edmCardView.SetFocus(0)

    +
    + Dim width_Renamed As Integer = 0
    + Dim height_Renamed As Integer = 0
    + edmCardView.GetCardSize(width_Renamed, height_Renamed)
    + CardPanel.Width = width_Renamed+20
    + CardPanel.Height = height_Renamed+20
    + edmCardView.ShowWindow(True)
    + End Sub

    + Private Sub FilesComboBox_SelectedIndexChanged(ByVal sender As ObjectByVal e As EventArgsHandles FilesComboBox.SelectedIndexChanged
    + ShowDataCard()
    + End Sub

    + Private Sub DoBtn_Click(ByVal sender As ObjectByVal e As EventArgsHandles DoBtn.Click
    + Dim i As Integer = FoldersComboBox.SelectedIndex
    + Dim edmFolder As IEdmFolder5 = oFoldersArray(i)

    + i = FilesComboBox.SelectedIndex
    + Dim edmFile As IEdmFile14 = DirectCast(oFileArray(i), IEdmFile14)

    + Dim cfgList As New List(Of String)()
    + Dim configLst As EdmStrLst5 = edmFile.GetConfigurations()
    + Dim cfgPos As IEdmPos5 = configLst.GetHeadPosition()
    + Do While Not cfgPos.IsNull
    + Dim configName As String = configLst.GetNext(cfgPos)
    + cfgList.Add(configName)
    + Loop

    + For Each configName As String In cfgList
    + ' Move variable values from "@" to configName
    + edmFile.GenerateDefaultConfigValues(edmFile.ID"@", configName, ""False)
    + Next configName

    + ShowDataCard()
    + End Sub
    + End Class
    +

    +

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +
    + Partial Public Class MainForm
    + ''' <summary>
    + ''' Required designer variable.
    + ''' </summary>
    + Private components As System.ComponentModel.IContainer = Nothing

    + ''' <summary>
    + ''' Clean up any resources being used.
    + ''' </summary>
    + ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    + Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    + If disposing AndAlso (components IsNot NothingThen
    + components.Dispose()
    + End If
    + MyBase.Dispose(disposing)
    + End Sub

    + #Region "Windows Form Designer generated code"

    + ''' <summary>
    + ''' Required method for Designer support - do not modify
    + ''' the contents of this method with the code editor.
    + ''' </summary>
    + Private Sub InitializeComponent()
    + Me.DoBtn = New System.Windows.Forms.Button()
    + Me.CardPanel = New System.Windows.Forms.Panel()
    + Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    + Me.FoldersComboBox = New System.Windows.Forms.ComboBox()
    + Me.FilesComboBox = New System.Windows.Forms.ComboBox()
    + Me.label1 = New System.Windows.Forms.Label()
    + Me.label2 = New System.Windows.Forms.Label()
    + Me.label3 = New System.Windows.Forms.Label()
    + Me.label4 = New System.Windows.Forms.Label()
    + Me.SuspendLayout()
    +
    + ' DoBtn
    +
    + Me.DoBtn.Location = New System.Drawing.Point(223, 108)
    + Me.DoBtn.Name = "DoBtn"
    + Me.DoBtn.Size = New System.Drawing.Size(271, 23)
    + Me.DoBtn.TabIndex = 0
    + Me.DoBtn.Text = "Copy Control Values"
    + Me.DoBtn.UseVisualStyleBackColor = True
    +
    +
    + ' CardPanel
    +
    + Me.CardPanel.AutoScroll = True
    + Me.CardPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
    + Me.CardPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
    + Me.CardPanel.Location = New System.Drawing.Point(12, 162)
    + Me.CardPanel.Name = "CardPanel"
    + Me.CardPanel.Size = New System.Drawing.Size(841, 479)
    + Me.CardPanel.TabIndex = 1
    +
    + ' VaultsComboBox
    +
    + Me.VaultsComboBox.FormattingEnabled = True
    + Me.VaultsComboBox.Location = New System.Drawing.Point(108, 25)
    + Me.VaultsComboBox.Name = "VaultsComboBox"
    + Me.VaultsComboBox.Size = New System.Drawing.Size(273, 21)
    + Me.VaultsComboBox.TabIndex = 2
    +
    +
    + ' FoldersComboBox
    +
    + Me.FoldersComboBox.FormattingEnabled = True
    + Me.FoldersComboBox.Location = New System.Drawing.Point(108, 52)
    + Me.FoldersComboBox.Name = "FoldersComboBox"
    + Me.FoldersComboBox.Size = New System.Drawing.Size(434, 21)
    + Me.FoldersComboBox.TabIndex = 3
    +
    +
    + ' FilesComboBox
    +
    + Me.FilesComboBox.FormattingEnabled = True
    + Me.FilesComboBox.Location = New System.Drawing.Point(108, 79)
    + Me.FilesComboBox.Name = "FilesComboBox"
    + Me.FilesComboBox.Size = New System.Drawing.Size(434, 21)
    + Me.FilesComboBox.TabIndex = 4
    +
    +
    + ' label1
    +
    + Me.label1.AutoSize = True
    + Me.label1.Location = New System.Drawing.Point(9, 25)
    + Me.label1.Name = "label1"
    + Me.label1.Size = New System.Drawing.Size(31, 13)
    + Me.label1.TabIndex = 5
    + Me.label1.Text = "Vault"
    +
    + ' label2
    +
    + Me.label2.AutoSize = True
    + Me.label2.Location = New System.Drawing.Point(9, 52)
    + Me.label2.Name = "label2"
    + Me.label2.Size = New System.Drawing.Size(36, 13)
    + Me.label2.TabIndex = 6
    + Me.label2.Text = "Folder"
    +
    + ' label3
    +
    + Me.label3.AutoSize = True
    + Me.label3.Location = New System.Drawing.Point(9, 79)
    + Me.label3.Name = "label3"
    + Me.label3.Size = New System.Drawing.Size(23, 13)
    + Me.label3.TabIndex = 7
    + Me.label3.Text = "File"
    +
    + ' label4
    +
    + Me.label4.AutoSize = True
    + Me.label4.Location = New System.Drawing.Point(12, 143)
    + Me.label4.Name = "label4"
    + Me.label4.Size = New System.Drawing.Size(57, 13)
    + Me.label4.TabIndex = 8
    + Me.label4.Text = "Data card:"
    +
    + ' MainForm
    +
    + Me.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F)
    + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    + Me.ClientSize = New System.Drawing.Size(913, 670)
    + Me.Controls.Add(Me.label4)
    + Me.Controls.Add(Me.label3)
    + Me.Controls.Add(Me.label2)
    + Me.Controls.Add(Me.label1)
    + Me.Controls.Add(Me.FilesComboBox)
    + Me.Controls.Add(Me.FoldersComboBox)
    + Me.Controls.Add(Me.VaultsComboBox)
    + Me.Controls.Add(Me.CardPanel)
    + Me.Controls.Add(Me.DoBtn)
    + Me.Name = "MainForm"
    + Me.Text = "Copy Control Values to Configurations"
    +
    + Me.ResumeLayout(False)
    + Me.PerformLayout()

    + End Sub

    + #End Region

    + Private WithEvents DoBtn As System.Windows.Forms.Button
    + Private CardPanel As System.Windows.Forms.Panel
    + Private WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    + Private WithEvents FoldersComboBox As System.Windows.Forms.ComboBox
    + Private WithEvents FilesComboBox As System.Windows.Forms.ComboBox
    + Private label1 As System.Windows.Forms.Label
    + Private label2 As System.Windows.Forms.Label
    + Private label3 As System.Windows.Forms.Label
    + Private label4 As System.Windows.Forms.Label
    + End Class

    +

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/GetAndRunTask.gif b/documentation/api_extracted/GetAndRunTask.gif new file mode 100644 index 0000000000000000000000000000000000000000..580778bb4890aea8835a7bcaee412f16b72626df GIT binary patch literal 6735 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 lvx9*qrLV59y1Cw$}Ez+WfcK?Y%-VzDG8_bZEMI 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 CWaHid literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetCardVars.gif b/documentation/api_extracted/GetCardVars.gif new file mode 100644 index 0000000000000000000000000000000000000000..28fc17416b7789588e7744a18a43eaecf300df55 GIT binary patch literal 8228 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 W-uK3LzV*Fte)n77X0CNW0028YscA(3 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetCategories.gif b/documentation/api_extracted/GetCategories.gif new file mode 100644 index 0000000000000000000000000000000000000000..05a3cb20a35c81949920992457b6ac3525bb4add GIT binary patch literal 6153 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 b10V7Gz#sg=Km5dB{KkL$2{HHs5fA`7-qL}_ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetFileRef.gif b/documentation/api_extracted/GetFileRef.gif new file mode 100644 index 0000000000000000000000000000000000000000..301c58ebecc3eaee9f4c83b3fd42663e1ceb4d27 GIT binary patch literal 8653 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetHistories.gif b/documentation/api_extracted/GetHistories.gif new file mode 100644 index 0000000000000000000000000000000000000000..6eda19b1086e15b4c6906122733b2c486949825c GIT binary patch literal 7964 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 Sb-ZI9_t?iab}oVg0suR-1OtZv literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetMessages.gif b/documentation/api_extracted/GetMessages.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ae6b471fbd3b7f47b5be5556809890a2dbc6873 GIT binary patch literal 3877 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 B>?!~N literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/GetThumbnail.gif b/documentation/api_extracted/GetThumbnail.gif new file mode 100644 index 0000000000000000000000000000000000000000..dc75612d59646a9792ef8ec2b35fa9c0d1438085 GIT binary patch literal 5104 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 SiJ3v68DULRQ4S8k_5TB7c5e{? literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_CSharp.htm b/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_CSharp.htm new file mode 100644 index 0000000..1362acb --- /dev/null +++ b/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_CSharp.htm @@ -0,0 +1,342 @@ + + + +Get Preview Bitmap of File Example (C#) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Preview Bitmap of File Example (C#)

    +

    This example shows how to get the preview bitmap of a file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
    +//    b. Type GetPreviewBitmap_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with +this code.
    +//    g. To create the form, replace the code in +Form1.Designer.cs with
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-
    click +the project
    +//    name in the Solution Explorer, click Add Reference, +click
    +//    Assemblies > Framework in the left-side panel, +browse to the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +click
    +//    EPDM.Interop.epdm.dll, click Open, click +Add, and click Close).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
    +//    Embed Interop Types to False to handle +methods that pass arrays of
    +//    structures.
    +// 4.
    +Ensure that the root folder of the vault contains an +Autodesk DWG file.
    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions:
    +
    //  1. Displays +the Get Preview Bitmap dialog box.
    +//     a. Select a vault view.
    +//     b. Click Select file.
    +//     c. In the Select File dialog:
    +//        1. Click a DWG file +inside the vault.
    +//        2. Click Open.
    +//     d. Click Get +preview bitmap.
    +//        Form1 displays the preview bitmap +of the selected file.
    +//  2. Close the
    +Get Preview Bitmap dialog box.

    +//----------------------------------------------------------------------------

    +

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace GetPreviewBitmap_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;
    +        IEdmFile5 aFile;
    +        bool retVal;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                File1List.Items.Clear();

    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Select File dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select File dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();

    +                IEdmFolder5 ppoRetParentFolder;
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    // do nothing
    +                }
    +                else
    +                {
    +                    foreach (string FileName in OpenFileDialog1.FileNames)
    +                    {
    +                        File1List.Items.Add(FileName);
    +                        aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +        public void PreviewBitmap_Click(System.Object sender, System.EventArgs e)
    +        {
    +            DrawBitmapPreview(aFile);
    +        }

    +        private void DrawBitmapPreview(IEdmFile5 file)
    +        {

    +            try
    +            {
    +                IEdmEnumeratorVariable5 varEnum = default(IEdmEnumeratorVariable5);
    +                varEnum = (IEdmEnumeratorVariable5)file.GetEnumeratorVariable();
    +                IEdmBitmap5 preview = default(IEdmBitmap5);
    +                preview = varEnum.GetThumbnail();
    +                if (preview == null)
    +                    return;
    +                preview.Draw(this.Handle.ToInt32(), 45, 220, 0, 0);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    + +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace GetPreviewBitmap_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.SelectFiles = new System.Windows.Forms.Button();
    +            this.File1List = new System.Windows.Forms.ListBox();
    +            this.PreviewBitmap = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //SelectFiles
    +            //
    +            this.SelectFiles.Location = new System.Drawing.Point(39, 85);
    +            this.SelectFiles.Name = "SelectFiles";
    +            this.SelectFiles.Size = new System.Drawing.Size(191, 23);
    +            this.SelectFiles.TabIndex = 2;
    +            this.SelectFiles.Text = "Select file...";
    +            this.SelectFiles.UseVisualStyleBackColor = true;
    +            this.SelectFiles.Click +=new System.EventHandler(SelectFiles_Click);
    +            //
    +            //File1List
    +            //
    +            this.File1List.FormattingEnabled = true;
    +            this.File1List.HorizontalScrollbar = true;
    +            this.File1List.Location = new System.Drawing.Point(40, 114);
    +            this.File1List.Name = "File1List";
    +            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
    +            this.File1List.Size = new System.Drawing.Size(220, 43);
    +            this.File1List.TabIndex = 4;
    +            //
    +            //PreviewBitmap
    +            //
    +            this.PreviewBitmap.Location = new System.Drawing.Point(40, 183);
    +            this.PreviewBitmap.Name = "PreviewBitmap";
    +            this.PreviewBitmap.Size = new System.Drawing.Size(157, 23);
    +            this.PreviewBitmap.TabIndex = 6;
    +            this.PreviewBitmap.Text = "Get preview bitmap";
    +            this.PreviewBitmap.UseVisualStyleBackColor = true;
    +            this.PreviewBitmap.Click +=new System.EventHandler(PreviewBitmap_Click);
    +            //
    +            //OpenFileDialog1
    +            //
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Title = "Select File";
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(629, 746);
    +            this.Controls.Add(this.PreviewBitmap);
    +            this.Controls.Add(this.File1List);
    +            this.Controls.Add(this.SelectFiles);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get Preview Bitmap";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }
    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button SelectFiles;
    +        internal System.Windows.Forms.ListBox File1List;
    +        internal System.Windows.Forms.Button PreviewBitmap;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

    +        #endregion
    +    }
    +}

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_VBNET.htm b/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_VBNET.htm new file mode 100644 index 0000000..14cfc55 --- /dev/null +++ b/documentation/api_extracted/Get_Bitmap_Preview_of_File_Example_VBNET.htm @@ -0,0 +1,280 @@ + + + +Get Preview Bitmap of File Example (VB.NET) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Preview Bitmap of File Example (VB.NET)

    +

    This example shows how to get the preview bitmap of a file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type GetPreviewBitmap in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the +form, replace the code in Form1.Designer.vb with 
    +'        this code.

    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Ensure that the root folder of the vault contains an Autodesk DWG +file.

    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Get Preview Bitmap +dialog box.
    +'     a. Select a vault view.
    +'     b. Click Select file.
    +'     c. In the Select File dialog:
    +'        1. Click a DWG file +inside the vault.
    +'        2. Click Open.
    +'     d. Click Get +preview bitmap.
    +'        Form1 displays the preview bitmap of +the selected file.
    +'  2. Close the
    +Get Preview Bitmap dialog box.
    + +'----------------------------------------------------------------------------
    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm
    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim retVal As Boolean
    +   Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
    +        Try
    +            File1List.Items.Clear()

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Select File dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select File dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()

    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                ' do nothing
    +            Else
    +                For Each FileName As String In OpenFileDialog1.FileNames
    +                    File1List.Items.Add(FileName)
    +                    aFile = vault1.GetFileFromPath(FileName)
    +                Next
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +    Public Sub PreviewBitmap_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles PreviewBitmap.Click
    +        DrawBitmapPreview(aFile)
    +    End Sub

    +    Private Sub DrawBitmapPreview(ByVal file As IEdmFile5)
    +        Try

    +            Dim varEnum As IEdmEnumeratorVariable5
    +            varEnum = file.GetEnumeratorVariable
    +            Dim preview As IEdmBitmap5
    +            preview = varEnum.GetThumbnail
    +            If preview Is Nothing Then Exit Sub
    +            preview.Draw(Me.Handle.ToInt32(), 45, 220, 0, 0)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +   
    +End Class

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form

    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.SelectFiles = New System.Windows.Forms.Button()
    +        Me.File1List = New System.Windows.Forms.ListBox()
    +        Me.PreviewBitmap = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'SelectFiles
    +        '
    +        Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
    +        Me.SelectFiles.Name = "SelectFiles"
    +        Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
    +        Me.SelectFiles.TabIndex = 2
    +        Me.SelectFiles.Text = "Select file..."
    +        Me.SelectFiles.UseVisualStyleBackColor = True
    +        '
    +        'File1List
    +        '
    +        Me.File1List.FormattingEnabled = True
    +        Me.File1List.HorizontalScrollbar = True
    +        Me.File1List.Location = New System.Drawing.Point(40, 114)
    +        Me.File1List.Name = "File1List"
    +        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
    +        Me.File1List.Size = New System.Drawing.Size(220, 43)
    +        Me.File1List.TabIndex = 4
    +        '
    +        'PreviewBitmap
    +        '
    +        Me.PreviewBitmap.Location = New System.Drawing.Point(40, 183)
    +        Me.PreviewBitmap.Name = "PreviewBitmap"
    +        Me.PreviewBitmap.Size = New System.Drawing.Size(157, 23)
    +        Me.PreviewBitmap.TabIndex = 6
    +        Me.PreviewBitmap.Text = "Get preview bitmap"
    +        Me.PreviewBitmap.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Title = "Select File"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(629, 746)
    +        Me.Controls.Add(Me.PreviewBitmap)
    +        Me.Controls.Add(Me.File1List)
    +        Me.Controls.Add(Me.SelectFiles)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get Preview Bitmap"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents SelectFiles As System.Windows.Forms.Button
    +    Friend WithEvents File1List As System.Windows.Forms.ListBox
    +    Friend WithEvents PreviewBitmap As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

    +End Class

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Card_Control_Info_Example_CSharp.htm b/documentation/api_extracted/Get_Card_Control_Info_Example_CSharp.htm new file mode 100644 index 0000000..d0fdf40 --- /dev/null +++ b/documentation/api_extracted/Get_Card_Control_Info_Example_CSharp.htm @@ -0,0 +1,405 @@ + + + +Get Card Control Information Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Card Control Information Example (C#)

    +

    This example shows how to get information about the +list and edit box controls in a selected file's data card.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > Visual C# > Windows Forms Application.
    +//  3. Type CardControlInfo_CSharp in Name.
    +//  4. Click Browse to navigate to the folder where to create the project.
    +//  5. Click OK
    +//
      6. Click Show All Files in the Solution Explorer toolbar and expand 
    +//     Form1.cs in the Solution Explorer.

    +//  7. Replace the code in Form1.cs with this code.
    +//  8. To create the form, replace the code in Form1.Designer.cs with this code.
    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and select 
    +//     EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +
    // +11. Ensure that there is a file in the vault whose extension has a
    +//     file data card in the vault.

    +// 12. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    //  2. Select a vault.
    //  3. Click Select file.
    //  4. In the Select File dialog:
    //     a. Click a file +whose extension has a file data card in the vault.
    //     b. Click Open.

    //  5. Click Get card information.
    +//  6. A message box displays information about the selected +file's data card.
    +//  7. Click OK in the message box.
    +//  8. A message box displays the list items of any drop list controls.
    +//  9. Click OK in the message box.
    +// 10. A message box displays information about each edit box +control in the
    +//     data card.
    +// 11. Click OK in the message box.

    +// 12. Close the dialog.

    +//---------------------------------------------------------------------------- 

    +

    //Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace CardControlInfo_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;
    +        IEdmFile5 aFile;
    +        IEdmFolder5 aFolder;
    +        IEdmFolder5 ppoRetParentFolder;
    +        IEdmCard6 aCard;
    +        IEdmCardControl7 aControl;
    +        IEdmPos5 aPos;
    +        int plWidth;
    +        int plHeight;
    +        int plX;
    +        int plY;
    +        int plParentCtrlID;
    +        int plPageNo;
    +        object poMin = null;
    +        object poMax = null;
    +        int varType;
    +        int contType;
    +        string fileExt;
    +        int cardID;
    +        string str;

    +        int k;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                File1List.Items.Clear();

    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Select File dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;

    +                //Show the Select File dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();

    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    // do nothing
    +                }
    +                else
    +                {
    +                    foreach (string FileName in OpenFileDialog1.FileNames)
    +                    {
    +                        File1List.Items.Add(FileName);
    +                        aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
    +                        k = FileName.LastIndexOf(".");
    +                        fileExt = FileName.Substring(k + 1, (FileName.Length) - k - 1);
    +                        aPos = aFile.GetFirstFolderPosition();
    +                        aFolder = aFile.GetNextFolder(aPos);
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void GetCardControls_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +
    +                vault2 = (IEdmVault9)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }


    +                if ((aFile != null))
    +                {
    +                    // Get the selected file's data card
    +                    aCard = (IEdmCard6)aFolder.GetCard(fileExt);
    +                    cardID = aFolder.GetCardID(fileExt);

    +                    aCard.GetSize(out plWidth, out plHeight);
    +                    str = "File: " + aFile.Name + "\r\n" + "Card ID: " + cardID + ", EdmCardType: " + aCard.CardType + ", Width: " + plWidth + ", Height: " + plHeight;
    +                    MessageBox.Show(str);

    +                    aPos = aCard.GetFirstControlPosition();
    +                    while (!(aPos.IsNull))
    +                    {
    +                        aControl = (IEdmCardControl6)aCard.GetNextControl(aPos);
    +                        contType = (int)aControl.ControlType;
    +

    +

    +                        +bool ret = false;
    +                        string[] variableItemsList = null;
    +                        if (((contType == 7) | (contType == 8) | (contType == 9) | (contType == 10)))
    +                        {
    +                            str = "List values associated with drop-down card control: " + aControl.VariableID.ToString();
    +                            ret = aControl.GetControlVariableList(aFile.IDout variableItemsList);

    +                            foreach (string listValue in variableItemsList)
    +                            {
    +                                str = str + "\r\n" + listValue;
    +                            }
    +                            MessageBox.Show(str);
    +                        }

    +

    +

    +                        // Get the edit box controls in the card
    +                        if (contType == 4)
    +                        {
    +                            str = "";
    +                            aControl.GetParentInfo(out plParentCtrlID, out plPageNo);
    +                            aControl.GetPosition(out plX, out plY, out plWidth, out plHeight);
    +                            varType = (int)aControl.GetValidation(out poMin, out poMax);

    +                            str = "Card control: " + aControl.Name;
    +                            str = str + "\r\n" + "Variable ID: " + aControl.VariableID + "\t\n" + "EdmCardControlType: " + contType + "\r\n" + "Is multi-line? " + aControl.IsMultiLine + "\r\n" + "Is read-only? " + aControl.IsReadOnly + "\r\n" + "Show in preview? " + aControl.ShowInPreview;
    +                            str = str + "\r\n" + "Location on card: [" + plX + ", " + plY + "], Width: " + plWidth + ", Height: " + plHeight;
    +                            str = str + "\r\n" + "Parent control ID (0, if none): " + plParentCtrlID;
    +                            str = str + "\r\n" + "Tab index: " + plPageNo;
    +                            str = str + "\r\n" + "EdmVariableType: " + varType;

    +

                                +str = str + "\r\n" + "Updates all configurations? " + aControl.UpdatesAllConfigurations.ToString();

    +

    +
    +                            MessageBox.Show(str);
    +                        }
    +                    }
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }
    +    }
    +}

    + +
    +

    //Form1.Designer.cs

    +
    +

    + namespace CardControlInfo_CSharp
    + {
    +     partial class Form1
    +     {
    +         /// <summary>
    +         /// Required designer variable.
    +         /// </summary>
    +         private System.ComponentModel.IContainer components = null;

    +         /// <summary>
    +         /// Clean up any resources being used.
    +         /// </summary>
    +         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +         protected override void Dispose(bool disposing)
    +         {
    +             if (disposing && (components != null))
    +             {
    +                 components.Dispose();
    +             }
    +             base.Dispose(disposing);
    +         }

    +         #region Windows Form Designer generated code

    +         /// <summary>
    +         /// Required method for Designer support - do not modify
    +         /// the contents of this method with the code editor.
    +         /// </summary>
    +         private void InitializeComponent()
    +         {
    +             this.VaultsLabel = new System.Windows.Forms.Label();
    +             this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +             this.SelectFiles = new System.Windows.Forms.Button();
    +             this.File1List = new System.Windows.Forms.ListBox();
    +             this.GetCardControls = new System.Windows.Forms.Button();
    +             this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +             this.SuspendLayout();
    +             //
    +             //VaultsLabel
    +             //
    +             this.VaultsLabel.AutoSize = true;
    +             this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
    +             this.VaultsLabel.Name = "VaultsLabel";
    +             this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +             this.VaultsLabel.TabIndex = 0;
    +             this.VaultsLabel.Text = "Select vault view:";
    +             //
    +             //VaultsComboBox
    +             //
    +             this.VaultsComboBox.FormattingEnabled = true;
    +             this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
    +             this.VaultsComboBox.Name = "VaultsComboBox";
    +             this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +             this.VaultsComboBox.TabIndex = 1;
    +             //
    +             //SelectFiles
    +             //
    +             this.SelectFiles.Location = new System.Drawing.Point(39, 85);
    +             this.SelectFiles.Name = "SelectFiles";
    +             this.SelectFiles.Size = new System.Drawing.Size(191, 23);
    +             this.SelectFiles.TabIndex = 2;
    +             this.SelectFiles.Text = "Select file...";
    +             this.SelectFiles.UseVisualStyleBackColor = true;
    +             this.SelectFiles.Click +=new System.EventHandler(SelectFiles_Click);
    +             //
    +             //File1List
    +             //
    +             this.File1List.FormattingEnabled = true;
    +             this.File1List.HorizontalScrollbar = true;
    +             this.File1List.Location = new System.Drawing.Point(40, 114);
    +             this.File1List.Name = "File1List";
    +             this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
    +             this.File1List.Size = new System.Drawing.Size(220, 43);
    +             this.File1List.TabIndex = 4;
    +             //
    +             //GetCardControls
    +             //
    +             this.GetCardControls.Location = new System.Drawing.Point(40, 183);
    +             this.GetCardControls.Name = "GetCardControls";
    +             this.GetCardControls.Size = new System.Drawing.Size(157, 23);
    +             this.GetCardControls.TabIndex = 6;
    +             this.GetCardControls.Text = "Get card  information";
    +             this.GetCardControls.UseVisualStyleBackColor = true;
    +             this.GetCardControls.Click += new System.EventHandler(GetCardControls_Click);
    +             //
    +             //OpenFileDialog1
    +             //
    +             this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +             this.OpenFileDialog1.Title = "Select File";
    +             //
    +             //Form1
    +             //
    +             this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +             this.ClientSize = new System.Drawing.Size(284, 235);
    +             this.Controls.Add(this.GetCardControls);
    +             this.Controls.Add(this.File1List);
    +             this.Controls.Add(this.SelectFiles);
    +             this.Controls.Add(this.VaultsComboBox);
    +             this.Controls.Add(this.VaultsLabel);
    +             this.Name = "Form1";
    +             this.Text = "Card controls";
    +             this.Load += new System.EventHandler(this.Form1_Load);
    +             this.ResumeLayout(false);
    +             this.PerformLayout();

    +         }
    +         internal System.Windows.Forms.Label VaultsLabel;
    +         internal System.Windows.Forms.ComboBox VaultsComboBox;
    +         internal System.Windows.Forms.Button SelectFiles;
    +         internal System.Windows.Forms.ListBox File1List;
    +         internal System.Windows.Forms.Button GetCardControls;
    +         internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

    +         #endregion
    +     }
    + }

    + +

     

    + + + + diff --git a/documentation/api_extracted/Get_Card_Control_Info_Example_VBNET.htm b/documentation/api_extracted/Get_Card_Control_Info_Example_VBNET.htm new file mode 100644 index 0000000..5e30389 --- /dev/null +++ b/documentation/api_extracted/Get_Card_Control_Info_Example_VBNET.htm @@ -0,0 +1,363 @@ + + + +Get Card Control Information Example (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Card Control Information Example (VB.NET)

    +

    This example shows how to get information +about the list and edit box controls in a selected file's data card.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type CardControlInfo in Name.
    +'  4. Click Browse to navigate to the folder where to create the project.
    +'  5. Click OK.
    +'  6. Click Show All Files in the Solution Explorer toolbar and expand 

    +'     Form1.vb in the Solution Explorer. 
    +'  7. Replace the code in Form1.vb with this code.
    +'  8. To create the form, replace the code in
    Form1.Designer.vb with this code.
    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 10. Right-click EPDM.Interop.epdm in References, select Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Ensure that there is a file in the vault whose extension has a
    +'     file data card in the vault, and the file data card +has a droplist
    +'     control.

    +' 12. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click Select file.
    +'  4. In the Select File dialog:
    +'     a. Click a file whose extension has a file data card in the vault.
    +'     b. Click Open.

    +'  5. Click Get card information.
    +'  6. A message box displays information about the selected +file's data card.
    +'  7. Click OK in the message box.
    +'  8. A message box displays the list items of any drop list controls.
    +'  9. Click OK in the message box.
    +' 10. A message box displays information about each edit box +control in the
    +'     data card.
    +' 11. Click OK in the message box.

    +' 12. Close the dialog.
    +'---------------------------------------------------------------------------- 

    +
    'Form1.vb
    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim aFolder As IEdmFolder5
    +    Dim aCard As IEdmCard6
    +    Dim aControl As IEdmCardControl7
    +    Dim aPos As IEdmPos5
    +    Dim plWidth As Integer
    +    Dim plHeight As Integer
    +    Dim plX As Integer
    +    Dim plY As Integer
    +    Dim plParentCtrlID As Integer
    +    Dim plPageNo As Integer
    +    Dim poMin As Object = Nothing
    +    Dim poMax As Object = Nothing
    +    Dim varType As EdmVariableType
    +    Dim contType As EdmCardControlType
    +    Dim fileExt As String
    +    Dim cardID As Integer
    +    Dim str As String
    +    Dim k As Integer

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
    +        Try
    +            File1List.Items.Clear()

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Select File dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath

    +            'Show the Select File dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()

    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                ' do nothing
    +            Else
    +                For Each FileName As String In OpenFileDialog1.FileNames
    +                    File1List.Items.Add(FileName)
    +                    aFile = vault1.GetFileFromPath(FileName)
    +                    k = FileName.LastIndexOf(".")
    +                    fileExt = FileName.Substring(k + 1, (FileName.Length) - k - 1)
    +                    aPos = aFile.GetFirstFolderPosition()
    +                    aFolder = aFile.GetNextFolder(aPos)
    +                Next
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub GetCardControls_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetCardControls.Click
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault9)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            If Not IsNothing(aFile) Then

    +                ' Get the selected file's data card
    +                aCard = aFolder.GetCard(fileExt)
    +                cardID = aFolder.GetCardID(fileExt)

    +                aCard.GetSize(plWidth, plHeight)
    +                str = "Card ID: " & cardID & ", EdmCardType: " & aCard.CardType & ", Width: " & plWidth & ", Height: " & plHeight
    +                MessageBox.Show(str)

    +                aPos = aCard.GetFirstControlPosition()
    +                While Not (aPos.IsNull)
    +                    aControl = aCard.GetNextControl(aPos)
    +                    contType = aControl.ControlType

    +

    +                    +Dim ret As Boolean
    +                    Dim variableItemsList As String() = Nothing
    +                    If ((contType = 7) Or (contType = 8) Or (contType = 9) Or (contType = 10)) Then
    +                        str = "List values associated with drop-down card control: " & aControl.VariableID.ToString

    +                        ret = aControl.GetControlVariableList(aFile.ID, variableItemsList)

    +                        For Each listValue As String In variableItemsList
    +                            str = str & vbLf & listValue
    +                        Next
    +                        MessageBox.Show(str)
    +                    End If

    +

    +

    +                    ' Get the edit box controls in the card
    +                    If (contType = 4) Then
    +                        str = ""
    +                        aControl.GetParentInfo(plParentCtrlID, plPageNo)
    +                        aControl.GetPosition(plX, plY, plWidth, plHeight)
    +                        varType = aControl.GetValidation(poMin, poMax)

    +                        str = "Card control: " & aControl.Name
    +                        str = str & vbLf & "Variable ID: " & aControl.VariableID & vbLf & "EdmCardControlType: " & contType & vbLf & "Is multi-line? " & aControl.IsMultiLine & vbLf & "Is read-only? " & aControl.IsReadOnly & vbLf & "Show in preview? " & aControl.ShowInPreview
    +                        str = str & vbLf & "Location on card: [" & plX & ", " & plY & "], Width: " & plWidth & ", Height: " & plHeight
    +                        str = str & vbLf & "Parent control ID (0, if none): " & plParentCtrlID
    +                        str = str & vbLf & "Tab index: " & plPageNo
    +                        str = str & vbLf & "EdmVariableType: " & varType

    +

    +                        +str = str & vbLf & "Updates all configurations? " & aControl.UpdatesAllConfigurations.ToString

    +

    +
    +                        MessageBox.Show(str)
    +                    End If
    +                End While
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub


    +End Class

    +

     

    + +
    +
    'Form1.Designer.vb
    +

    + <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    + Partial Class Form1
    +     Inherits System.Windows.Forms.Form

    +     'Form overrides dispose to clean up the component list.
    +     <System.Diagnostics.DebuggerNonUserCode()> _
    +     Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +         Try
    +             If disposing AndAlso components IsNot Nothing Then
    +                 components.Dispose()
    +             End If
    +         Finally
    +             MyBase.Dispose(disposing)
    +         End Try
    +     End Sub

    +     'Required by the Windows Form Designer
    +     Private components As System.ComponentModel.IContainer

    +     'NOTE: The following procedure is required by the Windows Form Designer
    +     'It can be modified using the Windows Form Designer.  
    +     'Do not modify it using the code editor.
    +     <System.Diagnostics.DebuggerStepThrough()> _
    +     Private Sub InitializeComponent()
    +         Me.VaultsLabel = New System.Windows.Forms.Label()
    +         Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +         Me.SelectFiles = New System.Windows.Forms.Button()
    +         Me.File1List = New System.Windows.Forms.ListBox()
    +         Me.GetCardControls = New System.Windows.Forms.Button()
    +         Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +         Me.SuspendLayout()
    +         '
    +         'VaultsLabel
    +         '
    +         Me.VaultsLabel.AutoSize = True
    +         Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
    +         Me.VaultsLabel.Name = "VaultsLabel"
    +         Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +         Me.VaultsLabel.TabIndex = 0
    +         Me.VaultsLabel.Text = "Select vault view:"
    +         '
    +         'VaultsComboBox
    +         '
    +         Me.VaultsComboBox.FormattingEnabled = True
    +         Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
    +         Me.VaultsComboBox.Name = "VaultsComboBox"
    +         Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +         Me.VaultsComboBox.TabIndex = 1
    +         '
    +         'SelectFiles
    +         '
    +         Me.SelectFiles.Location = New System.Drawing.Point(39, 85)
    +         Me.SelectFiles.Name = "SelectFiles"
    +         Me.SelectFiles.Size = New System.Drawing.Size(191, 23)
    +         Me.SelectFiles.TabIndex = 2
    +         Me.SelectFiles.Text = "Select file..."
    +         Me.SelectFiles.UseVisualStyleBackColor = True
    +         '
    +         'File1List
    +         '
    +         Me.File1List.FormattingEnabled = True
    +         Me.File1List.HorizontalScrollbar = True
    +         Me.File1List.Location = New System.Drawing.Point(40, 114)
    +         Me.File1List.Name = "File1List"
    +         Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
    +         Me.File1List.Size = New System.Drawing.Size(220, 43)
    +         Me.File1List.TabIndex = 4
    +         '
    +         'GetCardControls
    +         '
    +         Me.GetCardControls.Location = New System.Drawing.Point(40, 183)
    +         Me.GetCardControls.Name = "GetCardControls"
    +         Me.GetCardControls.Size = New System.Drawing.Size(157, 23)
    +         Me.GetCardControls.TabIndex = 6
    +         Me.GetCardControls.Text = "Get card  information"
    +         Me.GetCardControls.UseVisualStyleBackColor = True
    +         '
    +         'OpenFileDialog1
    +         '
    +         Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +         Me.OpenFileDialog1.Title = "Select File"
    +         '
    +         'Form1
    +         '
    +         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +         Me.ClientSize = New System.Drawing.Size(284, 235)
    +         Me.Controls.Add(Me.GetCardControls)
    +         Me.Controls.Add(Me.File1List)
    +         Me.Controls.Add(Me.SelectFiles)
    +         Me.Controls.Add(Me.VaultsComboBox)
    +         Me.Controls.Add(Me.VaultsLabel)
    +         Me.Name = "Form1"
    +         Me.Text = "Card controls"
    +         Me.ResumeLayout(False)
    +         Me.PerformLayout()

    +     End Sub
    +     Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +     Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +     Friend WithEvents SelectFiles As System.Windows.Forms.Button
    +     Friend WithEvents File1List As System.Windows.Forms.ListBox
    +     Friend WithEvents GetCardControls As System.Windows.Forms.Button
    +     Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

    + End Class

    +

    +  

    + + + + + diff --git a/documentation/api_extracted/Get_Categories_Example_CSharp.htm b/documentation/api_extracted/Get_Categories_Example_CSharp.htm new file mode 100644 index 0000000..ef188e3 --- /dev/null +++ b/documentation/api_extracted/Get_Categories_Example_CSharp.htm @@ -0,0 +1,248 @@ + + + +Get Categories Example (C#) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Categories Example (C#)

    +

    This example shows how to access the categories in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > Visual C# > Windows Forms Application.
    +//  3. Type GetCategories_CSharp in Name.
    +//  4. Click Browse to navigate to the folder where to create the project.
    +//  5. Click OK.
    +//  6. Click Show All Files in the Solution Explorer toolbar and expand 
    +//     Form1.cs in the Solution Explorer. 
    +//  7. Replace the code in Form1.cs with this code.
    +//  8. To create the form, replace the code in Form1.Designer.cs with this code.
    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assembly > Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and select 
    +//     EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +// 11. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    //  2. Select a vault.
    //  3. Click Get categories.
    //  4. Displays a message box with the names and descriptions of all of the categories
    //     in the vault.
    //  5. Click OK in the message box.

    //  6. Close the dialog.
    +//---------------------------------------------------------------------------- 
    +
    //Form1.cs
    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace GetCategories_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetCategories_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault9)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmCategoryMgr6 Categories = default(IEdmCategoryMgr6);
    +                Categories = (IEdmCategoryMgr6)vault2.CreateUtility(EdmUtility.EdmUtil_CategoryMgr);

    +                IEdmPos5 Pos = default(IEdmPos5);
    +                Pos = (IEdmPos5)Categories.GetFirstCategoryPosition();

    +                IEdmCategory6 Category = default(IEdmCategory6);
    +                string Msg = null;
    +                Msg = "The categories in this vault are:";

    +                while (!Pos.IsNull)
    +                {
    +                    Category = Categories.GetNextCategory(Pos);
    +                    Msg = Msg + "\r\n"+ Category.Name + " (" + Category.Description + ")";
    +                }

    +                Interaction.MsgBox(Msg);


    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }
    +    }
    +}

    +

    + +
    +
    //Form1.Designer.cs
    +
    +
    +

    + namespace GetCategories_CSharp
    + {
    +     partial class Form1
    +     {
    +         /// <summary>
    +         /// Required designer variable.
    +         /// </summary>
    +         private System.ComponentModel.IContainer components = null;

    +         /// <summary>
    +         /// Clean up any resources being used.
    +         /// </summary>
    +         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +         protected override void Dispose(bool disposing)
    +         {
    +             if (disposing && (components != null))
    +             {
    +                 components.Dispose();
    +             }
    +             base.Dispose(disposing);
    +         }

    +         #region Windows Form Designer generated code

    +         /// <summary>
    +         /// Required method for Designer support - do not modify
    +         /// the contents of this method with the code editor.
    +         /// </summary>
    +         private void InitializeComponent()
    +         {
    +             this.VaultsLabel = new System.Windows.Forms.Label();
    +             this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +             this.GetCategories = new System.Windows.Forms.Button();
    +             this.SuspendLayout();
    +             //
    +             //VaultsLabel
    +             //
    +             this.VaultsLabel.AutoSize = true;
    +             this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
    +             this.VaultsLabel.Name = "VaultsLabel";
    +             this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +             this.VaultsLabel.TabIndex = 0;
    +             this.VaultsLabel.Text = "Select vault view:";
    +             //
    +             //VaultsComboBox
    +             //
    +             this.VaultsComboBox.FormattingEnabled = true;
    +             this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
    +             this.VaultsComboBox.Name = "VaultsComboBox";
    +             this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +             this.VaultsComboBox.TabIndex = 1;
    +             //
    +             //GetCategories
    +             //
    +             this.GetCategories.Location = new System.Drawing.Point(39, 79);
    +             this.GetCategories.Name = "GetCategories";
    +             this.GetCategories.Size = new System.Drawing.Size(157, 23);
    +             this.GetCategories.TabIndex = 6;
    +             this.GetCategories.Text = "Get categories";
    +             this.GetCategories.UseVisualStyleBackColor = true;
    +             this.GetCategories.Click +=new System.EventHandler(GetCategories_Click);
    +             //
    +             //Form1
    +             //
    +             this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +             this.ClientSize = new System.Drawing.Size(284, 142);
    +             this.Controls.Add(this.GetCategories);
    +             this.Controls.Add(this.VaultsComboBox);
    +             this.Controls.Add(this.VaultsLabel);
    +             this.Name = "Form1";
    +             this.Text = "Categories";
    +             this.Load += new System.EventHandler(this.Form1_Load);
    +             this.ResumeLayout(false);
    +             this.PerformLayout();

    +         }
    +         internal System.Windows.Forms.Label VaultsLabel;
    +         internal System.Windows.Forms.ComboBox VaultsComboBox;
    +         internal System.Windows.Forms.Button GetCategories;

    +         #endregion
    +     }
    + }

    +

    +  

    + +

     

    + + + + diff --git a/documentation/api_extracted/Get_Categories_Example_VBNET.htm b/documentation/api_extracted/Get_Categories_Example_VBNET.htm new file mode 100644 index 0000000..f9f84dd --- /dev/null +++ b/documentation/api_extracted/Get_Categories_Example_VBNET.htm @@ -0,0 +1,216 @@ + + + +Get Categories Example (VB.NET) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Categories Example (VB.NET)

    +

    This example shows how to access the categories in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type GetCategories in Name.
    +'  4. Click Browse to navigate to the folder where to create the project.
    +'  5. Click OK.
    +
    +'  6. Click Show All Files in the Solution Explorer toolbar and expand 
    +'     Form1.vb in the Solution Explorer. 
    +'  7. Replace the code in Form1.vb with this code.
    +'  8. To create the form, replace the code in
    Form1.Designer.vb with this code.
    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assembly > Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 10. Right-click EPDM.Interop.epdm in References, select Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click Get categories.
    +'  4. Displays a message box with the names and descriptions of all of the categories
    +'     in the vault.
    +'  5. Click OK in the message box.

    +'  6. Close the dialog.
    +'---------------------------------------------------------------------------- 

    +
    'Form1.vb
    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            vault1 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    
    +    Public Sub GetCategories_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetCategories.Click
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault9)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim Categories As IEdmCategoryMgr6
    +            Categories = vault2.CreateUtility(EdmUtility.EdmUtil_CategoryMgr)

    +            Dim Pos As IEdmPos5
    +            Pos = Categories.GetFirstCategoryPosition

    +            Dim Category As IEdmCategory6
    +            Dim Msg As String
    +            Msg = "The categories in this vault are:"

    +            While Not Pos.IsNull
    +                Category = Categories.GetNextCategory(Pos)
    +                Msg = Msg + vbLf + Category.Name + " (" + Category.Description + ")"
    +            End While

    +            MsgBox(Msg)


    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +End Class

    + +
    +
    'Form1.Designer.vb
    +

    + <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    + Partial Class Form1
    +     Inherits System.Windows.Forms.Form

    +     'Form overrides dispose to clean up the component list.
    +     <System.Diagnostics.DebuggerNonUserCode()> _
    +     Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +         Try
    +             If disposing AndAlso components IsNot Nothing Then
    +                 components.Dispose()
    +             End If
    +         Finally
    +             MyBase.Dispose(disposing)
    +         End Try
    +     End Sub

    +     'Required by the Windows Form Designer
    +     Private components As System.ComponentModel.IContainer

    +     'NOTE: The following procedure is required by the Windows Form Designer
    +     'It can be modified using the Windows Form Designer.  
    +     'Do not modify it using the code editor.
    +     <System.Diagnostics.DebuggerStepThrough()> _
    +     Private Sub InitializeComponent()
    +         Me.VaultsLabel = New System.Windows.Forms.Label()
    +         Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +         Me.GetCategories = New System.Windows.Forms.Button()
    +         Me.SuspendLayout()
    +         '
    +         'VaultsLabel
    +         '
    +         Me.VaultsLabel.AutoSize = True
    +         Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
    +         Me.VaultsLabel.Name = "VaultsLabel"
    +         Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +         Me.VaultsLabel.TabIndex = 0
    +         Me.VaultsLabel.Text = "Select vault view:"
    +         '
    +         'VaultsComboBox
    +         '
    +         Me.VaultsComboBox.FormattingEnabled = True
    +         Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
    +         Me.VaultsComboBox.Name = "VaultsComboBox"
    +         Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +         Me.VaultsComboBox.TabIndex = 1
    +         '
    +         'GetCategories
    +         '
    +         Me.GetCategories.Location = New System.Drawing.Point(39, 79)
    +         Me.GetCategories.Name = "GetCategories"
    +         Me.GetCategories.Size = New System.Drawing.Size(157, 23)
    +         Me.GetCategories.TabIndex = 6
    +         Me.GetCategories.Text = "Get categories"
    +         Me.GetCategories.UseVisualStyleBackColor = True
    +         '
    +         'Form1
    +         '
    +         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +         Me.ClientSize = New System.Drawing.Size(284, 142)
    +         Me.Controls.Add(Me.GetCategories)
    +         Me.Controls.Add(Me.VaultsComboBox)
    +         Me.Controls.Add(Me.VaultsLabel)
    +         Me.Name = "Form1"
    +         Me.Text = "Categories"
    +         Me.ResumeLayout(False)
    +         Me.PerformLayout()

    +     End Sub
    +     Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +     Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +     Friend WithEvents GetCategories As System.Windows.Forms.Button


    + End Class

    + + + + + diff --git a/documentation/api_extracted/Get_File_Info_Example_CSharp.htm b/documentation/api_extracted/Get_File_Info_Example_CSharp.htm new file mode 100644 index 0000000..e7fd265 --- /dev/null +++ b/documentation/api_extracted/Get_File_Info_Example_CSharp.htm @@ -0,0 +1,495 @@ + + + +Get File Information Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Information Example (C#)

    +

    This example shows how to access a file and get information +about it.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type Files_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Check out a file in the vault.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Get +file information dialog box.
    +//    a. Select a vault view.
    +//    b. Click Browse
    +//       1. Locate and select +the file checked out in Preconditions step 5.
    +//       2. Click Open.
    +//    c. Click Get information.
    +//    d. Displays a message box with information +about the selected file.
    +//    e. Click OK.

    +// 2. Close the Get +file information dialog box.         

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace Files_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                ListBox.Items.Clear();

    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Open dialog
    +                OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Open dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog.ShowDialog();
    +                //If the user didn't click Open, exit
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    return;
    +                }

    +                foreach (string FileName in OpenFileDialog.FileNames)
    +                {
    +                    ListBox.Items.Add(FileName);
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetInfo_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmFile17 aFile = default(IEdmFile17);
    +                IEdmFolder5 ppoRetParentFolder;
    +                aFile = (IEdmFile17)vault2.GetFileFromPath(ListBox.Items[0].ToString(), out ppoRetParentFolder);

    +                //Get configurations
    +                string msg = "Configurations: " + "\r\n";
    +                IEdmFolder5 folder = default(IEdmFolder5);
    +                folder = vault2.RootFolder;

    +                EdmStrLst5 cfgList = default(EdmStrLst5);
    +                cfgList = aFile.GetConfigurations();

    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = cfgList.GetHeadPosition();
    +                string cfgName = null;
    +                while (!pos.IsNull)
    +                {
    +                    cfgName = cfgList.GetNext(pos);
    +                    msg = msg + cfgName + "r\\n";
    +                }

    +                msg = msg + "\r\n";

    +                //Get type of file
    +                int typ = 0;
    +                typ = (int)aFile.FileType;
    +                msg = msg + "EdmFileType: " + typ + "\r\n";

    +                msg = msg + "\r\n";

    +                //Get category of file
    +                IEdmCategory6 cat = default(IEdmCategory6);
    +                cat = aFile.Category;
    +                if ((cat != null))
    +                {
    +                    msg = msg + "Category: " + cat.Name + ", Category ID: " + aFile.CategoryID + "\r\n";
    +                    msg = msg + "\r\n";
    +                }

    +                //Get local file timestamp
    +                string filePath = aFile.Name;
    +                object fileDate = null;
    +                fileDate = aFile.GetLocalFileDate(filePath);

    +                if ((fileDate != null))
    +                {
    +                    string text = null;
    +                    text = fileDate.ToString();
    +                    msg = msg + aFile.GetLocalPath(folder.ID) + " was modified " + text + "\r\n";
    +                }
    +                else
    +                {
    +                    msg = msg + "There is no local copy of the file" + "\r\n";
    +                }

    +                msg = msg + "\r\n";

    +                //Get local version number
    +                int versionNo = 0;
    +                versionNo = aFile.GetLocalVersionNo(aFile.GetLocalPath(folder.ID));

    +                if (versionNo == -1)
    +                {
    +                    msg = msg + "The local copy of " + aFile.Name + " does not match any existing versions" + "\r\n";
    +                }
    +                else
    +                {
    +                    string versionStr = null;
    +                    versionStr = versionNo.ToString();
    +                    msg = msg + "The local copy of " + aFile.Name + " has version " + versionStr + "\r\n";
    +                }

    +                msg = msg + "\r\n";

    +                //Get current version
    +                int ver = 0;
    +                ver = aFile.CurrentVersion;
    +                msg = msg + "Current version: " + ver + "\r\n";

    +                msg = msg + "\n";

    +                //Get local revision name
    +                string revName = null;
    +                revName = aFile.GetLocalRevisionName(aFile.GetLocalPath(folder.ID));

    +                if (string.IsNullOrEmpty(revName))
    +                {
    +                    msg = msg + "The local copy of " + aFile.Name + " does not match any existing revisions" + "\r\n";
    +                }
    +                else
    +                {
    +                    msg = msg + "The local copy of " + aFile.Name + " has revision name " + revName + "r\n";
    +                }

    +                msg = msg + "\r\n";

    +                //Get current revision
    +                revName = aFile.CurrentRevision;
    +                msg = msg + "Current revision: " + revName + "\r\n";

    +                msg = msg + "\r\n";

    +                //Get local file size
    +                int fileSize = 0;
    +                fileSize = (int)aFile.GetLocalFileSize2(aFile.GetLocalPath(folder.ID));

    +                if (fileSize == -1)
    +                {
    +                    msg = msg + "The local copy of " + aFile.Name + " is missing" + "\r\n";
    +                }
    +                else
    +                {
    +                    msg = msg + "The local copy of " + aFile.Name + " has size " + fileSize + " bytes" + "\r\n";
    +                }

    +                msg = msg + "\r\n";

    +                //Get current workflow state
    +                IEdmState5 state = default(IEdmState5);
    +                state = aFile.CurrentState;
    +                msg = msg + "Current workflow state: " + state.Name + "\n";

    +                msg = msg + "\r\n";

    +                //Get whether the file is checked out
    +                bool checkedOut = false;
    +                checkedOut = aFile.IsLocked;
    +                msg = msg + "File is checked out? " + checkedOut + "\r\n";
    +                if (checkedOut)
    +                {
    +                    msg = msg + "Lock path: " + aFile.LockPath + "\n";
    +                    msg = msg + "Locked by: " + aFile.LockedByUser.Name + ", User ID: " + aFile.LockedByUserID + "\r\n";
    +                    msg = msg + "Locked in: " + aFile.LockedInFolder.Name + ", Folder ID: " + aFile.LockedInFolderID + "\r\n";
    +                    msg = msg + "Locked on: " + aFile.LockedOnComputer ++ ", Vault View ID: " + aFile.LockedOnViewID;
    +                }

                    msg = msg + "\r\n";

    +
                     //Get whether the file has cut list items
    +                bool hasCutListItems = false;
    +                hasCutListItems = aFile.HasCutListItems;
    +                msg = msg + "File has cut list items? " + hasCutListItems + "\r\n";
    + +

    +                +msg = msg + "\r\n";

    +

    +             +    +//Create a label

    +

    +             +    +int labelID;
                    +labelID = aFile.CreateLabel("File +label", "Label description shows in the history +dialog box");

    +

    +                 +msg = msg + "File label ID: " + "\r\n";

    +
    +

    +
    +                MessageBox.Show(msg);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace Files_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.ListBox = new System.Windows.Forms.ListBox();
    +            this.GetInfo = new System.Windows.Forms.Button();
    +            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = " Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //BrowseButton
    +            //
    +            this.BrowseButton.Location = new System.Drawing.Point(16, 85);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(98, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
    +            //
    +            //ListBox
    +            //
    +            this.ListBox.FormattingEnabled = true;
    +            this.ListBox.HorizontalScrollbar = true;
    +            this.ListBox.Location = new System.Drawing.Point(16, 114);
    +            this.ListBox.Name = "ListBox";
    +            this.ListBox.Size = new System.Drawing.Size(259, 43);
    +            this.ListBox.TabIndex = 4;
    +            //
    +            //GetInfo
    +            //
    +            this.GetInfo.Location = new System.Drawing.Point(84, 178);
    +            this.GetInfo.Name = "GetInfo";
    +            this.GetInfo.Size = new System.Drawing.Size(98, 23);
    +            this.GetInfo.TabIndex = 5;
    +            this.GetInfo.Text = "Get information";
    +            this.GetInfo.UseVisualStyleBackColor = true;
    +            this.GetInfo.Click +=new System.EventHandler(GetInfo_Click);
    +            //
    +            //OpenFileDialog
    +            //
    +            this.OpenFileDialog.Title = "Open";
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(317, 215);
    +            this.Controls.Add(this.GetInfo);
    +            this.Controls.Add(this.ListBox);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get file information";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button BrowseButton;
    +        internal System.Windows.Forms.ListBox ListBox;
    +        internal System.Windows.Forms.Button GetInfo;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
    +    }
    +}

    +

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_Info_Example_VBNET.htm b/documentation/api_extracted/Get_File_Info_Example_VBNET.htm new file mode 100644 index 0000000..e398af7 --- /dev/null +++ b/documentation/api_extracted/Get_File_Info_Example_VBNET.htm @@ -0,0 +1,448 @@ + + + +Get File Information Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Information Example (VB.NET)

    +

    This example shows how to access a file and get information +about it.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type Files in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Check out a file in the vault.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Get file information dialog box.
    +'    a. Select a vault view.
    +'    b. Click Browse
    + +'       1. Locate and select the file +checked out in Preconditions step 4.
    +'       2. Click Open.
    +'    c. Click Get information.
    +'    d. Displays a message box with information +about the selected file.
    +'    e. Click OK.

    + +' 2. Close the Get file information dialog box.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            ListBox.Items.Clear()

    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Open dialog
    +            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
    +            'Show the Open dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog.ShowDialog()
    +            'If the user didn't click Open, exit
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                Return
    +            End If

    +            For Each FileName As String In OpenFileDialog.FileNames
    +                ListBox.Items.Add(FileName)
    +            Next
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GetInfo_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetInfo.Click
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim aFile As IEdmFile17
    +            aFile = vault2.GetFileFromPath(ListBox.Items(0).ToString())

    +            'Get configurations
    +            Dim msg As String = "Configurations: " & vbLf
    +            Dim folder As IEdmFolder5
    +            folder = vault2.RootFolder

    +            Dim cfgList As EdmStrLst5
    +            cfgList = aFile.GetConfigurations

    +            Dim pos As IEdmPos5
    +            pos = cfgList.GetHeadPosition
    +            Dim cfgName As String
    +            While Not pos.IsNull
    +                cfgName = cfgList.GetNext(pos)
    +                msg = msg & cfgName & vbLf
    +            End While

    +            msg = msg & vbLf

    +            'Get type of file
    +            Dim typ As Integer
    +            typ = aFile.FileType
    +            msg = msg & "EdmFileType: " & typ & vbLf

    +            msg = msg & vbLf

    +            'Get category of file
    +            Dim cat As IEdmCategory6
    +            cat = aFile.Category
    +            If Not IsNothing(cat) Then
    +                msg = msg & "Category: " & cat.Name & ", Category ID: " & aFile.CategoryID & vbLf
    +                msg = msg & vbLf
    +            End If

    +            'Get local file timestamp
    +            Dim filePath As String = aFile.Name
    +            Dim fileDate As Object
    +            fileDate = aFile.GetLocalFileDate(filePath)

    +            If Not IsNothing(fileDate) Then
    +                Dim text As String
    +                text = fileDate
    +                msg = msg & aFile.GetLocalPath(folder.ID) & " was modified " & text & vbLf
    +            Else
    +                msg = msg & "There is no local copy of the file" & vbLf
    +            End If

    +            msg = msg & vbLf

    +            'Get local version number
    +            Dim versionNo As Integer
    +            versionNo = aFile.GetLocalVersionNo(aFile.GetLocalPath(folder.ID))

    +            If versionNo = -1 Then
    +                msg = msg & "The local copy of " & aFile.Name & " does not match any existing versions" & vbLf
    +            Else
    +                Dim versionStr As String
    +                versionStr = versionNo
    +                msg = msg & "The local copy of " & aFile.Name & " has version " & versionStr & vbLf
    +            End If

    +            msg = msg & vbLf

    +            'Get current version
    +            Dim ver As Integer
    +            ver = aFile.CurrentVersion
    +            msg = msg & "Current version: " & ver & vbLf

    +            msg = msg & vbLf

    +            'Get local revision name
    +            Dim revName As String
    +            revName = aFile.GetLocalRevisionName(aFile.GetLocalPath(folder.ID))

    +            If revName = "" Then
    +                msg = msg & "The local copy of " & aFile.Name & " does not match any existing revisions" & vbLf
    +            Else
    +                msg = msg & "The local copy of " & aFile.Name & " has revision name " & revName & vbLf
    +            End If

    +            msg = msg & vbLf

    +            'Get current revision
    +            revName = aFile.CurrentRevision
    +            msg = msg & "Current revision: " & revName & vbLf

    +            msg = msg & vbLf

    +            'Get local file size
    +            Dim fileSize As Integer
    +            fileSize = aFile.GetLocalFileSize2(aFile.GetLocalPath(folder.ID))

    +            If fileSize = -1 Then
    +                msg = msg & "The local copy of " & aFile.Name & " is missing" & vbLf
    +            Else
    +                msg = msg & "The local copy of " & aFile.Name & " has size " & fileSize & " bytes" & vbLf
    +            End If

    +            msg = msg & vbLf

    +            'Get current workflow state
    +            Dim state As IEdmState5
    +            state = aFile.CurrentState
    +            msg = msg & "Current workflow state: " & state.Name & vbLf

    +            msg = msg & vbLf

    +            'Get whether the file is checked out
    +            Dim checkedOut As Boolean
    +            checkedOut = aFile.IsLocked
    +            msg = msg & "File is checked out? " & checkedOut & vbLf
    +            If checkedOut Then
    +                msg = msg & "Lock path: " & aFile.LockPath & vbLf
    +                msg = msg & "Locked by: " & aFile.LockedByUser.Name & ", User ID: " & aFile.LockedByUserID & vbLf
    +                msg = msg & "Locked in: " & aFile.LockedInFolder.Name & ", Folder ID: " & aFile.LockedInFolderID & vbLf
    +                msg = msg & "Locked on: " & aFile.LockedOnComputer +& ", Vault View ID: " & aFile.LockedOnViewID
    +            End If

    +

    +            
    +            msg = +msg & vbLf

    +

    +

    +             +'Get whether the file has cut list items

    +

    +             +Dim hasCutListItems +As Boolean
                +hasCutListItems = aFile.HasCutlistItems

    +

    +             msg = +msg & "File has cut list items? " & +hasCutListItems & vbLf

    +

    +            msg = +msg & vbLf

    +

    +             +'Create a label

    +

    +             +Dim labelID +As Integer
                +labelID = aFile.CreateLabel("File label", "Label description +shows in the history dialog box")

    +

    +             msg = +msg & "File label ID: " & +labelID & vbLf

    +

    +
                MessageBox.Show(msg)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +End Class

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.ListBox = New System.Windows.Forms.ListBox()
    +        Me.GetInfo = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = " Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(16, 85)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(98, 23)
    +        Me.BrowseButton.TabIndex = 3
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'ListBox
    +        '
    +        Me.ListBox.FormattingEnabled = True
    +        Me.ListBox.HorizontalScrollbar = True
    +        Me.ListBox.Location = New System.Drawing.Point(16, 114)
    +        Me.ListBox.Name = "ListBox"
    +        Me.ListBox.Size = New System.Drawing.Size(259, 43)
    +        Me.ListBox.TabIndex = 4
    +        '
    +        'GetInfo
    +        '
    +        Me.GetInfo.Location = New System.Drawing.Point(84, 178)
    +        Me.GetInfo.Name = "GetInfo"
    +        Me.GetInfo.Size = New System.Drawing.Size(98, 23)
    +        Me.GetInfo.TabIndex = 5
    +        Me.GetInfo.Text = "Get information"
    +        Me.GetInfo.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog
    +        '
    +        Me.OpenFileDialog.Title = "Open"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(317, 215)
    +        Me.Controls.Add(Me.GetInfo)
    +        Me.Controls.Add(Me.ListBox)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get file information"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents ListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents GetInfo As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
    +End Class

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_References_for_File_Example_CSharp.htm b/documentation/api_extracted/Get_File_References_for_File_Example_CSharp.htm new file mode 100644 index 0000000..e194a41 --- /dev/null +++ b/documentation/api_extracted/Get_File_References_for_File_Example_CSharp.htm @@ -0,0 +1,596 @@ + + + +Get File References for a File Example (C#) + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File References for a File Example (C#)

    + +

    This example shows how to get the file references for a +file and export any file references to an XML file. This example also shows how +to get whether the file and any file references in local cache are valid or +obsolete.

    +

    NOTE:

    + +

     

    +

    +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > C# > Windows Forms Application.
    +//     b. Type GetFiles2CSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create 
    +//        the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with this code.
    +//     h. Right-click the GetFiles2CSharp project name in the Solution Explorer.
    +//        1. Click Add > Class > Class.
    +//        2. Type FileRef.cs in Name.
    +//        3. Click Add.
    +//        4. Replace the code in FileRef.cs with this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add > Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Add OK).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Verify that C:\temp exists.
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click Browse, locate and select a file in the vault that 
    +//     has file references, and click Open.
    +//  4. Click Write file references to an XML file, which exports
    +//     the names of any file references to C:\temp\BatchFileRefInfo.xml.
    +//  5. Displays a message box that says file references were exported 
    +//     to an XML file.
    +//  6. Click OK to close the message box.
    +//  7. Double-click C:\temp\BatchFileRefInfo.xml and examine its contents.    
    +//----------------------------------------------------------------------------
    + 
    +//Form1.cs
    +using System.IO;
    +using System.Xml.Serialization;
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using System.ComponentModel;
    +using EPDM.Interop.epdm;
    + 
    +namespace GetFiles2CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        IEdmVault5 vault1 = null;
    + 
    +        public void FileReferencesCSharp_Load(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                BatchRefListBox.Items.Clear();
    + 
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                    vault1 = new EdmVault5();
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Set the initial directory in the File Open dialog
    +                BatchRefOpenFileDialog.InitialDirectory = vault1.RootFolderPath;
    +                //Show the File Open dialog
    +                System.Windows.Forms.DialogResult DialogResult = default(System.Windows.Forms.DialogResult);
    +                DialogResult = BatchRefOpenFileDialog.ShowDialog();
    +                //If the user didn't click Open, exit the sub
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                    return;
    + 
    +                foreach (string FileName in BatchRefOpenFileDialog.FileNames)
    +                {
    +                    BatchRefListBox.Items.Add(FileName);
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    + 
    +        public void GetReferencedFiles(IEdmReference10 Reference, string FilePath, int Level, string ProjectName, ref Dictionary<stringstring> RefFilesDictionary)
    +        {
    +            try
    +            {
    +                bool Top = false;
    +                if (Reference == null)
    +                {
    +                    //This is the first time this function is called for this 
    +                    //reference tree; i.e., this is the root
    +                    Top = true;
    +                    //Add the top-level file path to the dictionary
    +                    RefFilesDictionary.Add(FilePath, Level.ToString());
    +                    IEdmFile5 File = null;
    +                    IEdmFolder5 ParentFolder = null;
    +                    File = vault1.GetFileFromPath(FilePath, out ParentFolder);
    +                    //Get the reference tree for this file
    +                    Reference = (IEdmReference10)File.GetReferenceTree(ParentFolder.ID);
    +                    GetReferencedFiles(Reference, "", Level + 1, ProjectName, ref RefFilesDictionary);
    +                }
    +                else
    +                {
    +                    //Execute this code when this function is called recursively; 
    +                    //i.e., this is not the top-level IEdmReference in the tree
    + 
    +                    //Recursively traverse the references
    +                    IEdmPos5 pos = default(IEdmPos5);
    +                    IEdmReference10 Reference2 = (IEdmReference10)Reference;
    +                    pos = Reference2.GetFirstChildPosition3(ProjectName, Top, true, (int)EdmRefFlags.EdmRef_File, "", 0);
    +                    IEdmReference10 @ref = default(IEdmReference10);
    +                    while ((!pos.IsNull))
    +                    {
    +                        @ref = (IEdmReference10)Reference.GetNextChild(pos);
    +                        RefFilesDictionary.Add(@ref.FoundPath, Level.ToString());
    +                        GetReferencedFiles(@ref, "", Level + 1, ProjectName, ref RefFilesDictionary);
    +                    }
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    + 
    +        public void WriteXmlButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                    vault1 = new EdmVault5();
    +                    vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Get the file paths of all of the referenced files
    +                //and store them in RefFilesDictionary as keys;
    +                //the levels where they are found in the file hierarchy 
    +                //are stored as values
    +                Dictionary<stringstring> RefFilesDictionary = new Dictionary<stringstring>();
    +                foreach (string FileName in BatchRefListBox.Items)
    +                {
    +                    GetReferencedFiles(null, FileName, 0, "A"ref RefFilesDictionary);
    +                }
    + 
    +                //Because selecting a file in the Open File dialog 
    +                //adds the file and its references to the local cache, 
    +                //clear the local cache to demonstrate that the 
    +                //IEdmBatchListing methods don't add the files to 
    +                //the local cache 
    +

    +                +//Declare and create the IEdmClearLocalCache3 object
    +                IEdmClearLocalCache3 ClearLocalCache = default(IEdmClearLocalCache3);
    +                ClearLocalCache = (IEdmClearLocalCache3)vault2.CreateUtility(EdmUtility.EdmUtil_ClearLocalCache);
    +                ClearLocalCache.IgnoreToolboxFiles = true;
    +                ClearLocalCache.UseAutoClearCacheOption = true;
    +
    +                //Declare and create the IEdmBatchListing object
    +                IEdmBatchListing4 BatchListing = default(IEdmBatchListing4);
    +                BatchListing = (IEdmBatchListing4)vault2.CreateUtility(EdmUtility.EdmUtil_BatchList);

    +                //Add all of the reference file paths to the 
    +                //IEdmClearLocalCache object to clear from the 
    +                //local cache and to the IEdmBatchListing object
    +                //to get the file information in batch mode
    +                foreach (KeyValuePair<stringstring> KvPair in RefFilesDictionary)
    +                {
    +                    ClearLocalCache.AddFileByPath(KvPair.Key);
    +                    ((IEdmBatchListing4)BatchListing).AddFileCfg(KvPair.Key, DateTime.Now, (Convert.ToInt32(KvPair.Value)), "@"Convert.ToInt32(EdmListFileFlags.EdmList_Nothing));
    +                }
    +                //Clear the local cache of the reference files
    +                ClearLocalCache.CommitClear();

    +                //Create the batch file listing along with the file
    +                //card variables Description and Number
    +                EdmListCol[] BatchListCols = null;
    +                ((IEdmBatchListing4)BatchListing).CreateListEx("\n\nDescription\nNumber"Convert.ToInt32(EdmCreateListExFlags.Edmclef_MayReadFiles), ref BatchListCols, null);
    +                //Get the generated file information
    +                EdmListFile2[] BatchListFiles = null;
    +                BatchListing.GetFiles2(ref BatchListFiles);

    +                //Create the list where to store all the file information
    +                List<FileRef> FileRefs = new List<FileRef>();

    +                //Recursively add the file information to the list
    +                int j = 0;
    +                AddFileRef(ref BatchListFiles, ref j, 0, ref FileRefs);

    +                if (!Directory.Exists("C:\\temp"))
    +                {
    +                    MessageBox.Show("Directory \"c:\temp\" does " + "not exist; please create it and try again.");
    +                }
    +                else
    +                {
    +                    XmlSerializer XmlSer = new XmlSerializer(typeof(List<FileRef>));
    +                    StreamWriter StrWriter = new StreamWriter("C:\\temp\\BatchFileRefInfo.xml");
    +                    XmlSer.Serialize(StrWriter, FileRefs);
    +                    StrWriter.Close();
    +                    MessageBox.Show("File references successfully exported to an XML file.");
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void AddFileRef(ref EdmListFile2[] BatchListFiles, ref int curIndex, int curLevel, ref List<FileRef> FileRefs)
    +  
    +        {
    +            try
    +            {

    +                while (curIndex < BatchListFiles.Length)
    +                {
    +                    EdmListFile2 curListFile = BatchListFiles[curIndex];
    +                    //If the depth level of this listfile is <
    +                    //the current depth level then...
    +                    if (curListFile.mlParam > curLevel)
    +                    {
    +                        //Create a new FileRefs list
    +                        FileRefs[FileRefs.Count - 1].FileRefs = new List<FileRef>();
    +                        List<FileRef> fRef = FileRefs[FileRefs.Count - 1].FileRefs;
    +                        //Recurse using a new FileRefs list              
    +                         AddFileRef(ref BatchListFiles, ref curIndex, curListFile.mlParamref fRef);
    +                    }
    +                    else
    +                    {
    +                        //Create a new FileRef object to hold
    +                        //the file information
    +                        FileRef FileRef = new FileRef();
    +                        //Assign the FileRef properties
    +                        FileRef.CheckedOutBy = curListFile.mbsLockUser;
    +                        FileRef.CurrentState = curListFile.moCurrentState.mbsStateName;
    +                        object[] columnData = (object[])curListFile.moColumnData;
    +                        FileRef.Description = (string)columnData[0];
    +                        IEdmFile5 File = default(IEdmFile5);
    +                        File = (IEdmFile5)vault1.GetObject(EdmObjectType.EdmObject_File, curListFile.mlFileID);
    +                        FileRef.FileName = File.Name;
    +                        FileRef.LatestRevision = curListFile.mbsRevisionName;
    +                        FileRef.LatestVersion = Convert.ToString(curListFile.mlLatestVersion);
    +                        FileRef.Number = (string)columnData[1];
    +                        FileRef.FileRefs = null;
    +                        //Add the FileRef to this level's list
    +                        FileRefs.Add(FileRef);
    +                        curIndex += 1;
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }
    +    }
    +}

    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace GetFiles2CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.BatchRefLabel = new System.Windows.Forms.Label();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.BatchRefListBox = new System.Windows.Forms.ListBox();
    +            this.WriteXMLButton = new System.Windows.Forms.Button();
    +            this.BatchRefOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 59);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // BatchRefLabel
    +            // 
    +            this.BatchRefLabel.AutoSize = true;
    +            this.BatchRefLabel.Location = new System.Drawing.Point(16, 116);
    +            this.BatchRefLabel.Name = "BatchRefLabel";
    +            this.BatchRefLabel.Size = new System.Drawing.Size(160, 13);
    +            this.BatchRefLabel.TabIndex = 2;
    +            this.BatchRefLabel.Text = "Files for which to get references:";
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(197, 106);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
    +            // 
    +            // BatchRefListBox
    +            // 
    +            this.BatchRefListBox.FormattingEnabled = true;
    +            this.BatchRefListBox.Location = new System.Drawing.Point(13, 150);
    +            this.BatchRefListBox.Name = "BatchRefListBox";
    +            this.BatchRefListBox.Size = new System.Drawing.Size(259, 95);
    +            this.BatchRefListBox.TabIndex = 4;
    +            // 
    +            // WriteXMLButton
    +            // 
    +            this.WriteXMLButton.Location = new System.Drawing.Point(13, 270);
    +            this.WriteXMLButton.Name = "WriteXMLButton";
    +            this.WriteXMLButton.Size = new System.Drawing.Size(259, 23);
    +            this.WriteXMLButton.TabIndex = 5;
    +            this.WriteXMLButton.Text = "Write file references to an XML file";
    +            this.WriteXMLButton.UseVisualStyleBackColor = true;
    +            this.WriteXMLButton.Click += new System.EventHandler(this.WriteXmlButton_Click); 
    + 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 308);
    +            this.Controls.Add(this.WriteXMLButton);
    +            this.Controls.Add(this.BatchRefListBox);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.BatchRefLabel);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get file references";
    +            this.Load += new System.EventHandler(this.FileReferencesCSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Label BatchRefLabel;
    +        private System.Windows.Forms.Button BrowseButton;
    +        private System.Windows.Forms.ListBox BatchRefListBox;
    +        private System.Windows.Forms.Button WriteXMLButton;
    +        private System.Windows.Forms.OpenFileDialog BatchRefOpenFileDialog;
    +    }
    +}
    +
    + +
    +
    //FileRef.cs
    +
    +
    +
    using System;
    +using System.Collections;
    +using System.Diagnostics;
    +using System.Collections.Generic;
    + 
    +namespace GetFiles2CSharp
    +{
    + 
    +    public class FileRef
    +    {
    +        private short mLocalOverWrittenVersionObsolete;
    +        private string mFileName;
    +        private string mLatestVersion;
    +        private string mLatestRevision;
    +        private string mNumber;
    +        private string mDescription;
    +        private string mCurrentState;
    +        private string mCheckedOutBy;
    +        private List<FileRef> mFileRefs;
    + 
    +        public FileRef()
    +        {
    + 
    +        }
    + 
    +        public string FileName
    +        {
    +            get { return mFileName; }
    +            set { mFileName = value; }
    +        }
    + 
    +        public string LatestVersion
    +        {
    +            get { return mLatestVersion; }
    +            set { mLatestVersion = value; }
    +        }
    + 
    +        public string LatestRevision
    +        {
    +            get { return mLatestRevision; }
    +            set { mLatestRevision = value; }
    +        }
    + 
    +        public string Number
    +        {
    +            get { return mNumber; }
    +            set { mNumber = value; }
    +        }
    + 
    +        public string Description
    +        {
    +            get { return mDescription; }
    +            set { mDescription = value; }
    +        }
    + 
    +        public string CurrentState
    +        {
    +            get { return mCurrentState; }
    +            set { mCurrentState = value; }
    +        }
    + 
    +        public string CheckedOutBy
    +        {
    +            get { return mCheckedOutBy; }
    +            set { mCheckedOutBy = value; }
    +        }
    +
    +	public short LocalOverWrittenVersionObsolete
    +	{
    +    	   get { return mLocalOverWrittenVersionObsolete; }
    +    	   set { mLocalOverWrittenVersionObsolete = value; }
    +	}
    +
    +        public List<FileRef> FileRefs
    +        {
    +            get { return mFileRefs; }
    +            set { mFileRefs = value; }
    +        }
    +    }
    + 
    +}
    +
    + +

     

    + + + + diff --git a/documentation/api_extracted/Get_File_References_for_File_Example_VBNET.htm b/documentation/api_extracted/Get_File_References_for_File_Example_VBNET.htm new file mode 100644 index 0000000..e4ecc86 --- /dev/null +++ b/documentation/api_extracted/Get_File_References_for_File_Example_VBNET.htm @@ -0,0 +1,567 @@ + + + +Get File References for a File Example (VB.NET) + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File References for a File Example (VB.NET)

    +

    This example shows how to get the file references for a +file and export any file references to an XML file. This example also shows how +to get whether the file and any file references in local cache are valid or +obsolete.

    +

    NOTE:

    + +

     

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type GetFiles2 in Name.
    +'     c. Click Browse and navigate to the folder where to create 
    +'        the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with this code.
    +'     h. Right-click the GetFiles2 project name in the Solution Explorer.
    +'        1. Click Add > Class > Class.
    +'        2. Type FileRef.vb in Name.
    +'        3. Click Add.
    +'        4. Replace the code in FileRef.vb with this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add > Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Add > OK).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Verify that C:\temp exists.
    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click Browse, locate and select a file in the vault that 
    +'     has file references, and click Open.
    +'  4. Click Write file references to an XML file, which exports
    +'     the names of any file references to C:\temp\BatchFileRefInfo.xml.
    +'  5. Displays a message box that says file references were exported 
    +'     to an XML file.
    +'  6. Click OK to close the message box.
    +'  7. Double-click C:\temp\BatchFileRefInfo.xml and examine its contents.    
    +'----------------------------------------------------------------------------
    + 
    +'Form1.vb
    +Imports System.IO
    +Imports System.Xml.Serialization
    + 
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Form1
    + 
    +  Dim vault As IEdmVault5 = Nothing
    + 
    +  Private Sub BatchRefTreeInfo_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
    +    Try
    +      Dim vault As IEdmVault8 = New EdmVault5
    +      Dim Views() As EdmViewInfo = {}
    + 
    +      vault.GetVaultViews(Views, False)
    +      VaultsComboBox.Items.Clear()
    +      For Each View As EdmViewInfo In Views
    +        VaultsComboBox.Items.Add(View.mbsVaultName)
    +      Next
    +      If VaultsComboBox.Items.Count > 0 Then
    +        VaultsComboBox.Text = VaultsComboBox.Items(0)
    +      End If
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +      ex.ErrorCode.ToString("X") + vbCrLf + _
    +      ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +  Private Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +    Try
    +      BatchRefListBox.Items.Clear()
    + 
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault Is Nothing Then vault = New EdmVault5
    +            If Not vault.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, _
    +                  Me.Handle.ToInt32())
    +            End If
    + 
    +            'Set the initial directory in the File Open dialog
    +            BatchRefOpenFileDialog.InitialDirectory = vault.RootFolderPath
    +            'Show the File Open dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult
    +            DialogResult = BatchRefOpenFileDialog.ShowDialog()
    +            'If the user didn't click Open, exit the sub
    +            If Not DialogResult = System.Windows.Forms.DialogResult.OK Then Exit Sub
    + 
    +            For Each FileName As String In BatchRefOpenFileDialog.FileNames
    +                BatchRefListBox.Items.Add(FileName)
    +            Next FileName
    +        Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +      ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +  Private Sub GetReferencedFiles( _
    +    ByVal Reference As IEdmReference10, _
    +    ByVal FilePath As String, _
    +    ByVal Level As Integer, _
    +    ByVal ProjectName As String, _
    +    ByRef RefFilesDictionary _
    +    As Dictionary(Of StringString))
    + 
    +        Try
    +            Dim Top As Boolean = False
    +            If Reference Is Nothing Then
    +                'This is the first time this function is called for this 
    +                'file reference tree; i.e., this is the root
    +                Top = True
    +                'Add the top-level file path to the dictionary
    +                RefFilesDictionary.Add(FilePath, Level.ToString())
    +                Dim File As IEdmFile5 = Nothing
    +                Dim ParentFolder As IEdmFolder5 = Nothing
    +                File = vault.GetFileFromPath(FilePath, ParentFolder)
    +                'Get the file reference tree for this file
    +                Reference = File.GetReferenceTree(ParentFolder.ID)
    +                GetReferencedFiles(Reference, "", Level + 1, ProjectName, RefFilesDictionary)
    +            Else
    +                'Execute this code when this function is called recursively; 
    +                'i.e., this is not the top-level IEdmReference in the tree
    + 
    +                'Recursively traverse the references
    +                Dim pos As IEdmPos5
    +                pos = Reference.GetFirstChildPosition4(ProjectName, Top, TrueTrue, EdmRefFlags.EdmRef_file, "", 0)
    +                Dim ref As IEdmReference10
    +                While (Not pos.IsNull)
    +                    ref = Reference.GetNextChild(pos)
    +                    RefFilesDictionary.Add(ref.FoundPath, Level.ToString())
    +                    GetReferencedFiles(ref, "", Level + 1, ProjectName, RefFilesDictionary)
    +                End While
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +            ex.ErrorCode.ToString("X") + vbCrLf + _
    +            ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +  End Sub
    + 
    +  Private Sub WriteXmlButton_Click( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles WriteXmlButton.Click
    + 
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault Is Nothing Then vault = New EdmVault5
    +            If Not vault.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Get the file paths of all of the referenced files
    +            'and store them in RefFilesDictionary as keys;
    +            'the levels where they are found in the file hierarchy 
    +            'are stored as values
    +            Dim RefFilesDictionary As Dictionary(Of StringString) = _
    +                    New Dictionary(Of StringString)()
    +            For Each FileName As String In BatchRefListBox.Items
    +                GetReferencedFiles(Nothing, FileName, 0, "A", RefFilesDictionary)
    +            Next FileName
    + 
    +            'Because selecting a file in the Open File dialog 
    +            'adds the file and its references to the local cache, 
    +            'clear the local cache to demonstrate that the 
    +            'IEdmBatchListing methods don't add the files to 
    +            'the local cache
    + 
    +            'Declare and create the IEdmClearLocalCache3 object
    +            Dim ClearLocalCache As IEdmClearLocalCache3
    +            ClearLocalCache = vault.CreateUtility(EdmUtility.EdmUtil_ClearLocalCache)
    +	    ClearLocalCache.IgnoreToolboxFiles = True
    +	    ClearLocalCache.UseAutoClearCacheOption = True
    +            'Declare and create the IEdmBatchListing object
    +            Dim BatchListing As IEdmBatchListing4
    +            BatchListing = vault.CreateUtility(EdmUtility.EdmUtil_BatchList)
    + 
    +            'Add all of the file reference paths to the 
    +            'IEdmClearLocalCache object to clear from the 
    +            'local cache and to the IEdmBatchListing object
    +            'to get the file information in batch mode
    +            For Each KvPair As KeyValuePair(Of StringStringIn RefFilesDictionary
    +                ClearLocalCache.AddFileByPath(KvPair.Key)
    +                DirectCast(BatchListing, IEdmBatchListing4).AddFileCfg(KvPair.Key, Nothing, KvPair.Value, "@"EdmListFileFlags.EdmList_Nothing)
    +            Next
    +            'Clear the local cache of the file references
    +            ClearLocalCache.CommitClear()
    + 
    +            'Create the batch file listing along with the file
    +            'card variables Description and Number
    +            Dim BatchListCols() As EdmListCol = Nothing
    +            DirectCast(BatchListing, IEdmBatchListing4). _
    +                CreateListEx(vbLf + "Description" + vbLf + _
    +                    "Number"EdmCreateListExFlags.Edmclef_MayReadFiles, _
    +                    BatchListCols, Nothing)
    +            'Get the generated file information
    +            Dim BatchListFiles() As EdmListFile2 = Nothing
    +            BatchListing.GetFiles2(BatchListFiles)
    + 
    +            'Create the list where to store all the file information
    +            Dim FileRefs As New List(Of FileRef)
    +
    +            'Recursively add the file information to the list
    +            AddFileRef(BatchListFiles, 0, 0, FileRefs)
    + 
    +            If Not Directory.Exists("C:\temp"Then
    +                MessageBox.Show("Directory ""c:\temp"" does " + _
    +                                "not exist; please create it and try again.")
    +            Else
    +                'Write out the file references to an XML file
    +                Dim XmlSer As New XmlSerializer(GetType(List(Of FileRef)))
    +                Dim StrWriter As New StreamWriter("C:\temp\BatchFileRefInfo.xml")
    +                XmlSer.Serialize(StrWriter, FileRefs)
    +                StrWriter.Close()
    +                MessageBox.Show( _
    +                    "File references successfully exported to an XML file.")
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +            ex.ErrorCode.ToString("X") + vbCrLf + _
    +            ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +  End Sub
    + 
    +  Private Sub AddFileRef( _
    +    ByRef BatchListFiles() As EdmListFile2, _
    +    ByRef curIndex As Integer, _
    +    ByVal curLevel As Integer, _
    +    ByRef FileRefs As List(Of FileRef))
    + 
    +        Try
    +            While curIndex < BatchListFiles.Length
    +                Dim curListFile As EdmListFile2 = BatchListFiles(curIndex)
    +                'If the depth level of this listfile is <
    +                'the current depth level, then...
    +                If curListFile.mlParam > curLevel Then
    +                    'Create a new FileRefs list
    +                    FileRefs(FileRefs.Count - 1).FileRefs = New List(Of FileRef)
    +                    'Recurse using a new FileRefs list
    +                    AddFileRef(BatchListFiles, curIndex, curListFile.mlParam, _
    +                               FileRefs.Item(FileRefs.Count - 1).FileRefs)
    +                Else
    +                    'Create a new FileRef object to hold
    +                    'the file information
    +                    Dim FileRef As New FileRef
    +                    'Assign the FileRef properties
    +                    FileRef.CheckedOutBy = curListFile.mbsLockUser
    +                    FileRef.CurrentState = curListFile.moCurrentState.mbsStateName
    +                    FileRef.Description = curListFile.moColumnData(0)
    +                    Dim File As IEdmFile5
    +                    File = vault.GetObject(EdmObjectType.EdmObject_File, curListFile.mlFileID)
    +                    FileRef.FileName = File.Name
    +                    FileRef.LatestRevision = curListFile.mbsRevisionName
    +                    FileRef.LatestVersion = curListFile.mlLatestVersion
    +                    FileRef.Number = curListFile.moColumnData(1)
    +                    FileRef.FileRefs = Nothing
    +                    'Add the FileRef to this level's list
    +                    FileRefs.Add(FileRef)
    +                    curIndex += 1
    +                End If
    +            End While
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +            ex.ErrorCode.ToString("X") + vbCrLf + _
    +            ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +  End Sub
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer.
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.BatchRefOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
    +        Me.BatchRefListBox = New System.Windows.Forms.ListBox()
    +        Me.BatchRefLabel = New System.Windows.Forms.Label()
    +        Me.WriteXmlButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(180, 65)
    +        Me.BrowseButton.Margin = New System.Windows.Forms.Padding(2)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(64, 19)
    +        Me.BrowseButton.TabIndex = 17
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 32)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(136, 21)
    +        Me.VaultsComboBox.TabIndex = 15
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(16, 16)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 16
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'BatchRefOpenFileDialog
    +        '
    +        Me.BatchRefOpenFileDialog.InitialDirectory = "C:\"
    +        Me.BatchRefOpenFileDialog.Multiselect = True
    +        '
    +        'BatchRefListBox
    +        '
    +        Me.BatchRefListBox.FormattingEnabled = True
    +        Me.BatchRefListBox.Location = New System.Drawing.Point(18, 94)
    +        Me.BatchRefListBox.Margin = New System.Windows.Forms.Padding(2)
    +        Me.BatchRefListBox.Name = "BatchRefListBox"
    +        Me.BatchRefListBox.Size = New System.Drawing.Size(218, 56)
    +        Me.BatchRefListBox.TabIndex = 18
    +        '
    +        'BatchRefLabel
    +        '
    +        Me.BatchRefLabel.AutoSize = True
    +        Me.BatchRefLabel.Location = New System.Drawing.Point(16, 71)
    +        Me.BatchRefLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.BatchRefLabel.Name = "BatchRefLabel"
    +        Me.BatchRefLabel.Size = New System.Drawing.Size(160, 13)
    +        Me.BatchRefLabel.TabIndex = 19
    +        Me.BatchRefLabel.Text = "Files for which to get references:"
    +        '
    +        'WriteXmlButton
    +        '
    +        Me.WriteXmlButton.Location = New System.Drawing.Point(19, 169)
    +        Me.WriteXmlButton.Margin = New System.Windows.Forms.Padding(2)
    +        Me.WriteXmlButton.Name = "WriteXmlButton"
    +        Me.WriteXmlButton.Size = New System.Drawing.Size(217, 19)
    +        Me.WriteXmlButton.TabIndex = 20
    +        Me.WriteXmlButton.Text = "Write file references to an XML file"
    +        Me.WriteXmlButton.UseVisualStyleBackColor = True
    +        '
    +        'BatchRefTreeInfo
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(255, 227)
    +        Me.Controls.Add(Me.WriteXmlButton)
    +        Me.Controls.Add(Me.BatchRefLabel)
    +        Me.Controls.Add(Me.BatchRefListBox)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2)
    +        Me.Name = "BatchRefTreeInfo"
    +        Me.Text = "Get file references"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents BatchRefOpenFileDialog As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents BatchRefListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BatchRefLabel As System.Windows.Forms.Label
    +    Friend WithEvents WriteXmlButton As System.Windows.Forms.Button
    + 
    +End Class
    + +
    +
    +
    'FileRef.vb
    +Public Class FileRef
    +  Private mLocalOverwittenVersionObsolete As Short
    +  Private mFileName As String
    +  Private mLatestVersion As String
    +  Private mLatestRevision As String
    +  Private mNumber As String
    +  Private mDescription As String
    +  Private mCurrentState As String
    +  Private mCheckedOutBy As String
    +  Private mFileRefs As List(Of FileRef)
    + 
    +  Public Sub New()
    + 
    +  End Sub
    + 
    +  Public Property FileName() As String
    +    Get
    +      Return mFileName
    +    End Get
    +    Set(ByVal value As String)
    +      mFileName = value
    +    End Set
    +  End Property
    + 
    +  Public Property LatestVersion() As String
    +    Get
    +      Return mLatestVersion
    +    End Get
    +    Set(ByVal value As String)
    +      mLatestVersion = value
    +    End Set
    +  End Property
    + 
    +  Public Property LatestRevision() As String
    +    Get
    +      Return mLatestRevision
    +    End Get
    +    Set(ByVal value As String)
    +      mLatestRevision = value
    +    End Set
    +  End Property
    + 
    +  Public Property Number() As String
    +    Get
    +      Return mNumber
    +    End Get
    +    Set(ByVal value As String)
    +      mNumber = value
    +    End Set
    +  End Property
    + 
    +  Public Property Description() As String
    +    Get
    +      Return mDescription
    +    End Get
    +    Set(ByVal value As String)
    +      mDescription = value
    +    End Set
    +  End Property
    + 
    +  Public Property CurrentState() As String
    +    Get
    +      Return mCurrentState
    +    End Get
    +    Set(ByVal value As String)
    +      mCurrentState = value
    +    End Set
    +  End Property
    + 
    +  Public Property CheckedOutBy() As String
    +    Get
    +      Return mCheckedOutBy
    +    End Get
    +    Set(ByVal value As String)
    +      mCheckedOutBy = value
    +    End Set
    +  End Property
    +
      Public Property LocalOverwrittenVersionObsolete() As Short
    +    Get
    +        Return mLocalOverwittenVersionObsolete
    +    End Get
    +    Set(ByVal value As Short)
    +        mLocalOverwittenVersionObsolete = value
    +    End Set
    +  End Property
    + 
    +  Public Property FileRefs() As List(Of FileRef)
    +    Get
    +      Return mFileRefs
    +    End Get
    +    Set(ByVal value As List(Of FileRef))
    +      mFileRefs = value
    +    End Set
    +  End Property
    + 
    +End Class
    +
    + +
    +
     
    +
    + + + + diff --git a/documentation/api_extracted/Get_File_Thumbnail_Handle_by_File_Version_Example_CSharp.htm b/documentation/api_extracted/Get_File_Thumbnail_Handle_by_File_Version_Example_CSharp.htm new file mode 100644 index 0000000..5407ec4 --- /dev/null +++ b/documentation/api_extracted/Get_File_Thumbnail_Handle_by_File_Version_Example_CSharp.htm @@ -0,0 +1,268 @@ + + + +Get a File's Thumbnail Handle by File Version (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get a File's Thumbnail Handle by File Version (C#)

    +

    This example shows how to get a file's thumbnail by +version.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    +

    +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
    +//    b. Type CallingCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs +with this code.
    +//    g. To create the form, replace the code +in Form1.Designer.cs with
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-
    click +the project
    +//    name in the Solution Explorer, click Add > Project Reference, +select
    +//    Browse in the left-side panel, click Browse... at the +bottom to browse to +the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +select
    +//    EPDM.Interop.epdm.dll, click Add, +and click OK).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
    +//    Embed Interop Types to No to handle +methods that pass arrays of
    +//    structures.
    // 4. Modify the vault admin password in the +code: (vault5.Login("admin""", vaultName)).
    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions:
    +
    // +1. In the Get Thumbnail dialog, click Browse.
    +// 2. Navigate to a vault that contains a model with a thumbnail. Click Open.
    +// 3. In the Get Thumbnail dialog, click Get thumbnail.

    +// 4. c:\temp\123456.bmp is the thumbnail of the model.
    +//----------------------------------------------------------------------------

    +

    + +//Form1.cs

    using
     System;
    +using System.Collections.Generic;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace CallingCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        //Create form
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        //Load form
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            textBox1.Text = "Image will be saved as 123456.bmp in C:\\Temp. \nChange code to update the location and name if needed.";
    +            textBox1.Enabled = false;
    +        }

    +        //Event handler: browse button click
    +        private void btnBrowse_Click(object sender, EventArgs e)
    +        {
    +            var openDlg = new OpenFileDialog();
    +            openDlg.Multiselect = false;
    +            var result = openDlg.ShowDialog();
    +            if(result == DialogResult.OK)
    +            {
    +                var path = openDlg.FileName;
    +                filePath.Text = path;
    +            }
    +        }

    +        //Event handler: get button click
    +        private void btnGet_Click(object sender, EventArgs e)
    +        {
    +            if (string.IsNullOrEmpty(filePath.Text))
    +            {
    +                MessageBox.Show("Invalid file path");
    +                return;
    +            }

    +            if(!System.IO.File.Exists(filePath.Text))
    +            {
    +                MessageBox.Show("Invalid file path");
    +                return;
    +            }

    +            IEdmVault5 vault5 = new EdmVault5();
    +            var vaultName = vault5.GetVaultNameFromPath(filePath.Text);
    +            vault5.Login("admin""", vaultName);
    +            IEdmVault20 vault20 = (IEdmVault20)vault5;
    +            IEdmFolder5 folder5 = null;
    +            IEdmFile5 file5 = null;
    +            file5 = vault20.GetFileFromPath(filePath.Text, out folder5);
    +            if (file5 == null || folder5 == null)
    +            {
    +                MessageBox.Show("Invalid vault file or folder");
    +            }
    +            var fileId = file5.ID;
    +            var version = file5.CurrentVersion;
    +            IEdmFile18 +file18 = file5 as IEdmFile18;
                var obj += (IntPtr)file18.GetThumbnail3(version);
                var imgPreview += System.Drawing.Image.FromHbitmap(obj);
                +imgPreview.Save(@"C:\temp\123456.bmp", System.Drawing.Imaging.ImageFormat.Png);
    +            imgPreview.Dispose();
    +        }
    +    }

    +    

    +

    +

     

    +

     

    +

    +Back to top

    +

     

    +

    + +//Form1.Designer

    +

    +namespace CallingCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.btnBrowse = new System.Windows.Forms.Button();
    +            this.filePath = new System.Windows.Forms.TextBox();
    +            this.btnTest = new System.Windows.Forms.Button();
    +            this.textBox1 = new System.Windows.Forms.TextBox();
    +            this.SuspendLayout();
    +            // 
    +            // btnBrowse
    +            // 
    +            this.btnBrowse.Location = new System.Drawing.Point(352, 12);
    +            this.btnBrowse.Name = "btnBrowse";
    +            this.btnBrowse.Size = new System.Drawing.Size(75, 23);
    +            this.btnBrowse.TabIndex = 0;
    +            this.btnBrowse.Text = "Browse";
    +            this.btnBrowse.UseVisualStyleBackColor = true;
    +            this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
    +            // 
    +            // filePath
    +            // 
    +            this.filePath.Enabled = false;
    +            this.filePath.Location = new System.Drawing.Point(12, 14);
    +            this.filePath.Name = "filePath";
    +            this.filePath.Size = new System.Drawing.Size(334, 20);
    +            this.filePath.TabIndex = 1;
    +            // 
    +            // btnTest
    +            // 
    +            this.btnTest.Location = new System.Drawing.Point(352, 59);
    +            this.btnTest.Name = "btnTest";
    +            this.btnTest.Size = new System.Drawing.Size(73, 22);
    +            this.btnTest.TabIndex = 2;
    +            this.btnTest.Text = "Get thumbnail";
    +            this.btnTest.UseVisualStyleBackColor = true;
    +            this.btnTest.Click += new System.EventHandler(this.btnGet_Click);
    +            // 
    +            // textBox1
    +            // 
    +            this.textBox1.Enabled = false;
    +            this.textBox1.Location = new System.Drawing.Point(12, 49);
    +            this.textBox1.Multiline = true;
    +            this.textBox1.Name = "textBox1";
    +            this.textBox1.Size = new System.Drawing.Size(334, 42);
    +            this.textBox1.TabIndex = 3;
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(439, 103);
    +            this.Controls.Add(this.textBox1);
    +            this.Controls.Add(this.btnTest);
    +            this.Controls.Add(this.filePath);
    +            this.Controls.Add(this.btnBrowse);
    +            this.Name = "Form1";
    +            this.Text = "Get Thumbnail";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Button btnBrowse;
    +        private System.Windows.Forms.TextBox filePath;
    +        private System.Windows.Forms.Button btnTest;
    +        private System.Windows.Forms.TextBox textBox1;
    +    }
    +}

    +

    +

     

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_Thumbnail_by_Version_Example_CSharp.htm b/documentation/api_extracted/Get_File_Thumbnail_by_Version_Example_CSharp.htm new file mode 100644 index 0000000..37c05b6 --- /dev/null +++ b/documentation/api_extracted/Get_File_Thumbnail_by_Version_Example_CSharp.htm @@ -0,0 +1,276 @@ + + + +Get a File's Thumbnail by File Version (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get a File's Thumbnail by File Version (C#)

    +

    This example shows how to get a file's thumbnail by +version.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    +

    +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
    +//    b. Type CallingCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs +with this code.
    +//    g. To create the form, replace the code +in Form1.Designer.cs with
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-
    click +the project
    +//    name in the Solution Explorer, click Add Reference, +click
    +//    Assemblies > Framework in the left-side panel, browse to +the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +select
    +//    EPDM.Interop.epdm.dll, click Open, click Add, +and click Close).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
    +//    Embed Interop Types to False to handle +methods that pass arrays of
    +//    structures.
    +// 4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions:
    +
    // +1. In the Get Thumbnail dialog, click Browse.
    +// 2. Navigate to a vault that contains a model with a thumbnail. Click Open.
    +// 3. In the Get Thumbnail dialog, click Get.

    +// 4. c:\temp\123456.bmp is the thumbnail of the model.
    +//----------------------------------------------------------------------------

    +

    + +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace CallingCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        //Create form
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        //Load form
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            textBox1.Text = "Images will be saved as 123456.bmp in C:\\Temp. \nChange code to update the location and name if needed.";
    +            textBox1.Enabled = false;
    +        }

    +        //Event handler: browse button click
    +        private void btnBrowse_Click(object sender, EventArgs e)
    +        {
    +            var openDlg = new OpenFileDialog();
    +            openDlg.Multiselect = false;
    +            var result = openDlg.ShowDialog();
    +            if(result == DialogResult.OK)
    +            {
    +                var path = openDlg.FileName;
    +                filePath.Text = path;
    +            }
    +        }

    +        //Event handler: get button click
    +        private void btnGet_Click(object sender, EventArgs e)
    +        {
    +            if (string.IsNullOrEmpty(filePath.Text))
    +            {
    +                MessageBox.Show("Invalid file path");
    +                return;
    +            }

    +            if(!System.IO.File.Exists(filePath.Text))
    +            {
    +                MessageBox.Show("Invalid file path");
    +                return;
    +            }

    +            IEdmVault5 vault5 = new EdmVault5();
    +            var vaultName = vault5.GetVaultNameFromPath(filePath.Text);
    +            vault5.Login("admin""", vaultName);
    +            IEdmVault20 vault20 = (IEdmVault20)vault5;
    +            IEdmFolder5 folder5 = null;
    +            IEdmFile5 file5 = null;
    +            file5 = vault20.GetFileFromPath(filePath.Text, out folder5);
    +            if (file5 == null || folder5 == null)
    +            {
    +                MessageBox.Show("Invalid vault file or folder");
    +            }
    +            var fileId = file5.ID;
    +            var version = file5.CurrentVersion;
    +            IEdmFile15 file15 = (IEdmFile15)file5;
    +            var obj = file15.GetThumbnail2(version);

    +            System.Drawing.Image imgPreview = PictureDispConverter.Convert(obj);
    +            imgPreview.Save(@"C:\temp\123456.bmp" , System.Drawing.Imaging.ImageFormat.Bmp);
    +            imgPreview.Dispose();
    +        }
    +    }

    +    //Class1
    +    public class PictureDispConverter : AxHost
    +    {
    +        public PictureDispConverter()
    +            : base("56174C86-1546-4778-8EE6-B6AC606875E7")
    +        {
    +        }

    +        public static System.Drawing.Image Convert(object objIDispImage)
    +        {
    +            System.Drawing.Image objPicture = default(System.Drawing.Image);
    +            objPicture = (System.Drawing.Image)System.Windows.Forms.AxHost.GetPictureFromIPicture(objIDispImage);
    +            return objPicture;
    +        }

    +    }
    +}

    +

    +

     

    +

     

    +

    +Back to top

    +

     

    +

    + +//Form1.Designer

    +

    +namespace CallingCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.btnBrowse = new System.Windows.Forms.Button();
    +            this.filePath = new System.Windows.Forms.TextBox();
    +            this.btnTest = new System.Windows.Forms.Button();
    +            this.textBox1 = new System.Windows.Forms.TextBox();
    +            this.SuspendLayout();
    +            // 
    +            // btnBrowse
    +            // 
    +            this.btnBrowse.Location = new System.Drawing.Point(352, 12);
    +            this.btnBrowse.Name = "btnBrowse";
    +            this.btnBrowse.Size = new System.Drawing.Size(75, 23);
    +            this.btnBrowse.TabIndex = 0;
    +            this.btnBrowse.Text = "Browse";
    +            this.btnBrowse.UseVisualStyleBackColor = true;
    +            this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
    +            // 
    +            // filePath
    +            // 
    +            this.filePath.Enabled = false;
    +            this.filePath.Location = new System.Drawing.Point(12, 14);
    +            this.filePath.Name = "filePath";
    +            this.filePath.Size = new System.Drawing.Size(334, 20);
    +            this.filePath.TabIndex = 1;
    +            // 
    +            // btnTest
    +            // 
    +            this.btnTest.Location = new System.Drawing.Point(352, 59);
    +            this.btnTest.Name = "btnTest";
    +            this.btnTest.Size = new System.Drawing.Size(73, 22);
    +            this.btnTest.TabIndex = 2;
    +            this.btnTest.Text = "Get thumbnail";
    +            this.btnTest.UseVisualStyleBackColor = true;
    +            this.btnTest.Click += new System.EventHandler(this.btnGet_Click);
    +            // 
    +            // textBox1
    +            // 
    +            this.textBox1.Enabled = false;
    +            this.textBox1.Location = new System.Drawing.Point(12, 49);
    +            this.textBox1.Multiline = true;
    +            this.textBox1.Name = "textBox1";
    +            this.textBox1.Size = new System.Drawing.Size(334, 42);
    +            this.textBox1.TabIndex = 3;
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(439, 103);
    +            this.Controls.Add(this.textBox1);
    +            this.Controls.Add(this.btnTest);
    +            this.Controls.Add(this.filePath);
    +            this.Controls.Add(this.btnBrowse);
    +            this.Name = "Form1";
    +            this.Text = "Get Thumbnail";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Button btnBrowse;
    +        private System.Windows.Forms.TextBox filePath;
    +        private System.Windows.Forms.Button btnTest;
    +        private System.Windows.Forms.TextBox textBox1;
    +    }
    +}

    +

    +

     

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_Variable_Data_Example_CSharp.htm b/documentation/api_extracted/Get_File_Variable_Data_Example_CSharp.htm new file mode 100644 index 0000000..da93579 --- /dev/null +++ b/documentation/api_extracted/Get_File_Variable_Data_Example_CSharp.htm @@ -0,0 +1,351 @@ + + + +Get File Variable Data Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Variable Data Example (C#)

    +

    This example shows how to get the card variable data for +the latest version of a selected file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
    +//    b. Type FileVariableData_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with +this code.
    +//    g. To create the form, replace the code in +Form1.Designer.cs with
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, +click
    +//    Assemblies > Framework in the left-side panel, +browse to the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +click
    +//    EPDM.Interop.epdm.dll, click Open, and click +Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
    +//    Embed Interop Types to False to handle +methods that pass arrays of
    +//    structures.

    +// 4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions:

    +
    // +1. Displays the File variable data dialog box.
    +// 2. Select a vault view.
    +// 3. Click Select file.
    +//    a. In the Select File dialog:
    +//       1. Click a vault file.
    +//       2. Click Open.
    +// 4. Click Get variable data.
    +// 5. Click OK in the message box.
    +// 6. Close the File variable data dialog box.

    +//----------------------------------------------------------------------------

    +

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +


    +namespace FileVariableData_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1;
    +        IEdmFile7 aFile;
    +        IEdmFolder5 aFolder;

    +        IEdmEnumeratorVariable7 enumVar;
    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                IEdmVault10 vault = (IEdmVault10)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void SelectFile_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                File1List.Items.Clear();

    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Select File dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;

    +                //Show the Select File dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();

    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    // do nothing
    +                }
    +                else
    +                {
    +                    foreach (string FileName in OpenFileDialog1.FileNames)
    +                    {
    +                        File1List.Items.Add(FileName);
    +                        aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out aFolder);
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void GetVarData_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                object[] ppoRetVars = null;
    +                string[] ppoRetConfs = null;
    +                EdmGetVarData poRetDat = new EdmGetVarData();

    +                enumVar = (IEdmEnumeratorVariable7)aFile.GetEnumeratorVariable();
    +                enumVar.GetVersionVars(0, aFolder.IDout ppoRetVars, out ppoRetConfs, ref poRetDat);

    +                string str = null;
    +                str = "File variable data for " + aFile.Name + "\r\n";
    +                str = str + "Version: " + poRetDat.mlVersion + "\r\n";
    +                str = str + "Latest version: " + poRetDat.mlLatestVersion + "\r\n";
    +                str = str + "Revision: " + poRetDat.mbsRevision + "\r\n";
    +                str = str + "State: " + poRetDat.mbsState + "\r\n";
    +                str = str + "Workflow: " + poRetDat.mbsWorkflow + "r\\n";
    +                str = str + "Category: " + poRetDat.mbsCategory + "\r\n";
    +                str = str + "SQL Server date format code: " + poRetDat.mlDateFmt + "\r\n";
    +                str = str + "EdmGetVarDataFlags: " + poRetDat.mlEdmGetVarDataFlags;

    +                MessageBox.Show(str);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace FileVariableData_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.SelectFile = new System.Windows.Forms.Button();
    +            this.File1List = new System.Windows.Forms.ListBox();
    +            this.GetVarData = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();

    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(36, 24);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(39, 40);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //SelectFile
    +            //
    +            this.SelectFile.Location = new System.Drawing.Point(39, 85);
    +            this.SelectFile.Name = "SelectFile";
    +            this.SelectFile.Size = new System.Drawing.Size(157, 23);
    +            this.SelectFile.TabIndex = 2;
    +            this.SelectFile.Text = "Select file...";
    +            this.SelectFile.UseVisualStyleBackColor = true;
    +            this.SelectFile.Click +=new System.EventHandler(SelectFile_Click);
    +            //
    +            //File1List
    +            //
    +            this.File1List.FormattingEnabled = true;
    +            this.File1List.HorizontalScrollbar = true;
    +            this.File1List.Location = new System.Drawing.Point(40, 114);
    +            this.File1List.Name = "File1List";
    +            this.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
    +            this.File1List.Size = new System.Drawing.Size(220, 43);
    +            this.File1List.TabIndex = 4;
    +            //
    +            //GetVarData
    +            //
    +            this.GetVarData.Location = new System.Drawing.Point(40, 176);
    +            this.GetVarData.Name = "GetVarData";
    +            this.GetVarData.Size = new System.Drawing.Size(107, 23);
    +            this.GetVarData.TabIndex = 6;
    +            this.GetVarData.Text = "Get variable data";
    +            this.GetVarData.UseVisualStyleBackColor = true;
    +            this.GetVarData.Click +=new System.EventHandler(GetVarData_Click);      
    +            //
    +            //OpenFileDialog1
    +            //
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Title = "Select File";
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 227);
    +            this.Controls.Add(this.GetVarData);
    +            this.Controls.Add(this.File1List);
    +            this.Controls.Add(this.SelectFile);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "File variable data";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }
    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button SelectFile;
    +        internal System.Windows.Forms.ListBox File1List;
    +        internal System.Windows.Forms.Button GetVarData;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;

    +        #endregion
    +    }
    +}

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_Variable_Data_Example_VBNET.htm b/documentation/api_extracted/Get_File_Variable_Data_Example_VBNET.htm new file mode 100644 index 0000000..4379deb --- /dev/null +++ b/documentation/api_extracted/Get_File_Variable_Data_Example_VBNET.htm @@ -0,0 +1,293 @@ + + + +Get File Variable Data Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Variable Data Example (VB.NET)

    +

    This example shows how to get the card variable data for +the latest version of a selected file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type FileVariableData_VBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the +form, replace the code in Form1.Designer.vb with 
    +'       this code.

    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions:
    +' 1. Displays the File variable data dialog box.
    +' 2. Select a vault view.
    +' 3. Click Select file.
    +'    a. In the Select File dialog:
    +'       1. Click a vault file.
    +'       2. Click Open.
    +' 4. Click Get variable data.
    +' 5. Click OK in the message box.
    +' 6. Close the File variable data dialog box.

    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +    Private vault1 As IEdmVault5
    +    Dim aFile As IEdmFile7
    +    Dim aFolder As IEdmFolder5
    +    Dim enumVar As IEdmEnumeratorVariable7

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
    +        Try
    +            vault1 = New EdmVault5()
    +            Dim vault As IEdmVault10 = DirectCast(vault1, IEdmVault10)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub SelectFile_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFile.Click
    +        Try
    +            File1List.Items.Clear()

    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Select File dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath

    +            'Show the Select File dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()

    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                ' do nothing
    +            Else
    +                For Each FileName As String In OpenFileDialog1.FileNames
    +                    File1List.Items.Add(FileName)
    +                    aFile = vault1.GetFileFromPath(FileName, aFolder)
    +                Next
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub GetVarData_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetVarData.Click
    +        Try

    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim ppoRetVars() As Object = Nothing
    +            Dim ppoRetConfs() As String = Nothing
    +            Dim poRetDat As EdmGetVarData = Nothing

    +            enumVar = aFile.GetEnumeratorVariable()
    +            enumVar.GetVersionVars(0, aFolder.ID, ppoRetVars, ppoRetConfs, poRetDat)

    +            Dim str As String
    +            str = "File variable data for " & aFile.Name & vbLf
    +            str = str & "Version: " & poRetDat.mlVersion & vbLf
    +            str = str & "Latest version: " & poRetDat.mlLatestVersion & vbLf
    +            str = str & "Revision: " & poRetDat.mbsRevision & vbLf
    +            str = str & "State: " & poRetDat.mbsState & vbLf
    +            str = str & "Workflow: " & poRetDat.mbsWorkflow & vbLf
    +            str = str & "Category: " & poRetDat.mbsCategory & vbLf
    +            str = str & "SQL Server date format code: " & poRetDat.mlDateFmt & vbLf
    +            str = str & "EdmGetVarDataFlags: " & poRetDat.mlEdmGetVarDataFlags

    +            MsgBox(str)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +End Class

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form

    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.SelectFile = New System.Windows.Forms.Button()
    +        Me.File1List = New System.Windows.Forms.ListBox()
    +        Me.GetVarData = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(36, 24)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(39, 40)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'SelectFile
    +        '
    +        Me.SelectFile.Location = New System.Drawing.Point(39, 85)
    +        Me.SelectFile.Name = "SelectFile"
    +        Me.SelectFile.Size = New System.Drawing.Size(157, 23)
    +        Me.SelectFile.TabIndex = 2
    +        Me.SelectFile.Text = "Select file..."
    +        Me.SelectFile.UseVisualStyleBackColor = True
    +        '
    +        'File1List
    +        '
    +        Me.File1List.FormattingEnabled = True
    +        Me.File1List.HorizontalScrollbar = True
    +        Me.File1List.Location = New System.Drawing.Point(40, 114)
    +        Me.File1List.Name = "File1List"
    +        Me.File1List.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
    +        Me.File1List.Size = New System.Drawing.Size(220, 43)
    +        Me.File1List.TabIndex = 4
    +        '
    +        'GetVarData
    +        '
    +        Me.GetVarData.Location = New System.Drawing.Point(40, 176)
    +        Me.GetVarData.Name = "GetVarData"
    +        Me.GetVarData.Size = New System.Drawing.Size(107, 23)
    +        Me.GetVarData.TabIndex = 6
    +        Me.GetVarData.Text = "Get variable data"
    +        Me.GetVarData.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Title = "Select File"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(284, 227)
    +        Me.Controls.Add(Me.GetVarData)
    +        Me.Controls.Add(Me.File1List)
    +        Me.Controls.Add(Me.SelectFile)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "File variable data"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents SelectFile As System.Windows.Forms.Button
    +    Friend WithEvents File1List As System.Windows.Forms.ListBox
    +    Friend WithEvents GetVarData As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog

    +End Class

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_File_Version_Information_Example_CSharp.htm b/documentation/api_extracted/Get_File_Version_Information_Example_CSharp.htm new file mode 100644 index 0000000..9d052f4 --- /dev/null +++ b/documentation/api_extracted/Get_File_Version_Information_Example_CSharp.htm @@ -0,0 +1,341 @@ + + + +Get File Version Information Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Version Information Example (C#)

    +

    This example shows how to get the version information of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type GetFileVersionsCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the Version Information dialog box.
    +//     a. Select a vault view.
    +//     b. Click Browse.
    +//     c. In the Select a file dialog:
    +//        1. Click a file in the vault.
    +//        2. Click Open.
    +//  2. Click Get file's version information.
    +//  3. Displays a message box containing the file name, number of versions, and
    +//     each version number, date, user, file size, and comments, if any.
    +//  4. Click OK to close the message box.
    +//  5. Close the Version Information dialog box.
    +//----------------------------------------------------------------------------
    +
    //Form1.cs
    + 
    +using EPDM.Interop.epdm;
    +using System;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;
    + 
    +namespace GetFileVersionsCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        private IEdmVault5 vault1 = null;
    +        IEdmFile5 aFile;
    + 
    +        public void GetFileVersionsCSharp_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    + 
    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Set the initial directory in the Select a file dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select a file dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();
    + 
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    // Do nothing
    +                }
    +                else
    +                {
    +                    // Browse for file whose versions to get
    +                    string FileName = OpenFileDialog1.FileName;
    +                    FileListBox.Items.Add(FileName);
    +                    IEdmFolder5 retFolder = default(IEdmFolder5);
    +                    aFile = vault1.GetFileFromPath(FileName, out retFolder);
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void Button1_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmFile5 file = null;
    +                file = aFile;
    +                IEdmEnumeratorVersion5 enumVersion;
    +                enumVersion = (IEdmEnumeratorVersion5)file;
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = enumVersion.GetFirstVersionPosition();
    +                IEdmVersion7 version = default(IEdmVersion7);
    +                string message = null;
    +                message = "History of " + file.Name + ": " + "\n";
    +                message = message + "Number of versions: " + enumVersion.VersionCount.ToString() + "\n";
    +                message = message + "\n";
    +                string str = null;
    +                while (!pos.IsNull)
    +                {
    +                    version = (IEdmVersion7)enumVersion.GetNextVersion(pos);
    +                    str = "Version: " + version.VersionNo.ToString();
    +                    message = message + str;
    +                    str = version.VersionDate.ToString();
    +                    message = message + ", file date = " + str + ", user = " + version.User.Name;
    +                    str = version.FileSize2.ToString();
    +                    message = message + ", file size = " + str + " bytes, comment = " + version.Comment + "\n";
    +                }
    + 
    +                MessageBox.Show(message);
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace GetFileVersionsCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +	    private void InitializeComponent()
    +	    {
    +		    this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +		    this.Button1 = new System.Windows.Forms.Button();
    +		    this.BrowseButton = new System.Windows.Forms.Button();
    +		    this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +		    this.Label1 = new System.Windows.Forms.Label();
    +		    this.FileListBox = new System.Windows.Forms.ListBox();
    +		    this.SuspendLayout();
    +		    //
    +		    //VaultsComboBox
    +		    //
    +		    this.VaultsComboBox.Location = new System.Drawing.Point(12, 37);
    +		    this.VaultsComboBox.Name = "VaultsComboBox";
    +		    this.VaultsComboBox.Size = new System.Drawing.Size(161, 21);
    +		    this.VaultsComboBox.TabIndex = 7;
    +		    //
    +		    //Button1
    +		    //
    +		    this.Button1.Location = new System.Drawing.Point(12, 135);
    +		    this.Button1.Name = "Button1";
    +		    this.Button1.Size = new System.Drawing.Size(158, 23);
    +		    this.Button1.TabIndex = 4;
    +		    this.Button1.Text = "Get file's version information";
    +		    this.Button1.UseVisualStyleBackColor = true;
    +            this.Button1.Click += new System.EventHandler(Button1_Click);
    +		    //
    +		    //BrowseButton
    +		    //
    +		    this.BrowseButton.ImageAlign = System.Drawing.ContentAlignment.TopLeft;
    +		    this.BrowseButton.Location = new System.Drawing.Point(179, 83);
    +		    this.BrowseButton.Name = "BrowseButton";
    +		    this.BrowseButton.Size = new System.Drawing.Size(60, 28);
    +		    this.BrowseButton.TabIndex = 5;
    +		    this.BrowseButton.Text = "Browse...";
    +		    this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
    +		    //
    +		    //OpenFileDialog1
    +		    //
    +		    this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +		    this.OpenFileDialog1.Multiselect = true;
    +		    this.OpenFileDialog1.Title = "Select a file";
    +		    //
    +		    //Label1
    +		    //
    +		    this.Label1.AutoSize = true;
    +		    this.Label1.Location = new System.Drawing.Point(12, 21);
    +		    this.Label1.Name = "Label1";
    +		    this.Label1.Size = new System.Drawing.Size(91, 13);
    +		    this.Label1.TabIndex = 6;
    +		    this.Label1.Text = "Select vault view:";
    +		    //
    +		    //FileListBox
    +		    //
    +		    this.FileListBox.FormattingEnabled = true;
    +		    this.FileListBox.Location = new System.Drawing.Point(12, 81);
    +		    this.FileListBox.Name = "FileListBox";
    +		    this.FileListBox.Size = new System.Drawing.Size(161, 30);
    +		    this.FileListBox.TabIndex = 8;
    +		    //
    +		    //Form1
    +		    //
    +		    this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +		    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +		    this.ClientSize = new System.Drawing.Size(252, 175);
    +		    this.Controls.Add(this.FileListBox);
    +		    this.Controls.Add(this.Label1);
    +		    this.Controls.Add(this.BrowseButton);
    +		    this.Controls.Add(this.Button1);
    +		    this.Controls.Add(this.VaultsComboBox);
    +		    this.Name = "Form1";
    +		    this.Text = "Version Information";
    +            this.Load += new System.EventHandler(this.GetFileVersionsCSharp_Load);
    + 
    +		    this.ResumeLayout(false);
    +		    this.PerformLayout();
    + 
    + 
    +	}
    + 
    +    #endregion
    + 
    +	private System.Windows.Forms.ComboBox VaultsComboBox;
    +	private System.Windows.Forms.Button BrowseButton;
    +	private System.Windows.Forms.Button Button1;
    +	private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +	private System.Windows.Forms.Label Label1;
    +	private System.Windows.Forms.ListBox FileListBox;
    + 
    +    }
    +}
    +
    +
    +
     
    +
    +
    + +
     
    +
    +
    +
    + 
    + 
    +
    +
    + + + + diff --git a/documentation/api_extracted/Get_File_Version_Information_Example_VBNET.htm b/documentation/api_extracted/Get_File_Version_Information_Example_VBNET.htm new file mode 100644 index 0000000..fef6ec7 --- /dev/null +++ b/documentation/api_extracted/Get_File_Version_Information_Example_VBNET.htm @@ -0,0 +1,283 @@ + + + +Get File Version Information Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File Version Information Example (VB.NET)

    +

    This example shows how to get the version information of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type GetFileVersionsVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Version Information dialog box.
    +'     a. Select a vault view.
    +'     b. Click Browse.
    +'     c. In the Select a file dialog:
    +'        1. Click a file in the vault.
    +'        2. Click Open.
    +'  2. Click Get file's version information.
    +'  3. Displays a message box containing the file name, number of versions, and
    +'     each version's number, date, user, file size, and comments, if any.
    +'  4. Click OK to close the message box.
    +'  5. Close the Version Information dialog box.
    +'----------------------------------------------------------------------------
    +
    'Form1.vb
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim aPos As IEdmPos5
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    + 
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    + 
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Set the initial directory in the Select a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                ' Do nothing
    +            Else
    +                ' Browse for file whose versions to get
    +                Dim FileName As String = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(FileName)
    +                aFile = vault1.GetFileFromPath(FileName)
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        Try
    +            Dim file As IEdmFile5 = Nothing
    +            file = aFile
    +            Dim enumVersion = DirectCast(file, IEdmEnumeratorVersion5)
    +            Dim pos As IEdmPos5
    +            pos = enumVersion.GetFirstVersionPosition
    +            Dim version As IEdmVersion7
    +            Dim message As String
    +            message = "History of " + file.Name + ": " + vbLf
    +            message = message + vbLf + "Number of versions: " + enumVersion.VersionCount.ToString + vbLf
    +            message = message + vbLf
    +            Dim str As String
    +            While Not pos.IsNull
    +                version = enumVersion.GetNextVersion(pos)
    +                str = "Version: " + version.VersionNo.ToString
    +                message = message + str
    +                str = version.VersionDate
    +                message = message + ", file date = " & str + ", user = " + version.User.Name
    +                str = version.FileSize2
    +                message = message + ", file size = " + str + " bytes, comment = " + version.Comment + vbLf
    +            End While
    + 
    +            MsgBox(message)
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.Button1 = New System.Windows.Forms.Button()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.Label1 = New System.Windows.Forms.Label()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(12, 37)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(161, 21)
    +        Me.VaultsComboBox.TabIndex = 7
    +        '
    +        'Button1
    +        '
    +        Me.Button1.Location = New System.Drawing.Point(12, 135)
    +        Me.Button1.Name = "Button1"
    +        Me.Button1.Size = New System.Drawing.Size(158, 23)
    +        Me.Button1.TabIndex = 4
    +        Me.Button1.Text = "Get file's version information"
    +        Me.Button1.UseVisualStyleBackColor = True
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.ImageAlign = System.Drawing.ContentAlignment.TopLeft
    +        Me.BrowseButton.Location = New System.Drawing.Point(179, 83)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(60, 28)
    +        Me.BrowseButton.TabIndex = 5
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'Label1
    +        '
    +        Me.Label1.AutoSize = True
    +        Me.Label1.Location = New System.Drawing.Point(12, 21)
    +        Me.Label1.Name = "Label1"
    +        Me.Label1.Size = New System.Drawing.Size(91, 13)
    +        Me.Label1.TabIndex = 6
    +        Me.Label1.Text = "Select vault view:"
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(12, 81)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(161, 30)
    +        Me.FileListBox.TabIndex = 8
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(252, 175)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.Label1)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.Button1)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Name = "Form1"
    +        Me.Text = "Version Information"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    + 
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents Button1 As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents Label1 As System.Windows.Forms.Label
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/Get_Files_State_Transitions_Example_CSharp.htm b/documentation/api_extracted/Get_Files_State_Transitions_Example_CSharp.htm new file mode 100644 index 0000000..c9a6df5 --- /dev/null +++ b/documentation/api_extracted/Get_Files_State_Transitions_Example_CSharp.htm @@ -0,0 +1,418 @@ + + + +Get File's State Transitions Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File's State Transitions Example (C#)

    +

    This example shows how to get a file's current and next possible state +transitions.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    //----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//    b. Type StatesCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, replace the code in Form1.Designer.cs with 
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Ensure that the vault contains a file in a workflow state.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the State Transitions dialog box.
    +// 2. Select a vault view.
    +// 3. Click Browse.
    +// 4. Displays the Select a file dialog box.
    +//    a. Select a file in the selected vault.
    +//    b. Click Open.
    +//    The selected file's path and file name appear 
    +//    in the Select a file dialog box.
    +// 5. Click Get state transitions
    +// 6. Displays a message box showing the name of the selected
    +//    file and its current and next possible state transitions.
    +// 7. Click OK to close the message box.
    +// 8.
    +Displays a message box showing whether the logged-in +user must
    +//    add comment when transitioning the selected file to one of +its next
    +//    possible states.
    +// 9. Click OK to close the message box.
    +//10. Displays a message box with the archive server log.
    +//11. Click OK to close the message box.

    +//12. Close the State Transitions dialog box.
    +//----------------------------------------------------------------------------

    +

    //Form1.cs

    + +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    + +namespace StatesCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        IEdmVault5 vault1 = null;
    +        IEdmFile5 aFile;


    +        void Form1_Load(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void GetTransitionButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +

    +                +IEdmVault20 vault2;
    +                vault2 = (IEdmVault20)vault1;

    +                //Get the file's current workflow state
    +                IEdmState5 workflowState = default(IEdmState5);
    +                workflowState = aFile.CurrentState;

    +                //Start an enumeration of the transitions to 
    +                //and from the file's current workflow state
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = workflowState.GetFirstTransitionPosition();

    +                //Make sure current workflow state
    +                //has a next transition state
    +                //If not, exit application
    +                if (pos.IsNull)
    +                {
    +                    MessageBox.Show("No next possible transition states.");
    +                    return;
    +                }

    +

                    +IEdmTransition10 transition = default(IEdmTransition10);

    +                //Get the file's next possible transition to or from 
    +                //the file's current workflow state
    +                transition = (IEdmTransition10)workflowState.GetNextTransition(pos);

    +                string message = "Current state for " + aFile.Name + ": " + "\n";
    +                message = message + " * " + workflowState.Name + "\n" + "\n";
    +                message = message + "Next possible state transitions for " + aFile.Name + ":" + "\n";
    +                message = message + "  * " + transition.Name + "\n";
    +                //message = message + "    Requires authentication? " + transition.Authentication.ToString() + "\n";

    +                //Iterate through the file's remaining next possible state
    +                //transitions to or from the file's current workflow state
    +                while ((!pos.IsNull))
    +                {
    +                    transition = (IEdmTransition10)workflowState.GetNextTransition(pos);
    +                    message = message + "  * " + transition.Name + "\n";
    +                    //message = message + "    Requires authentication? " + transition.Authentication.ToString() + "\n";
    +                }

    +                //Display a message box showing the file's name and its
    +                //next possible state transitions
    +                MessageBox.Show(message);

    +

    +                +IEdmUserMgr10 userMgr;
    +                userMgr = (IEdmUserMgr10)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);

    +                IEdmUser5 user;
    +                user = userMgr.GetLoggedInUser();

    +                int[] files = new int[1];
    +                files[0] = aFile.ID;

    +                string[] transitions = new string[1];
    +                transitions[0] = transition.Name;  //a possible transition

    +                bool[] permBool = new bool[1];
    +                permBool = vault2.GetTransitionCommentPermissions(user.ID, files, transitions);

    +                message = "Logged-in user, " + user.Name + ", must add a state change comment on " + transition.Name + " for " + aFile.Name + "? " + permBool[0];

    +                //Display a message box showing whether the logged-in user must add a comment
    +                //when transitioning the file to one of the next possible states
    +                MessageBox.Show(message);

    +

    +                +//Display a message box with the archive server's log
    +                string asLog = "";
    +                vault2.GetArchiveServerLog(out asLog);
    +                message = "Archive server log: " + asLog;
    +                MessageBox.Show(message);

    +

    +

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //If one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +                //Set the initial directory in the Select a file dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select a file dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();

    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    //Do nothing
    +                }
    +                else
    +                {
    +                    //Browse for a file whose next possible state 
    +                    //transitions to get
    +                    string fileName = OpenFileDialog1.FileName;
    +                    FileListBox.Items.Add(fileName);
    +                    IEdmFolder5 retFolder = default(IEdmFolder5);
    +                    aFile = vault1.GetFileFromPath(fileName, out retFolder);

    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +    }
    +}

    + +

    //Form1.Designer.cs

    +

    namespace StatesCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    + +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FileListBox = new System.Windows.Forms.ListBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.GetTransitionButton = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 22);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 39);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(221, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FileListBox
    +            // 
    +            this.FileListBox.FormattingEnabled = true;
    +            this.FileListBox.Location = new System.Drawing.Point(16, 96);
    +            this.FileListBox.Name = "FileListBox";
    +            this.FileListBox.Size = new System.Drawing.Size(179, 30);
    +            this.FileListBox.TabIndex = 2;
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(209, 96);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
    +            // 
    +            // GetTransitionButton
    +            // 
    +            this.GetTransitionButton.Location = new System.Drawing.Point(16, 150);
    +            this.GetTransitionButton.Name = "GetTransitionButton";
    +            this.GetTransitionButton.Size = new System.Drawing.Size(188, 23);
    +            this.GetTransitionButton.TabIndex = 4;
    +            this.GetTransitionButton.Text = "Get next possible state transitions";
    +            this.GetTransitionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.GetTransitionButton.UseVisualStyleBackColor = true;
    +            this.GetTransitionButton.Click += new System.EventHandler(GetTransitionButton_Click);
    +            //
    +            //OpenFileDialog1
    +            //
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = true;
    +            this.OpenFileDialog1.Title = "Select a file";
    +            //

    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 200);
    +            this.Controls.Add(this.GetTransitionButton);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.FileListBox);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Workflow State Transitions";
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    +            this.Load += new System.EventHandler(Form1_Load);

    +        }

    + +        #endregion

    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.ListBox FileListBox;
    +        private System.Windows.Forms.Button BrowseButton;
    +        private System.Windows.Forms.Button GetTransitionButton;
    +        private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +    }
    +}

    + +
    +
    + + + + diff --git a/documentation/api_extracted/Get_Files_State_Transitions_Example_VBNET.htm b/documentation/api_extracted/Get_Files_State_Transitions_Example_VBNET.htm new file mode 100644 index 0000000..247126c --- /dev/null +++ b/documentation/api_extracted/Get_Files_State_Transitions_Example_VBNET.htm @@ -0,0 +1,400 @@ + + + +Get File's State Transitions Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get File's State Transitions Example (VB.NET)

    +

    This example shows how to get a file's current and next possible state +transitions.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    '----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type StatesVBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, replace the code in Form1.Designer.vb with 
    +'       this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that the vault contains a file in a workflow state.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the State Transitions dialog box.
    +' 2. Select a vault view.
    +' 3. Click Browse.
    +' 4. Displays the Select a file dialog box.
    +'    a. Select a file in the selected vault.
    +'    b. Click Open.
    +'    The selected file's path and file name appear 
    +'    in the Select a file dialog box.
    +' 5. Click Get state transitions
    +' 6. Displays a message box showing the name of the selected
    +'    file and its current and next possible state transitions.
    +' 7. Click OK to close the message box.
    +' 8. Displays a message box showing whether the logged-in user must
    +'    add a comment when transitioning the selected file to one of +its next
    +'    possible states.
    +' 9. Click OK to close the message box.
    +'10. Displays a message box with the archive server log.
    +'11. Click OK to close the message box.

    +'12. Close the State Transitions dialog box.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm


    + + +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5


    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load

    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If

    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub GetTransitionButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetTransitionButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If

    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +
    +
                +Dim vault2 +As IEdmVault20
    +            vault2 = vault1

    +            'Get the file's current workflow state
    +            Dim workflowState As IEdmState5
    +            workflowState = aFile.CurrentState

    +            'Start an enumeration of the transitions to 
    +            'and from the file's current workflow state
    +            Dim pos As IEdmPos5
    +            pos = workflowState.GetFirstTransitionPosition

    +            'Make sure current workflow state
    +            'has a next transition state
    +            'If not, exit application
    +            If pos.IsNull Then
    +                MessageBox.Show("No next possible transition states.")
    +                Exit Sub
    +            End If

    +

               +Dim transition As IEdmTransition10

    +            'Get the file's next possible transition to or from 
    +            'the file's current workflow state
    +            transition = workflowState.GetNextTransition(pos)

    +            Dim message As String = "Current state for " + aFile.Name + ": " + vbLf
    +            message = message + "  * " + workflowState.Name + vbLf + vbLf
    +            message = message + "Next possible state transitions for " + aFile.Name + ":" + vbLf
    +            message = message + "  * " + transition.Name + vbLf
    +            'message = message + "    Requires authentication? " + transition.Authentication.ToString + vbLf

    +            'Iterate through the file's remaining next possible 
    +            'transitions to or from the file's current workflow state
    +            While (Not pos.IsNull)
    +                transition = workflowState.GetNextTransition(pos)
    +                message = message + "  * " + transition.Name + vbLf
    +                'message = message + "    Requires authentication? " + transition.Authentication.ToString + vbLf
    +            End While


    +            'Display a message box showing the file's name and its
    +            'next possible state transitions
    +            MessageBox.Show(message)

    +
    	    Dim userMgr As IEdmUserMgr10
    +            userMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)
    +            Dim user As IEdmUser5
    +            user = userMgr.GetLoggedInUser()
    +            Dim files(0) As Integer
    +            files(0) = aFile.ID
    +            Dim transitions(0) As String
    +            transitions(0) = transition.Name 'a possible transition
    +            Dim permBool As Object
    + 
    +            permBool = vault2.GetTransitionCommentPermissions(user.ID, files, transitions)
    +            message = "Logged-in user, " & user.Name & ", must add a state change comment on " & transition.Name & " for " & aFile.Name & "? " & permBool(0)
    +
    +	    'Display a message box showing whether the logged-in user must add a comment
    +            'when transitioning the file to one of the next possible states
    +            MessageBox.Show(message)
     
    +

    +            +'Display a message box with the archive server log
    +            Dim asLog As String = ""
    +            vault1.GetArchiveServerLog(asLog)
    +            message = "Archive server log: " & asLog
    +           
    MessageBox.Show(message)

    +
    +        Catch ex As System.Runtime.InteropServices.COMException
    +
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +
    +        Catch ex As Exception
    +
    +            MessageBox.Show(ex.Message)
    +
    +        End Try
    +
    +    End Sub
    +

    +
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +
    +        Try
    +
    +            'If one hasn't been created yet
    +
    +            If vault1 Is Nothing Then
    +
    +                vault1 = New EdmVault5()
    +
    +            End If
    +

    +
    +            If Not vault1.IsLoggedIn Then
    +
    +                'Log into selected vault as the current user
    +
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +
    +            End If
    +
    +            'Set the initial directory in the Select a file dialog
    +
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +
    +            'Show the Select a file dialog
    +
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +
    +            DialogResult = OpenFileDialog1.ShowDialog()
    +

    +
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +
    +                'Do nothing
    +
    +            Else
    +
    +                'Browse for a file whose next possible state
    +
    +                'transitions to get

    +
    +                Dim fileName As String = OpenFileDialog1.FileName
    +
    +                FileListBox.Items.Add(fileName)
    +
    +                aFile = vault1.GetFileFromPath(fileName)
    +

    +
    +            End If
    +

    +
    +        Catch ex As System.Runtime.InteropServices.COMException
    +
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +
    +        Catch ex As Exception
    +
    +            MessageBox.Show(ex.Message)
    +
    +        End Try
    +
    +    End Sub
    +

    + +

    + +End Class

    +

    + +

    Back to top

    +

    +'Form1.Designer.vb

    +

    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form

    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.GetTransitionButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.VaultsLabel.Location = New System.Drawing.Point(25, 28)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(28, 44)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(190, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(28, 97)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(190, 17)
    +        Me.FileListBox.TabIndex = 3
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(236, 97)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(56, 23)
    +        Me.BrowseButton.TabIndex = 4
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'GetTransitionButton
    +        '
    +        Me.GetTransitionButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.GetTransitionButton.Location = New System.Drawing.Point(28, 152)
    +        Me.GetTransitionButton.Name = "GetTransitionButton"
    +        Me.GetTransitionButton.Size = New System.Drawing.Size(201, 23)
    +        Me.GetTransitionButton.TabIndex = 5
    +        Me.GetTransitionButton.Text = "Get next possible state transitions"
    +        Me.GetTransitionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.GetTransitionButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(323, 184)
    +        Me.Controls.Add(Me.GetTransitionButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Workflow State Transitions"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents GetTransitionButton As System.Windows.Forms.Button

    + +End Class

    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Files_in_State_Example_CSharp.htm b/documentation/api_extracted/Get_Files_in_State_Example_CSharp.htm new file mode 100644 index 0000000..366b478 --- /dev/null +++ b/documentation/api_extracted/Get_Files_in_State_Example_CSharp.htm @@ -0,0 +1,289 @@ + + + +Get Files in Workflow State Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Files in Workflow State Example (C#)

    +

    This example shows how to get all of the files in a +particular workflow state.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type GetFilesInState_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.

    +// 4. Ensure that you have at least one approved file in the vault.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Get +files in state dialog box.
    +// 2. Select a vault view.
    +// 3. Click Get +approved files
    +// +4. Displays a message box with all of the files in the Approved state
    +//    for each workflow in the vault.
    +// 5. Click OK in each message box.

    +// 6. Close the Get +files in state dialog box.        

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace GetFilesInState_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;
    +        IEdmItem item;
    +        IEdmFile8 fileInt;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetApprovedFiles_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Get approved files
    +            try
    +            {

    +                IEdmVault7 vault2 = default(IEdmVault7);
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmWorkflowMgr6 wfmgr = (IEdmWorkflowMgr6)vault2.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);

    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = wfmgr.GetFirstWorkflowPosition();
    +                while (!pos.IsNull)
    +                {
    +                    IEdmWorkflow6 wf = wfmgr.GetNextWorkflow(pos);

    +                    IEdmState6 state = default(IEdmState6);
    +                    state = wf.GetState("Approved");
    +                    if ((state != null))
    +                    {

    +                        string message = null;
    +                        IEdmFile5 file = default(IEdmFile5);
    +                        IEdmPos5 pos2 = default(IEdmPos5);
    +                        pos2 = state.GetFirstFilePosition();

    +                        if (!pos2.IsNull)
    +                        {
    +                            message = "These files are approved in workflow, " + wf.Name + ":" + "\n";
    +                        

    +                            while (!pos2.IsNull)
    +                            {
    +                                file = state.GetNextFile(pos2);
    +                                message = message + file.Name + "\n";
    +                            }

    +                            MessageBox.Show(message);
    +                        }
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace GetFilesInState_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.GetApprovedFiles = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = " Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //GetApprovedFiles
    +            //
    +            this.GetApprovedFiles.Location = new System.Drawing.Point(16, 86);
    +            this.GetApprovedFiles.Name = "GetApprovedFiles";
    +            this.GetApprovedFiles.Size = new System.Drawing.Size(139, 23);
    +            this.GetApprovedFiles.TabIndex = 5;
    +            this.GetApprovedFiles.Text = "Get approved files";
    +            this.GetApprovedFiles.UseVisualStyleBackColor = true;
    +            this.GetApprovedFiles.Click +=new System.EventHandler(GetApprovedFiles_Click);
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(216, 137);
    +            this.Controls.Add(this.GetApprovedFiles);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get files in state";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button GetApprovedFiles;
    +    }
    +}

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Files_in_State_Example_VBNET.htm b/documentation/api_extracted/Get_Files_in_State_Example_VBNET.htm new file mode 100644 index 0000000..be2e3d1 --- /dev/null +++ b/documentation/api_extracted/Get_Files_in_State_Example_VBNET.htm @@ -0,0 +1,249 @@ + + + +Get Files in Workflow State Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Files in Workflow State Example (VB.NET)

    +

    This example shows how to get all of the files in a particular +workflow state.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type GetFilesInState in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that you have at least one approved file in the vault.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Get files in state dialog box.
    +' 2. Select a vault view.
    +' 3. Click Get approved files
    + +' 4. Displays a message box with all of the files in the Approved state
    +'    for each workflow in the vault.
    +' 5. Click OK in each message box.

    + +' 6. Close the Get files in state dialog box.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim item As IEdmItem
    +    Dim fileInt As IEdmFile8

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GetApprovedFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetApprovedFiles.Click
    +        'Get approved files
    +        Try

    +            Dim vault2 As IEdmVault7
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If

    +            vault2 = vault1
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim wfmgr As IEdmWorkflowMgr6 = vault2.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr)

    +            Dim pos As IEdmPos5
    +            pos = wfmgr.GetFirstWorkflowPosition()
    +            While Not pos.IsNull
    +                Dim wf As IEdmWorkflow6 = wfmgr.GetNextWorkflow(pos)

    +                Dim state As IEdmState6
    +                state = wf.GetState("Approved")

    +

    +
    +                If Not state Is Nothing Then

    +

    +                    +Dim message As String
    +                    Dim file As IEdmFile5
    +                    Dim pos2 As IEdmPos5
    +                    pos2 = state.GetFirstFilePosition

    +                    If Not pos2.IsNull Then
    +                        message = "These files are approved in workflow, " & wf.Name & ":" + vbLf
    +                        While Not pos2.IsNull
    +                            file = state.GetNextFile(pos2)
    +                            message = message + file.Name + vbLf
    +                        End While
    +                        MessageBox.Show(message)
    +                    End If
    +                End If
    +            End While

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +End Class

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +    ''' Clean up any resources being used.
    +    ''' </summary>
    +    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.GetApprovedFiles = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = " Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'GetApprovedFiles
    +        '
    +        Me.GetApprovedFiles.Location = New System.Drawing.Point(16, 86)
    +        Me.GetApprovedFiles.Name = "GetApprovedFiles"
    +        Me.GetApprovedFiles.Size = New System.Drawing.Size(139, 23)
    +        Me.GetApprovedFiles.TabIndex = 5
    +        Me.GetApprovedFiles.Text = "Get approved files"
    +        Me.GetApprovedFiles.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(216, 137)
    +        Me.Controls.Add(Me.GetApprovedFiles)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get files in state"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents GetApprovedFiles As System.Windows.Forms.Button

    +

    +End Class

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Histories_of_Files_Example_CSharp.htm b/documentation/api_extracted/Get_Histories_of_Files_Example_CSharp.htm new file mode 100644 index 0000000..4edcbf5 --- /dev/null +++ b/documentation/api_extracted/Get_Histories_of_Files_Example_CSharp.htm @@ -0,0 +1,449 @@ + + + +Get Histories of Files Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Histories of Files Example (C#)

    +

    This example shows how to update version comments and get histories +of files.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    +

    +

    + + +//----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type GetHistories_CSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the +form, replace the code in Form1.Designer.cs with 
    +//        this code.

    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, and +click Add).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Ensure that the vault contains a checked-in +file with two versions.
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +
    +//  1. Displays +the Get histories dialog box.
    +//     a. Select a vault view.
    +//     b. Click Select a +file.
    +//     c. In the Select File dialog:
    +//        1. Select one +or more checked-in vault files.
    +//        2. Click Open.
    +//        3. Updates all version comments for +the selected files to
    +//           "New comment".

    +//     d. Click Get +history.
    +//     e. Displays a message box for each history item.
    +//     f. Observe the updated version comments.
    +//     g. Click OK to close each message box.
    +//     h. Click Roll back to first version.
    +//        Rolls back the selected file to its +first version.
    +//     i. Click Get history.
    +//        A message box displays one history +item.
    +//  2. Close the Get histories dialog box.

    + +//----------------------------------------------------------------------------

    + +

    +

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace GetHistories_CSharp
    +{
    +    
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;
    +        IEdmHistory3 history;
    +        IEdmHistoryUpdate historyUpdate;
    +        IEdmFolder5 ppoRetParentFolder;
    +        IEdmFile5 aFile;
    +        +EdmHistoryItem rollbackItem;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void SelectFiles_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                File1List.Items.Clear();

    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Select File dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select File dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    return;
    +                }

    +                historyUpdate = (IEdmHistoryUpdate)vault2.CreateUtility(EdmUtility.EdmUtil_HistoryUpdate);

    +                foreach (string FileName in OpenFileDialog1.FileNames)
    +                {
    +                    File1List.Items.Add(FileName);
    +                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
    +                    // Update all version comments for the selected files
    +                    historyUpdate.UpdateVersionComment(aFile.ID, -1, "New comment");
    +                }

    +                historyUpdate.CommitUpdates();

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetHistories_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                history = (IEdmHistory3)vault2.CreateUtility(EdmUtility.EdmUtil_History);

    +                foreach (string FileName in OpenFileDialog1.FileNames)
    +                {
    +                    aFile = vault1.GetFileFromPath(FileName, out ppoRetParentFolder);
    +                    // Add each file selected to the set of files for which to get histories
    +                    history.AddFile(aFile.ID);
    +                }

    +                EdmHistoryItem[] ppoRethistory = null;
    +                history.GetSortedHistory(ref ppoRethistory, (int)EdmHistoryType.Edmhist_FileVersion);

    +                string str = null;
                    string evDesc += "";

    +                foreach (EdmHistoryItem item in ppoRethistory)
    +                {
                        +evDesc = history.GetEventDescription(item, (int)EdmLangCode.LanEng);
    +                    str = "History of " + item.mbsItemName + "\n";
                        +str = str + "Event description: " + evDesc + +"\n";
    +                    str = str + "Type +of history record as defined in EdmHistoryType: " + item.meType + "\n";
    +                    str = str + "Date: " + item.moDate + "\n";
    +                    str = str + "Version: " + item.mlVersion + "\n";
    +                    str = str + "User ID: " + item.mlUserID + "\n";
    +                    str = str + "File ID: " + item.mlFileID + "\n";
    +                    str = str + "Folder ID: " + item.mlFolderID + "\n";
    +                    str = str + "User name: " + item.mbsUserName + "\n";
    +                    str = str + "Comment: " + item.mbsComment + "\n";
    +                    str = str + "\n";
    +                    MessageBox.Show(str);
    +                    +rollbackItem = item;
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +

    +

    +        public void Rollback_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                if (history != null & aFile != null )
    +                {
    +                    history.Rollback(rollbackItem);

    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +

    +
    +    }
    +}

    +

    + +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace GetHistories_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.SelectFiles = new System.Windows.Forms.Button();
    +            this.File1List = new System.Windows.Forms.ListBox();
    +            this.GetHistories = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.button1 = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(12, 24);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(15, 40);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // SelectFiles
    +            // 
    +            this.SelectFiles.Location = new System.Drawing.Point(15, 85);
    +            this.SelectFiles.Name = "SelectFiles";
    +            this.SelectFiles.Size = new System.Drawing.Size(88, 23);
    +            this.SelectFiles.TabIndex = 2;
    +            this.SelectFiles.Text = "Select a file...";
    +            this.SelectFiles.UseVisualStyleBackColor = true;
    +            this.SelectFiles.Click += new System.EventHandler(this.SelectFiles_Click);
    +            // 
    +            // File1List
    +            // 
    +            this.File1List.FormattingEnabled = true;
    +            this.File1List.HorizontalScrollbar = true;
    +            this.File1List.Location = new System.Drawing.Point(15, 114);
    +            this.File1List.Name = "File1List";
    +            this.File1List.Size = new System.Drawing.Size(257, 56);
    +            this.File1List.TabIndex = 4;
    +            // 
    +            // GetHistories
    +            // 
    +            this.GetHistories.Location = new System.Drawing.Point(64, 193);
    +            this.GetHistories.Name = "GetHistories";
    +            this.GetHistories.Size = new System.Drawing.Size(157, 23);
    +            this.GetHistories.TabIndex = 6;
    +            this.GetHistories.Text = "Get history";
    +            this.GetHistories.UseVisualStyleBackColor = true;
    +            this.GetHistories.Click += new System.EventHandler(this.GetHistories_Click);
    +            // 
    +            // OpenFileDialog1
    +            // 
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = false;
    +            this.OpenFileDialog1.Title = "Select File";
    +            // 
    +            // button1
    +            // 
    +            this.button1.Location = new System.Drawing.Point(64, 235);
    +            this.button1.Name = "button1";
    +            this.button1.Size = new System.Drawing.Size(157, 23);
    +            this.button1.TabIndex = 7;
    +            this.button1.Text = "Roll back to first version";
    +            this.button1.UseVisualStyleBackColor = true;
    +            this.button1.Click += new System.EventHandler(this.Rollback_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 280);
    +            this.Controls.Add(this.button1);
    +            this.Controls.Add(this.GetHistories);
    +            this.Controls.Add(this.File1List);
    +            this.Controls.Add(this.SelectFiles);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get histories";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }
    +        #endregion
    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button SelectFiles;
    +        internal System.Windows.Forms.ListBox File1List;
    +        internal System.Windows.Forms.Button GetHistories;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +        private System.Windows.Forms.Button button1;
    +    }
    +}

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Histories_of_Files_Example_VBNET.htm b/documentation/api_extracted/Get_Histories_of_Files_Example_VBNET.htm new file mode 100644 index 0000000..a71dc59 --- /dev/null +++ b/documentation/api_extracted/Get_Histories_of_Files_Example_VBNET.htm @@ -0,0 +1,382 @@ + + + +Get Histories of Files Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Histories of Files Example (VB.NET)

    +

    This example shows how to update version comments and get histories +of files.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    +

    + +

    + + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type GetHistories_VBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the +form, replace the code in Form1.Designer.vb with 
    +'       this code.

    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that the vault contains a checked-in file with two versions.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Get histories dialog box.
    +'    a. Select a vault view.
    +'    b. Click Select a +file.
    +'    c. In the Select File dialog:
    +'       1. Select a checked-in vault file.
    +'       2. Click Open.
    +
    '       +3. Updates all version comments for the selected file to
    +'          "New comment".

    +'    d. Click Get +history.
    +'    e. Displays a message box for each history item.
    +'    f. Observe the updated version comments.
    +'    g. Click OK to close each message box.
    +'    h. Click Roll back to first version.
    +'       Rolls back the selected file to its first +version.
    +'    i. Click Get history.
    +'       A message box displays one history item.
    +' 2. Close the Get histories dialog box.

    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim history As IEdmHistory3
    +    Dim historyUpdate As IEdmHistoryUpdate
    +    Dim aFile As IEdmFile5

    +

    +    Dim rollbackItem As EdmHistoryItem = Nothing

    +

    +

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub SelectFiles_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles SelectFiles.Click
    +        Try
    +            File1List.Items.Clear()

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Select File dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select File dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                Return
    +            End If

    +            historyUpdate = vault2.CreateUtility(EdmUtility.EdmUtil_HistoryUpdate)
    +           
    +            For Each FileName As String In OpenFileDialog1.FileNames
    +                File1List.Items.Add(FileName)
    +                aFile = vault1.GetFileFromPath(FileName)
    +                ' Update all version comments for the selected files
    +                historyUpdate.UpdateVersionComment(aFile.ID, -1, "New comment")
    +            Next

    +            historyUpdate.CommitUpdates()

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GetHistories_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetHistories.Click
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +           history = vault2.CreateUtility(EdmUtility.EdmUtil_History)

    +            For Each FileName As String In OpenFileDialog1.FileNames
    +                aFile = vault1.GetFileFromPath(FileName)
    +                ' Add each file selected to the set of files for which to get histories
    +                history.AddFile(aFile.ID)
    +            Next

    +            Dim ppoRethistory() As EdmHistoryItem = Nothing
    +            history.GetSortedHistory(ppoRethistory, EdmHistoryType.Edmhist_FileVersion)

    +            Dim str As String
                +Dim
    evDesc As String

    +            For Each item As EdmHistoryItem In ppoRethistory
                    +evDesc = history.GetEventDescription(item, EdmLangCode.LanEng)
    +                str = "History of " & item.mbsItemName & vbLf
                    +str = str & "Event description: " & evDesc & +vbLf
    +                str = str & "Type +of history record as defined in EdmHistoryType: " & item.meType & vbLf
    +                str = str & "Date: " & item.moDate & vbLf
    +                str = str & "Version: " & item.mlVersion & vbLf
    +                str = str & "User ID: " & item.mlUserID & vbLf
    +                str = str & "File ID: " & item.mlFileID & vbLf
    +                str = str & "Folder ID: " & item.mlFolderID & vbLf
    +                str = str & "User name: " & item.mbsUserName & vbLf
    +                str = str & "Comment: " & item.mbsComment & vbLf
    +                str = str & vbLf
    +                MessageBox.Show(str)
    +                +rollbackItem = item
    +            Next

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +

    +    Public Sub Rollback_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetHistories.Click
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            If Not aFile Is Nothing And Not history Is Nothing Then

    +                'Roll back to the file's first version, which is the last history item reported above
    +                history.Rollback(rollbackItem)
    +            End If


    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +

    +

    +End Class

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form

    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.SelectFiles = New System.Windows.Forms.Button()
    +        Me.File1List = New System.Windows.Forms.ListBox()
    +        Me.GetHistories = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.Rollback = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(12, 24)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(15, 40)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'SelectFiles
    +        '
    +        Me.SelectFiles.Location = New System.Drawing.Point(15, 85)
    +        Me.SelectFiles.Name = "SelectFiles"
    +        Me.SelectFiles.Size = New System.Drawing.Size(88, 23)
    +        Me.SelectFiles.TabIndex = 2
    +        Me.SelectFiles.Text = "Select a file..."
    +        Me.SelectFiles.UseVisualStyleBackColor = True
    +        '
    +        'File1List
    +        '
    +        Me.File1List.FormattingEnabled = True
    +        Me.File1List.HorizontalScrollbar = True
    +        Me.File1List.Location = New System.Drawing.Point(15, 114)
    +        Me.File1List.Name = "File1List"
    +        Me.File1List.Size = New System.Drawing.Size(257, 43)
    +        Me.File1List.TabIndex = 4
    +        '
    +        'GetHistories
    +        '
    +        Me.GetHistories.Location = New System.Drawing.Point(54, 172)
    +        Me.GetHistories.Name = "GetHistories"
    +        Me.GetHistories.Size = New System.Drawing.Size(157, 23)
    +        Me.GetHistories.TabIndex = 6
    +        Me.GetHistories.Text = "Get history"
    +        Me.GetHistories.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = False
    +        Me.OpenFileDialog1.Title = "Select File"
    +        '
    +        'Rollback
    +        '
    +        Me.Rollback.Location = New System.Drawing.Point(54, 214)
    +        Me.Rollback.Name = "Rollback"
    +        Me.Rollback.Size = New System.Drawing.Size(157, 23)
    +        Me.Rollback.TabIndex = 7
    +        Me.Rollback.Text = "Roll back to first version"
    +        Me.Rollback.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(284, 259)
    +        Me.Controls.Add(Me.Rollback)
    +        Me.Controls.Add(Me.GetHistories)
    +        Me.Controls.Add(Me.File1List)
    +        Me.Controls.Add(Me.SelectFiles)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get histories"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents SelectFiles As System.Windows.Forms.Button
    +    Friend WithEvents File1List As System.Windows.Forms.ListBox
    +    Friend WithEvents GetHistories As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents Rollback As Button
    +End Class

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Menu_Command_Items_Example_CSharp.htm b/documentation/api_extracted/Get_Menu_Command_Items_Example_CSharp.htm new file mode 100644 index 0000000..7cad008 --- /dev/null +++ b/documentation/api_extracted/Get_Menu_Command_Items_Example_CSharp.htm @@ -0,0 +1,204 @@ + + + +Get Menu Command Items Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Menu Command Items Example (C#)

    +

    This example shows how to get add-in menu command items.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    +//--------------------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Console Application.
    +//    b. Type MenuCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create the project. 
    +//    d. Click OK.
    +//    e. Replace the code in Program.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Add System.Windows.Forms as a reference (click System.Windows.Forms
    +
    //    in the Name column, click Add, and click Close).

    +// 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 5. Replace ACME_LAB with the name of a valid vault view.

    +// 6. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 

    +// 1. Displays the command window.
    +// 2. Displays a message box for each add-in menu command item.
    +// 3. Click OK to close each message box.

    +// 4. Displays the menu in the upper-left corner of the desktop.
    +// 5. Click First Command in the menu.
    +// 6. Click OK to close the message box.
    +// 7. Click the command window and press any key.
    +// 8. Closes the command window and exits the application.
    +//--------------------------------------------------------------------------------------

    +

    +//Program.cs

    + +

    +using System;
    +using System.Collections.Generic;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;
    +using EPDM.Interop.epdm;
    +

    +namespace MenuCSharp
    +{
    +    class Program
    +    {
    +        static EdmVault5 vault;

    +        static Form frmParent;
    +        static void Main(string[] args)
    +        {
    +            try
    +            {
    +                //Create a vault interface
    +                vault = new EdmVault5();

    +                //Log into vault
    +                vault.LoginAuto("ACME_LAB", 0);

    +                //Show menu
    +                ShowMenu((IEdmVault12)vault);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +            Console.WriteLine();
    +            Console.WriteLine("Press any key to exit.");
    +            Console.ReadKey();
    +        }
    +        private static void ShowMenu(IEdmVault12 vault)
    +        {
    +            //Create a context-sensitive menu 
    +            //using Windows InsertMenu function
    +            System.Windows.Forms.ContextMenu mnu = default(System.Windows.Forms.ContextMenu);
    +            mnu = new System.Windows.Forms.ContextMenu();

    +            InsertMenu((IntPtr)mnu.Handle, 0, 0, (IntPtr)100, "First Command");
    +            InsertMenu((IntPtr)mnu.Handle, 0, 0, (IntPtr)101, "Second Command");
    +            InsertMenu((IntPtr)mnu.Handle, 0, 0, (IntPtr)102, "Third Command");

    +            //Create a selection list with all files in the root folder
    +            IEdmSelectionList5 selList = default(IEdmSelectionList5);
    +            selList = new EdmSelectionList5();

    +            IEdmFolder6 folder = default(IEdmFolder6);
    +            folder = (IEdmFolder6)vault.RootFolder;
    +            IEdmPos5 pos = default(IEdmPos5);
    +            pos = folder.GetFirstFilePosition();
    +            while (!pos.IsNull)
    +            {
    +                IEdmFile8 file = default(IEdmFile8);
    +                file = (IEdmFile8)folder.GetNextFile(pos);
    +                EdmSelectionObject obj = default(EdmSelectionObject);
    +                obj.mbsPath = file.GetLocalPath(folder.ID);
    +                obj.meType = file.ObjectType;
    +                obj.mlID = file.ID;
    +                obj.mlProjectID = folder.ID;
    +                ((IEdmSelectionList6)selList).AddTail2(obj);
    +            }

    +            //Add menu items for registered add-ins 
    +            int count = 0;
    +            count = 0;
    +            int startID = 0;
    +            startID = 200;
    +            IEdmMenu7 menuCallback = default(IEdmMenu7);
    +            EdmCmdInfo[] ppoRetItems = null;
    +            menuCallback = vault.CreatePluginMenu2(mnu.Handle.ToInt32(), 3, ref startID, (IEdmSelectionList6)selList, (int)CreateMenuFlags.Cmf_ContextMenu, out count);
    +            menuCallback.GetItems((int)EdmMenuFlags.EdmMenu_Nothing, out ppoRetItems);

    +            string str = null;
    +            foreach (EdmCmdInfo item in ppoRetItems)
    +            {
    +                str = "Add-in menu command item: " + "\r\n";
    +                str = str + "Command ID: " + item.mlCmdID + "\r\n";
    +                str = str + "Command string: " + item.mbsCmdStr + "\r\n";
    +                str = str + "Tooltip: " + item.mbsTooltip + "\r\n";
    +                str = str + "Status bar help: " + item.mbsStatusBarHelp + "\r\n";
    +                str = str + "EdmMenuFlags: " + item.mlEdmMenuFlags;
    +                MessageBox.Show(str);
    +            }

    +            //Display the menu using Windows TrackPopupMenu function
    +            int TPM_RETURNCMD = 0;
    +            TPM_RETURNCMD = 256;
    +            int cmdID = 0;
    +            frmParent = new Form();
    +            cmdID = TrackPopupMenu((IntPtr)mnu.Handle, TPM_RETURNCMD, frmParent.Left, frmParent.Top, 0, (IntPtr)frmParent.Handle, (IntPtr)0);

    +            //Run the selected command
    +            switch (cmdID)
    +            {
    +                case 100:
    +                    MessageBox.Show("First command");
    +                    break;
    +                case 101:
    +                    MessageBox.Show("Second command");
    +                    break;
    +                case 102:
    +                    MessageBox.Show("Third command");
    +                    break;
    +                default:
    +                    MessageBox.Show(cmdID);
    +                    break;
    +            }
    +        }
    +        [DllImport("user32", EntryPoint = "InsertMenuA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]

    +        private static extern bool InsertMenu(System.IntPtr hMenu, int uPosition, int uFlags, System.IntPtr uIDNewItem, string lpNewItem);
    +        [DllImport("user32", EntryPoint = "TrackPopupMenu", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]

    +        private static extern int TrackPopupMenu(IntPtr hMenu, int uFlags, int x, int y, int nReserved, IntPtr hWnd, IntPtr prcRect);
    +    }
    +}

    + +

    +
    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Menu_Command_Items_Example_VBNET.htm b/documentation/api_extracted/Get_Menu_Command_Items_Example_VBNET.htm new file mode 100644 index 0000000..e36585b --- /dev/null +++ b/documentation/api_extracted/Get_Menu_Command_Items_Example_VBNET.htm @@ -0,0 +1,181 @@ + + + +Get Menu Command Items Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Menu Command Items Example (VB.NET)

    +

    This example shows how to get add-in menu command items.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    '--------------------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Console Application.
    +'    b. Type MenuVBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project. 
    +'    d. Click OK.
    +'    e. Replace the code in Module1.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, and click Add).
    +' 3. Add System.Windows.Forms as a reference (click System.Windows.Forms
    +
    '    in the Name column, click Add, and click Close).

    +' 4. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 5. Replace ACME_LAB with the name of a valid vault view.

    +' 6. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 

    +' 1. Displays the command window.
    +' 2. Displays a message box for each add-in menu command item.
    +' 3. Click OK to close each message box.

    +' 4. Displays the menu in the upper-left corner of the desktop.
    +' 5. Click First Command in the menu.
    +' 6. Click OK to close the message box.
    +' 7. Click the command window and press any key.
    +' 8. Closes the command window and exits the application.
    +'--------------------------------------------------------------------------------------

    +

    'Module1.vb

    + +

    +Imports EPDM.Interop.epdm
    +Imports System.Windows.Forms

    +Module Module1

    +    Dim vault As EdmVault5
    +    Dim frmParent As Form

    +    Sub Main()
    +        Try
    +            'Create a vault interface
    +            vault = New EdmVault5()

    +            'Log into vault
    +            vault.LoginAuto("ACME_LAB", 0)

    +            'Show menu
    +            ShowMenu(vault)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MsgBox("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MsgBox(ex.Message)
    +        End Try

    +        Console.WriteLine()
    +        Console.WriteLine("Press any key to exit.")
    +        Console.ReadKey()

    +    End Sub

    +    Private Sub ShowMenu(ByVal vault As IEdmVault12)
    +        'Create a context-sensitive menu 
    +        'using Windows InsertMenu function
    +        Dim mnu As System.Windows.Forms.ContextMenu
    +        mnu = New System.Windows.Forms.ContextMenu

    +        InsertMenu(mnu.Handle, 0, 0, 100, "First Command")
    +        InsertMenu(mnu.Handle, 0, 0, 101, "Second Command")
    +        InsertMenu(mnu.Handle, 0, 0, 102, "Third Command")

    +        'Create a selection list with all files in the root folder
    +        Dim selList As IEdmSelectionList6
    +        selList = New EdmSelectionList5

    +        Dim folder As IEdmFolder6
    +        folder = vault.RootFolder
    +        Dim pos As IEdmPos5
    +        pos = folder.GetFirstFilePosition()
    +        While Not pos.IsNull
    +            Dim file As IEdmFile8
    +            file = folder.GetNextFile(pos)
    +            Dim obj As EdmSelectionObject
    +            obj.mbsPath = file.GetLocalPath(folder.ID)
    +            obj.meType = file.ObjectType
    +            obj.mlID = file.ID
    +            obj.mlProjectID = folder.ID
    +            selList.AddTail2(obj)
    +        End While

    +        'Add menu items for registered add-ins 
    +        Dim count As Integer
    +        count = 0
    +        Dim startID As Integer
    +        startID = 200
    +        Dim menuCallback As IEdmMenu6
    +        Dim ppoRetItems() As EdmCmdInfo = Nothing
    +        menuCallback = vault.CreatePluginMenu2(mnu.Handle.ToInt32(), 3, startID, selList, CreateMenuFlags.Cmf_ContextMenu, count)
    +        menuCallback.GetItems(EdmMenuFlags.EdmMenu_Nothing, ppoRetItems)

    +        Dim str As String
    +        For Each item As EdmCmdInfo In ppoRetItems
    +            str = "Add-in menu command item: " & vbLf
    +            str = str & "Command ID: " & item.mlCmdID & vbLf
    +            str = str & "Command string: " & item.mbsCmdStr & vbLf
    +            str = str & "Tooltip: " & item.mbsTooltip & vbLf
    +            str = str & "Status bar help: " & item.mbsStatusBarHelp & vbLf
    +            str = str & "EdmMenuFlags: " & item.mlEdmMenuFlags
    +            MsgBox(str)
    +        Next

    +        'Display the menu using Windows TrackPopupMenu function
    +        Dim TPM_RETURNCMD As Integer
    +        TPM_RETURNCMD = 256
    +        Dim cmdID As Integer
    +        frmParent = New Form
    +        cmdID = TrackPopupMenu(mnu.Handle, TPM_RETURNCMD, frmParent.Left, frmParent.Top, 0, frmParent.Handle, 0)

    +        'Run the selected command
    +        Select Case cmdID
    +            Case 100
    +                MsgBox("First command")
    +            Case 101
    +                MsgBox("Second command")
    +            Case 102
    +                MsgBox("Third command")
    +            Case Else
    +                MsgBox(cmdID)
    +        End Select
    +    End Sub

    +    Private Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" _
    +    (ByVal hMenu As System.IntPtr, _
    +    ByVal uPosition As Integer, _
    +    ByVal uFlags As Integer, _
    +    ByVal uIDNewItem As System.IntPtr, _
    +    ByVal lpNewItem As StringAs Boolean

    +    Private Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" _
    +    (ByVal hMenu As IntPtr, _
    +    ByVal uFlags As Integer, _
    +    ByVal x As Integer, _
    +    ByVal y As Integer, _
    +    ByVal nReserved As Integer, _
    +    ByVal hWnd As IntPtr, _
    +    ByVal prcRect As IntPtrAs Integer

    +End Module

    +
    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Messages_Example_CSharp.htm b/documentation/api_extracted/Get_Messages_Example_CSharp.htm new file mode 100644 index 0000000..5967f73 --- /dev/null +++ b/documentation/api_extracted/Get_Messages_Example_CSharp.htm @@ -0,0 +1,293 @@ + + + +Get Messages Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Messages Example (C#)

    +

    This example shows how to get and encapsulate text messages +in the Admin's inbox in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type MessageCSharp in Name.
    +//     c. Click Browse and browse to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assembly > Framework in the left-side panel, browse to the top folder  
    +//     of your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Ensure that one or more text messages exist in the inbox of 
    +//     Admin in a vault.
    +//     a. Log into a vault as Admin.
    +//     b. Open a File Explorer window for that vault.
    +//     c. Click Tools > Inbox.
    +//     d. Click Text Messages.
    +//     e. If no text messages are listed, send a text message to Admin.
    +//        1. Click New mail message.
    +//        2. Type Admin in To.
    +//        3. Type Test Get messages in Subject.
    +//        4. Type Testing Get messages in the body of the message.
    +//        5. Click Send.
    +//        6. Wait until you receive the SOLIDWORKS PDM Professional
    +//           message notification before executing the next step.
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the Get Messages dialog.
    +//  2. Select the vault that you examined or where you sent Admin  
    +//     a text message in Preconditions step 4.
    +//  3. Click Get messages.
    +//  4. Displays a message box for each text message in Admin's inbox 
    +//     in the selected vault. The message box contains encapsulated   
    +//     information about the text message.
    +//  5. Click OK to close each message box.
    +//  6. Close the Get Messages dialog box.
    +//----------------------------------------------------------------------------
    +
    //Form1.cs
    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    +namespace MessageCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        IEdmVault5 vault1 = null;
    + 
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void GetMessagesButton_Click(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    + 
    +                //Declare an IEdmUserMgr5 object
    +                IEdmUserMgr5 userMgr = default(IEdmUserMgr5);
    + 
    +                //The IEdmUserMgr5 interface is implemented by the
    +                //same class as the IEdmVault5 interface,
    +                //so you can assign the value of
    +                //the IEdmVault5 object
    +                userMgr = (IEdmUserMgr5)vault1;
    + 
    +                IEdmUser5 user = default(IEdmUser5);
    +                user = userMgr.GetLoggedInUser();
    +                IEdmInbox5 inbox = (IEdmInbox5)user;
    + 
    +                //Get first text message in Admin's inbox
    +                IEdmMessage5 message = default(IEdmMessage5);
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = inbox.GetFirstMessagePosition((int)EdmGetMsgFlag.EdmGetMsg_UserMessages);
    + 
    +                //If no text messages in Admin's inbox, exit application
    +                if (pos.IsNull)
    +                {
    +                    MessageBox.Show("No messages in Admin's inbox.");
    +                    return;
    +                }
    + 
    +                //Otherwise, iterate through Admin's inbox and
    +                //display a message box with each encapsulated text message
    +                while (!pos.IsNull)
    +                {
    +                    message = inbox.GetNextMessage(pos);
    +                    bool readStatus = false;
    +                    readStatus = message.IsRead;
    +                    System.DateTime messageDate;
    +                    messageDate = message.Date;
    + 
    +                    MessageBox.Show("Sender name = " + message.SenderName + "\n" +
    +                        "Send ID = " + message.SenderID.ToString() + "\n" +
    +                        "Is read = " + readStatus + "\n" +
    +                        "Type = " + message.MessageType.ToString() + "\n" +
    +                        "Date = " + messageDate.ToString() + "\n" +
    +                        "Subject = " + message.Subject + "\n" +
    +                        "Body = " + message.Body + "\n");
    + 
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +    }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace MessageCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.GetMessagesButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 54);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(189, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // GetMessagesButton
    +            // 
    +            this.GetMessagesButton.Location = new System.Drawing.Point(16, 93);
    +            this.GetMessagesButton.Name = "GetMessagesButton";
    +            this.GetMessagesButton.Size = new System.Drawing.Size(130, 23);
    +            this.GetMessagesButton.TabIndex = 2;
    +            this.GetMessagesButton.Text = "Get messages";
    +            this.GetMessagesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.GetMessagesButton.UseVisualStyleBackColor = true;
    +            this.GetMessagesButton.Click += new System.EventHandler(this.GetMessagesButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(241, 142);
    +            this.Controls.Add(this.GetMessagesButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get Messages";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button GetMessagesButton;
    +    }
    +}
    +
    + + + + + diff --git a/documentation/api_extracted/Get_Messages_Example_VBNET.htm b/documentation/api_extracted/Get_Messages_Example_VBNET.htm new file mode 100644 index 0000000..5b0d3bd --- /dev/null +++ b/documentation/api_extracted/Get_Messages_Example_VBNET.htm @@ -0,0 +1,262 @@ + + + +Get Messages Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Messages Example (VB.NET)

    +

    This example shows how to get and encapsulate text messages +in the Admin's inbox in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type MessageVBNET in Name.
    +'     c. Click Browse and browse to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assembly > Framework in the left-side panel, browse to the top folder 
    +'     of your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Ensure that one or more text messages exist in the inbox of Admin 
    +'     in a vault.
    +'     a. Log into a vault as Admin.
    +'     b. Open a File Explorer window for that vault.
    +'     c. Click Tools > Inbox.
    +'     d. Click Text Messages.
    +'     e. If no text messages are listed, send a text message to Admin.
    +'        1. Click New mail message.
    +'        2. Type Admin in To.
    +'        3. Type Test Get messages in Subject.
    +'        4. Type Testing Get messages in the body of the message.
    +'        5. Click Send.
    +'        6. Wait until you receive the SOLIDWORKS PDM Professional
    +'           message notification before executing the next step.
    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Get Messages dialog.
    +'  2. Select the vault that you examined or where you sent Admin
    +'     a text message in Preconditions step 4.
    +'  3. Click Get messages.
    +'  4. Displays a message box for each text message in Admin's inbox 
    +'     in the selected vault. The message box contains encapsulated 
    +'     information about the text message.
    +'  5. Click OK to close each message box.
    +'  6. Close the Get Messages dialog box.
    +'----------------------------------------------------------------------------
    + 
    +'Form1.vb 
    + 
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Form1
    + 
    +    Dim vault As IEdmVault8 = New EdmVault5
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    + 
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub GetMessagesButton_Click( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles GetMessagesButton.Click
    + 
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault Is Nothing Then
    +                vault = New EdmVault5()
    +            End If
    + 
    +            If Not vault.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    + 
    +            'Declare an IEdmUserMgr5 object
    +            Dim userMgr As IEdmUserMgr5
    + 
    +            'The IEdmUserMgr5 interface is implemented by the
    +            'same class as the IEdmVault5 interface,
    +            'so you can assign the value of
    +            'the IEdmVault5 object
    +            userMgr = vault
    + 
    +            Dim user As IEdmUser5
    +            user = userMgr.GetLoggedInUser
    +            Dim inbox As IEdmInbox5 = DirectCast(user, IEdmInbox5)
    + 
    +            'Get first text message in Admin's inbox
    +            Dim message As IEdmMessage5
    +            Dim pos As IEdmPos5
    +            pos = inbox.GetFirstMessagePosition(EdmGetMsgFlag.EdmGetMsg_UserMessages)
    + 
    +            'If no text messages in Admin's inbox, exit application
    +            If pos.IsNull Then
    +                MsgBox("No messages in Admin's inbox.")
    +                Exit Sub
    +            End If
    + 
    +            'Otherwise, iterate through Admin's inbox and
    +            'display a message box with each encapsulated text message
    +            While Not pos.IsNull
    +                message = inbox.GetNextMessage(pos)
    +                Dim messageDate As String
    +                messageDate = message.Date
    + 
    +                MsgBox("Sender name = " + message.SenderName + vbLf + _
    +                        "Sender ID = " + message.SenderID + vbLF + _
    +                        "Is read = " + message.IsRead.ToString + vbLf + _
    +                        "Type = " + message.MessageType.ToString + vbLf + _
    +                        "Date = " + messageDate + vbLf + _
    +                        "Subject = " + message.Subject + vbLf + _
    +                        "Body = " + message.Body + vbLf)
    + 
    +            End While
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.GetMessagesButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 22)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(13, 39)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(198, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'GetMessagesButton
    +        '
    +        Me.GetMessagesButton.Location = New System.Drawing.Point(16, 81)
    +        Me.GetMessagesButton.Name = "GetMessagesButton"
    +        Me.GetMessagesButton.Size = New System.Drawing.Size(88, 23)
    +        Me.GetMessagesButton.TabIndex = 2
    +        Me.GetMessagesButton.Text = "Get messages"
    +        Me.GetMessagesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.GetMessagesButton.UseVisualStyleBackColor = True
    +        '
    +        'MessageVBNET
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(243, 130)
    +        Me.Controls.Add(Me.GetMessagesButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get Messages"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents GetMessagesButton As System.Windows.Forms.Button
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/Get_Parent_References_Example_CSharp.htm b/documentation/api_extracted/Get_Parent_References_Example_CSharp.htm new file mode 100644 index 0000000..ecaa4d7 --- /dev/null +++ b/documentation/api_extracted/Get_Parent_References_Example_CSharp.htm @@ -0,0 +1,336 @@ + + + +Get Parent References of File Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Parent References of File Example (C#)

    +

    This example shows how to find the parent references of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type GetParentReferences_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. The Get parent references dialog displays.
    +// 2. Select a vault view.
    +// 3. Click Browse for file.
    +// 4. Locate and click one of the parts mentioned in Preconditions step 4.

    +// 5. Click Open.
    +// 6. Click Get parent references.

    +// 7. Displays the references of the +selected part.
    +// 8. Click OK.

    +// 9. Close the Get +parent references dialog.         

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace GetParentReferences_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                Listbox.Items.Clear();

    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Open dialog
    +                OpenFileDialog.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Open dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog.ShowDialog();
    +                //If the user didn't click Open, exit
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    return;
    +                }

    +                foreach (string FileName in OpenFileDialog.FileNames)
    +                {
    +                    Listbox.Items.Add(FileName);
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetParentReferences_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {

    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmFile5 file = null;
    +                IEdmFolder5 parentFolder = null;
    +                int i = 0;
    +                foreach (string FileName in Listbox.Items)
    +                {
    +                    file = vault2.GetFileFromPath(FileName, out parentFolder);
    +                    i += 1;
    +                }

    +                //Get an interface to the reference tree
    +                IEdmReference7 @ref = default(IEdmReference7);
    +                @ref = (IEdmReference7)file.GetReferenceTree(parentFolder.ID);

    +                //Enumerate parent references
    +                string msg = null;
    +                msg = "Parent references of file '" + file.Name + "':" + "\n";
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = @ref.GetFirstParentPosition2(0, false, (int)EdmRefFlags.EdmRef_File + (int)EdmRefFlags.EdmRef_Item + (int)EdmRefFlags.EdmRef_Dynamic + (int)EdmRefFlags.EdmRef_Static);
    +                while (!pos.IsNull)
    +                {
    +                    IEdmReference7 parent = default(IEdmReference7);
    +                    parent = (IEdmReference7)@ref.GetNextParent(pos);
    +                    msg = msg + parent.FoundPath + "\n";
    +                }

    +                MessageBox.Show(msg);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace GetParentReferences_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.Listbox = new System.Windows.Forms.ListBox();
    +            this.GetParentReferences = new System.Windows.Forms.Button();
    +            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //BrowseButton
    +            //
    +            this.BrowseButton.Location = new System.Drawing.Point(16, 81);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(121, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse for file...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click +=new System.EventHandler(BrowseButton_Click);
    +            //
    +            //Listbox
    +            //
    +            this.Listbox.FormattingEnabled = true;
    +            this.Listbox.HorizontalScrollbar = true;
    +            this.Listbox.Location = new System.Drawing.Point(16, 110);
    +            this.Listbox.Name = "Listbox";
    +            this.Listbox.Size = new System.Drawing.Size(259, 43);
    +            this.Listbox.TabIndex = 4;
    +            //
    +            //GetParentReferences
    +            //
    +            this.GetParentReferences.Location = new System.Drawing.Point(16, 173);
    +            this.GetParentReferences.Name = "GetParentReferences";
    +            this.GetParentReferences.Size = new System.Drawing.Size(121, 23);
    +            this.GetParentReferences.TabIndex = 5;
    +            this.GetParentReferences.Text = "Get parent references";
    +            this.GetParentReferences.UseVisualStyleBackColor = true;
    +            this.GetParentReferences.Click +=new System.EventHandler(GetParentReferences_Click);
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(289, 215);
    +            this.Controls.Add(this.GetParentReferences);
    +            this.Controls.Add(this.Listbox);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get parent references";
    +            this.Load +=new System.EventHandler(Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button BrowseButton;
    +        internal System.Windows.Forms.ListBox Listbox;
    +        internal System.Windows.Forms.Button GetParentReferences;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
    +    }
    +}

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Parent_References_Example_VBNET.htm b/documentation/api_extracted/Get_Parent_References_Example_VBNET.htm new file mode 100644 index 0000000..00f0549 --- /dev/null +++ b/documentation/api_extracted/Get_Parent_References_Example_VBNET.htm @@ -0,0 +1,296 @@ + + + +Get Parent References of File Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Parent References of File Example (VB.NET)

    +

    This example shows how to find the parent references of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type GetParentReferences in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that an assembly and its parts are checked into a vault.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. The Get parent references dialog displays.
    +' 2. Select a vault view.
    +' 3. Click Browse for file.
    +' 4. Locate and click one of the parts mentioned in Preconditions step 4.

    +' 5. Click Open.
    +' 6. Click Get parent references.

    +' 7. Displays the references of the +selected part.
    +' 8. Click OK.

    + +' 9. Close the Get parent references dialog.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            Listbox.Items.Clear()

    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Open dialog
    +            OpenFileDialog.InitialDirectory = vault1.RootFolderPath
    +            'Show the Open dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog.ShowDialog()
    +            'If the user didn't click Open, exit
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                Return
    +            End If

    +            For Each FileName As String In OpenFileDialog.FileNames
    +                Listbox.Items.Add(FileName)
    +            Next
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GetParentReferences_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetParentReferences.Click
    +        Try
    +            
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim file As IEdmFile5 = Nothing
    +            Dim parentFolder As IEdmFolder5 = Nothing
    +            Dim i As Integer = 0
    +            For Each FileName As String In Listbox.Items
    +                file = vault2.GetFileFromPath(FileName, parentFolder)
    +                i += 1
    +            Next

    +            'Get an interface to the reference tree
    +            Dim ref As IEdmReference7
    +            ref = file.GetReferenceTree(parentFolder.ID)

    +            'Enumerate parent references
    +            Dim msg As String
    +            msg = "Parent references of file '" + file.Name + "':" + vbLf
    +            Dim pos As IEdmPos5
    +            pos = ref.GetFirstParentPosition2(0, FalseEdmRefFlags.EdmRef_File + EdmRefFlags.EdmRef_Item + EdmRefFlags.EdmRef_Dynamic + EdmRefFlags.EdmRef_Static)
    +            While Not pos.IsNull
    +                Dim parent As IEdmReference7
    +                parent = ref.GetNextParent(pos)
    +                msg = msg + parent.FoundPath + vbLf
    +            End While

    +            MessageBox.Show(msg)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +End Class

    +

     

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +    ''' Clean up any resources being used.
    +    ''' </summary>
    +    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.Listbox = New System.Windows.Forms.ListBox()
    +        Me.GetParentReferences = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(16, 81)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(121, 23)
    +        Me.BrowseButton.TabIndex = 3
    +        Me.BrowseButton.Text = "Browse for file..."
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'Listbox
    +        '
    +        Me.Listbox.FormattingEnabled = True
    +        Me.Listbox.HorizontalScrollbar = True
    +        Me.Listbox.Location = New System.Drawing.Point(16, 110)
    +        Me.Listbox.Name = "Listbox"
    +        Me.Listbox.Size = New System.Drawing.Size(259, 43)
    +        Me.Listbox.TabIndex = 4
    +        '
    +        'GetParentReferences
    +        '
    +        Me.GetParentReferences.Location = New System.Drawing.Point(16, 173)
    +        Me.GetParentReferences.Name = "GetParentReferences"
    +        Me.GetParentReferences.Size = New System.Drawing.Size(121, 23)
    +        Me.GetParentReferences.TabIndex = 5
    +        Me.GetParentReferences.Text = "Get parent references"
    +        Me.GetParentReferences.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(289, 215)
    +        Me.Controls.Add(Me.GetParentReferences)
    +        Me.Controls.Add(Me.Listbox)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get parent references"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents Listbox As System.Windows.Forms.ListBox
    +    Friend WithEvents GetParentReferences As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
    +End Class

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_CSharp.htm b/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_CSharp.htm new file mode 100644 index 0000000..1863c01 --- /dev/null +++ b/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_CSharp.htm @@ -0,0 +1,376 @@ + + + +Get Revision Names for Local Version of File Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Revision Names for Local Version of File Example (C#)

    +

    This example shows how to the revision names for the local +version of a file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type RevisionCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. To find a file with a revision scheme:
    +//     a. Open a vault view in File Explorer.
    +//     b. Click a file.
    +//     c. Click Display > History.
    +//     d. Examine the Event column. If Revision is:
    +//        * listed in the Event column, then the file  
    +//          has a revision scheme. 
    +//        * not listed in the Event column, then
    +//          repeat steps 4b - 4d until you find a file with 
    +//          a revision scheme. 
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the Get revision names dialog box.
    +//  2. Select a vault view.
    +//  3. Click Browse.
    +//  4. Displays the Select a file dialog box.
    +//     a. Click the file identified in Preconditions step 4 in the 
    +//        selected vault.
    +//     b. Click Open.
    +//        The selected file's path and file name appear 
    +//        in the Get revision names dialog box.
    +//  5. Click Get revisions
    +//  6. Displays a message box:
    +//     * telling you that a local copy of the selected file does not exist.
    +//       - or -
    +//     * telling you that the selected file does not have a revision scheme.
    +//       - or -
    +//     * showing you a list of the names of the revisions for the selected file.
    +//  7. Click OK to close the message box.
    +//  8. Close the Get revision names dialog box.
    +//----------------------------------------------------------------------------
    +//Form1.cs
    + 
    +using EPDM.Interop.epdm;
    +using System.Windows.Forms;
    +using System;
    + 
    +namespace RevisionCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        IEdmVault5 vault1 = null;
    +        IEdmVault8 vault = null;
    +        IEdmFile5 aFile;
    +        IEdmFolder5 folder;
    + 
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = { };
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void RevisionButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Get the local version number
    +                int version = 0;
    +                version = aFile.GetLocalVersionNo(folder.ID);
    +                if (version < 1)
    +                {
    +                    MessageBox.Show("A local copy of " + aFile.Name + " does not exist.");
    +                    return;
    +                }
    + 
    +                //Get the version interface
    +                IEdmEnumeratorVersion5 verEnum = default(IEdmEnumeratorVersion5);
    +                verEnum = (IEdmEnumeratorVersion5)aFile;
    +                IEdmVersion5 ver = default(IEdmVersion5);
    +                ver = (IEdmVersion5)verEnum.GetVersion(version);
    + 
    +                //Enumerate the revisions
    +                string message = null;
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = ver.GetFirstRevisionPosition();
    + 
    +                if (!pos.IsNull)
    +                {
    +                    message = "The following revisions are set on " + aFile.Name + ": " + "\n";
    +                    IEdmRevision5 rev = default(IEdmRevision5);
    +                    while (!pos.IsNull)
    +                    {
    +                        rev = ver.GetNextRevision(pos);
    +                        message = message + "    " + rev.Name + "\n";
    +                    }
    +                }
    +                else
    +                {
    +                    message = "A revision scheme is not defined for " + aFile.Name + "." + "\n";
    +                    MessageBox.Show(message);
    +                    return;
    +                }
    + 
    +                MessageBox.Show(message);
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //If one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +                //Set the initial directory in the Select a file dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select a file dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();
    + 
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    //Do nothing
    +                }
    +                else
    +                {
    +                    //Browse for a local file whose revisions you want to see
    +                    string fileName = OpenFileDialog1.FileName;
    +                    FileListBox.Items.Add(fileName);
    +                    aFile = vault1.GetFileFromPath(fileName, out folder);
    + 
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    + 
    +        }
    +    }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace RevisionCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FileListBox = new System.Windows.Forms.ListBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.RevisionButton = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(23, 13);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(26, 30);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(220, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FileListBox
    +            // 
    +            this.FileListBox.FormattingEnabled = true;
    +            this.FileListBox.Location = new System.Drawing.Point(26, 90);
    +            this.FileListBox.Name = "FileListBox";
    +            this.FileListBox.Size = new System.Drawing.Size(167, 17);
    +            this.FileListBox.TabIndex = 2;
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(199, 84);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
    +            // 
    +            // OpenFileDialog1
    +            // 
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = true;
    +            this.OpenFileDialog1.Title = "Select a file";
    + 
    +            // 
    +            // RevisionButton
    +            // 
    +            this.RevisionButton.Location = new System.Drawing.Point(26, 137);
    +            this.RevisionButton.Name = "RevisionButton";
    +            this.RevisionButton.Size = new System.Drawing.Size(88, 23);
    +            this.RevisionButton.TabIndex = 4;
    +            this.RevisionButton.Text = "Get revisions";
    +            this.RevisionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.RevisionButton.UseVisualStyleBackColor = true;
    +            this.RevisionButton.Click += new System.EventHandler(RevisionButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 187);
    +            this.Controls.Add(this.RevisionButton);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.FileListBox);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get revision names";
    +            this.Load += new System.EventHandler(Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.ListBox FileListBox;
    +        private System.Windows.Forms.Button BrowseButton;
    +        private System.Windows.Forms.Button RevisionButton;
    +        private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +    }
    +}
    +
    +
    +
     
    +
    + + + + + diff --git a/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_VBNET.htm b/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_VBNET.htm new file mode 100644 index 0000000..2565902 --- /dev/null +++ b/documentation/api_extracted/Get_Revision_Names_for_Local_Version_of_File_Example_VBNET.htm @@ -0,0 +1,322 @@ + + + +Get Revision Names for Local Version of File Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get Revision Names for Local Version of File Example (VB.NET)

    +

    This example shows how to get the revision names for a local version of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type RevisionVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. To find a file with a revision scheme:
    +'     a. Open a vault view in File Explorer.
    +'     b. Click a file.
    +'     c. Click Display > History.
    +'     d. Examine the Event column. If Revision is:
    +'        * listed in the Event column, then the file has  
    +'          a revision scheme. 
    +'        * not listed in the Event column, then
    +'          repeat steps 4b - 4d until you find a file with 
    +'          a revision scheme. 
    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Get revision names dialog box.
    +'  2. Select a vault view.
    +'  3. Click Browse.
    +'  4. Displays the Select a file dialog box.
    +'     a. Click the file identified in Preconditions step 4 in the 
    +'        selected vault.
    +'     b. Click Open.
    +'        The selected file's path and file name appear 
    +'        in the Get revision names dialog box.
    +'  5. Click Get revisions
    +'  6. Displays a message box:
    +'     * telling you that a local copy of the selected file does not exist.
    +'       - or -
    +'     * telling you that the selected file does not have a revision scheme.
    +'       - or -
    +'     * showing you a list of the names of the revisions for the selected file.
    +'  7. Click OK to close the message box.
    +'  8. Close the Get revision names dialog box.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm 
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim folder As IEdmFolder5 
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub RevisionButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RevisionButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Get the local version number
    +            Dim version As Integer
    +            version = aFile.GetLocalVersionNo(folder.ID)
    +            If version < 1 Then
    +                MsgBox("A local copy of " + aFile.Name + " does not exist.")
    +                Exit Sub
    +            End If
    + 
    +            'Get the version interface
    +            Dim verEnum As IEdmEnumeratorVersion5
    +            verEnum = aFile
    +            Dim ver As IEdmVersion5
    +            ver = verEnum.GetVersion(version)
    + 
    +            'Enumerate the revisions
    +            Dim message As String
    +            Dim pos As IEdmPos5
    +            pos = ver.GetFirstRevisionPosition
    +            If Not pos.IsNull Then
    + 
    +                message = "The following revisions are set on " + aFile.Name + ": " + vbLf
    +                Dim rev As IEdmRevision5
    +                While Not pos.IsNull
    +                    rev = ver.GetNextRevision(pos)
    +                    message = message + "    " + rev.Name + vbLf
    +                End While
    +            Else
    +                message = "A revision scheme is not defined for " + aFile.Name + "." + vbLf
    +                MsgBox(message)
    +                Exit Sub
    +            End If
    + 
    +            MsgBox(message)
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            'If one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +            'Set the initial directory in the Select a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                'Do nothing
    +            Else
    +                'Browse for a local file whose revisions you want to see
    +                Dim fileName As String = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(fileName)
    +                aFile = vault1.GetFileFromPath(fileName, folder)
    + 
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.RevisionButton = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(24, 27)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(27, 44)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(166, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(27, 95)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(206, 17)
    +        Me.FileListBox.TabIndex = 2
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(239, 89)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(62, 23)
    +        Me.BrowseButton.TabIndex = 3
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'RevisionButton
    +        '
    +        Me.RevisionButton.Location = New System.Drawing.Point(27, 140)
    +        Me.RevisionButton.Name = "RevisionButton"
    +        Me.RevisionButton.Size = New System.Drawing.Size(88, 23)
    +        Me.RevisionButton.TabIndex = 4
    +        Me.RevisionButton.Text = "Get revisions"
    +        Me.RevisionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.RevisionButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(311, 195)
    +        Me.Controls.Add(Me.RevisionButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get revision names"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents RevisionButton As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/Get_and_Run_a_Task_Add-in_Example_CSharp.htm b/documentation/api_extracted/Get_and_Run_a_Task_Add-in_Example_CSharp.htm new file mode 100644 index 0000000..a407da9 --- /dev/null +++ b/documentation/api_extracted/Get_and_Run_a_Task_Add-in_Example_CSharp.htm @@ -0,0 +1,317 @@ + + + +Get and Run a Task Add-in Example (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Run a Task Add-in Example (C#)

    +

    This example shows how to get a task add-in that is +registered in the Admin tool and run it.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    +

    +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows +Forms Application.
    +//    b. Type TasksDemo in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs +with this code.
    +//    g. To create the form, replace the code +in Form1.Designer.cs with
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-
    click +the project
    +//    name in the Solution Explorer, click Add Reference, +click
    +//    Assemblies > Framework in the left-side panel, browse to +the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +select
    +//    EPDM.Interop.epdm.dll, click Open, click Add, +and click Close).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, +and set
    +//    Embed Interop Types to False to handle +methods that pass arrays of
    +//    structures.
    +// 4. Ensure that a task add-in has been registered with the Administration tool.
    +// 5. Ensure that a task to run the task add-in has been created in the
    +//    Administration +tool.
    +// 6. Ensure that your vault has permission to run the task add-in by selecting
    +//    Permit in Task Host Configuration dialog. +(Right-click the SOLIDWORKS PDM
    +//    icon on the notification tool bar and select Task Host +Configuration.)
    +// 7. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions:
    +
    // +1. In the Vaults dropdown, select the vault permitted to run the task add-in.
    +// 2. Click Log In.

    +// 3. In the Tasks dropdown, select the task to run.
    +// 4. Click Select Files to select any files that are required for the +task.
    +// 5. Click Run Task.
    +//----------------------------------------------------------------------------

    +

    + +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Threading.Tasks;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace TasksDemo
    +{
    +    public partial class Form1 : Form
    +    {
    +        IEdmVault5 vault5;
    +        IEdmVault20 vault20;
    +        IEdmTaskMgr TaskMgr;
    +        EdmStrLst5 files;
    +        class CustomComboType
    +        {
    +            public EdmTaskInfo TaskInfo;
    +            public override string ToString()
    +            {
    +                return TaskInfo.mbsTaskName;
    +            }
    +        }
    +        public Form1()
    +        {
    +            InitializeComponent();
    +            vault5 = new EdmVault5();
    +            vault20 = (IEdmVault20)vault5;
    +            EdmViewInfo[] Views = new EdmViewInfo[1];
    +            vault20.GetVaultViews(out Views, false);
    +            foreach (EdmViewInfo view in Views)
    +                comboBox1.Items.Add(view.mbsVaultName);
    +            if (comboBox1.Items.Count > 0)
    +                comboBox1.Text = comboBox1.Items[0].ToString();
    +        }

    +        private void button1_Click(object sender, EventArgs e)
    +        {
    +            //Create a file vault interface and log into a vault
    +            if (comboBox1.Text != string.Empty)
    +            {
    +                vault20.LoginAuto(comboBox1.Text, this.Handle.ToInt32());
    +                TaskMgr = (IEdmTaskMgr)vault20.CreateUtility(EdmUtility.EdmUtil_TaskMgr);
    +                System.Array Tasks = TaskMgr.GetTasks();

    +                foreach (EdmTaskInfo task in Tasks)
    +                    comboBox2.Items.Add( new CustomComboType { TaskInfo = task });
    +                if (comboBox2.Items.Count > 0)
    +                    comboBox2.SelectedItem = comboBox2.Items[0];
    +            }
    +        }

    +        private void button2_Click(object sender, EventArgs e)
    +        {
    +            files  = vault20.BrowseForFile(this.Handle.ToInt32(),
    +                (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles,
    +                "SOLIDWORKS files " + "(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + "All Files (*.*)|*.*||""""",
    +                vault20.RootFolderPath, "Select Files");

    +        }

    +        private void button3_Click(object sender, EventArgs e)
    +        {
    +            EdmSelItem2[] selection = new EdmSelItem2[files.Count];
    +            IEdmPos5 pos = files.GetHeadPosition();
    +            int counter = 0;
    +            while(!pos.IsNull)
    +            {
    +                IEdmFolder5 parentFolder = null;
    +                IEdmFile5 file = vault20.GetFileFromPath(files.GetNext(pos), out parentFolder);
    +                selection[counter].mlID = file.ID;
    +                selection[counter].mlParentID = parentFolder.ID;
    +                selection[counter].mlVersion = file.CurrentVersion;
    +                selection[counter].meType = EdmObjectType.EdmObject_File;
    +            }
    +            TaskMgr.RunTask(((CustomComboType)comboBox2.SelectedItem).TaskInfo, selection, this.Handle.ToInt32());
    +        }
    +    }
    +}

    +

     

    +

     

    +

    +Back to top

    +

     

    +

    + +//Form1.Designer

    +

    +namespace TasksDemo
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.comboBox1 = new System.Windows.Forms.ComboBox();
    +            this.comboBox2 = new System.Windows.Forms.ComboBox();
    +            this.button1 = new System.Windows.Forms.Button();
    +            this.button2 = new System.Windows.Forms.Button();
    +            this.button3 = new System.Windows.Forms.Button();
    +            this.label1 = new System.Windows.Forms.Label();
    +            this.label2 = new System.Windows.Forms.Label();
    +            this.SuspendLayout();
    +            // 
    +            // comboBox1
    +            // 
    +            this.comboBox1.DisplayMember = "mbsVaultName";
    +            this.comboBox1.FormattingEnabled = true;
    +            this.comboBox1.Location = new System.Drawing.Point(50, 12);
    +            this.comboBox1.Name = "comboBox1";
    +            this.comboBox1.Size = new System.Drawing.Size(121, 21);
    +            this.comboBox1.TabIndex = 0;
    +            // 
    +            // comboBox2
    +            // 
    +            this.comboBox2.FormattingEnabled = true;
    +            this.comboBox2.Location = new System.Drawing.Point(50, 66);
    +            this.comboBox2.Name = "comboBox2";
    +            this.comboBox2.Size = new System.Drawing.Size(121, 21);
    +            this.comboBox2.TabIndex = 1;
    +            // 
    +            // button1
    +            // 
    +            this.button1.Location = new System.Drawing.Point(50, 37);
    +            this.button1.Name = "button1";
    +            this.button1.Size = new System.Drawing.Size(121, 23);
    +            this.button1.TabIndex = 2;
    +            this.button1.Text = "Log +In";
    +            this.button1.UseVisualStyleBackColor = true;
    +            this.button1.Click += new System.EventHandler(this.button1_Click);
    +            // 
    +            // button2
    +            // 
    +            this.button2.Location = new System.Drawing.Point(50, 93);
    +            this.button2.Name = "button2";
    +            this.button2.Size = new System.Drawing.Size(121, 23);
    +            this.button2.TabIndex = 3;
    +            this.button2.Text = "Select +Files";
    +            this.button2.UseVisualStyleBackColor = true;
    +            this.button2.Click += new System.EventHandler(this.button2_Click);
    +            // 
    +            // button3
    +            // 
    +            this.button3.Location = new System.Drawing.Point(50, 123);
    +            this.button3.Name = "button3";
    +            this.button3.Size = new System.Drawing.Size(121, 23);
    +            this.button3.TabIndex = 4;
    +            this.button3.Text = "Run Task";
    +            this.button3.UseVisualStyleBackColor = true;
    +            this.button3.Click += new System.EventHandler(this.button3_Click);
    +            // 
    +            // label1
    +            // 
    +            this.label1.AutoSize = true;
    +            this.label1.Location = new System.Drawing.Point(2, 19);
    +            this.label1.Name = "label1";
    +            this.label1.Size = new System.Drawing.Size(39, 13);
    +            this.label1.TabIndex = 5;
    +            this.label1.Text = "Vaults:";
    +            // 
    +            // label2
    +            // 
    +            this.label2.AutoSize = true;
    +            this.label2.Location = new System.Drawing.Point(5, 74);
    +            this.label2.Name = "label2";
    +            this.label2.Size = new System.Drawing.Size(39, 13);
    +            this.label2.TabIndex = 6;
    +            this.label2.Text = "Tasks:";
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(178, 150);
    +            this.Controls.Add(this.label2);
    +            this.Controls.Add(this.label1);
    +            this.Controls.Add(this.button3);
    +            this.Controls.Add(this.button2);
    +            this.Controls.Add(this.button1);
    +            this.Controls.Add(this.comboBox2);
    +            this.Controls.Add(this.comboBox1);
    +            this.Name = "Form1";
    +            this.Text = "Tasks API Demo";
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.ComboBox comboBox1;
    +        private System.Windows.Forms.ComboBox comboBox2;
    +        private System.Windows.Forms.Button button1;
    +        private System.Windows.Forms.Button button2;
    +        private System.Windows.Forms.Button button3;
    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Label label2;
    +    }
    +}

    +

     

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_CSharp.htm b/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_CSharp.htm new file mode 100644 index 0000000..1b0f4b4 --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_CSharp.htm @@ -0,0 +1,650 @@ + + + +Get and Set Folder Permissions Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Folder Permissions Example (C#)

    +

    This example shows how to create an application that displays a form in which +a user can assign permissions to folders for users +and groups in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    //----------------------------------------------------------------------------
    +// Preconditions:
    //  1. Start Microsoft Visual Studio.
    //  2. Click +File > New > Project > Visual Basic > Windows Forms Application.
    +//  3. Type CallingCSharp in Name.
    //  4. Click +Browse and navigate to the folder where to create the project.
    //  +5. Click OK.
    //  6. Create a form similar to the form shown +above with the following names for the form controls:
    //     +a. Label1 (label control with text, "Select vault:")
    //     +b. comboVault (combo box control)
    //     c. buttonLogIn +(button with text, "Log In")
    //     +d. Label2 (label with text, "Users")
    +
    //     e. buttonRefresh (button with +text, "Refresh Permissions")
    +//     f. listViewUsers (list view control)
    +
    //        ColumnHeader1 (ID)
    +
    //        ColumnHeader2 (Name)
    +
    //        ColumnHeader3 (Folder +ID)
    +
    //        ColumnHeader7 (Folder)
    +
    //        ColumnHeader8 (Folder +Permissions)
    +//     g. Label3 (label with text, "Groups")
    +
    //     h. listViewGroups (list view control)
    +
    //        ColumnHeader4 (ID)
    +
    //        ColumnHeader5 (Name)
    +
    //        ColumnHeader6 (Folder +ID)
    +
    //        ColumnHeader9 (Folder)
    +
    //        ColumnHeader10 (Folder +Permissions)
    +//     i. listViewPermissions (list view control)
    +//     j. checkboxReverseOrder (check box with text, "Reverse Order")
    +//     k. buttonApply (button with text, +"Apply Permissions")
    +
    +//  7. Replace the code in Form1.cs with this code.
    +//  8. Replace the code in Form1.Designer.cs with +this code.

    //  9. Add +EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add +Reference, click Assemblies > Framework in the
    +//     left-side panel, browse to the top folder of your +SOLIDWORKS PDM Professional installation,
    +//     locate and click EPDM.Interop.epdm.dll, click +Open, click Add, and click Close).
    +// 10. Right-click References > EPDM.Interop.epdm, click Properties, and set +
    +
    //     Embed Interop Types to False to +handle methods
    +//     that pass arrays of structures.
    // 11. Click +Debug > Start Debugging or press F5.
    +//
    +// Postconditions:
    +// 1. In the Form1 dialog, select a vault and click Log In.
    +//    Wait for the application to populate the Users and Groups +list boxes.
    +// 2. Click permissions in the list box located left of the Reverse +Order check box.
    +// 3. Optionally select the Reverse Order check box.
    +// 4. Select the check boxes in front of the users and folders to which to +assign permissions.
    +// 5. Click Apply Permissions.
    +//    Wait for the application to populate the Users list.
    +//    The folder permissions are updated for the selected users.
    +// 6. Select the check boxes in front of the groups and folders to which to +assign permissions.
    +// 7. Click Apply Permissions.
    +//    Wait for the application to populate the Groups list.
    +//    The folder permissions are updated for the selected groups.
    +//---------------------------------------------------------------------------- +

    +


    +// Form1.cs

    + +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;

    +namespace CallingCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        IEdmVault5 vault1;
    +        IEdmVault8 vault;
    +        private Dictionary<intstring> folders;
    +        String val;
    +        private enum MyEdmRightsFlags : int
    +        {
    +            MyRight_All = EdmRightFlags.EdmRight_All,
    +            MyRight_None = EdmRightFlags.EdmRight_None,
    +            MyRight_Read = EdmRightFlags.EdmRight_Read,
    +            MyRight_Lock = EdmRightFlags.EdmRight_Lock,
    +            MyRight_Delete = EdmRightFlags.EdmRight_Delete,
    +            MyRight_AddRename = EdmRightFlags.EdmRight_Add,
    +            MyRight_Share = EdmRightFlags.EdmRight_Share,
    +            MyRight_IncrementRevision = EdmRightFlags.EdmRight_IncrementRevision,
    +            MyRight_AddDeleteFolder = EdmRightFlags.EdmRight_AddFolder,
    +            MyRight_RecoverTrash = EdmRightFlags.EdmRight_RecoverTrash,
    +            MyRight_DestroyTrash = EdmRightFlags.EdmRight_DestroyTrash,
    +            MyRight_EditFolderCard = EdmRightFlags.EdmRight_EditFolderCard,
    +            MyRight_BomActivate = EdmRightFlags.EdmRight_BomActivate,
    +            MyRight_MaySeeComputedBOM = EdmRightFlags.EdmRight_MaySeeComputedBOM,
    +            MyRight_AssignGroupMembership = 0x1000,
    +            MyRightAssignFilePermissions = 0x2000,
    +            MyRight_PermitGroupAccess = 0x4000,
    +            MyRight_ReadNamedBOM = 0x8000,
    +            MyRight_ChangeCard = EdmRightFlags.EdmRight_ChangeCard,
    +            MyRight_ShowWorkingVersion = EdmRightFlags.EdmRight_ShowWorkingVersion,
    +            MyRight_Rollback = EdmRightFlags.EdmRight_Rollback,
    +            MyRight_ColdStoreRestore = EdmRightFlags.EdmRight_ColdStoreRestore,
    +            MyRight_EditVerFreeVarData = EdmRightFlags.EdmRight_EditVerFreeVarData
    +        }

    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] aViews = null;
    +                vault.GetVaultViews(out aViews, false);
    +                comboVault.Items.Clear();
    +                if (aViews != null)
    +                {
    +                    foreach (EdmViewInfo View in aViews)
    +                    {
    +                        comboVault.Items.Add(View.mbsVaultName);
    +                    }
    +                    comboVault.SelectedIndex = 0;
    +                }

    +                Dictionary<MyEdmRightsFlagsString> RightLabels = new Dictionary<MyEdmRightsFlagsString>()
    +            {{MyEdmRightsFlags.MyRight_Read, "Read file contents"}, {MyEdmRightsFlags.MyRight_Lock, "Check out file"}, {MyEdmRightsFlags.MyRight_Delete, "Delete file"}, {MyEdmRightsFlags.MyRight_AddRename, "Add or rename file"},{MyEdmRightsFlags.MyRight_Share, "Share file to another folder"}, {MyEdmRightsFlags.MyRight_IncrementRevision, "Increment revision of a file"}, {MyEdmRightsFlags.MyRight_AddDeleteFolder, "Add or delete a folder"}, {MyEdmRightsFlags.MyRight_RecoverTrash, "Recover files from recycle bin"}, {MyEdmRightsFlags.MyRight_DestroyTrash, "Destroy"}, {MyEdmRightsFlags.MyRight_EditFolderCard, "Edit folder card data"}, {MyEdmRightsFlags.MyRight_BomActivate, "Activate computed BOM"}, {MyEdmRightsFlags.MyRight_MaySeeComputedBOM, "See computed BOM"}, {MyEdmRightsFlags.MyRight_AssignGroupMembership, "Assign group membership"}, {MyEdmRightsFlags.MyRightAssignFilePermissions, "Assign File permissions"}, {MyEdmRightsFlags.MyRight_PermitGroupAccess, "Permit or deny group-level access to files"}, {MyEdmRightsFlags.MyRight_ReadNamedBOM, "Read named bill of materials"}, {MyEdmRightsFlags.MyRight_ChangeCard, "Can update the design of cards"}, {MyEdmRightsFlags.MyRight_ShowWorkingVersion, "Show working versions of files"}, {MyEdmRightsFlags.MyRight_Rollback, "Rollback"},{MyEdmRightsFlags.MyRight_ColdStoreRestore, "Restore file from cold storage"}, {MyEdmRightsFlags.MyRight_EditVerFreeVarData, "Edit version free variable data"}};

    +                foreach (MyEdmRightsFlags flag in Enum.GetValues(typeof(MyEdmRightsFlags)))
    +                {
    +                    if (RightLabels.ContainsKey(flag))
    +                    {
    +                        String val;
    +                        RightLabels.TryGetValue(flag, out val);
    +                        ListViewItem rightItem = listViewPermissions.Items.Add(val);
    +                        rightItem.Tag = flag;
    +                    }
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void buttonLogIn_Click(object sender, System.EventArgs e)
    +        {
    +            try {
    +            vault.LoginAuto(comboVault.Text, (int)this.Handle);
    +            comboVault.Enabled = false;
    +            buttonLogIn.Enabled = false;
    +            buttonApply.Enabled = true;
    +            buttonRefresh.Enabled = true;

    +            folders = new Dictionary<intstring>();

    +            IEdmFolder7 rootFolder = (IEdmFolder7)vault.RootFolder;
    +            BuildFolderDictionary(rootFolder);

    +            ShowAllUserPermissions();
    +            ShowAllGroupPermissions();
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void BuildFolderDictionary(IEdmFolder7 folder)
    +        {
    +            folders.Add(folder.ID, folder.LocalPath);

    +            IEdmPos5 posSubFolder = folder.GetFirstSubFolderPosition();
    +            while (!(posSubFolder.IsNull))
    +            {
    +                IEdmFolder7 subFolder = (IEdmFolder7)folder.GetNextSubFolder(posSubFolder);
    +                BuildFolderDictionary(subFolder);
    +            }
    +        }

    +        private void ShowAllUserPermissions()
    +        {
    +            listViewUsers.Items.Clear();
    +            IEdmUserMgr7 userMgr = (IEdmUserMgr7)vault;
    +            IEdmPos5 userPos = userMgr.GetFirstUserPosition();
    +            while (!(userPos.IsNull))
    +            {
    +                IEdmUser5 user = (IEdmUser5)userMgr.GetNextUser(userPos);

    +                foreach (int folderID in folders.Keys)
    +                {
    +                    EdmFolderPermission[] aPermissions = null;
    +                    userMgr.GetFolderPermissions(user.ID, user.ObjectType, folderID, (int)EdmGetPermFlag.EdmGetPerm_OnlyExplicitlySet, out aPermissions);

    +                    if (aPermissions != null && aPermissions.Length > 0)
    +                    {
    +                        ListViewItem itemUser = listViewUsers.Items.Add(user.ID.ToString());
    +                        itemUser.SubItems.Add(user.Name);
    +                        itemUser.SubItems.Add(folderID.ToString());
    +                        folders.TryGetValue(folderID, out val);
    +                        itemUser.SubItems.Add(val);
    +                        EdmFolderPermission folderPermission = (EdmFolderPermission)aPermissions.GetValue(0);
    +                        itemUser.SubItems.Add(folderPermission.mlEdmRightFlag.ToString());
    +                    }
    +                }
    +            }
    +        }

    +        private void ShowAllGroupPermissions()
    +        {
    +            listViewGroups.Items.Clear();
    +            IEdmUserMgr7 userMgr = (IEdmUserMgr7)vault;
    +            IEdmPos5 groupPos = userMgr.GetFirstUserGroupPosition();
    +            while (!(groupPos.IsNull))
    +            {
    +                IEdmUserGroup5 @group = (IEdmUserGroup5)userMgr.GetNextUserGroup(groupPos);

    +                foreach (int folderID in folders.Keys)
    +                {
    +                    EdmFolderPermission[] aPermissions = null;
    +                    userMgr.GetFolderPermissions(@group.ID, @group.ObjectType, folderID, 0, out aPermissions);

    +                    if (aPermissions != null && aPermissions.Length > 0)
    +                    {
    +                        ListViewItem itemGroup = listViewGroups.Items.Add(@group.ID.ToString());
    +                        itemGroup.SubItems.Add(@group.Name);
    +                        itemGroup.SubItems.Add(folderID.ToString());
    +                        folders.TryGetValue(folderID, out val);
    +                        itemGroup.SubItems.Add(val);
    +                        EdmFolderPermission folderPermission = (EdmFolderPermission)aPermissions.GetValue(0);
    +                        itemGroup.SubItems.Add(folderPermission.mlEdmRightFlag.ToString());
    +                    }
    +                }
    +            }
    +        }

    +        private void buttonApply_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                int assignedRights = 0;
    +                foreach (ListViewItem rightItem in listViewPermissions.Items)
    +                {
    +                    if (rightItem.Checked)
    +                    {
    +                        assignedRights = assignedRights | (int)rightItem.Tag;
    +                    }
    +                }

    +                IEdmUserMgr7 userMgr = (IEdmUserMgr7)vault;

    +                List<EdmFolderPermission> listPermissions = new List<EdmFolderPermission>();
    +                foreach (ListViewItem itemUser in listViewUsers.Items)
    +                {
    +                    if (itemUser.Checked)
    +                    {
    +                        int folderID = Convert.ToInt32(itemUser.SubItems[2].Text);
    +                        EdmFolderPermission permission = default(EdmFolderPermission);
    +                        {
    +                            permission.mlFolderID = folderID;
    +                            permission.mlOwnerID = Convert.ToInt32(itemUser.SubItems[0].Text);
    +                            permission.meOwnerType = EdmObjectType.EdmObject_User;
    +                            permission.mlEdmRightFlag = assignedRights;
    +                        }
    +                        listPermissions.Add(permission);
    +                    }
    +                }

    +                foreach (ListViewItem itemGroup in listViewGroups.Items)
    +                {
    +                    if (itemGroup.Checked)
    +                    {
    +                        int folderID = Convert.ToInt32(itemGroup.SubItems[2].Text);
    +                        EdmFolderPermission permission = default(EdmFolderPermission);
    +                        {
    +                            permission.mlFolderID = folderID;
    +                            permission.mlOwnerID = Convert.ToInt32(itemGroup.SubItems[0].Text);
    +                            permission.meOwnerType = EdmObjectType.EdmObject_UserGroup;
    +                            permission.mlEdmRightFlag = assignedRights;
    +                        }
    +                        listPermissions.Add(permission);
    +                    }
    +                }

    +                if (checkboxReverseOrder.Checked)
    +                    listPermissions.Reverse();

    +                EdmFolderPermission[] permissions = listPermissions.ToArray();
    +                userMgr.SetFolderPermissions(permissions);

    +                ShowAllGroupPermissions();
    +                ShowAllUserPermissions();
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void buttonRefresh_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                ShowAllGroupPermissions();
    +                ShowAllUserPermissions();
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +     
    +    }

    +}
    +
    +// Form1.Designer.cs

    +

    + +namespace CallingCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.buttonLogIn = new System.Windows.Forms.Button();
    +            this.label2 = new System.Windows.Forms.Label();
    +            this.buttonRefresh = new System.Windows.Forms.Button();
    +            this.label3 = new System.Windows.Forms.Label();
    +            this.checkboxReverseOrder = new System.Windows.Forms.CheckBox();
    +            this.buttonApply = new System.Windows.Forms.Button();
    +            this.listViewUsers = new System.Windows.Forms.ListView();
    +            this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.listViewGroups = new System.Windows.Forms.ListView();
    +            this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader9 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.columnHeader10 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
    +            this.listViewPermissions = new System.Windows.Forms.ListView();
    +            this.comboVault = new System.Windows.Forms.ComboBox();
    +            this.label4 = new System.Windows.Forms.Label();
    +            this.SuspendLayout();
    +            // 
    +            // buttonLogIn
    +            // 
    +            this.buttonLogIn.Location = new System.Drawing.Point(518, 27);
    +            this.buttonLogIn.Name = "buttonLogIn";
    +            this.buttonLogIn.Size = new System.Drawing.Size(75, 23);
    +            this.buttonLogIn.TabIndex = 2;
    +            this.buttonLogIn.Text = "Log In";
    +            this.buttonLogIn.UseVisualStyleBackColor = true;
    +            this.buttonLogIn.Click += new System.EventHandler(this.buttonLogIn_Click);
    +            // 
    +            // label2
    +            // 
    +            this.label2.AutoSize = true;
    +            this.label2.Location = new System.Drawing.Point(38, 85);
    +            this.label2.Name = "label2";
    +            this.label2.Size = new System.Drawing.Size(37, 13);
    +            this.label2.TabIndex = 3;
    +            this.label2.Text = "Users";
    +            // 
    +            // buttonRefresh
    +            // 
    +            this.buttonRefresh.Location = new System.Drawing.Point(518, 75);
    +            this.buttonRefresh.Name = "buttonRefresh";
    +            this.buttonRefresh.Size = new System.Drawing.Size(126, 23);
    +            this.buttonRefresh.TabIndex = 4;
    +            this.buttonRefresh.Text = "Refresh Permissions";
    +            this.buttonRefresh.UseVisualStyleBackColor = true;
    +            this.buttonRefresh.Click += new System.EventHandler(this.buttonRefresh_Click);
    +            // 
    +            // label3
    +            // 
    +            this.label3.AutoSize = true;
    +            this.label3.Location = new System.Drawing.Point(38, 227);
    +            this.label3.Name = "label3";
    +            this.label3.Size = new System.Drawing.Size(44, 13);
    +            this.label3.TabIndex = 6;
    +            this.label3.Text = "Groups";
    +            // 
    +            // checkboxReverseOrder
    +            // 
    +            this.checkboxReverseOrder.AutoSize = true;
    +            this.checkboxReverseOrder.Location = new System.Drawing.Point(518, 368);
    +            this.checkboxReverseOrder.Name = "checkboxReverseOrder";
    +            this.checkboxReverseOrder.Size = new System.Drawing.Size(95, 17);
    +            this.checkboxReverseOrder.TabIndex = 9;
    +            this.checkboxReverseOrder.Text = "Reverse Order";
    +            this.checkboxReverseOrder.UseVisualStyleBackColor = true;
    +            // 
    +            // buttonApply
    +            // 
    +            this.buttonApply.Location = new System.Drawing.Point(518, 407);
    +            this.buttonApply.Name = "buttonApply";
    +            this.buttonApply.Size = new System.Drawing.Size(126, 23);
    +            this.buttonApply.TabIndex = 10;
    +            this.buttonApply.Text = "Apply Permissions";
    +            this.buttonApply.UseVisualStyleBackColor = true;
    +            this.buttonApply.Click += new System.EventHandler(buttonApply_Click);
    +            // 
    +            // listViewUsers
    +            // 
    +            this.listViewUsers.CheckBoxes = true;
    +            this.listViewUsers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
    +            this.columnHeader1,
    +            this.columnHeader2,
    +            this.columnHeader3,
    +            this.columnHeader7,
    +            this.columnHeader8});
    +            this.listViewUsers.Location = new System.Drawing.Point(38, 112);
    +            this.listViewUsers.Name = "listViewUsers";
    +            this.listViewUsers.Size = new System.Drawing.Size(501, 97);
    +            this.listViewUsers.TabIndex = 11;
    +            this.listViewUsers.UseCompatibleStateImageBehavior = false;
    +            this.listViewUsers.View = System.Windows.Forms.View.Details;
    +            // 
    +            // columnHeader1
    +            // 
    +            this.columnHeader1.Text = "ID";
    +            this.columnHeader1.Width = 41;
    +            // 
    +            // columnHeader2
    +            // 
    +            this.columnHeader2.Text = "Name";
    +            this.columnHeader2.Width = 137;
    +            // 
    +            // columnHeader3
    +            // 
    +            this.columnHeader3.Text = "Folder ID";
    +            // 
    +            // columnHeader7
    +            // 
    +            this.columnHeader7.Text = "Folder";
    +            this.columnHeader7.Width = 152;
    +            // 
    +            // columnHeader8
    +            // 
    +            this.columnHeader8.Text = "Folder Permissions";
    +            this.columnHeader8.Width = 108;
    +            // 
    +            // listViewGroups
    +            // 
    +            this.listViewGroups.CheckBoxes = true;
    +            this.listViewGroups.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
    +            this.columnHeader4,
    +            this.columnHeader5,
    +            this.columnHeader6,
    +            this.columnHeader9,
    +            this.columnHeader10});
    +            this.listViewGroups.Location = new System.Drawing.Point(38, 257);
    +            this.listViewGroups.Name = "listViewGroups";
    +            this.listViewGroups.Size = new System.Drawing.Size(501, 97);
    +            this.listViewGroups.TabIndex = 12;
    +            this.listViewGroups.UseCompatibleStateImageBehavior = false;
    +            this.listViewGroups.View = System.Windows.Forms.View.Details;
    +            // 
    +            // columnHeader4
    +            // 
    +            this.columnHeader4.Text = "ID";
    +            this.columnHeader4.Width = 41;
    +            // 
    +            // columnHeader5
    +            // 
    +            this.columnHeader5.Text = "Name";
    +            this.columnHeader5.Width = 137;
    +            // 
    +            // columnHeader6
    +            // 
    +            this.columnHeader6.Text = "Folder ID";
    +            // 
    +            // columnHeader9
    +            // 
    +            this.columnHeader9.Text = "Folder";
    +            this.columnHeader9.Width = 152;
    +            // 
    +            // columnHeader10
    +            // 
    +            this.columnHeader10.Text = "Folder Permissions";
    +            this.columnHeader10.Width = 108;
    +            // 
    +            // listViewPermissions
    +            // 
    +            this.listViewPermissions.CheckBoxes = true;
    +            this.listViewPermissions.Location = new System.Drawing.Point(38, 383);
    +            this.listViewPermissions.Name = "listViewPermissions";
    +            this.listViewPermissions.Size = new System.Drawing.Size(431, 97);
    +            this.listViewPermissions.TabIndex = 13;
    +            this.listViewPermissions.UseCompatibleStateImageBehavior = false;
    +            this.listViewPermissions.View = System.Windows.Forms.View.List;
    +            // 
    +            // comboVault
    +            // 
    +            this.comboVault.FormattingEnabled = true;
    +            this.comboVault.Location = new System.Drawing.Point(108, 27);
    +            this.comboVault.Name = "comboVault";
    +            this.comboVault.Size = new System.Drawing.Size(361, 21);
    +            this.comboVault.TabIndex = 14;
    +            // 
    +            // label4
    +            // 
    +            this.label4.AutoSize = true;
    +            this.label4.Location = new System.Drawing.Point(38, 27);
    +            this.label4.Name = "label4";
    +            this.label4.Size = new System.Drawing.Size(66, 13);
    +            this.label4.TabIndex = 15;
    +            this.label4.Text = "Select vault:";
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(749, 516);
    +            this.Controls.Add(this.label4);
    +            this.Controls.Add(this.comboVault);
    +            this.Controls.Add(this.listViewPermissions);
    +            this.Controls.Add(this.listViewGroups);
    +            this.Controls.Add(this.listViewUsers);
    +            this.Controls.Add(this.buttonApply);
    +            this.Controls.Add(this.checkboxReverseOrder);
    +            this.Controls.Add(this.label3);
    +            this.Controls.Add(this.buttonRefresh);
    +            this.Controls.Add(this.label2);
    +            this.Controls.Add(this.buttonLogIn);
    +            this.Name = "Form1";
    +            this.Text = "Folder Permissions";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Button buttonLogIn;
    +        private System.Windows.Forms.Label label2;
    +        private System.Windows.Forms.Button buttonRefresh;
    +        private System.Windows.Forms.Label label3;
    +        private System.Windows.Forms.CheckBox checkboxReverseOrder;
    +        private System.Windows.Forms.Button buttonApply;
    +        private System.Windows.Forms.ListView listViewUsers;
    +        private System.Windows.Forms.ListView listViewGroups;
    +        private System.Windows.Forms.ListView listViewPermissions;
    +        private System.Windows.Forms.ComboBox comboVault;
    +        public System.Windows.Forms.ColumnHeader columnHeader1;
    +        public System.Windows.Forms.ColumnHeader columnHeader2;
    +        public System.Windows.Forms.ColumnHeader columnHeader3;
    +        public System.Windows.Forms.ColumnHeader columnHeader7;
    +        public System.Windows.Forms.ColumnHeader columnHeader8;
    +        public System.Windows.Forms.ColumnHeader columnHeader4;
    +        public System.Windows.Forms.ColumnHeader columnHeader5;
    +        public System.Windows.Forms.ColumnHeader columnHeader6;
    +        public System.Windows.Forms.ColumnHeader columnHeader9;
    +        public System.Windows.Forms.ColumnHeader columnHeader10;
    +        private System.Windows.Forms.Label label4;
    +    }
    +}

    +

     

    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_VBNET.htm b/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_VBNET.htm new file mode 100644 index 0000000..9b83988 --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Folder_Permissions_Example_VBNET.htm @@ -0,0 +1,553 @@ + + + +Get and Set Folder Permissions Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Folder Permissions Example (VB.NET)

    +

    This example shows how to create an application that displays a form in which +a user can assign permissions to folders for users +and groups in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    +

    '----------------------------------------------------------------------------
    ' Preconditions:
    '  1. Start Microsoft Visual Studio.
    '  2. Click +File > New > Project > Visual Basic > Windows Forms Application.
    '  3. Type the name of your project in Name.
    +'  4. Click Browse and navigate to the folder where to create the project.
    '  +5. Click OK.
    '  6. Create a form similar to the form shown above +with the following controls:
    '     a. Label1 +(label control with text, "Select vault:")
    '     b. +comboVault (combo box)
    '     c. buttonLogIn +(button with text, "Log In")
    '     d. +Label2 (label with text, "Users")
    +
    '     e. buttonRefresh (button with text, +"Refresh Permissions")
    +'     f. listViewUsers (list view control)
    +'        ColumnHeader1
    (ID)
    +'        ColumnHeader2
    (Name)
    +'        ColumnHeader3
    (Folder ID)
    +'        ColumnHeader7
    (Folder)
    +'        ColumnHeader8
    (Folder +Permissions)
    +'     g. Label3 (label with text, "Groups")
    +'    
    h. listViewGroups (list view control)
    +'        ColumnHeader4
    (ID)
    +'        ColumnHeader5
    (Name)
    +'        ColumnHeader6
    (Folder ID)
    +'        ColumnHeader9
    (Folder)
    +'        ColumnHeader10
    (Folder +Permissions)
    +'     i. listViewPermissions (list view control)
    +'     j. checkboxReverseOrder (check box with text, "Reverse Order")
    +'     k. buttonApply (button with text, +"Apply Permissions")
    '  +7. Replace the code in Form1.vb with +this code.
    +'  8. Replace the code in Form1.Designer.vb with +this code.

    '  9. Add +EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add +Reference, click Assemblies > Framework in the
    +'     left-side panel, browse to the top folder of your +SOLIDWORKS PDM Professional installation,
    +'     locate and click EPDM.Interop.epdm.dll, click +Open, click Add, and click Close).
    +' 10. Right-click References > EPDM.Interop.epdm, click Properties, and set +
    +'     Embed Interop Types
    to False to +handle methods
    +'     that pass arrays of structures.
    ' 11. Click +Debug > Start Debugging or press F5.
    +'
    +' Postconditions:
    +' 1. In the Form1 dialog, select a vault and click Log In.
    +'    Wait for the application to populate the Users and Groups +list boxes.
    +' 2. Click permissions in the list box located left of the Reverse +Order check box.
    +' 3. Optionally select the Reverse Order check box.
    +' 4. Select the check boxes in front of the users and folders to which to assign +permissions.
    +' 5. Click Apply Permissions.
    +'    Wait for the application to populate the Users list.
    +'    The folder permissions are updated for the selected users.
    +' 6. Select the check boxes in front of the groups and folders to which to +assign permissions.
    +' 7. Click Apply Permissions.
    +'    Wait for the application to populate the Groups list.
    +'    The folder permissions are updated for the selected groups.
    +'----------------------------------------------------------------------------
    +
    +' Form1.vb
    +

    +

    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +    Private vault As IEdmVault8
    +    Private folders As Dictionary(Of IntegerString)

    +    Private Enum MyEdmRightsFlags As Integer
    +        MyRight_All = EdmRightFlags.EdmRight_All
    +        MyRight_None = EdmRightFlags.EdmRight_None
    +        MyRight_Read = EdmRightFlags.EdmRight_Read
    +        MyRight_Lock = EdmRightFlags.EdmRight_Lock
    +        MyRight_Delete = EdmRightFlags.EdmRight_Delete
    +        MyRight_AddRename = EdmRightFlags.EdmRight_Add
    +        MyRight_Share = EdmRightFlags.EdmRight_Share
    +        MyRight_IncrementRevision = EdmRightFlags.EdmRight_IncrementRevision
    +        MyRight_AddDeleteFolder = EdmRightFlags.EdmRight_AddFolder
    +        MyRight_RecoverTrash = EdmRightFlags.EdmRight_RecoverTrash
    +        MyRight_DestroyTrash = EdmRightFlags.EdmRight_DestroyTrash
    +        MyRight_EditFolderCard = EdmRightFlags.EdmRight_EditFolderCard
    +        MyRight_BomActivate = EdmRightFlags.EdmRight_BomActivate
    +        MyRight_MaySeeComputedBOM = EdmRightFlags.EdmRight_MaySeeComputedBOM
    +        MyRight_AssignGroupMembership = &H1000
    +        MyRightAssignFilePermissions = &H2000
    +        MyRight_PermitGroupAccess = &H4000
    +        MyRight_ReadNamedBOM = &H8000
    +        MyRight_ChangeCard = EdmRightFlags.EdmRight_ChangeCard
    +        MyRight_ShowWorkingVersion = EdmRightFlags.EdmRight_ShowWorkingVersion
    +        MyRight_Rollback = EdmRightFlags.EdmRight_Rollback
    +        MyRight_ColdStoreRestore = EdmRightFlags.EdmRight_ColdStoreRestore
    +        MyRight_EditVerFreeVarData = EdmRightFlags.EdmRight_EditVerFreeVarData
    +    End Enum

    +    Private Sub Form1_Load(sender As System.Object, e As System.EventArgsHandles MyBase.Load
    +        vault = New EdmVault5
    +        Dim aViews As Array = Nothing
    +        vault.GetVaultViews(aViews, False)
    +        If aViews IsNot Nothing Then
    +            For Each View As EdmViewInfo In aViews
    +                comboVault.Items.Add(View.mbsVaultName)
    +            Next
    +            comboVault.SelectedIndex = 0
    +        End If

    +        Dim RightLabels As Dictionary(Of MyEdmRightsFlagsString) = New Dictionary(Of MyEdmRightsFlagsStringFrom _
    +            { _
    +                {MyEdmRightsFlags.MyRight_Read, "Read file contents"}, _
    +                {MyEdmRightsFlags.MyRight_Lock, "Check out file"}, _
    +                {MyEdmRightsFlags.MyRight_Delete, "Delete file"}, _
    +                {MyEdmRightsFlags.MyRight_AddRename, "Add or rename file"}, _
    +                {MyEdmRightsFlags.MyRight_Share, "Share file to another folder"}, _
    +                {MyEdmRightsFlags.MyRight_IncrementRevision, "Increment revision of a file"}, _
    +                {MyEdmRightsFlags.MyRight_AddDeleteFolder, "Add or delete a folder"}, _
    +                {MyEdmRightsFlags.MyRight_RecoverTrash, "Recover files from recycle bin"}, _
    +                {MyEdmRightsFlags.MyRight_DestroyTrash, "Destroy"}, _
    +                {MyEdmRightsFlags.MyRight_EditFolderCard, "Edit folder card data"}, _
    +                {MyEdmRightsFlags.MyRight_BomActivate, "Activate computed BOM"}, _
    +                {MyEdmRightsFlags.MyRight_MaySeeComputedBOM, "See computed BOM"}, _
    +                {MyEdmRightsFlags.MyRight_AssignGroupMembership, "Assign group membership"}, _
    +                {MyEdmRightsFlags.MyRightAssignFilePermissions, "Assign file permissions"}, _
    +                {MyEdmRightsFlags.MyRight_PermitGroupAccess, "Permit or deny group-level access to files"}, _
    +                {MyEdmRightsFlags.MyRight_ReadNamedBOM, "Read named bill of materials"}, _
    +                {MyEdmRightsFlags.MyRight_ChangeCard, "Can update the design of cards"}, _
    +                {MyEdmRightsFlags.MyRight_ShowWorkingVersion, "Show working versions of files"}, _
    +                {MyEdmRightsFlags.MyRight_Rollback, "Roll +back"}, _
    +                {MyEdmRightsFlags.MyRight_ColdStoreRestore, "Restore file from cold storage"}, _
    +                {MyEdmRightsFlags.MyRight_EditVerFreeVarData, "Edit version-free variable data"}
    +            }


    +        For Each flag As MyEdmRightsFlags In [Enum].GetValues(GetType(MyEdmRightsFlags))
    +            If RightLabels.ContainsKey(flag) Then
    +                Dim rightItem As ListViewItem = listViewPermissions.Items.Add(RightLabels(flag))
    +                rightItem.Tag = flag
    +            End If
    +        Next
    +    End Sub

    +    Private Sub buttonLogIn_Click(sender As Object, e As System.EventArgsHandles buttonLogIn.Click
    +        vault.LoginAuto(comboVault.Text, Me.Handle)
    +        comboVault.Enabled = False
    +        buttonLogIn.Enabled = False
    +        buttonApply.Enabled = True
    +        buttonRefresh.Enabled = True

    +        folders = New Dictionary(Of IntegerString)()

    +        Dim rootFolder As IEdmFolder7 = vault.RootFolder
    +        BuildFolderDictionary(rootFolder)

    +        ShowAllUserPermissions()
    +        ShowAllGroupPermissions()
    +    End Sub

    +    Private Sub BuildFolderDictionary(folder As IEdmFolder7)
    +        folders.Add(folder.ID, folder.LocalPath)

    +        Dim posSubFolder As IEdmPos5 = folder.GetFirstSubFolderPosition()
    +        Do Until posSubFolder.IsNull
    +            Dim subFolder As IEdmFolder7 = folder.GetNextSubFolder(posSubFolder)
    +            BuildFolderDictionary(subFolder)
    +        Loop
    +    End Sub

    +    Private Sub ShowAllUserPermissions()
    +        listViewUsers.Items.Clear()
    +        Dim userMgr As IEdmUserMgr7 = vault
    +        Dim userPos As IEdmPos5 = userMgr.GetFirstUserPosition()
    +        Do Until userPos.IsNull
    +            Dim user As IEdmUser5 = userMgr.GetNextUser(userPos)

    +            For Each folderID As Integer In folders.Keys
    +                Dim aPermissions As Array = Nothing
    +                userMgr.GetFolderPermissions(user.ID, user.ObjectType, folderID, EdmGetPermFlag.EdmGetPerm_OnlyExplicitlySet, aPermissions)

    +                If aPermissions IsNot Nothing AndAlso aPermissions.Length > 0 Then
    +                    Dim itemUser As ListViewItem = listViewUsers.Items.Add(user.ID.ToString())
    +                    itemUser.SubItems.Add(user.Name)
    +                    itemUser.SubItems.Add(folderID)
    +                    itemUser.SubItems.Add(folders(folderID))
    +                    Dim folderPermission As EdmFolderPermission = aPermissions.GetValue(0)
    +                    itemUser.SubItems.Add(folderPermission.mlEdmRightFlag.ToString())
    +                End If
    +            Next
    +        Loop
    +    End Sub

    +    Private Sub ShowAllGroupPermissions()
    +        listViewGroups.Items.Clear()
    +        Dim userMgr As IEdmUserMgr7 = vault
    +        Dim groupPos As IEdmPos5 = userMgr.GetFirstUserGroupPosition()
    +        Do Until groupPos.IsNull
    +            Dim group As IEdmUserGroup5 = userMgr.GetNextUserGroup(groupPos)

    +            For Each folderID As Integer In folders.Keys
    +                Dim aPermissions As Array = Nothing
    +                userMgr.GetFolderPermissions(group.ID, group.ObjectType, folderID, 0, aPermissions)

    +                If aPermissions IsNot Nothing AndAlso aPermissions.Length > 0 Then
    +                    Dim itemGroup As ListViewItem = listViewGroups.Items.Add(group.ID.ToString())
    +                    itemGroup.SubItems.Add(group.Name)
    +                    itemGroup.SubItems.Add(folderID)
    +                    itemGroup.SubItems.Add(folders(folderID))
    +                    Dim folderPermission As EdmFolderPermission = aPermissions.GetValue(0)
    +                    itemGroup.SubItems.Add(folderPermission.mlEdmRightFlag.ToString())
    +                End If
    +            Next
    +        Loop
    +    End Sub

    +    Private Sub buttonApply_Click(sender As System.Object, e As System.EventArgsHandles buttonApply.Click
    +        Dim assignedRights As Integer = 0
    +        For Each rightItem As ListViewItem In listViewPermissions.Items
    +            If rightItem.Checked Then
    +                assignedRights = assignedRights Or rightItem.Tag
    +            End If
    +        Next


    +        Dim userMgr As IEdmUserMgr7 = vault

    +        Dim listPermissions As List(Of EdmFolderPermission) = New List(Of EdmFolderPermission)
    +        For Each itemUser As ListViewItem In listViewUsers.Items
    +            If itemUser.Checked Then
    +                Dim folderID As Integer = CInt(itemUser.SubItems(2).Text)
    +                Dim permission As EdmFolderPermission
    +                With permission
    +                    .mlFolderID = folderID
    +                    .mlOwnerID = CInt(itemUser.SubItems(0).Text)
    +                    .meOwnerType = EdmObjectType.EdmObject_User
    +                    .mlEdmRightFlag = assignedRights
    +                End With
    +                listPermissions.Add(permission)
    +            End If
    +        Next

    +        For Each itemGroup As ListViewItem In listViewGroups.Items
    +            If itemGroup.Checked Then
    +                Dim folderID As Integer = CInt(itemGroup.SubItems(2).Text)
    +                Dim permission As EdmFolderPermission
    +                With permission
    +                    .mlFolderID = folderID
    +                    .mlOwnerID = CInt(itemGroup.SubItems(0).Text)
    +                    .meOwnerType = EdmObjectType.EdmObject_UserGroup
    +                    .mlEdmRightFlag = assignedRights
    +                End With
    +                listPermissions.Add(permission)
    +            End If
    +        Next

    +        If checkboxReverseOrder.Checked Then listPermissions.Reverse()

    +        Dim permissions() As EdmFolderPermission = listPermissions.ToArray()
    +        userMgr.SetFolderPermissions(permissions)

    +        ShowAllGroupPermissions()
    +        ShowAllUserPermissions()
    +    End Sub

    +    Private Sub buttonRefresh_Click(sender As System.Object, e As System.EventArgsHandles buttonRefresh.Click
    +        ShowAllGroupPermissions()
    +        ShowAllUserPermissions()
    +    End Sub
    +End Class
    +
    +
    ' Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form

    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.Label1 = New System.Windows.Forms.Label()
    +        Me.comboVault = New System.Windows.Forms.ComboBox()
    +        Me.buttonLogIn = New System.Windows.Forms.Button()
    +        Me.Label2 = New System.Windows.Forms.Label()
    +        Me.listViewUsers = New System.Windows.Forms.ListView()
    +        Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.Label3 = New System.Windows.Forms.Label()
    +        Me.buttonApply = New System.Windows.Forms.Button()
    +        Me.buttonRefresh = New System.Windows.Forms.Button()
    +        Me.listViewGroups = New System.Windows.Forms.ListView()
    +        Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.ColumnHeader10 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
    +        Me.listViewPermissions = New System.Windows.Forms.ListView()
    +        Me.checkboxReverseOrder = New System.Windows.Forms.CheckBox()
    +        Me.SuspendLayout()
    +        '
    +        'Label1
    +        '
    +        Me.Label1.AutoSize = True
    +        Me.Label1.Location = New System.Drawing.Point(12, 9)
    +        Me.Label1.Name = "Label1"
    +        Me.Label1.Size = New System.Drawing.Size(66, 13)
    +        Me.Label1.TabIndex = 0
    +        Me.Label1.Text = "Select vault:"
    +        '
    +        'comboVault
    +        '
    +        Me.comboVault.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
    +        Me.comboVault.FormattingEnabled = True
    +        Me.comboVault.Location = New System.Drawing.Point(84, 6)
    +        Me.comboVault.Name = "comboVault"
    +        Me.comboVault.Size = New System.Drawing.Size(357, 21)
    +        Me.comboVault.TabIndex = 1
    +        '
    +        'buttonLogIn
    +        '
    +        Me.buttonLogIn.Location = New System.Drawing.Point(447, 6)
    +        Me.buttonLogIn.Name = "buttonLogIn"
    +        Me.buttonLogIn.Size = New System.Drawing.Size(98, 21)
    +        Me.buttonLogIn.TabIndex = 2
    +        Me.buttonLogIn.Text = "Log In"
    +        Me.buttonLogIn.UseVisualStyleBackColor = True
    +        '
    +        'Label2
    +        '
    +        Me.Label2.AutoSize = True
    +        Me.Label2.Location = New System.Drawing.Point(12, 51)
    +        Me.Label2.Name = "Label2"
    +        Me.Label2.Size = New System.Drawing.Size(34, 13)
    +        Me.Label2.TabIndex = 3
    +        Me.Label2.Text = "Users"
    +        '
    +        'listViewUsers
    +        '
    +        Me.listViewUsers.CheckBoxes = True
    +        Me.listViewUsers.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader7, Me.ColumnHeader8})
    +        Me.listViewUsers.Location = New System.Drawing.Point(12, 67)
    +        Me.listViewUsers.Name = "listViewUsers"
    +        Me.listViewUsers.Size = New System.Drawing.Size(533, 107)
    +        Me.listViewUsers.TabIndex = 4
    +        Me.listViewUsers.UseCompatibleStateImageBehavior = False
    +        Me.listViewUsers.View = System.Windows.Forms.View.Details
    +        '
    +        'ColumnHeader1
    +        '
    +        Me.ColumnHeader1.Text = "ID"
    +        Me.ColumnHeader1.Width = 41
    +        '
    +        'ColumnHeader2
    +        '
    +        Me.ColumnHeader2.Text = "Name"
    +        Me.ColumnHeader2.Width = 137
    +        '
    +        'ColumnHeader3
    +        '
    +        Me.ColumnHeader3.Text = "Folder ID"
    +        '
    +        'ColumnHeader7
    +        '
    +        Me.ColumnHeader7.Text = "Folder"
    +        Me.ColumnHeader7.Width = 152
    +        '
    +        'ColumnHeader8
    +        '
    +        Me.ColumnHeader8.Text = "Folder Permissions"
    +        Me.ColumnHeader8.Width = 108
    +        '
    +        'Label3
    +        '
    +        Me.Label3.AutoSize = True
    +        Me.Label3.Location = New System.Drawing.Point(12, 182)
    +        Me.Label3.Name = "Label3"
    +        Me.Label3.Size = New System.Drawing.Size(41, 13)
    +        Me.Label3.TabIndex = 5
    +        Me.Label3.Text = "Groups"
    +        '
    +        'buttonApply
    +        '
    +        Me.buttonApply.Enabled = False
    +        Me.buttonApply.Location = New System.Drawing.Point(428, 420)
    +        Me.buttonApply.Name = "buttonApply"
    +        Me.buttonApply.Size = New System.Drawing.Size(117, 23)
    +        Me.buttonApply.TabIndex = 7
    +        Me.buttonApply.Text = "Apply Permissions"
    +        Me.buttonApply.UseVisualStyleBackColor = True
    +        '
    +        'buttonRefresh
    +        '
    +        Me.buttonRefresh.Enabled = False
    +        Me.buttonRefresh.Location = New System.Drawing.Point(428, 38)
    +        Me.buttonRefresh.Name = "buttonRefresh"
    +        Me.buttonRefresh.Size = New System.Drawing.Size(117, 23)
    +        Me.buttonRefresh.TabIndex = 8
    +        Me.buttonRefresh.Text = "Refresh Permissions"
    +        Me.buttonRefresh.UseVisualStyleBackColor = True
    +        '
    +        'listViewGroups
    +        '
    +        Me.listViewGroups.CheckBoxes = True
    +        Me.listViewGroups.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader9, Me.ColumnHeader10})
    +        Me.listViewGroups.Location = New System.Drawing.Point(12, 198)
    +        Me.listViewGroups.Name = "listViewGroups"
    +        Me.listViewGroups.Size = New System.Drawing.Size(533, 107)
    +        Me.listViewGroups.TabIndex = 9
    +        Me.listViewGroups.UseCompatibleStateImageBehavior = False
    +        Me.listViewGroups.View = System.Windows.Forms.View.Details
    +        '
    +        'ColumnHeader4
    +        '
    +        Me.ColumnHeader4.Text = "ID"
    +        Me.ColumnHeader4.Width = 41
    +        '
    +        'ColumnHeader5
    +        '
    +        Me.ColumnHeader5.Text = "Name"
    +        Me.ColumnHeader5.Width = 137
    +        '
    +        'ColumnHeader6
    +        '
    +        Me.ColumnHeader6.Text = "Folder ID"
    +        '
    +        'ColumnHeader9
    +        '
    +        Me.ColumnHeader9.Text = "Folder"
    +        Me.ColumnHeader9.Width = 152
    +        '
    +        'ColumnHeader10
    +        '
    +        Me.ColumnHeader10.Text = "Folder Permissions"
    +        Me.ColumnHeader10.Width = 108
    +        '
    +        'listViewPermissions
    +        '
    +        Me.listViewPermissions.CheckBoxes = True
    +        Me.listViewPermissions.Location = New System.Drawing.Point(12, 328)
    +        Me.listViewPermissions.Name = "listViewPermissions"
    +        Me.listViewPermissions.Size = New System.Drawing.Size(410, 115)
    +        Me.listViewPermissions.TabIndex = 10
    +        Me.listViewPermissions.UseCompatibleStateImageBehavior = False
    +        Me.listViewPermissions.View = System.Windows.Forms.View.List
    +        '
    +        'checkboxReverseOrder
    +        '
    +        Me.checkboxReverseOrder.AutoSize = True
    +        Me.checkboxReverseOrder.Location = New System.Drawing.Point(428, 328)
    +        Me.checkboxReverseOrder.Name = "checkboxReverseOrder"
    +        Me.checkboxReverseOrder.Size = New System.Drawing.Size(95, 17)
    +        Me.checkboxReverseOrder.TabIndex = 11
    +        Me.checkboxReverseOrder.Text = "Reverse Order"
    +        Me.checkboxReverseOrder.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(557, 455)
    +        Me.Controls.Add(Me.checkboxReverseOrder)
    +        Me.Controls.Add(Me.listViewPermissions)
    +        Me.Controls.Add(Me.listViewGroups)
    +        Me.Controls.Add(Me.buttonRefresh)
    +        Me.Controls.Add(Me.buttonApply)
    +        Me.Controls.Add(Me.Label3)
    +        Me.Controls.Add(Me.listViewUsers)
    +        Me.Controls.Add(Me.Label2)
    +        Me.Controls.Add(Me.buttonLogIn)
    +        Me.Controls.Add(Me.comboVault)
    +        Me.Controls.Add(Me.Label1)
    +        Me.Name = "Form1"
    +        Me.Text = "Folder +Permissions"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents Label1 As System.Windows.Forms.Label
    +    Friend WithEvents comboVault As System.Windows.Forms.ComboBox
    +    Friend WithEvents buttonLogIn As System.Windows.Forms.Button
    +    Friend WithEvents Label2 As System.Windows.Forms.Label
    +    Friend WithEvents listViewUsers As System.Windows.Forms.ListView
    +    Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents Label3 As System.Windows.Forms.Label
    +    Friend WithEvents buttonApply As System.Windows.Forms.Button
    +    Friend WithEvents buttonRefresh As System.Windows.Forms.Button
    +    Friend WithEvents ColumnHeader7 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader8 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents listViewGroups As System.Windows.Forms.ListView
    +    Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader9 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents ColumnHeader10 As System.Windows.Forms.ColumnHeader
    +    Friend WithEvents listViewPermissions As System.Windows.Forms.ListView
    +    Friend WithEvents checkboxReverseOrder As System.Windows.Forms.CheckBox

    +End Class

    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Item_References_Example_CSharp.htm b/documentation/api_extracted/Get_and_Set_Item_References_Example_CSharp.htm new file mode 100644 index 0000000..fc6ebb1 --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Item_References_Example_CSharp.htm @@ -0,0 +1,506 @@ + + + +Get and Set Item References Example (C#) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Item References Example (C#)

    +

    This example shows how to get and set item references.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type ItemRefs_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Ensure that an item folder with at least one item is checked into the +vault.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Get +and set item references dialog box.
    +// 2. Select a vault view.
    +// 3. Click Get +item references
    +//    +a. Click an item folder +in the vault.
    +//    b. Click OK.
    +//    c. Displays a message box confirming your folder selection.
    +//    d. Click OK.
    +//    e. Displays a message box with item references for the +first item found
    +//       in the selected folder.
    +//    f. Click OK.
    +// 4. Click Set item references.
    +//    a. Click one or more files to add as references to the +item.
    +//    b. Click Open.
    +//    c. Displays a message box with the updated references.
    +//       - or -
    +//       Displays a message box with errors.
    +//    d. Click OK.

    +// 5. Close the Get +and set item references dialog box.         

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace ItemRefs_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;
    +        IEdmItem item;

    +        IEdmFile8 fileInt;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }

    +                Button1.Enabled = false;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GetItemRefs_Click(System.Object sender, System.EventArgs e)
    +        {

    +            try
    +            {
    +                IEdmVault11 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault11)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmFolder6 folder = default(IEdmFolder6);
    +                folder = (IEdmFolder6)vault2.BrowseForFolder2(this.Handle.ToInt32(), "Select a folder", vault2.RootFolder, (int)EdmBrowseForFolderFlag.EdmBwsFld_None);
    +                if ((folder != null))
    +                {
    +                    if (folder.ObjectType == EdmObjectType.EdmObject_Folder)
    +                    {
    +                        MessageBox.Show("You selected the file folder: " + "\r\n" + folder.LocalPath);
    +                    }
    +                    else
    +                    {
    +                        MessageBox.Show("You selected the item folder: " + "\r\n" + folder.LocalPath);
    +                    }
    +                }

    +                //Get the first item in the selected folder
    +                IEdmPos5 pos = default(IEdmPos5);
    +                string msg = null;

    +                pos = folder.GetFirstFilePosition();
    +                fileInt = (IEdmFile8)folder.GetNextFile(pos);

    +                //Search for item by name to get its ID
    +                IEdmSearch7 search = default(IEdmSearch7);
    +                search = (IEdmSearch7)vault2.CreateUtility(EdmUtility.EdmUtil_Search);
    +                search.FindFiles = true;
    +                search.FindFolders = false;
    +                search.Recursive = true;
    +                search.SetToken(EdmSearchToken.Edmstok_FindItems, true);
    +                search.StartFolderID = vault2.ItemRootFolderID;
    +                search.FileName = fileInt.Name;

    +                IEdmSearchResult5 result = default(IEdmSearchResult5);
    +                result = search.GetFirstResult();

    +                if (result == null)
    +                {
    +                    MessageBox.Show("The item '" + fileInt.Name + "' was not found.");
    +                }

    +                while ((result != null))
    +                {
    +                    if ((result.IsKindOf(EdmObjectType.EdmObject_Item)))
    +                    {
    +                        fileInt = (IEdmFile8)result;
    +                        item = (IEdmItem)fileInt;

    +                        //Create a message about the item and its references
    +                        msg = "Name=" + item.Name + "\r\n";
    +                        msg = msg + "ID = " + item.ID.ToString() + "\r\n";
    +                        msg = msg + "Descriptive name = " + item.ItemDescriptiveName + "\r\n";
    +                        msg = msg + "Check-out path = " + fileInt.LockPath + "\r\n";
    +                        msg = msg + "Workflow state = " + fileInt.CurrentState.Name + "\r\n";
    +                        msg = msg + "\r\n"+ "Referenced files:" + "\r\n";

    +                        EdmItemRef[] refs = null;
    +                        item.GetReferences((int)EdmRefFlags.EdmRef_Dynamic + (int)EdmRefFlags.EdmRef_Static + (int)EdmRefFlags.EdmRef_Item + (int)EdmRefFlags.EdmRef_File, out refs);

    +                        int idx = 0;
    +                        idx = refs.GetLowerBound(0);


    +                        while ((idx <= refs.GetUpperBound(0)))
    +                        {
    +                            msg = msg + "File ID=(" + refs[idx].moNamePathOrID.ToString() + ") ";
    +                            msg = msg + "Parent Item ID=(" + refs[idx].moParentNamePathOrItemID.ToString() + ") ";
    +                            msg = msg + "Configuration='" + refs[idx].mbsConfiguration + "' ";

    +                            if ((refs[idx].mlEdmRefFlags & (int)EdmRefFlags.EdmRef_Dynamic) == (int)EdmRefFlags.EdmRef_Dynamic)
    +                            {
    +                                msg = msg + " (auto-update reference)";
    +                            }
    +                            else
    +                            {
    +                                if ((refs[idx].mlEdmRefFlags & (int)EdmRefFlags.EdmRef_Static) == (int)EdmRefFlags.EdmRef_Static)
    +                                {
    +                                    msg = msg + " (static reference)";
    +                                }
    +                            }
    +                            idx = idx + 1;
    +                            msg = msg + "\n";
    +                        }

    +                        MessageBox.Show(msg);
    +                        Button1.Enabled = true;

    +                    }
    +                    return;
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        private void Button1_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Set item references

    +            try
    +            {
    +                IEdmVault11 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault11)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Get the current item references 
    +                EdmItemRef[] oldRefs = null;
    +                item.GetReferences((int)EdmRefFlags.EdmRef_Dynamic + (int)EdmRefFlags.EdmRef_Static + (int)EdmRefFlags.EdmRef_Item + (int)EdmRefFlags.EdmRef_File, out oldRefs);

    +                //Let the user browse for new file references 
    +                IEdmStrLst5 pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel, "All Files|*.*||");

    +                if (pathList == null)
    +                    return;

    +                //Create an array of new item references 
    +                EdmItemRef[] newRefs = new EdmItemRef[pathList.Count];
    +                int idx = 0;
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = pathList.GetHeadPosition();

    +                while (!pos.IsNull)
    +                {
    +                    string path = null;
    +                    path = pathList.GetNext(pos);
    +                    newRefs[idx].moNamePathOrID = path;
    +                    newRefs[idx].mlEdmRefFlags = (int)EdmRefFlags.EdmRef_Static + (int)EdmRefFlags.EdmRef_File;
    +                    newRefs[idx].moParentNamePathOrItemID = item.ID;
    +                    idx = idx + 1;
    +                }

    +                //Check out the item
    +                fileInt.LockFile(vault2.ItemRootFolderIDthis.Handle.ToInt32());

    +                //Update the item references 
    +                item.UpdateReferences(newRefs, oldRefs);

    +                //Collect all errors 
    +                string msg = "";
    +                string errstr = "";
    +                idx = newRefs.GetLowerBound(0);

    +                while ((idx <= newRefs.GetUpperBound(0)))
    +                {
    +                    if (newRefs[idx].mhResult != 0)
    +                    {
    +                        errstr = vault2.GetErrorName(newRefs[idx].mhResult);
    +                        msg = msg + "Failed to save ref: '" + newRefs[idx].moNamePathOrID.ToString() + "' (" + errstr + ")" + "\r\n";
    +                    }
    +                    idx = idx + 1;
    +                }

    +                idx = oldRefs.GetLowerBound(0);

    +                while ((idx <= oldRefs.GetUpperBound(0)))
    +                {
    +                    if (oldRefs[idx].mhResult != 0)
    +                    {
    +                        errstr = vault2.GetErrorName(oldRefs[idx].mhResult);
    +                        msg = msg + "Failed to delete ref: '" + oldRefs[idx].moNamePathOrID.ToString() + "' (" + errstr + ")" + "\r\n";
    +                    }
    +                    idx = idx + 1;
    +                }

    +                //Display a status message
    +                if (string.IsNullOrEmpty(msg))
    +                {
    +                    msg = "Updated references successfully!" + "\n";

    +                    EdmItemRef[] refs = null;
    +                    item.GetReferences((int)EdmRefFlags.EdmRef_Dynamic + (int)EdmRefFlags.EdmRef_Static + (int)EdmRefFlags.EdmRef_Item + (int)EdmRefFlags.EdmRef_File, out refs);
    +                    idx = refs.GetLowerBound(0);

    +                    //Construct a message about the reference updates 

    +                    while ((idx <= refs.GetUpperBound(0)))
    +                    {
    +                        msg = msg + "File ID=(" + refs[idx].moNamePathOrID.ToString() + ") ";
    +                        msg = msg + "Parent Item ID=(" + refs[idx].moParentNamePathOrItemID.ToString() + ") ";
    +                        msg = msg + "Configuration='" + refs[idx].mbsConfiguration + "' ";

    +                        if ((refs[idx].mlEdmRefFlags & (int)EdmRefFlags.EdmRef_Dynamic) == (int)EdmRefFlags.EdmRef_Dynamic)
    +                        {
    +                            msg = msg + " (auto-update reference)";
    +                        }
    +                        else
    +                        {
    +                            if ((refs[idx].mlEdmRefFlags & (int)EdmRefFlags.EdmRef_Static) == (int)EdmRefFlags.EdmRef_Static)
    +                            {
    +                                msg = msg + " (static reference)";
    +                            }
    +                        }
    +                        idx = idx + 1;
    +                        msg = msg + "\n";
    +                    }

    +                    MessageBox.Show(msg);
    +                }
    +                else
    +                {
    +                    MessageBox.Show("Errors detected: " + "\r\n" + msg);
    +                }

    +                //Check in the item
    +                fileInt.UnlockFile(this.Handle.ToInt32(), "Updated item references", (int)EdmUnlockFlag.EdmUnlock_IgnoreRefsNotLockedByCaller);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace ItemRefs_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.GetItemRefs = new System.Windows.Forms.Button();
    +            this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
    +            this.Button1 = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = " Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //GetItemRefs
    +            //
    +            this.GetItemRefs.Location = new System.Drawing.Point(16, 86);
    +            this.GetItemRefs.Name = "GetItemRefs";
    +            this.GetItemRefs.Size = new System.Drawing.Size(139, 23);
    +            this.GetItemRefs.TabIndex = 5;
    +            this.GetItemRefs.Text = "Get item references...";
    +            this.GetItemRefs.UseVisualStyleBackColor = true;
    +            this.GetItemRefs.Click +=new System.EventHandler(GetItemRefs_Click);
    +            //
    +            //OpenFileDialog
    +            //
    +            this.OpenFileDialog.Title = "Open";
    +            //
    +            //Button1
    +            //
    +            this.Button1.Location = new System.Drawing.Point(16, 127);
    +            this.Button1.Name = "Button1";
    +            this.Button1.Size = new System.Drawing.Size(139, 23);
    +            this.Button1.TabIndex = 6;
    +            this.Button1.Text = "Set item references...";
    +            this.Button1.UseVisualStyleBackColor = true;
    +            this.Button1.Click +=new System.EventHandler(Button1_Click);
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(317, 185);
    +            this.Controls.Add(this.Button1);
    +            this.Controls.Add(this.GetItemRefs);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get and set item references";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button GetItemRefs;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog;
    +        internal System.Windows.Forms.Button Button1;
    +    }
    +}

    +

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Item_References_Example_VBNET.htm b/documentation/api_extracted/Get_and_Set_Item_References_Example_VBNET.htm new file mode 100644 index 0000000..4ca2395 --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Item_References_Example_VBNET.htm @@ -0,0 +1,440 @@ + + + +Get and Set Item References Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Item References Example (VB.NET)

    +

    This example shows how to get and set item references.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type ItemRefs in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that an item folder with at least one item is checked into the +vault.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Get and set item +references dialog box.
    +' 2. Select a vault view.
    +' 3. Click Get item references
    + +'    a. Click an item folder +in the vault.
    +'    b. Click OK.
    +'    c. Displays a message box confirming your folder selection.
    +'    d. Click OK.
    +'    e. Displays a message box with item references for the first +item found
    +'       in the selected folder.
    +'    f. Click OK.
    +' 4. Click Set item references.
    +'    a. Click one or more files to add as references to the item.
    +'    b. Click Open.
    +'    c. Displays a message box with the updated references.
    +'       - or -
    +'       Displays a message box with errors.
    +'    d. Click OK.

    + +' 5. Close the Get and set item references dialog box.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim item As IEdmItem
    +    Dim fileInt As IEdmFile8

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If

    +            Button1.Enabled = False

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GetItemRefs_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetItemRefs.Click
    +        Try

    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault11)
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim folder As IEdmFolder6
    +            folder = vault2.BrowseForFolder2(Me.Handle.ToInt32, "Select a folder", vault2.RootFolderEdmBrowseForFolderFlag.EdmBwsFld_None)
    +            If Not folder Is Nothing Then
    +                If folder.ObjectType = EdmObjectType.EdmObject_Folder Then
    +                    MsgBox("You selected the file folder: " + vbLf + folder.LocalPath)
    +                Else
    +                    MsgBox("You selected the item folder: " + vbLf + folder.LocalPath)
    +                End If
    +            End If

    +            'Get the first item in the selected folder
    +            Dim pos As IEdmPos5
    +            Dim msg As String

    +            pos = folder.GetFirstFilePosition
    +            fileInt = folder.GetNextFile(pos)

    +            'Search for item by name to get its ID
    +            Dim search As IEdmSearch7
    +            search = vault2.CreateUtility(EdmUtility.EdmUtil_Search)
    +            search.FindFiles = True
    +            search.FindFolders = False
    +            search.Recursive = True
    +            search.SetToken(EdmSearchToken.Edmstok_FindItems, True)
    +            search.StartFolderID = vault2.ItemRootFolderID
    +            search.FileName = fileInt.Name

    +            Dim result As IEdmSearchResult5
    +            result = search.GetFirstResult

    +            If result Is Nothing Then
    +                MessageBox.Show("The item '" + fileInt.Name + "' was not found.")
    +            End If

    +            While Not result Is Nothing
    +                If (result.IsKindOf(EdmObjectType.EdmObject_Item)) Then
    +                    fileInt = result
    +                    item = fileInt
    +                
    +                    'Create a message about the item and +its references
    +                    msg = "Name=" & item.Name & vbLf
    +                    msg = msg & "ID = " & item.ID.ToString & vbLf
    +                    msg = msg & "Descriptive name = " & item.ItemDescriptiveName & vbLf
    +                    msg = msg & "Check-out path = " & fileInt.LockPath & vbLf
    +                    msg = msg & "Workflow state = " & fileInt.CurrentState.Name & vbLf
    +                    msg = msg & vbLf & "Referenced files:" & vbLf

    +                    Dim refs() As EdmItemRef = Nothing
    +                    item.GetReferences(EdmRefFlags.EdmRef_Dynamic + EdmRefFlags.EdmRef_Static + EdmRefFlags.EdmRef_Item + EdmRefFlags.EdmRef_File, refs)

    +                    Dim idx As Integer
    +                    idx = LBound(refs)

    +                    While (idx <= UBound(refs))

    +                        msg = msg + "File ID=(" + CStr(refs(idx).moNamePathOrID) + ") "
    +                        msg = msg + "Parent Item ID=(" + CStr(refs(idx).moParentNamePathOrItemID) + ") "
    +                        msg = msg + "Configuration='" + refs(idx).mbsConfiguration + "' "

    +                        If (refs(idx).mlEdmRefFlags And EdmRefFlags.EdmRef_Dynamic) = EdmRefFlags.EdmRef_Dynamic Then
    +                            msg = msg + " (auto-update reference)"
    +                        Else
    +                            If (refs(idx).mlEdmRefFlags And EdmRefFlags.EdmRef_Static) = EdmRefFlags.EdmRef_Static Then
    +                                msg = msg + " (static reference)"
    +                            End If
    +                        End If
    +                        idx = idx + 1
    +                        msg = msg + vbLf
    +                    End While

    +                    MessageBox.Show(msg)
    +                    Button1.Enabled = True

    +                End If
    +                Exit Sub
    +            End While

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        'Set item references
    +        Try

    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault11)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Get the current item references 
    +            Dim oldRefs() As EdmItemRef = Nothing
    +            item.GetReferences(EdmRefFlags.EdmRef_Dynamic + EdmRefFlags.EdmRef_Static + EdmRefFlags.EdmRef_Item + EdmRefFlags.EdmRef_File, oldRefs)

    +            'Let the user browse for new file references 
    +            Dim pathList As IEdmStrLst5 = vault2.BrowseForFile(Me.Handle.ToInt32, EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles + EdmBrowseFlag.EdmBws_PermitMultipleSel, "All Files|*.*||")

    +            If pathList Is Nothing Then Return

    +            'Create an array of new item references 
    +            Dim newRefs(pathList.Count - 1) As EdmItemRef
    +            Dim idx As Integer = 0
    +            Dim pos As IEdmPos5
    +            pos = pathList.GetHeadPosition

    +            While Not pos.IsNull
    +                Dim path As String
    +                path = pathList.GetNext(pos)
    +                newRefs(idx).moNamePathOrID = path
    +                newRefs(idx).mlEdmRefFlags = EdmRefFlags.EdmRef_Static + EdmRefFlags.EdmRef_File
    +                newRefs(idx).moParentNamePathOrItemID = item.ID
    +                idx = idx + 1
    +            End While

    +            'Check out the item
    +            fileInt.LockFile(vault2.ItemRootFolderIDMe.Handle.ToInt32())

    +            'Update the item references 
    +            item.UpdateReferences(newRefs, oldRefs)

    +            'Collect all errors
    +            Dim msg As String = ""
    +            Dim errstr As String = ""
    +            idx = LBound(newRefs)

    +            While (idx <= UBound(newRefs))
    +                If newRefs(idx).mhResult <> 0 Then
    +                    errstr = vault2.GetErrorName(newRefs(idx).mhResult)
    +                    msg = msg + "Failed to save ref: '" + CStr(newRefs(idx).moNamePathOrID) + "' (" + errstr + ")" + vbLf
    +                End If
    +                idx = idx + 1
    +            End While

    +            idx = LBound(oldRefs)

    +            While (idx <= UBound(oldRefs))
    +                If oldRefs(idx).mhResult <> 0 Then
    +                    errstr = vault2.GetErrorName(oldRefs(idx).mhResult)
    +                    msg = msg + "Failed to delete ref: '" + CStr(oldRefs(idx).moNamePathOrID) + "' (" + errstr + ")" + vbLf
    +                End If
    +                idx = idx + 1
    +            End While

    +            'Display a status message
    +            If msg = "" Then
    +                msg = "Updated references successfully!" & vbLf

    +                Dim refs() As EdmItemRef = Nothing
    +                item.GetReferences(EdmRefFlags.EdmRef_Dynamic + EdmRefFlags.EdmRef_Static + EdmRefFlags.EdmRef_Item + EdmRefFlags.EdmRef_File, refs)
    +                idx = LBound(refs)

    +                'Construct a message about the reference +updates 
    +                While (idx <= UBound(refs))

    +                    msg = msg + "File ID=(" + CStr(refs(idx).moNamePathOrID) + ") "
    +                    msg = msg + "Parent Item ID=(" + CStr(refs(idx).moParentNamePathOrItemID) + ") "
    +                    msg = msg + "Configuration='" + refs(idx).mbsConfiguration + "' "

    +                    If (refs(idx).mlEdmRefFlags And EdmRefFlags.EdmRef_Dynamic) = EdmRefFlags.EdmRef_Dynamic Then
    +                        msg = msg + " (auto-update reference)"
    +                    Else
    +                        If (refs(idx).mlEdmRefFlags And EdmRefFlags.EdmRef_Static) = EdmRefFlags.EdmRef_Static Then
    +                            msg = msg + " (static reference)"
    +                        End If
    +                    End If
    +                    idx = idx + 1
    +                    msg = msg + vbLf
    +                End While

    +                MessageBox.Show(msg)
    +            Else
    +                MessageBox.Show("Errors detected: " + vbLf + msg)
    +            End If

    +            'Check in the item
    +            fileInt.UnlockFile(Me.Handle.ToInt32(), "Updated item references"EdmUnlockFlag.EdmUnlock_IgnoreRefsNotLockedByCaller)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +End Class

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +    ''' Clean up any resources being used.
    +    ''' </summary>
    +    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.GetItemRefs = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog = New System.Windows.Forms.OpenFileDialog()
    +        Me.Button1 = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = " Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'GetItemRefs
    +        '
    +        Me.GetItemRefs.Location = New System.Drawing.Point(16, 86)
    +        Me.GetItemRefs.Name = "GetItemRefs"
    +        Me.GetItemRefs.Size = New System.Drawing.Size(139, 23)
    +        Me.GetItemRefs.TabIndex = 5
    +        Me.GetItemRefs.Text = "Get item references..."
    +        Me.GetItemRefs.UseVisualStyleBackColor = True
    +        '
    +        'OpenFileDialog
    +        '
    +        Me.OpenFileDialog.Title = "Open"
    +        '
    +        'Button1
    +        '
    +        Me.Button1.Location = New System.Drawing.Point(16, 127)
    +        Me.Button1.Name = "Button1"
    +        Me.Button1.Size = New System.Drawing.Size(139, 23)
    +        Me.Button1.TabIndex = 6
    +        Me.Button1.Text = "Set item references..."
    +        Me.Button1.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(317, 185)
    +        Me.Controls.Add(Me.Button1)
    +        Me.Controls.Add(Me.GetItemRefs)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get and set item references"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents GetItemRefs As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents Button1 As System.Windows.Forms.Button
    +End Class

    +

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_CSharp.htm b/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_CSharp.htm new file mode 100644 index 0000000..ae8c4bd --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_CSharp.htm @@ -0,0 +1,582 @@ + + + +Get and Set Dictionary Key-Value Pairs Example (C#) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Dictionary Key-Value Pairs Example (C#)

    +

    This example shows how to access key-value pairs in a +vault dictionary.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//    b. Type TestDictionary_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, cick Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault view.
    +//  3. Click Substring in key.
    +//  4. Click Get key-value pairs.
    +//     a. Displays a message box with all key-value pairs in the dictionary where
    +//        string key contains "at".
    +//     b. Click OK.
    +//  5. Click Integer key range.
    +//  6. Click Get key-value pairs.
    +//     a. Displays a message box with all key-value pairs in the dictionary where
    +//        integer keys are in the range, 13-88.
    +//     b. Click OK.
    +//  7. Click Substring in values of all integer keys.
    +//  8. Click Get key-value pairs.
    +//     a. Displays a message box with all key-value pairs in the dictionary where
    +//        value contains "three".
    +//     b. Click OK.
    +//  9. Click Specific integer key.
    +// 10. Click Get key-value pairs.
    +//     a. Displays a message box with the value for key, 77.
    +//     b. Click OK.
    +// 11. Click Enumeration of all integer keys.
    +// 12. Click Get key-value pairs.
    +//     a. Displays a message box with all integer key-value pairs in the dictionary.
    +//     b. Click OK. 
    +// 13. Click Delete a key-value pair.
    +//     a. Displays a message box notifying that key, 2, is removed.
    +//     b. Click OK.
    +// 14. Click Create a key-value pair.
    +//     a. Displays a message box notifying that key, 2, is created.
    +//     b. Click OK.
    +// 15. Close the dialog.
    +//----------------------------------------------------------------------------
    +
    +
    //Form1.cs
    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;


    +namespace TestDictionary_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        IEdmVault5 vault1;
    +        IEdmVault8 vault;
    +        
    +        EdmViewInfo[] Views = null;
    +        IEdmDictionary5 dic;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }


    +        private void Button5_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Delete key-value pair clicked
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                dic = vault.GetDictionary("MyDictionary"true);
    +                //Add some values 
    +                dic.LongSetAt(2, "two");
    +                dic.LongSetAt(15, "fifteen");
    +                dic.LongSetAt(300, "three hundred");
    +                dic.LongSetAt(77, "seventy-seven");

    +                dic.LongRemoveAt(2);
    +                MessageBox.Show("Key <2> removed.");
    +                dic.RemoveDictionary();

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button1_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Get key-value pairs clicked
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                if (this.RadioButton1.Checked)
    +                {
    +                    //Get key-value pairs by substring in key

    +                    dic = vault.GetDictionary("MyDictionary"true);

    +                    //Add some values 
    +                    dic.StringSetAt("Cat""Socks");
    +                    dic.StringSetAt("Dog""Milou");
    +                    dic.StringSetAt("Human""Attila");
    +                    dic.StringSetAt("At last""Last value");

    +                    //Find all keys containing the text, "at" 
    +                    string key = "";
    +                    string value = "";
    +                    string message = null;
    +                    message = "Keys with 'at' in them:" + "\r\n";
    +                    IEdmPos5 pos = default(IEdmPos5);
    +                    pos = dic.StringFindKeys("at");
    +                    while (!pos.IsNull)
    +                    {
    +                        dic.StringGetNextAssoc(pos, out key, out value);
    +                        message = message + "<" + key + "> = <" + value + ">" + "\r\n";
    +                    }

    +                    //Show a message and delete the dictionary 
    +                    MessageBox.Show(message);
    +                    dic.RemoveDictionary();

    +                }
    +                else if (this.RadioButton2.Checked)
    +                {
    +                    //Get key-value pairs by integer key range

    +                    dic = vault.GetDictionary("MyDictionary"true);

    +                    //Add some values 
    +                    dic.LongSetAt(2, "two");
    +                    dic.LongSetAt(15, "fifteen");
    +                    dic.LongSetAt(300, "three hundred");
    +                    dic.LongSetAt(77, "seventy-seven");

    +                    //Find all keys in the range, 13-88 
    +                    int key = 0;
    +                    string value = "";
    +                    string message = null;
    +                    message = "Keys in range, 13-88:" + "\r\n";
    +                    IEdmPos5 pos = default(IEdmPos5);
    +                    pos = dic.LongFindKeys(13, 88);
    +                    while (!pos.IsNull)
    +                    {
    +                        dic.LongGetNextAssoc(pos, out key, out value);
    +                        message = message + "<" + key.ToString() + "> = <" + value + ">" + "\r\n";
    +                    }

    +                    //Show a message and delete the dictionary 
    +                    MessageBox.Show(message);
    +                    dic.RemoveDictionary();

    +                }
    +                else if (this.RadioButton3.Checked)
    +                {
    +                    //Get key-value pairs by substring in values of integer keys

    +                    dic = vault.GetDictionary("MyDictionary"true);
    +                    //Add some values 
    +                    dic.LongSetAt(2, "two");
    +                    dic.LongSetAt(15, "fifteen");
    +                    dic.LongSetAt(300, "three hundred");
    +                    dic.LongSetAt(77, "seventy-seven");

    +                    string bsValueSubString = "three";
    +                    IEdmPos5 aPos = default(IEdmPos5);
    +                    int plRetKey = 0;
    +                    string pbsRetValue = "";
    +                    aPos = dic.LongFindValues(bsValueSubString);
    +                    while (!aPos.IsNull)
    +                    {
    +                        dic.LongGetNextAssoc(aPos, out plRetKey, out pbsRetValue);
    +                        MessageBox.Show("Key-value pair with " + "\"" + bsValueSubString + "\"" + " in value: " + "\n" + "<" + plRetKey + "> = <" + pbsRetValue + ">");
    +                    }
    +                    dic.RemoveDictionary();
    +                }
    +                else if (this.RadioButton4.Checked)
    +                {
    +                    //Get key-value pairs by specific integer key

    +                    dic = vault.GetDictionary("MyDictionary"true);
    +                    //Add some values 
    +                    dic.LongSetAt(2, "two");
    +                    dic.LongSetAt(15, "fifteen");
    +                    dic.LongSetAt(300, "three hundred");
    +                    dic.LongSetAt(77, "seventy-seven");

    +                    string pbsRetValue = "";
    +                    dic.LongGetAt(77, out pbsRetValue);
    +                    MessageBox.Show("Value for key <77>: <" + pbsRetValue + ">");
    +                    dic.RemoveDictionary();
    +                }
    +                else if (this.RadioButton5.Checked)
    +                {
    +                    //Get key-value pairs by enumeration of all integer keys

    +                    dic = vault.GetDictionary("MyDictionary"true);
    +                    //Add some values
    +                    dic.LongSetAt(2, "two");
    +                    dic.LongSetAt(15, "fifteen");
    +                    dic.LongSetAt(300, "three hundred");
    +                    dic.LongSetAt(77, "seventy-seven");

    +                    string msg = null;
    +                    int key = 0;
    +                    string value = "";

    +                    msg = "Integer keys in dictionary:" + "\n";

    +                    IEdmPos5 pos = default(IEdmPos5);
    +                    pos = dic.LongGetFirstPosition();
    +                    while (!pos.IsNull)
    +                    {
    +                        dic.LongGetNextAssoc(pos, out key, out value);
    +                        msg = msg + "<" + Conversion.Str(key) + "> = <" + value + ">" + "\n";
    +                    }
    +                    MessageBox.Show(msg);
    +                    dic.RemoveDictionary();

    +                }
    +                else
    +                {
    +                    MessageBox.Show("Select how to get key-value pairs");

    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button7_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Create key-value pair clicked
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                string pbsRetValue = "";

    +                dic = vault.GetDictionary("MyDictionary"true);
    +                dic.LongTestAndSetAt(2, "Two");
    +                dic.LongGetAt(2, out pbsRetValue);
    +                MessageBox.Show("Created:" + "\n" + "<2> = <" + pbsRetValue + ">");
    +                dic.RemoveDictionary();
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    + +
    +
    //Form1.Designer.cs
    +
    +
    +

    + namespace TestDictionary_CSharp
    + {
    +     partial class Form1
    +     {
    +         /// <summary>
    +         /// Required designer variable.
    +         /// </summary>
    +         private System.ComponentModel.IContainer components = null;

    +         /// <summary>
    +         /// Clean up any resources being used.
    +         /// </summary>
    +         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +         protected override void Dispose(bool disposing)
    +         {
    +             if (disposing && (components != null))
    +             {
    +                 components.Dispose();
    +             }
    +             base.Dispose(disposing);
    +         }

    +         #region Windows Form Designer generated code

    +         /// <summary>
    +         /// Required method for Designer support - do not modify
    +         /// the contents of this method with the code editor.
    +         /// </summary>
    +         private void InitializeComponent()
    +         {
    +             this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +             this.Label1 = new System.Windows.Forms.Label();
    +             this.Button5 = new System.Windows.Forms.Button();
    +             this.Button7 = new System.Windows.Forms.Button();
    +             this.RadioButton1 = new System.Windows.Forms.RadioButton();
    +             this.RadioButton2 = new System.Windows.Forms.RadioButton();
    +             this.RadioButton3 = new System.Windows.Forms.RadioButton();
    +             this.RadioButton4 = new System.Windows.Forms.RadioButton();
    +             this.RadioButton5 = new System.Windows.Forms.RadioButton();
    +             this.Button1 = new System.Windows.Forms.Button();
    +             this.GroupBox1 = new System.Windows.Forms.GroupBox();
    +             this.GroupBox1.SuspendLayout();
    +             this.SuspendLayout();
    +             // 
    +             // VaultsComboBox
    +             // 
    +             this.VaultsComboBox.FormattingEnabled = true;
    +             this.VaultsComboBox.Location = new System.Drawing.Point(20, 39);
    +             this.VaultsComboBox.Name = "VaultsComboBox";
    +             this.VaultsComboBox.Size = new System.Drawing.Size(169, 21);
    +             this.VaultsComboBox.TabIndex = 1;
    +             // 
    +             // Label1
    +             // 
    +             this.Label1.AutoSize = true;
    +             this.Label1.Location = new System.Drawing.Point(19, 23);
    +             this.Label1.Name = "Label1";
    +             this.Label1.Size = new System.Drawing.Size(91, 13);
    +             this.Label1.TabIndex = 2;
    +             this.Label1.Text = "Select vault view:";
    +             // 
    +             // Button5
    +             // 
    +             this.Button5.Location = new System.Drawing.Point(40, 272);
    +             this.Button5.Name = "Button5";
    +             this.Button5.Size = new System.Drawing.Size(132, 23);
    +             this.Button5.TabIndex = 7;
    +             this.Button5.Text = "Delete a key-value pair";
    +             this.Button5.UseVisualStyleBackColor = true;
    +             this.Button5.Click += new System.EventHandler(this.Button5_Click);
    +             // 
    +             // Button7
    +             // 
    +             this.Button7.Location = new System.Drawing.Point(39, 312);
    +             this.Button7.Name = "Button7";
    +             this.Button7.Size = new System.Drawing.Size(132, 23);
    +             this.Button7.TabIndex = 9;
    +             this.Button7.Text = "Create a key-value pair";
    +             this.Button7.UseVisualStyleBackColor = true;
    +             this.Button7.Click += new System.EventHandler(this.Button7_Click);
    +             // 
    +             // RadioButton1
    +             // 
    +             this.RadioButton1.AutoSize = true;
    +             this.RadioButton1.Location = new System.Drawing.Point(30, 19);
    +             this.RadioButton1.Name = "RadioButton1";
    +             this.RadioButton1.Size = new System.Drawing.Size(100, 17);
    +             this.RadioButton1.TabIndex = 11;
    +             this.RadioButton1.Text = "Substring in key";
    +             this.RadioButton1.UseVisualStyleBackColor = true;
    +             // 
    +             // RadioButton2
    +             // 
    +             this.RadioButton2.AutoSize = true;
    +             this.RadioButton2.Location = new System.Drawing.Point(30, 42);
    +             this.RadioButton2.Name = "RadioButton2";
    +             this.RadioButton2.Size = new System.Drawing.Size(108, 17);
    +             this.RadioButton2.TabIndex = 12;
    +             this.RadioButton2.TabStop = true;
    +             this.RadioButton2.Text = "Integer key range";
    +             this.RadioButton2.UseVisualStyleBackColor = true;
    +             // 
    +             // RadioButton3
    +             // 
    +             this.RadioButton3.AutoSize = true;
    +             this.RadioButton3.Location = new System.Drawing.Point(29, 65);
    +             this.RadioButton3.Name = "RadioButton3";
    +             this.RadioButton3.Size = new System.Drawing.Size(199, 17);
    +             this.RadioButton3.TabIndex = 13;
    +             this.RadioButton3.TabStop = true;
    +             this.RadioButton3.Text = "Substring in values of all integer keys";
    +             this.RadioButton3.UseVisualStyleBackColor = true;
    +             // 
    +             // RadioButton4
    +             // 
    +             this.RadioButton4.AutoSize = true;
    +             this.RadioButton4.Location = new System.Drawing.Point(30, 88);
    +             this.RadioButton4.Name = "RadioButton4";
    +             this.RadioButton4.Size = new System.Drawing.Size(118, 17);
    +             this.RadioButton4.TabIndex = 14;
    +             this.RadioButton4.TabStop = true;
    +             this.RadioButton4.Text = "Specific integer key";
    +             this.RadioButton4.UseVisualStyleBackColor = true;
    +             // 
    +             // RadioButton5
    +             // 
    +             this.RadioButton5.AutoSize = true;
    +             this.RadioButton5.Location = new System.Drawing.Point(30, 111);
    +             this.RadioButton5.Name = "RadioButton5";
    +             this.RadioButton5.Size = new System.Drawing.Size(169, 17);
    +             this.RadioButton5.TabIndex = 15;
    +             this.RadioButton5.TabStop = true;
    +             this.RadioButton5.Text = "Enumeration of all integer keys";
    +             this.RadioButton5.UseVisualStyleBackColor = true;
    +             // 
    +             // Button1
    +             // 
    +             this.Button1.Location = new System.Drawing.Point(30, 143);
    +             this.Button1.Name = "Button1";
    +             this.Button1.Size = new System.Drawing.Size(132, 23);
    +             this.Button1.TabIndex = 16;
    +             this.Button1.Text = "Get key-value pairs";
    +             this.Button1.UseVisualStyleBackColor = true;
    +             this.Button1.Click += new System.EventHandler(this.Button1_Click);
    +             // 
    +             // GroupBox1
    +             // 
    +             this.GroupBox1.Controls.Add(this.Button1);
    +             this.GroupBox1.Controls.Add(this.RadioButton5);
    +             this.GroupBox1.Controls.Add(this.RadioButton4);
    +             this.GroupBox1.Controls.Add(this.RadioButton3);
    +             this.GroupBox1.Controls.Add(this.RadioButton2);
    +             this.GroupBox1.Controls.Add(this.RadioButton1);
    +             this.GroupBox1.Location = new System.Drawing.Point(10, 69);
    +             this.GroupBox1.Name = "GroupBox1";
    +             this.GroupBox1.Size = new System.Drawing.Size(249, 181);
    +             this.GroupBox1.TabIndex = 17;
    +             this.GroupBox1.TabStop = false;
    +             this.GroupBox1.Text = "Get key-value pairs by:";
    +             // 
    +             // Form1
    +             // 
    +             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +             this.ClientSize = new System.Drawing.Size(271, 366);
    +             this.Controls.Add(this.GroupBox1);
    +             this.Controls.Add(this.Button7);
    +             this.Controls.Add(this.Button5);
    +             this.Controls.Add(this.Label1);
    +             this.Controls.Add(this.VaultsComboBox);
    +             this.Name = "Form1";
    +             this.Text = "Dictionary Test";
    +             this.Load += new System.EventHandler(this.Form1_Load);
    +             this.GroupBox1.ResumeLayout(false);
    +             this.GroupBox1.PerformLayout();
    +             this.ResumeLayout(false);
    +             this.PerformLayout();

    +         }
    +         internal System.Windows.Forms.ComboBox VaultsComboBox;
    +         internal System.Windows.Forms.Label Label1;
    +         internal System.Windows.Forms.Button Button5;
    +         internal System.Windows.Forms.Button Button7;
    +         internal System.Windows.Forms.RadioButton RadioButton1;
    +         internal System.Windows.Forms.RadioButton RadioButton2;
    +         internal System.Windows.Forms.RadioButton RadioButton3;
    +         internal System.Windows.Forms.RadioButton RadioButton4;
    +         internal System.Windows.Forms.RadioButton RadioButton5;
    +         internal System.Windows.Forms.Button Button1;
    +         internal System.Windows.Forms.GroupBox GroupBox1;

    +         #endregion
    +     }
    + }

    +
    + +
     
    +
    + + + + diff --git a/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_VBNET.htm b/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_VBNET.htm new file mode 100644 index 0000000..d25e622 --- /dev/null +++ b/documentation/api_extracted/Get_and_Set_Key_Value_Pairs_Example_VBNET.htm @@ -0,0 +1,518 @@ + + + +Get and Set Dictionary Key-Value Pairs Example (VB.NET) + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Get and Set Dictionary Key-Value Pairs Example (VB.NET)

    +

    This example shows how to access key-value pairs in a +vault dictionary.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type TestDictionary in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault view.
    +'  3. Click Substring in key.
    +'  4. Click Get key-value pairs.
    +'     a. Displays a message box with all key-value pairs in the dictionary where
    +'        string key contains "at".
    +'     b. Click OK.
    +'  5. Click Integer key range.
    +'  6. Click Get key-value pairs.
    +'     a. Displays a message box with all key-value pairs in the dictionary where
    +'        integer keys are in the range, 13-88.
    +'     b. Click OK.
    +'  7. Click Substring in values of all integer keys.
    +'  8. Click Get key-value pairs.
    +'     a. Displays a message box with all key-value pairs in the dictionary where
    +'        value contains "three".
    +'     b. Click OK.
    +'  9. Click Specific integer key.
    +' 10. Click Get key-value pairs.
    +'     a. Displays a message box with the value for key, 77.
    +'     b. Click OK.
    +' 11. Click Enumeration of all integer keys.
    +' 12. Click Get key-value pairs.
    +'     a. Displays a message box with all integer key-value pairs in the dictionary.
    +'     b. Click OK. 
    +' 13. Click Delete a key-value pair.
    +'     a. Displays a message box notifying that key, 2, is removed.
    +'     b. Click OK.
    +' 14. Click Create a key-value pair.
    +'     a. Displays a message box notifying that key, 2, is created.
    +'     b. Click OK.
    +' 15. Close the dialog.
    +'----------------------------------------------------------------------------
    + 
    +'Form1.vb
    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm

    +Public Class Form1
    +    Dim vault1 As IEdmVault5 = New EdmVault5()
    +    Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +    Dim Views As EdmViewInfo() = Nothing
    +    Dim dic As IEdmDictionary5
    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub


    +    Private Sub Button5_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button5.Click
    +        'Delete key-value pair clicked
    +        Try
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            dic = vault.GetDictionary("MyDictionary"True)
    +            'Add some values 
    +            dic.LongSetAt(2, "two")
    +            dic.LongSetAt(15, "fifteen")
    +            dic.LongSetAt(300, "three hundred")
    +            dic.LongSetAt(77, "seventy-seven")
    +
    +            dic.LongRemoveAt(2)
    +            MessageBox.Show("Key 2 removed.")
    +            dic.RemoveDictionary()

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        'Get key-value pairs clicked
    +        Try
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            If Me.RadioButton1.Checked Then
    +                'Get key-value pairs +by substring in key
    +                
    +                dic = vault.GetDictionary("MyDictionary"True)

    +                'Add some values 
    +                dic.StringSetAt("Cat""Socks")
    +                dic.StringSetAt("Dog""Milou")
    +                dic.StringSetAt("Human""Attila")
    +                dic.StringSetAt("At last""Last value")

    +                'Find all keys containing the text, "at" 
    +                Dim key As String = ""
    +                Dim value As String = ""
    +                Dim message As String
    +                message = "Keys with 'at' in them:" + vbLf
    +                Dim pos As IEdmPos5
    +                pos = dic.StringFindKeys("at")
    +                While Not pos.IsNull
    +                    dic.StringGetNextAssoc(pos, key, value)
    +                    message = message + "<" + key + "> = <" + value + ">" + vbLf
    +                End While

    +                'Show a message and delete the dictionary 
    +                MsgBox(message)
    +                dic.RemoveDictionary()
    +

    +            ElseIf Me.RadioButton2.Checked Then
    +                'Get key-value pairs +by integer key range
    +                 
    +                dic = vault.GetDictionary("MyDictionary"True)

    +                'Add some values 
    +                dic.LongSetAt(2, "two")
    +                dic.LongSetAt(15, "fifteen")
    +                dic.LongSetAt(300, "three hundred")
    +                dic.LongSetAt(77, "seventy-seven")

    +                'Find all keys in the range, 13-88 
    +                Dim key As Long
    +                Dim value As String = ""
    +                Dim message As String
    +                message = "Keys in the range 13-88:" + vbLf
    +                Dim pos As IEdmPos5
    +                pos = dic.LongFindKeys(13, 88)
    +                While Not pos.IsNull
    +                    dic.LongGetNextAssoc(pos, key, value)
    +                    message = message + "<" + Str(key) + "> = <" + value + ">" + vbLf
    +                End While

    +                'Show a message and delete the dictionary 
    +                MsgBox(message)
    +                dic.RemoveDictionary()
    +         
    +            ElseIf Me.RadioButton3.Checked Then
    +                'Get key-value pairs +by substring in values of integer keys
    +

    +                dic = vault.GetDictionary("MyDictionary"True)
    +                'Add some values 
    +                dic.LongSetAt(2, "two")
    +                dic.LongSetAt(15, "fifteen")
    +                dic.LongSetAt(300, "three hundred")
    +                dic.LongSetAt(77, "seventy-seven")
    +
    +                Dim bsValueSubString As String = "three"
    +                Dim aPos As IEdmPos5
    +                Dim plRetKey As Integer
    +                Dim pbsRetValue As String = ""
    +                aPos = dic.LongFindValues(bsValueSubString)
    +                While Not aPos.IsNull
    +                    dic.LongGetNextAssoc(aPos, plRetKey, pbsRetValue)
    +                    +MessageBox
    .Show("Key-value pair with " & """" & bsValueSubString & """" & " in value: " & vbLf & "<" & plRetKey & "> = <" & pbsRetValue & ">")
    +                End While
    +                dic.RemoveDictionary()
    +
    +            ElseIf Me.RadioButton4.Checked Then
    +                'Get key-value pairs +by specific integer key
    +

    +                dic = vault.GetDictionary("MyDictionary"True)
    +                'Add some values 
    +                dic.LongSetAt(2, "two")
    +                dic.LongSetAt(15, "fifteen")
    +                dic.LongSetAt(300, "three hundred")
    +                dic.LongSetAt(77, "seventy-seven")
    +
    +                Dim pbsRetValue As String = ""
    +                dic.LongGetAt(77, pbsRetValue)
    +                MessageBox.Show("Value for key 77: " & pbsRetValue)
    +                dic.RemoveDictionary()
    +
    +            ElseIf Me.RadioButton5.Checked Then
    +                'Get key-value pairs +by enumeration of all integer keys
    +                
    +                dic = vault.GetDictionary("MyDictionary"True)
    +                'Add some values
    +                dic.LongSetAt(2, "two")
    +                dic.LongSetAt(15, "fifteen")
    +                dic.LongSetAt(300, "three hundred")
    +                dic.LongSetAt(77, "seventy-seven")

    +                Dim msg As String
    +                Dim key As Long
    +                Dim value As String = ""

    +                msg = "Integer keys in dictionary:" + vbLf

    +                Dim pos As IEdmPos5
    +                pos = dic.LongGetFirstPosition
    +                While Not pos.IsNull
    +                    dic.LongGetNextAssoc(pos, key, value)
    +                    msg = msg + "<" + Str(key) + "> = <" + value + ">" + vbLf
    +                End While
    +                MsgBox(msg)
    +                dic.RemoveDictionary()
    +         
    +            Else
    +                MessageBox.Show("Select how to get key-value pairs.")
    +                
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button7_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button7.Click
    +        'Create key-value pair clicked
    +        Try
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim pbsRetValue As String = ""
    +           
    +            dic = vault.GetDictionary("MyDictionary"True)
    +            dic.LongTestAndSetAt(2, "Two")
    +            dic.LongGetAt(2, pbsRetValue)
    +            MessageBox.Show("Created:" & vbLf & "<2> = <" & pbsRetValue & ">")
    +            dic.RemoveDictionary()
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +End Class

    + +
    +
    'Form1.Designer.vb
    +
    +
    +

    + <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    + Partial Class Form1
    +     Inherits System.Windows.Forms.Form

    +     'Form overrides dispose to clean up the component list.
    +     <System.Diagnostics.DebuggerNonUserCode()> _
    +     Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +         Try
    +             If disposing AndAlso components IsNot Nothing Then
    +                 components.Dispose()
    +             End If
    +         Finally
    +             MyBase.Dispose(disposing)
    +         End Try
    +     End Sub

    +     'Required by the Windows Form Designer
    +     Private components As System.ComponentModel.IContainer

    +     'NOTE: The following procedure is required by the Windows Form Designer
    +     'It can be modified using the Windows Form Designer.  
    +     'Do not modify it using the code editor.
    +     <System.Diagnostics.DebuggerStepThrough()> _
    +     Private Sub InitializeComponent()
    +         Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +         Me.Label1 = New System.Windows.Forms.Label()
    +         Me.Button5 = New System.Windows.Forms.Button()
    +         Me.Button7 = New System.Windows.Forms.Button()
    +         Me.RadioButton1 = New System.Windows.Forms.RadioButton()
    +         Me.RadioButton2 = New System.Windows.Forms.RadioButton()
    +         Me.RadioButton3 = New System.Windows.Forms.RadioButton()
    +         Me.RadioButton4 = New System.Windows.Forms.RadioButton()
    +         Me.RadioButton5 = New System.Windows.Forms.RadioButton()
    +         Me.Button1 = New System.Windows.Forms.Button()
    +         Me.GroupBox1 = New System.Windows.Forms.GroupBox()
    +         Me.GroupBox1.SuspendLayout()
    +         Me.SuspendLayout()
    +         '
    +         'VaultsComboBox
    +         '
    +         Me.VaultsComboBox.FormattingEnabled = True
    +         Me.VaultsComboBox.Location = New System.Drawing.Point(20, 39)
    +         Me.VaultsComboBox.Name = "VaultsComboBox"
    +         Me.VaultsComboBox.Size = New System.Drawing.Size(169, 21)
    +         Me.VaultsComboBox.TabIndex = 1
    +         '
    +         'Label1
    +         '
    +         Me.Label1.AutoSize = True
    +         Me.Label1.Location = New System.Drawing.Point(19, 23)
    +         Me.Label1.Name = "Label1"
    +         Me.Label1.Size = New System.Drawing.Size(91, 13)
    +         Me.Label1.TabIndex = 2
    +         Me.Label1.Text = "Select vault view:"
    +         '
    +         'Button5
    +         '
    +         Me.Button5.Location = New System.Drawing.Point(40, 272)
    +         Me.Button5.Name = "Button5"
    +         Me.Button5.Size = New System.Drawing.Size(132, 23)
    +         Me.Button5.TabIndex = 7
    +         Me.Button5.Text = "Delete a key-value pair"
    +         Me.Button5.UseVisualStyleBackColor = True
    +         '
    +         'Button7
    +         '
    +         Me.Button7.Location = New System.Drawing.Point(39, 312)
    +         Me.Button7.Name = "Button7"
    +         Me.Button7.Size = New System.Drawing.Size(132, 23)
    +         Me.Button7.TabIndex = 9
    +         Me.Button7.Text = "Create a key-value pair"
    +         Me.Button7.UseVisualStyleBackColor = True
    +         '
    +         'RadioButton1
    +         '
    +         Me.RadioButton1.AutoSize = True
    +         Me.RadioButton1.Location = New System.Drawing.Point(30, 19)
    +         Me.RadioButton1.Name = "RadioButton1"
    +         Me.RadioButton1.Size = New System.Drawing.Size(100, 17)
    +         Me.RadioButton1.TabIndex = 11
    +         Me.RadioButton1.Text = "Substring in key"
    +         Me.RadioButton1.UseVisualStyleBackColor = True
    +         '
    +         'RadioButton2
    +         '
    +         Me.RadioButton2.AutoSize = True
    +         Me.RadioButton2.Location = New System.Drawing.Point(30, 42)
    +         Me.RadioButton2.Name = "RadioButton2"
    +         Me.RadioButton2.Size = New System.Drawing.Size(108, 17)
    +         Me.RadioButton2.TabIndex = 12
    +         Me.RadioButton2.TabStop = True
    +         Me.RadioButton2.Text = "Integer key range"
    +         Me.RadioButton2.UseVisualStyleBackColor = True
    +         '
    +         'RadioButton3
    +         '
    +         Me.RadioButton3.AutoSize = True
    +         Me.RadioButton3.Location = New System.Drawing.Point(29, 65)
    +         Me.RadioButton3.Name = "RadioButton3"
    +         Me.RadioButton3.Size = New System.Drawing.Size(199, 17)
    +         Me.RadioButton3.TabIndex = 13
    +         Me.RadioButton3.TabStop = True
    +         Me.RadioButton3.Text = "Substring in values of all integer keys"
    +         Me.RadioButton3.UseVisualStyleBackColor = True
    +         '
    +         'RadioButton4
    +         '
    +         Me.RadioButton4.AutoSize = True
    +         Me.RadioButton4.Location = New System.Drawing.Point(30, 88)
    +         Me.RadioButton4.Name = "RadioButton4"
    +         Me.RadioButton4.Size = New System.Drawing.Size(118, 17)
    +         Me.RadioButton4.TabIndex = 14
    +         Me.RadioButton4.TabStop = True
    +         Me.RadioButton4.Text = "Specific integer key"
    +         Me.RadioButton4.UseVisualStyleBackColor = True
    +         '
    +         'RadioButton5
    +         '
    +         Me.RadioButton5.AutoSize = True
    +         Me.RadioButton5.Location = New System.Drawing.Point(30, 111)
    +         Me.RadioButton5.Name = "RadioButton5"
    +         Me.RadioButton5.Size = New System.Drawing.Size(169, 17)
    +         Me.RadioButton5.TabIndex = 15
    +         Me.RadioButton5.TabStop = True
    +         Me.RadioButton5.Text = "Enumeration of all integer keys"
    +         Me.RadioButton5.UseVisualStyleBackColor = True
    +         '
    +         'Button1
    +         '
    +         Me.Button1.Location = New System.Drawing.Point(30, 143)
    +         Me.Button1.Name = "Button1"
    +         Me.Button1.Size = New System.Drawing.Size(132, 23)
    +         Me.Button1.TabIndex = 16
    +         Me.Button1.Text = "Get key-value pairs"
    +         Me.Button1.UseVisualStyleBackColor = True
    +         '
    +         'GroupBox1
    +         '
    +         Me.GroupBox1.Controls.Add(Me.Button1)
    +         Me.GroupBox1.Controls.Add(Me.RadioButton5)
    +         Me.GroupBox1.Controls.Add(Me.RadioButton4)
    +         Me.GroupBox1.Controls.Add(Me.RadioButton3)
    +         Me.GroupBox1.Controls.Add(Me.RadioButton2)
    +         Me.GroupBox1.Controls.Add(Me.RadioButton1)
    +         Me.GroupBox1.Location = New System.Drawing.Point(10, 69)
    +         Me.GroupBox1.Name = "GroupBox1"
    +         Me.GroupBox1.Size = New System.Drawing.Size(249, 181)
    +         Me.GroupBox1.TabIndex = 17
    +         Me.GroupBox1.TabStop = False
    +         Me.GroupBox1.Text = "Get key-value pairs by:"
    +         '
    +         'Form1
    +         '
    +         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +         Me.ClientSize = New System.Drawing.Size(271, 366)
    +         Me.Controls.Add(Me.GroupBox1)
    +         Me.Controls.Add(Me.Button7)
    +         Me.Controls.Add(Me.Button5)
    +         Me.Controls.Add(Me.Label1)
    +         Me.Controls.Add(Me.VaultsComboBox)
    +         Me.Name = "Form1"
    +         Me.Text = "Dictionary Test"
    +         Me.GroupBox1.ResumeLayout(False)
    +         Me.GroupBox1.PerformLayout()
    +         Me.ResumeLayout(False)
    +         Me.PerformLayout()

    +     End Sub
    +     Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +     Friend WithEvents Label1 As System.Windows.Forms.Label
    +     Friend WithEvents Button5 As System.Windows.Forms.Button
    +     Friend WithEvents Button7 As System.Windows.Forms.Button
    +     Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton
    +     Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton
    +     Friend WithEvents RadioButton3 As System.Windows.Forms.RadioButton
    +     Friend WithEvents RadioButton4 As System.Windows.Forms.RadioButton
    +     Friend WithEvents RadioButton5 As System.Windows.Forms.RadioButton
    +     Friend WithEvents Button1 As System.Windows.Forms.Button
    +     Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox

    + End Class

    +
    +
    Back to top
    +
    + +
    + + + + diff --git a/documentation/api_extracted/GettingStarted-epdmapi.html b/documentation/api_extracted/GettingStarted-epdmapi.html new file mode 100644 index 0000000..475c6bb --- /dev/null +++ b/documentation/api_extracted/GettingStarted-epdmapi.html @@ -0,0 +1,135 @@ + + + + + + + Getting Started + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + +
    + + + + + +
    + + + + + + + + + + + +
    + + SOLIDWORKS PDM Professional API Help + + + +
    + + Getting Started + +
    + + Send Feedback +
    + + +
    +
    +

    Glossary Item Box

    +
    +
    +
    +

    SOLIDWORKS PDM Professional Application Programming Interface

    +

    SOLIDWORKS PDM Professional’s application programming interface (API) gives you access to most of the functionality in SOLIDWORKS PDM Professional. For example, you can programmatically:

    + +

    See the Release Notes for the updates made to recent releases of the SOLIDWORKS PDM Professional API.

    +

    Applications 

    +

    You can write two types of applications using this API:

    +
      +
    1. Stand-alone applications (.exe and .dll) that are called by other programs to use various features of SOLIDWORKS PDM Professional. +
    2. Add-in applications that are called by SOLIDWORKS PDM Professional when users perform actions like check in or check out of a file, add a file to the vault, change the state of a file, etc.
    +

    Primary Assembly Interops

    +

    SOLIDWORKS PDM Professional includes two primary interop assemblies (also called interops) for use with stand-alone SOLIDWORKS PDM Professional applications:

    +
      +
    • EPDM.Interop.epdm.dll +
    • EPDM.interop.EPDMResultCode.dll
    +

    The interops are stored in the top folder of your SOLIDWORKS PDM Professional installation.

    +
      +
    • 32-bit interops are shipped with the 32-bit version of SOLIDWORKS PDM Professional. +
    • 64-bit interops are shipped with the 64-bit version of SOLIDWORKS PDM Professional.
    +

    See Using .NET Framework 4.0 in Stand-alone Applications for more information.

    +

    See Also

    +

    Return Codes

    +

    TroubleShooting Guide

    + + +
    + + + +
    + + + \ No newline at end of file diff --git a/documentation/api_extracted/GraphWorkflow.gif b/documentation/api_extracted/GraphWorkflow.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb183d49d4a9153155b328552317d5032cda5984 GIT binary patch literal 8508 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Graph_Workflow_Example_CSharp.htm b/documentation/api_extracted/Graph_Workflow_Example_CSharp.htm new file mode 100644 index 0000000..c082f89 --- /dev/null +++ b/documentation/api_extracted/Graph_Workflow_Example_CSharp.htm @@ -0,0 +1,412 @@ + + + +Graph a Workflow Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Graph a Workflow Example (C#)

    +

    This example shows how to graph a workflow.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type PaintWorkflowGraph_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, and click Add).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Graph +a workflow dialog box.
    +// 2. Maximize the dialog box for the workflow graph.

    +// 3. Select a vault view.
    +// 4. Click a workflow.

    +// 5. Click Graph +workflow
    +// +6. Graphs the selected workflow in the dialog box.
    +
    +// 7. Close the Graph +a workflow dialog box.         
    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace PaintWorkflowGraph_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        IEdmVault5 vault1 = null;
    +        IEdmWorkflow6 wf;
    +        IEdmWorkflowMgr6 wfmgr;
    +        IEdmPos5 pos;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        public void GraphWorkflow_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Graph workflow
    +            try
    +            {
    +                IEdmVault7 vault2 = default(IEdmVault7);
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }

    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Retrieve the graphics interface of this window
    +                System.Drawing.Graphics gfx = default(System.Drawing.Graphics);
    +                gfx = this.CreateGraphics();
    +                gfx.Clear(Color.AliceBlue);

    +                //Create font with which to draw text 
    +                System.Drawing.Font font = default(System.Drawing.Font);
    +                font = new System.Drawing.Font("Arial", 10, FontStyle.Bold);

    +                //Loop over all the workflows to find the selected workflow
    +                pos = wfmgr.GetFirstWorkflowPosition();
    +                while (!pos.IsNull)
    +                {
    +                    wf = wfmgr.GetNextWorkflow(pos);

    +                    if ((wf.Name == ListBox1.SelectedItem.ToString()))
    +                    {
    +                        //Loop over all workflow transitions
    +                        pos = default(IEdmPos5);
    +                        pos = wf.GetFirstTransitionPosition();
    +                        while (!pos.IsNull)
    +                        {
    +                            IEdmTransition7 trans = default(IEdmTransition7);
    +                            trans = (IEdmTransition7)wf.GetNextTransition(pos);

    +                            //Draw the arrow of the transition
    +                            EdmPoint[] vertices = null;
    +                            vertices = null;
    +                            trans.GetArrowVertices(out vertices);
    +                            PaintArrow(gfx, vertices);

    +                            //Get the transition box
    +                            EdmRect transRect = default(EdmRect);
    +                            trans.GetRect(out transRect);
    +                            System.Drawing.RectangleF rectF = default(System.Drawing.RectangleF);
    +                            rectF.X = transRect.mlLeft;
    +                            rectF.Y = transRect.mlTop;
    +                            rectF.Width = transRect.mlRight - transRect.mlLeft;
    +                            rectF.Height = transRect.mlBottom - transRect.mlTop;

    +                            //Draw the transition box
    +                            gfx.FillRectangle(Brushes.LightYellow, rectF);
    +                            gfx.DrawRectangle(Pens.Black, rectF.X, rectF.Y, rectF.Width, rectF.Height);
    +                            gfx.DrawString(trans.Name, font, Brushes.Black, rectF);
    +                        }

    +                        //Loop over all workflow states
    +                        pos = wf.GetFirstStatePosition();
    +                        while (!pos.IsNull)
    +                        {
    +                            IEdmState7 state = default(IEdmState7);
    +                            state = (IEdmState7)wf.GetNextState(pos);

    +                            //Get the state box
    +                            EdmRect stateRect = default(EdmRect);
    +                            state.GetRect(out stateRect);
    +                            System.Drawing.RectangleF rectF = default(System.Drawing.RectangleF);
    +                            rectF.X = stateRect.mlLeft;
    +                            rectF.Y = stateRect.mlTop;
    +                            rectF.Width = stateRect.mlRight - stateRect.mlLeft;
    +                            rectF.Height = stateRect.mlBottom - stateRect.mlTop;

    +                            //Draw the state box
    +                            gfx.FillRectangle(Brushes.Azure, rectF);
    +                            gfx.DrawRectangle(Pens.Black, rectF.X, rectF.Y, rectF.Width, rectF.Height);
    +                            gfx.DrawString(state.Name, font, Brushes.Black, rectF);
    +                        }
    +                    }
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +        //Draw the arrow of a transition
    +        private void PaintArrow(System.Drawing.Graphics gfx, EdmPoint[] vertices)
    +        {
    +            try
    +            {
    +                System.Drawing.PointF[] points = new System.Drawing.PointF[vertices.GetUpperBound(0) + 1];
    +                int i = 0;
    +                i = vertices.GetLowerBound(0);
    +                while (i <= vertices.GetUpperBound(0))
    +                {
    +                    points[i].X = vertices[i].mlX;
    +                    points[i].Y = vertices[i].mlY;
    +                    i = i + 1;
    +                }

    +                //Draw the arrow lines
    +                gfx.DrawLines(Pens.DarkRed, points);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void VaultsComboBox_SelectedIndexChanged(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;

    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                ListBox1.Items.Clear();

    +                wfmgr = (IEdmWorkflowMgr6)vault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);
    +                pos = wfmgr.GetFirstWorkflowPosition();
    +                while (!pos.IsNull)
    +                {
    +                    wf = wfmgr.GetNextWorkflow(pos);
    +                    ListBox1.Items.Add(wf.Name);
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace PaintWorkflowGraph_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.GraphWorkflow = new System.Windows.Forms.Button();
    +            this.ListBox1 = new System.Windows.Forms.ListBox();
    +            this.Label1 = new System.Windows.Forms.Label();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = " Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // GraphWorkflow
    +            // 
    +            this.GraphWorkflow.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    +            this.GraphWorkflow.Location = new System.Drawing.Point(15, 199);
    +            this.GraphWorkflow.Name = "GraphWorkflow";
    +            this.GraphWorkflow.Size = new System.Drawing.Size(121, 23);
    +            this.GraphWorkflow.TabIndex = 5;
    +            this.GraphWorkflow.Text = "Graph workflow";
    +            this.GraphWorkflow.UseVisualStyleBackColor = true;
    +            this.GraphWorkflow.Click += new System.EventHandler(this.GraphWorkflow_Click);
    +            // 
    +            // ListBox1
    +            // 
    +            this.ListBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    +            this.ListBox1.FormattingEnabled = true;
    +            this.ListBox1.HorizontalScrollbar = true;
    +            this.ListBox1.Location = new System.Drawing.Point(15, 98);
    +            this.ListBox1.Name = "ListBox1";
    +            this.ListBox1.Size = new System.Drawing.Size(120, 95);
    +            this.ListBox1.TabIndex = 6;
    +            // 
    +            // Label1
    +            // 
    +            this.Label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
    +            this.Label1.AutoSize = true;
    +            this.Label1.Location = new System.Drawing.Point(13, 82);
    +            this.Label1.Name = "Label1";
    +            this.Label1.Size = new System.Drawing.Size(85, 13);
    +            this.Label1.TabIndex = 7;
    +            this.Label1.Text = "Select workflow:";
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(227, 262);
    +            this.Controls.Add(this.Label1);
    +            this.Controls.Add(this.ListBox1);
    +            this.Controls.Add(this.GraphWorkflow);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Graph a workflow";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button GraphWorkflow;
    +        internal System.Windows.Forms.ListBox ListBox1;
    +        internal System.Windows.Forms.Label Label1;
    +    }
    +}

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Graph_Workflow_Example_VBNET.htm b/documentation/api_extracted/Graph_Workflow_Example_VBNET.htm new file mode 100644 index 0000000..1b16c4e --- /dev/null +++ b/documentation/api_extracted/Graph_Workflow_Example_VBNET.htm @@ -0,0 +1,362 @@ + + + +Graph a Workflow Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Graph a Workflow Example (VB.NET)

    +

    This example shows how to graph a workflow.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type PaintWorkflowGraph in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Graph a workflow dialog box.
    +' 2. Maximize the dialog box for the workflow graph.

    +' 3. Select a vault view.
    +' 4. Click a workflow.

    +' 5. Click Graph workflow
    + +' 6. Graphs the selected workflow in the dialog box.
    + +' 7. Close the Graph a workflow dialog box.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim wf As IEdmWorkflow6
    +    Dim wfmgr As IEdmWorkflowMgr6
    +    Dim pos As IEdmPos5

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            vault1 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Public Sub GraphWorkflow_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GraphWorkflow.Click
    +        'Graph workflow
    +        Try
    +            Dim vault2 As IEdmVault7
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If

    +            vault2 = vault1
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Retrieve the graphics interface of this window
    +            Dim gfx As System.Drawing.Graphics
    +            gfx = Me.CreateGraphics()
    +            gfx.Clear(Color.AliceBlue)

    +            'Create font with which to draw text 
    +            Dim font As System.Drawing.Font
    +            font = New System.Drawing.Font("Arial", 10, FontStyle.Bold)

    +            'Loop over all the workflows to find the selected workflow
    +            pos = wfmgr.GetFirstWorkflowPosition()
    +            While Not pos.IsNull
    +                wf = wfmgr.GetNextWorkflow(pos)
    +                If (wf.Name = ListBox1.SelectedItem.ToString) Then

    +                    'Loop over all workflow transitions
    +                    Dim pos As IEdmPos5
    +                    pos = wf.GetFirstTransitionPosition
    +                    While Not pos.IsNull
    +                        Dim trans As IEdmTransition7
    +                        trans = wf.GetNextTransition(pos)

    +                        'Draw the arrow of the transition
    +                        Dim vertices() As EdmPoint
    +                        vertices = Nothing
    +                        trans.GetArrowVertices(vertices)
    +                        PaintArrow(gfx, vertices)

    +                        'Get the transition box
    +                        Dim transRect As EdmRect
    +                        trans.GetRect(transRect)
    +                        Dim rectF As System.Drawing.RectangleF
    +                        rectF.X = transRect.mlLeft
    +                        rectF.Y = transRect.mlTop
    +                        rectF.Width = transRect.mlRight - transRect.mlLeft
    +                        rectF.Height = transRect.mlBottom - transRect.mlTop

    +                        'Draw the transition box
    +                        gfx.FillRectangle(Brushes.LightYellow, rectF)
    +                        gfx.DrawRectangle(Pens.Black, rectF.X, rectF.Y, rectF.Width, rectF.Height)
    +                        gfx.DrawString(trans.Name, font, Brushes.Black, rectF)
    +                    End While

    +                    'Loop over all workflow states
    +                    pos = wf.GetFirstStatePosition
    +                    While Not pos.IsNull
    +                        Dim state As IEdmState7
    +                        state = wf.GetNextState(pos)

    +                        'Get the state box
    +                        Dim stateRect As EdmRect
    +                        state.GetRect(stateRect)
    +                        Dim rectF As System.Drawing.RectangleF
    +                        rectF.X = stateRect.mlLeft
    +                        rectF.Y = stateRect.mlTop
    +                        rectF.Width = stateRect.mlRight - stateRect.mlLeft
    +                        rectF.Height = stateRect.mlBottom - stateRect.mlTop

    +                        'Draw the state box
    +                        gfx.FillRectangle(Brushes.Azure, rectF)
    +                        gfx.DrawRectangle(Pens.Black, rectF.X, rectF.Y, rectF.Width, rectF.Height)
    +                        gfx.DrawString(state.Name, font, Brushes.Black, rectF)
    +                    End While
    +                End If
    +            End While
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +    'Draw the arrow of a transition
    +    Private Sub PaintArrow(ByVal gfx As System.Drawing.GraphicsByVal vertices() As EdmPoint)
    +        Try
    +            Dim points(UBound(vertices)) As System.Drawing.PointF
    +            Dim i As Integer
    +            i = LBound(vertices)
    +            While i <= UBound(vertices)
    +                points(i).X = vertices(i).mlX
    +                points(i).Y = vertices(i).mlY
    +                i = i + 1
    +            End While

    +            'Draw the arrow lines
    +            gfx.DrawLines(Pens.DarkRed, points)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub VaultsComboBox_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles VaultsComboBox.SelectedIndexChanged
    +        Try
    +            vault1 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)

    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            ListBox1.Items.Clear()

    +            wfmgr = vault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr)
    +            pos = wfmgr.GetFirstWorkflowPosition()
    +            While Not pos.IsNull
    +                wf = wfmgr.GetNextWorkflow(pos)
    +                ListBox1.Items.Add(wf.Name)
    +            End While

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +End Class

    +

    +

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +
    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +    ''' Clean up any resources being used.
    +    ''' </summary>
    +    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.GraphWorkflow = New System.Windows.Forms.Button()
    +        Me.ListBox1 = New System.Windows.Forms.ListBox()
    +        Me.Label1 = New System.Windows.Forms.Label()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = " Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'GraphWorkflow
    +        '
    +        Me.GraphWorkflow.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    +        Me.GraphWorkflow.Location = New System.Drawing.Point(15, 199)
    +        Me.GraphWorkflow.Name = "GraphWorkflow"
    +        Me.GraphWorkflow.Size = New System.Drawing.Size(121, 23)
    +        Me.GraphWorkflow.TabIndex = 5
    +        Me.GraphWorkflow.Text = "Graph workflow"
    +        Me.GraphWorkflow.UseVisualStyleBackColor = True
    +        '
    +        'ListBox1
    +        '
    +        Me.ListBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    +        Me.ListBox1.FormattingEnabled = True
    +        Me.ListBox1.HorizontalScrollbar = True
    +        Me.ListBox1.Location = New System.Drawing.Point(15, 98)
    +        Me.ListBox1.Name = "ListBox1"
    +        Me.ListBox1.Size = New System.Drawing.Size(120, 95)
    +        Me.ListBox1.TabIndex = 6
    +        '
    +        'Label1
    +        '
    +        Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    +        Me.Label1.AutoSize = True
    +        Me.Label1.Location = New System.Drawing.Point(13, 82)
    +        Me.Label1.Name = "Label1"
    +        Me.Label1.Size = New System.Drawing.Size(85, 13)
    +        Me.Label1.TabIndex = 7
    +        Me.Label1.Text = "Select workflow:"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(227, 262)
    +        Me.Controls.Add(Me.Label1)
    +        Me.Controls.Add(Me.ListBox1)
    +        Me.Controls.Add(Me.GraphWorkflow)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Graph a workflow"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents GraphWorkflow As System.Windows.Forms.Button
    +    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
    +    Friend WithEvents Label1 As System.Windows.Forms.Label

    +End Class

    +

    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/HelloWorld.gif b/documentation/api_extracted/HelloWorld.gif new file mode 100644 index 0000000000000000000000000000000000000000..d5304c2996c093aff7d230326c5f81c668c3d3d4 GIT binary patch literal 3064 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 WUD=j>*_fT#n!VYUZPNo05CA&_reoUx literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/ItemRefs.gif b/documentation/api_extracted/ItemRefs.gif new file mode 100644 index 0000000000000000000000000000000000000000..03ce48811bb4fa067abb83a5edd88b587c02e716 GIT binary patch literal 7286 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 QViAo9#U2tbfdK&kJ1~=hXaE2J literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Items.htm b/documentation/api_extracted/Items.htm new file mode 100644 index 0000000..db3f7aa --- /dev/null +++ b/documentation/api_extracted/Items.htm @@ -0,0 +1,93 @@ + + + +Programming Items + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Programming Items

    + + +
    + +

    + A file in SOLIDWORKS PDM Professional consists of two parts: + +

    +
      +
    • + The file that is stored on the archive server.
    • +
    • The metadata associated with the file, or an item, which is + stored in the SQL database.
    • +
    +

    + The metadata consists of card contents, file references, permissions, workflow + states, revisions, etc. An item is all of the metadata + associated with a file. Most of the existing functions that work for files have been adjusted so that they also work for + items. + Only a few functions are specific to items.

    +

    + All items and item folders are placed + under a folder named "<items>", which is located directly beneath the vault root. + SOLIDWORKS PDM Professional does not show this folder in the user interface, but it is + included in the paths returned by the SOLIDWORKS PDM Professional API.

    +

    + All items have the file extension, ".<item>". This extension in also hidden in the user interface, but + it is + returned by the SOLIDWORKS PDM Professional API.

    +

    Code Samples 

    + +

    + Interfaces

    + + + + +
    + + + + + + + + + diff --git a/documentation/api_extracted/KeepWindowInfront.htm b/documentation/api_extracted/KeepWindowInfront.htm new file mode 100644 index 0000000..290618a --- /dev/null +++ b/documentation/api_extracted/KeepWindowInfront.htm @@ -0,0 +1,61 @@ + + + +Keeping Add-in Windows in the Foreground + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Keeping Add-in Windows in the Foreground

    + + + + +
    + + + + + +

    When +an add-in displays a dialog box, the add-in needs to keep the dialog box in +front of whatever window launched it. Failure to do so may result +in the dialog box disappearing and the user +becoming confused.

    +

    C++

    +

    To keep the dialog box in the foreground, you can +specify a +parent window handle when the new dialog box is created.

    + +

    VB.NET or C#

    + +

    Window handling is supported in +SOLIDWORKS PDM Professional 6.4 and later. In SOLIDWORKS PDM Professional 6.4 only, you must also enable the +Multithreaded Add-ins Threading policy. 

    +

    Unlike Visual Basic 6, VB.NET and C# allow you to create add-in modules that support +multi-threading. When +SOLIDWORKS +PDM Professional runs a multi-threaded NET add-in, it executes it in the same thread +as the parent window. Calls to +IEdmVault5::SetAddInWnd, +which were previously recommended for Visual Basic 6, are no longer necessary.

    +

    To keep an add-in window in the foreground, call +IEdmVault8::GetWin32Window +in the .NET form of your add-in to specify the handle of the parent window.

    + +
    + + + + diff --git a/documentation/api_extracted/LoadAddin.gif b/documentation/api_extracted/LoadAddin.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2208a0bbdedce40adec03f75fe9778ebfeea0d1 GIT binary patch literal 8406 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 j-oj^X8}YYgasAk1$Om!N< + + +Install Add-in Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Install Add-in Example (C#)

    +

    This example shows how to install an add-in, obtain +information about it, and uninstall it.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type AddinMgr_CSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    + +//     f. Create a form similar to the form shown above and change:
    +//        1. Top label to VaultsLabel.
    +//        2. Combo box to VaultsComboBox.
    +//        3. Browse for add-in button to BrowseButton.
    +//        4. List box to AddinListBox.
    +//        5. Install add-in button to LoadAddin.
    +//     g. Replace the code in Form1.cs with this code.
    +//     h. Replace the code in Form1.Designer.cs with this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, and click Add).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. The Install add-in dialog box displays.
    +//     a. Select a vault view.
    +//     b. Click Browse for add-in.
    +//     c. In the Browse for add-ins dialog:
    +//        1. Navigate to your add-in directory +and click addin_name.dll 
    +//           and EPDM.Interop.epdm.dll.

    +//        2. Click Open.
    +//     d. Click Install add-in.
    +//        A message box containing +information about each add-in installed in
    +//        the selected vault displays.

    +//     e. Click OK to close each message box.
    +//     f. Click Remove add-in.

    +//  2. Close the Install add-in dialog box.
    + +//----------------------------------------------------------------------------

    +

    +//Form1.cs

    +

    +
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using System.IO;
    +using System.Xml.Serialization;
    +using System.Windows.Forms;
    +using System.ComponentModel;
    +using EPDM.Interop.epdm;

    +namespace AddinMgr_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        private IEdmVault5 vault1 = null;

    +

    +        string addinName = "";

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                AddinListBox.Items.Clear();

    +                
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                //Set the initial directory in the Browse +for add-ins dialog
    +                AddinOpenFileDialog.InitialDirectory = vault1.RootFolderPath;
    +
    +                //Show the Browse +for add-ins dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = AddinOpenFileDialog.ShowDialog();
    +
    +                //If the user did +not click Open, exit the subroutine
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    return;
    +                }

    +                foreach (string FileName in AddinOpenFileDialog.FileNames)
    +                {
    +                    AddinListBox.Items.Add(FileName);
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void LoadAddin_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmAddInMgr8 AddinMgr = default(IEdmAddInMgr8);
    +                AddinMgr = (IEdmAddInMgr8)vault1;

    +                
    +                string fileList = "";
    +                int fileidx = 1;

    +                // Save the path and name of the add-in just installed
    +                string justInstalledPathName = "";

    +                foreach (string FileName in AddinListBox.Items)
    +                {
    +                    if (!(FileName.Contains("Interop")))
    +                    {
    +                        justInstalledPathName = FileName;
    +                    }

    +                    if (fileidx == 1)
    +                    {
    +                        fileList = FileName;
    +                    }
    +                    else
    +                    {
    +                        fileList = fileList + "\n" + FileName;
    +                    }

    +                    fileidx = fileidx + 1;
    +                }

    +         
    +                AddinMgr.AddAddIns(fileList, (int)EdmAddAddInFlags.EdmAddin_AddAllFilesToOneAddIn, null);


    +                // Get information about each +of the installed add-ins
    +                EdmAddInInfo2[] addIns = null;
    +                AddinMgr.GetInstalledAddIns(out addIns);

    +           
    +                string s = "";
    +                int idx = 0;
    +                idx = addIns.GetLowerBound(0);


    +                while (idx <= addIns.GetUpperBound(0))
    +                {
    +                    s = "Add-in: " + addIns[idx].mbsAddInName + "\n" + "Class: " + addIns[idx].mbsClassID + "\n";
    +                    s = s + "Company: " + addIns[idx].mbsCompany + "\n" + "Description: " + addIns[idx].mbsDescription + "\n";
    +                    s = s + "Path: " + addIns[idx].mbsModulePath + "\n" + "Version: " + Convert.ToString(addIns[idx].mlAddInVersion) + "\n";
    +                    s = s + "Req ver: " + Convert.ToString(addIns[idx].mlRequiredVersionMajor) + "." + Convert.ToString(addIns[idx].mlRequiredVersionMinor);

    +                    MessageBox.Show(s);
    +                    +// Save the name of the add-in just installed
    +                    addinName = addIns[idx].mbsAddInName;
    +                    
    +                    idx = idx + 1;
    +                }

    +                // Get information about each of the add-ins installed for debugging
    +                EdmAddInInfo2[] debugAddIns = new EdmAddInInfo2[10];
    +                AddinMgr.GetDebugAddIns(ref debugAddIns);

    +                idx = debugAddIns.GetLowerBound(0);

    +                while (idx <= debugAddIns.GetUpperBound(0))
    +                {
    +                    s = "Debug add-in: " + debugAddIns[idx].mbsAddInName + "\n" + "Class: " + debugAddIns[idx].mbsClassID + "\n";
    +                    s = s + "Company: " + debugAddIns[idx].mbsCompany + "\n" + "Description: " + debugAddIns[idx].mbsDescription + "\n";
    +                    s = s + "Path: " + debugAddIns[idx].mbsModulePath + "\n" + "Version: " + Convert.ToString(debugAddIns[idx].mlAddInVersion) + "\n";
    +                    s = s + "Req ver: " + Convert.ToString(debugAddIns[idx].mlRequiredVersionMajor) + "." + Convert.ToString(debugAddIns[idx].mlRequiredVersionMinor);

    +                    MessageBox.Show(s);
    +                    idx = idx + 1;
    +                }

    +                // Get information about the add-in just installed
    +                EdmAddInInfo2 poInfo = new EdmAddInInfo2();
    +                AddinMgr.GetAddInInfo2(justInstalledPathName, nullref poInfo);

    +                s = "Getting info for add-in: " + poInfo.mbsAddInName + "\n" + "Class: " + poInfo.mbsClassID + "\n";
    +                s = s + "Company: " + poInfo.mbsCompany + "\n" + "Description: " + poInfo.mbsDescription + "\n";
    +                s = s + "Path: " + poInfo.mbsModulePath + "\n" + "Version: " + Convert.ToString(poInfo.mlAddInVersion) + "\n";
    +                s = s + "Req ver: " + Convert.ToString(poInfo.mlRequiredVersionMajor) + "." + Convert.ToString(poInfo.mlRequiredVersionMinor);

    +                MessageBox.Show(s);

    +                // Extract information about the add-in just installed
    +                EdmAddInFileInfo[] ppoFiles = null;
    +                EdmAddInMenuInfo[] ppoCmds = null;
    +                AddinMgr.GetInstalledAddIn(addinName, "c:\\temp"out poInfo, out ppoFiles, out ppoCmds);

    +                string msg = null;
    +                msg = "Extracting info for add-in: " + poInfo.mbsAddInName + "\n";
    +                msg = msg + "CLSID=" + poInfo.mbsClassID + "\n";
    +                msg = msg + "Company=" + poInfo.mbsCompany + "\n";
    +                msg = msg + "Module=" + poInfo.mbsModulePath + "\n";
    +                msg = msg + "Version=" + Convert.ToString(poInfo.mlAddInVersion) + "\n";
    +                msg = msg + "Requires version=" + Convert.ToString(poInfo.mlRequiredVersionMajor) + "." + Convert.ToString(poInfo.mlRequiredVersionMinor);
    +                msg = msg + "\n" + "Files:" + "\n";

    +                idx = ppoFiles.GetLowerBound(0);
    +                while (idx <= ppoFiles.GetUpperBound(0))
    +                {
    +                    msg = msg + ppoFiles[idx].mbsFileName + " Flags=" + Convert.ToString(ppoFiles[idx].mlEdmAddInFileInfoFlags) + "\n";
    +                    idx = idx + 1;
    +                }

    +                msg = msg + "\n" + "Commands:" + "\n";

    +                idx = ppoCmds.GetLowerBound(0);
    +                while (idx <= ppoCmds.GetUpperBound(0))
    +                {
    +                    msg = msg + "'" + ppoCmds[idx].mbsMenuStr + "' Flags=" + Convert.ToString(ppoCmds[idx].mlEdmMenuFlags) + "\n";
    +                    idx = idx + 1;
    +                }

    +                vault1.MsgBox(this.Handle.ToInt32(), msg);

    +                // Get CAF information about the add-in just installed
    +                AddinMgr.GetCAFInfo(poInfo.mbsModulePath"c:\\temp"out poInfo, out ppoFiles, out ppoCmds);
    +                msg = "Getting CAF info for add-in: " + poInfo.mbsAddInName + "\n";
    +                msg = msg + "CLSID=" + poInfo.mbsClassID + "\n";
    +                msg = msg + "Company=" + poInfo.mbsCompany + "\n";
    +                msg = msg + "Module=" + poInfo.mbsModulePath + "\n";
    +                msg = msg + "Version=" + Convert.ToString(poInfo.mlAddInVersion) + "\n";
    +                msg = msg + "Requires version=" + Convert.ToString(poInfo.mlRequiredVersionMajor) + "." + Convert.ToString(poInfo.mlRequiredVersionMinor);
    +                msg = msg + "\n" + "Files:" + "\n";

    +                idx = ppoFiles.GetLowerBound(0);
    +                while (idx <= ppoFiles.GetUpperBound(0))
    +                {
    +                    msg = msg + ppoFiles[idx].mbsFileName + " Flags=" + Convert.ToString(ppoFiles[idx].mlEdmAddInFileInfoFlags) + "\n";
    +                    idx = idx + 1;
    +                }

    +                msg = msg + "\n" + "Commands:" + "\n";

    +                idx = ppoCmds.GetLowerBound(0);
    +                while (idx <= ppoCmds.GetUpperBound(0))
    +                {
    +                    msg = msg + "'" + ppoCmds[idx].mbsMenuStr + "' flags=" + Convert.ToString(ppoCmds[idx].mlEdmMenuFlags) + "\n";
    +                    idx = idx + 1;
    +                }

    +                vault1.MsgBox(this.Handle.ToInt32(), msg);

    +                return;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +

    +        private void button1_Click(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmAddInMgr9 AddinMgr = default(IEdmAddInMgr9);
    +                AddinMgr = (IEdmAddInMgr9)vault1;

    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                AddinMgr.RemoveAddIn(addinName);
    +                this.button1.Enabled = false;
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +        
    +    }
    +}

    + +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace AddinMgr_CSharp
    +{
    +    partial class Form1
    +{
    +    /// <summary>
    +            /// Required designer variable.
    +            /// </summary>
    +    private System.ComponentModel.IContainer components = null;

    +    /// <summary>
    +            /// Clean up any resources being used.
    +            /// </summary>
    +            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    protected override void Dispose(bool disposing)
    +    {
    +        if (disposing && (components != null))
    +        {
    +            components.Dispose();
    +        }
    +        base.Dispose(disposing);
    +    }

    +    #region Windows Form Designer generated code

    +    /// <summary>
    +            /// Required method for Designer support - do not modify
    +            /// the contents of this method with the code editor.
    +            /// </summary>
    +    private void InitializeComponent()
    +    {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.AddinListBox = new System.Windows.Forms.ListBox();
    +            this.LoadAddin = new System.Windows.Forms.Button();
    +            this.AddinOpenFileDialog = new System.Windows.Forms.OpenFileDialog();
    +            this.button1 = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 59);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(16, 98);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(271, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse for add-in...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
    +            // 
    +            // AddinListBox
    +            // 
    +            this.AddinListBox.FormattingEnabled = true;
    +            this.AddinListBox.HorizontalScrollbar = true;
    +            this.AddinListBox.Location = new System.Drawing.Point(16, 151);
    +            this.AddinListBox.Name = "AddinListBox";
    +            this.AddinListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
    +            this.AddinListBox.Size = new System.Drawing.Size(259, 56);
    +            this.AddinListBox.TabIndex = 4;
    +            // 
    +            // LoadAddin
    +            // 
    +            this.LoadAddin.Location = new System.Drawing.Point(16, 230);
    +            this.LoadAddin.Name = "LoadAddin";
    +            this.LoadAddin.Size = new System.Drawing.Size(259, 23);
    +            this.LoadAddin.TabIndex = 5;
    +            this.LoadAddin.Text = "Install add-in";
    +            this.LoadAddin.UseVisualStyleBackColor = true;
    +            this.LoadAddin.Click += new System.EventHandler(this.LoadAddin_Click);
    +            // 
    +            // AddinOpenFileDialog
    +            // 
    +            this.AddinOpenFileDialog.Multiselect = true;
    +            this.AddinOpenFileDialog.Title = "Browse for add-ins";
    +            // 
    +            // button1
    +            // 
    +            this.button1.Location = new System.Drawing.Point(16, 260);
    +            this.button1.Name = "button1";
    +            this.button1.Size = new System.Drawing.Size(259, 23);
    +            this.button1.TabIndex = 6;
    +            this.button1.Text = "Remove add-in";
    +            this.button1.UseVisualStyleBackColor = true;
    +            this.button1.Enabled = false;
    +            this.button1.Click += new System.EventHandler(this.button1_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(317, 308);
    +            this.Controls.Add(this.button1);
    +            this.Controls.Add(this.LoadAddin);
    +            this.Controls.Add(this.AddinListBox);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Install add-in";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +    }

    +    #endregion

    +    private System.Windows.Forms.OpenFileDialog AddinOpenFileDialog;
    +    private System.Windows.Forms.Label VaultsLabel;
    +    private System.Windows.Forms.ComboBox VaultsComboBox;
    +    private System.Windows.Forms.Button BrowseButton;
    +    private System.Windows.Forms.ListBox AddinListBox;
    +    private System.Windows.Forms.Button LoadAddin;
    +    private System.Windows.Forms.Button button1;
    +    }
    +}

    +

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Load_Addin_Example_VBNET.htm b/documentation/api_extracted/Load_Addin_Example_VBNET.htm new file mode 100644 index 0000000..5f4be67 --- /dev/null +++ b/documentation/api_extracted/Load_Addin_Example_VBNET.htm @@ -0,0 +1,475 @@ + + + +Install Add-in Example (VB.NET) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Install Add-in Example (VB.NET)

    +

    This example shows how to install an add-in, obtain +information about it, and uninstall it.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type AddinMgr in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    + +'     f. Create a form similar to the form shown above and change:
    +'        1. Top label to VaultsLabel.
    +'        2. Combo box to VaultsComboBox.
    +'        3. Browse for +add-in button to BrowseButton.
    +'        4. List box to AddinListBox.
    +'        5. Install add-in button to LoadAddin.
    +'     g. Replace the code in Form1.vb with this code.
    +'     h. Replace the code in Form1.Designer.vb with this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. The Install add-in dialog box displays.
    +'     a. Select a vault view.
    +'     b. Click Browse for add-in.
    +'     c. In the Browse for add-ins dialog:
    +'        1. Navigate to your add-in directory +and click addin_name.dll 
    +'           and EPDM.Interop.epdm.dll.

    +'        2. Click Open.
    +'     d. Click Install add-in.
    +'        A message box containing information +about each add-in installed in
    +'        the selected vault displays.

    +'     e. Click OK to close each message box.
    +'     f. Click Remove add-in.

    +'  2. Close the Install add-in dialog box.
    + +'----------------------------------------------------------------------------

    +

    +'Form1.vb
    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim
    addinName As String += ""

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            AddinListBox.Items.Clear()

    +            
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            'Set the initial directory in the Browse +for add-ins dialog
    +            AddinOpenFileDialog.InitialDirectory = vault1.RootFolderPath
    +

    +            'Show the Browse +for add-ins dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = AddinOpenFileDialog.ShowDialog()
    +
    +            'If the user did +not click Open, exit this subroutine
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                Return
    +            End If

    +            For Each FileName As String In AddinOpenFileDialog.FileNames
    +                AddinListBox.Items.Add(FileName)
    +            Next
    +

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub LoadAddin_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles LoadAddin.Click
    +        Try
    +            
    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim AddinMgr As IEdmAddInMgr8
    +            AddinMgr = vault1

    +            Dim ppoFiles() As EdmAddInFileInfo = Nothing
    +            Dim fileList As String
    +            fileList = ""
    +            Dim fileidx As Integer = 1

    +            ' Save the path and name of the add-in just installed
    +            Dim justInstalledPathName As String = ""

    +            For Each FileName As String In AddinListBox.Items
    +                If Not (FileName.Contains("Interop")) Then
    +                    justInstalledPathName = FileName
    +                End If

    +                If fileidx = 1 Then
    +                    fileList = FileName

    +                Else
    +                    fileList = fileList & vbLf & FileName
    +                End If
    +                fileidx = fileidx + 1
    +            Next

    +            AddinMgr.AddAddIns(fileList, EdmAddAddInFlags.EdmAddin_AddAllFilesToOneAddIn, Nothing)

    +            ' Get information about each +of the installed add-ins
    +            Dim addIns() As EdmAddInInfo2 = Nothing
    +            AddinMgr.GetInstalledAddIns(addIns)

    +          
    +            Dim addinPath As String = ""
    +            Dim s As String = ""
    +            Dim idx As Integer
    +            idx = LBound(addIns)

    +            While idx <= UBound(addIns)

    +                s = "Add-in: " + addIns(idx).mbsAddInName + vbLf + "Class: " + addIns(idx).mbsClassID + vbLf
    +                s = s + "Company: " + addIns(idx).mbsCompany + vbLf + "Description: " + addIns(idx).mbsDescription + vbLf
    +                s = s + "Path: " + addIns(idx).mbsModulePath + vbLf + "Version: " + CStr(addIns(idx).mlAddInVersion) + vbLf
    +                s = s + "Req ver: " + CStr(addIns(idx).mlRequiredVersionMajor) + "." + CStr(addIns(idx).mlRequiredVersionMinor)

    +                MsgBox(s)
    +                addinName = addIns(idx).mbsAddInName ' Save the name of the add-in just installed
    +                idx = idx + 1
    +            End While

    +            ' Get information about each add-in installed for debugging
    +            Dim debugAddIns() As EdmAddInInfo2 = Nothing
    +            AddinMgr.GetDebugAddIns(debugAddIns)

    +            idx = LBound(debugAddIns)
    +            While idx <= UBound(debugAddIns)

    +                s = "Debug add-in: " + debugAddIns(idx).mbsAddInName + vbLf + "Class: " + debugAddIns(idx).mbsClassID + vbLf
    +                s = s + "Company: " + debugAddIns(idx).mbsCompany + vbLf + "Description: " + debugAddIns(idx).mbsDescription + vbLf
    +                s = s + "Path: " + debugAddIns(idx).mbsModulePath + vbLf + "Version: " + CStr(debugAddIns(idx).mlAddInVersion) + vbLf
    +                s = s + "Req ver: " + CStr(debugAddIns(idx).mlRequiredVersionMajor) + "." + CStr(debugAddIns(idx).mlRequiredVersionMinor)

    +                MsgBox(s)
    +                idx = idx + 1
    +            End While

    +            ' Get information about the add-in just installed
    +            Dim poInfo As EdmAddInInfo2 = Nothing
    +            AddinMgr.GetAddInInfo2(justInstalledPathName, Nothing, poInfo)

    +            s = "Getting info for add-in: " + poInfo.mbsAddInName + vbLf + "Class: " + poInfo.mbsClassID + vbLf
    +            s = s + "Company: " + poInfo.mbsCompany + vbLf + "Description: " + poInfo.mbsDescription + vbLf
    +            s = s + "Path: " + poInfo.mbsModulePath + vbLf + "Version: " + CStr(poInfo.mlAddInVersion) + vbLf
    +            s = s + "Req ver: " + CStr(poInfo.mlRequiredVersionMajor) + "." + CStr(poInfo.mlRequiredVersionMinor)

    +            MsgBox(s)

    +            ' Extract information about the add-in just installed
    +            Dim ppoCmds() As EdmAddInMenuInfo = Nothing
    +            AddinMgr.GetInstalledAddIn(addinName, "c:\temp", poInfo, ppoFiles, ppoCmds)

    +            Dim msg As String
    +            msg = "Extracting info for add-in: " + poInfo.mbsAddInName + vbLf
    +            msg = msg + "CLSID=" + poInfo.mbsClassID + vbLf
    +            msg = msg + "Company=" + poInfo.mbsCompany + vbLf
    +            msg = msg + "Module=" + poInfo.mbsModulePath + vbLf
    +            msg = msg + "Version=" + CStr(poInfo.mlAddInVersion) + vbLf
    +            msg = msg + "Requires version=" + CStr(poInfo.mlRequiredVersionMajor) + "." + CStr(poInfo.mlRequiredVersionMinor)
    +            msg = msg + vbLf + "Files:" + vbLf

    +            idx = LBound(ppoFiles)
    +            While idx <= UBound(ppoFiles)
    +                msg = msg + ppoFiles(idx).mbsFileName + " Flags=" + CStr(ppoFiles(idx).mlEdmAddInFileInfoFlags) + vbLf
    +                idx = idx + 1
    +            End While

    +            msg = msg + vbLf + "Commands:" + vbLf

    +            idx = LBound(ppoCmds)
    +            While idx <= UBound(ppoCmds)
    +                msg = msg + "'" + ppoCmds(idx).mbsMenuStr + "' Flags=" + CStr(ppoCmds(idx).mlEdmMenuFlags) + vbLf
    +                idx = idx + 1
    +            End While

    +            vault1.MsgBox(Me.Handle.ToInt32, msg)

    +            ' Get CAF information about the add-in just installed
    +            AddinMgr.GetCAFInfo(poInfo.mbsModulePath"c:\temp", poInfo, ppoFiles, ppoCmds)
    +            msg = "Getting CAF info for add-in: " + poInfo.mbsAddInName + vbLf
    +            msg = msg + "CLSID=" + poInfo.mbsClassID + vbLf
    +            msg = msg + "Company=" + poInfo.mbsCompany + vbLf
    +            msg = msg + "Module=" + poInfo.mbsModulePath + vbLf
    +            msg = msg + "Version=" + CStr(poInfo.mlAddInVersion) + vbLf
    +            msg = msg + "Requires version=" + CStr(poInfo.mlRequiredVersionMajor) + "." + CStr(poInfo.mlRequiredVersionMinor)
    +            msg = msg + vbLf + "Files:" + vbLf

    +            idx = LBound(ppoFiles)
    +            While idx <= UBound(ppoFiles)
    +                msg = msg + ppoFiles(idx).mbsFileName + " Flags=" + CStr(ppoFiles(idx).mlEdmAddInFileInfoFlags) + vbLf
    +                idx = idx + 1
    +            End While

    +            msg = msg + vbLf + "Commands:" + vbLf

    +            idx = LBound(ppoCmds)
    +            While idx <= UBound(ppoCmds)
    +                msg = msg + "'" + ppoCmds(idx).mbsMenuStr + "' flags=" + CStr(ppoCmds(idx).mlEdmMenuFlags) + vbLf
    +                idx = idx + 1
    +            End While

    +            vault1.MsgBox(Me.Handle.ToInt32, msg)

    +

    +            +Me.Button1.Enabled = True

    +            Exit Sub

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try

    +    End Sub

    +

    +    Private Sub Button1_Click(sender As Object, e As EventArgsHandles Button1.Click
    +        Try

    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim AddinMgr As IEdmAddInMgr9
    +            AddinMgr = vault1

    +            AddinMgr.RemoveAddIn(addinName)
    +            Me.Button1.Enabled = False

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +



    +End Class

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +        ''' Clean up any resources being used.
    +        ''' </summary>
    +        ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +        ''' Required method for Designer support - do not modify
    +        ''' the contents of this method with the code editor.
    +        ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.AddinListBox = New System.Windows.Forms.ListBox()
    +        Me.LoadAddin = New System.Windows.Forms.Button()
    +        Me.AddinOpenFileDialog = New System.Windows.Forms.OpenFileDialog()
    +        Me.Button1 = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 59)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(16, 98)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(271, 23)
    +        Me.BrowseButton.TabIndex = 3
    +        Me.BrowseButton.Text = "Browse for add-in..."
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'AddinListBox
    +        '
    +        Me.AddinListBox.FormattingEnabled = True
    +        Me.AddinListBox.HorizontalScrollbar = True
    +        Me.AddinListBox.Location = New System.Drawing.Point(16, 151)
    +        Me.AddinListBox.Name = "AddinListBox"
    +        Me.AddinListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple
    +        Me.AddinListBox.Size = New System.Drawing.Size(259, 56)
    +        Me.AddinListBox.TabIndex = 4
    +        '
    +        'Load add-in
    +        '
    +        Me.LoadAddin.Location = New System.Drawing.Point(16, 230)
    +        Me.LoadAddin.Name = "LoadAddin"
    +        Me.LoadAddin.Size = New System.Drawing.Size(259, 23)
    +        Me.LoadAddin.TabIndex = 5
    +        Me.LoadAddin.Text = "Install add-in"
    +        Me.LoadAddin.UseVisualStyleBackColor = True
    +        '
    +        'AddinOpenFileDialog
    +        '
    +        Me.AddinOpenFileDialog.Multiselect = True
    +        Me.AddinOpenFileDialog.Title = "Browse for add-ins"
    +        '
    +        'Remove add-in
    +        '
    +        Me.Button1.Location = New System.Drawing.Point(16, 273)
    +        Me.Button1.Name = "Button1"
    +        Me.Button1.Size = New System.Drawing.Size(259, 23)
    +        Me.Button1.TabIndex = 6
    +        Me.Button1.Text = "Remove add-in"
    +        Me.Button1.UseVisualStyleBackColor = True
    +        Me.Button1.Enabled = False
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(317, 314)
    +        Me.Controls.Add(Me.Button1)
    +        Me.Controls.Add(Me.LoadAddin)
    +        Me.Controls.Add(Me.AddinListBox)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Install add-in"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents AddinListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents LoadAddin As System.Windows.Forms.Button
    +    Friend WithEvents AddinOpenFileDialog As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents Button1 As System.Windows.Forms.Button
    +End Class

    +

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/LogInVaultDisplayInfo.gif b/documentation/api_extracted/LogInVaultDisplayInfo.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8fee71193b0a3c14695009d8e00b2fb4950ee1f GIT binary patch literal 4557 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_CSharp.htm b/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_CSharp.htm new file mode 100644 index 0000000..e4c98d9 --- /dev/null +++ b/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_CSharp.htm @@ -0,0 +1,257 @@ + + + +Log Into Vault and Display Information Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Log Into Vault and Display Information Example (C#)

    + +

    This example shows how to create an application that displays a form where a +user can select a vault in which to log in and display +information about that vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > C# > Windows Forms Application.
    +//     b. Type Exercise1CSharp in Name.
    +//     c. Click Browse and browse to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, select Add Reference, select 
    +//     Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and select 
    +//     EPDM.Interop.epdm.dll, click Open, and click Add).
    +//  3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and
    +//     select EPDM.Interop.EPDMResultCode.dll, click Open, and click Add).
    +//  4. Right-click EPDM.Interop.epdm in References, select Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  5. Repeat step 5 for EPDM.Interop.EPDMResultCode.
    +//  6. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click Log in and display vault information.
    +//     A message box pops up containing the version of 
    +//     SOLIDWORKS PDM Professional installed on your computer.
    +//  4. Click OK to close the message box.
    +//     Another message box pops up containing the path of the selected
    +//     vault view folder.
    +//  5. Click OK to close the message box.
    +//  6. Type the name of a nonexistent vault in the drop-down combo box.
    +//  7. Click Log in and display vault information.
    +//  8. A message box pops up instructing you to type or select
    +//     a valid database.
    +//  9. Click OK to close the message box.
    +// 10. Close the dialog box.
    +//---------------------------------------------------------------------------- 
    + 
    + 
    +//Form1.cs
    +using System;
    +using System.Windows.Forms;
    +using System.Diagnostics;
    +using System.Runtime.InteropServices;
    +using EPDM.Interop.epdm;
    +using EPDM.Interop.EPDMResultCode;
    +
    + 
    +namespace Exercise1CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    + 
    +        }
    + 
    +        void Exercise1CSharp_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5
    +                IEdmVault5 vault1 = new EdmVault5();
    + 
    +                //Cast IEdmVault5 to IEdmVault8
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    + 
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " +  ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    + 
    +        private void LoginButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5 object
    +                IEdmVault5 vault = new EdmVault5();
    + 
    +                //Log into the selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    + 
    +                //Display the SOLIDWORKS PDM Professional version
    +                int VerMajor = 0;
    +                int VerMinor = 0;
    +                vault.GetVersion(ref VerMajor, ref VerMinor);
    +                MessageBox.Show("SOLIDWORKS PDM Professional " + "version is " + VerMajor.ToString() + "." + VerMinor.ToString());
    + 
    +                //Display the path of the vault view folder
    +                MessageBox.Show("The path of the vault view " + "folder is \"" + vault.RootFolderPath + "\".");
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                switch (ex.ErrorCode)
    +                {
    +                    case (int)EdmResultErrorCodes_e.E_EDM_CANT_OPEN_DATABASE:
    +                        MessageBox.Show("Could not open database. Select or type the name of valid database.");
    +                        break;
    +                    default:
    +                        MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +                        break;
    +                }
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}
    + +
    //Form1.Designer.cs
    + 
    +namespace Exercise1CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used
    +        /// </summary>
    +        /// <param name="disposing">True if managed resources should be disposed; otherwise false</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.LoginButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(62, 23);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(75, 13);
    +            this.VaultsLabel.TabIndex = 1;
    +            this.VaultsLabel.Text = "Select a vault:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(22, 54);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(184, 21);
    +            this.VaultsComboBox.TabIndex = 2;
    +            // 
    +            // LoginButton
    +            // 
    +            this.LoginButton.Location = new System.Drawing.Point(37, 100);
    +            this.LoginButton.Name = "LoginButton";
    +            this.LoginButton.Size = new System.Drawing.Size(146, 37);
    +            this.LoginButton.TabIndex = 4;
    +            this.LoginButton.Text = "Log in and display vault information";
    +            this.LoginButton.UseVisualStyleBackColor = true;
    +            this.LoginButton.Click += new System.EventHandler(this.LoginButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(227, 184);
    +            this.Controls.Add(this.LoginButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Load += new System.EventHandler(this.Exercise1CSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button LoginButton;
    + 
    +    }
    +}
    + + + + + diff --git a/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_VBNET.htm b/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_VBNET.htm new file mode 100644 index 0000000..3abc160 --- /dev/null +++ b/documentation/api_extracted/Log_Into_Vault_and_Display_Information_Example_VBNET.htm @@ -0,0 +1,239 @@ + + + +Log Into Vault and Display Information Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Log Into Vault and Display Information Example (VB.NET)

    +

    This example shows how to create an application that displays a form where a +user can select a vault to which to log in and display +information about that vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type Exercise1 in Name.
    +'     c. Click Browse and browse to the folder where to create the project.
    +'     d. Click OK.
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, select Add Reference, select 
    +'     Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and select 
    +'     EPDM.Interop.epdm.dll, click Open, and click Add).
    +'  3. Add EPDM.Interop.EPDMResultCode.dll as a reference (click Browse, locate and select 
    +'     EPDM.Interop.EPDMResultCode.dll, click Open, click Add, and click Close).
    +'  4. Right-click EPDM.Interop.epdm in References, select Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  5. Repeat step 4 for EPDM.Interop.EPDMResultCode.
    +'  6. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click Log in and display vault information.
    +'     A message box pops up containing the version of 
    +'     SOLIDWORKS PDM Professional installed on your computer.
    +'  4. Click OK to close the message box.
    +'     Another message box pops up containing the path of the selected
    +'     vault view folder.
    +'  5. Click OK to close the message box.
    +'  6. Type the name of a nonexistent vault in the drop-down combo box.
    +'  7. Click Log in and display vault information.
    +'  8. A message box pops up instructing you to type or select
    +'     a valid database.
    +'  9. Click OK to close the message box.
    +' 10. Close the dialog box.
    +'---------------------------------------------------------------------------- 
    + 
    +'Form1
    +Imports EPDM.Interop.epdm
    +Imports EPDM.Interop.EPDMResultCode
    + 
    +Public Class Exercise1
    + 
    +    Private Sub Exercise1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +            ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    + 
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub LoginButton_Click( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles LoginButton.Click
    + 
    +        Try
    +            'Declare and create an instance of IEdmVault5 object
    +            Dim vault As IEdmVault5 = New EdmVault5()
    +            'Log into the selected vault as the current user
    +            vault.LoginAuto(VaultsComboBox.Text, _
    +              Me.Handle.ToInt32())
    + 
    +            'Display the SOLIDWORKS PDM Professional version
    +            Dim VerMajor As Integer
    +            Dim VerMinor As Integer
    +            vault.GetVersion(VerMajor, VerMinor)
    +            MessageBox.Show("SOLIDWORKS PDM Professional " + _
    +              "version is " + VerMajor.ToString() + "." + _
    +              VerMinor.ToString())
    + 
    +            'Display the path of the vault view folder
    +            MessageBox.Show("The path of the vault view " + _
    +              "folder is """ + vault.RootFolderPath + """.")
    +
    +        Catch ex As Runtime.InteropServices.COMException
    + 
    +            Select Case ex.ErrorCode
    +                Case EdmResultErrorCodes_e.E_EDM_CANT_OPEN_DATABASE
    +                    MessageBox.Show("Could not open database. Select or type the name of valid database.")
    +                Case Else
    +                    MessageBox.Show("HRESULT = 0x" + _
    +                    ex.ErrorCode.ToString("X") + vbCrLf + _
    +                    ex.Message)
    +            End Select
    + 
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    + 
    +    End Sub
    +End Class
    +
    + +
    +
    'Form1.Designer.vb
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Exercise1
    +   Inherits System.Windows.Forms.Form
    + 
    +   'Form overrides dispose to clean up the component list.
    +   <System.Diagnostics.DebuggerNonUserCode()> _
    +   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +      Try
    +         If disposing AndAlso components IsNot Nothing Then
    +            components.Dispose()
    +         End If
    +      Finally
    +         MyBase.Dispose(disposing)
    +      End Try
    +   End Sub
    + 
    +   'Required by the Windows Form Designer
    +   Private components As System.ComponentModel.IContainer
    + 
    +   'NOTE: The following procedure is required by the Windows Form Designer
    +   'It can be modified using the Windows Form Designer.  
    +   'Do not modify it using the code editor.
    +   <System.Diagnostics.DebuggerStepThrough()> _
    +   Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.LoginButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(42, 9)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 4
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        Me.VaultsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(19, 41)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(132, 21)
    +        Me.VaultsComboBox.TabIndex = 3
    +        '
    +        'LoginButton
    +        '
    +        Me.LoginButton.Location = New System.Drawing.Point(19, 88)
    +        Me.LoginButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.LoginButton.Name = "LoginButton"
    +        Me.LoginButton.Size = New System.Drawing.Size(132, 37)
    +        Me.LoginButton.TabIndex = 5
    +        Me.LoginButton.Text = "Log in and display vault information"
    +        Me.LoginButton.UseVisualStyleBackColor = True
    +        '
    +        'Exercise1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(176, 154)
    +        Me.Controls.Add(Me.LoginButton)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.Name = "Exercise1"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +   Friend WithEvents LoginButton As System.Windows.Forms.Button
    + 
    +End Class
    +
    +
    +
    +
     
    +
    + +
    +
     
    +
    + + + + diff --git a/documentation/api_extracted/MenuCommands.gif b/documentation/api_extracted/MenuCommands.gif new file mode 100644 index 0000000000000000000000000000000000000000..be9e2eddb1f2fc7379697cd00f396b8d9a143ade GIT binary patch literal 4515 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 SN9*XUh)geYK|TOL{eJ)^MBUZ^ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/NewDotNetAddRefDlg.gif b/documentation/api_extracted/NewDotNetAddRefDlg.gif new file mode 100644 index 0000000000000000000000000000000000000000..0aa9c012aef539d36826fae8e10ac6d6eb504dbd GIT binary patch literal 16453 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

    $8iJ&c=(S9Ti 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/NewDotNetProjDlg.gif b/documentation/api_extracted/NewDotNetProjDlg.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5d5a73ef2ded9ba0b46eb5064d55782a45b1f68 GIT binary patch literal 13515 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/NewDotNetProjMenu.gif b/documentation/api_extracted/NewDotNetProjMenu.gif new file mode 100644 index 0000000000000000000000000000000000000000..b690557289a00c7f31b13acea979e5fd7e03bab0 GIT binary patch literal 11389 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/NewDotNetRefDlg.gif b/documentation/api_extracted/NewDotNetRefDlg.gif new file mode 100644 index 0000000000000000000000000000000000000000..09eb566b47560a8d2217e09139b02970d87fc437 GIT binary patch literal 16308 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%0A_AP8c5R?Eq8_@%tB08IyJ#8~f zsCR1##0;2x1H`H<@^=#>#VugMSQ=9`4!Sd&+1$#D2m(?<@13Ht7QgOjT!)r** zd#hUvD~l|1atMu!GNoHlxlbpZ6Ivk>TA}y2IpSQo9o2y(Z>f*6rHlaGPw9MKh~>$7 zxu@Wk2HUnn(xFFDnS7PBuQZLmwmG79w(&Ks_IEQ|d3s&g9KTH|pYEqh%S#cj|1x*i3b;wCkcA z5MwS`yk3!3QjvM?1!Mlb&Ez_x@qXpx6Jz1$s>0S3i@fxL@byC8s$$U-V*ryWE7Ocb zRjDyk8C7V>_s^wt>SX~;6}%^90ovt|9~F5_Rp8?a1g)I1s_Nbombw!aAX5#vsbUm4s(#g`=;Tu^jH&Un-NIf~QBmbQAv3I*_cR~rR0*THS(zEwi`s;CS{EP( zbYO1#JOY%qYppYEi)Zdo9%@@nX-TW@tYcQsu~RB#?i#M{{v6sh_o*Ai+*@bY16t@g zsP6MP?H$+bgE9YAw)@k&@aJ<)|L4=cNt*p^EQ1i+f$)U^>6)R=lfhukA!C-2VB6t< z1xg#ck$C&6fEt;wn)alcapS5nk5A)uER*536D|uA!!=V)EG#dykb1F^6&Uy=hSM^^l&fhhA2#F{Q$HMu7!wJ`<7LXUa)Shvd*m9wIkJS zlbvo|+ijDv?SdvZ%BFXC>-O{~cVS8pWwrw!yB#$9J3GN3*~6uVBYaz52I^*DQMBF#r}6ha7U%IoO3x2Fh^le6>rH$H8&#j z`TpO91G>y2dh>Tw`XbDm23DqBUr58dYNr9eZy!zzvEWqL<(1g3#2>%Le57|)DsA{c zyjaKUtg?TJMSk`ECk0s&4XTe*)L3I_!zC$PlgyF2)`;Hsw(+#_ssZ&lo~wxBlv4+DKa#~L zg0xAM_BxXFnq(71^s?_JXpP?gp2U&5V_PqEJd6&Rlm4s4j)yrzb>pXmVqLmTF&}5z zk;Yt7edfL^G6xqH>T4EuE?8#gHRcN^>CU#_#0L(>>0T<4`6#76eue3;N z4RRTI2wGk_$L2M81U*mj^%rhuUUbW&qDDUUW}fE8vwb>(;Sz=Od|LccZQg6awr0+O z27w7pCLu+JJ}x1|TbZBSl;hm|^OwTJJmm0Z$@D#3gVe95+~369u$DMDby`@^dAOOc z#Q9q0{CH$14x~)R`Rv?eWd0p9;NdO5l}3HX^$cbh;ZaoKl$z)9lrMJAyi{6BL&gF+ z=H4p4@TA*vXz&3wgxqBTckWU^O&xr7`WAJoFDEYb+MZvQ5gK$N?yg*by6IoelYn~V z?gN+g`fWh@AfUm>A~5e=|15M`ElhYVty(P|d96HKtpa(iBU-H!cx}>KZSr|-%Uf;hdF|R- z?fQ7_M_TP8TCu$V3YtNPd#w&oUdM-4M>ww&a+?ztpEG`&GdZ6NeVYqApDSORs~De~ zOq-hupSw<*y9uAi={*9^9|X5H&pwP|(ON-MTlwKp{r)QS;eZ;8DUdlNCLwPWv1Yt!1R zMf(2w{txfB_n!Ma_tQQ1oO{kyR#lRcw)g_DCb|IpFJ2FeI`*jjLy?-=-+!;D=s#8a z`&V0A&B#dG($dJ%($dk<$kEZ!!_m^i!^6+d4+isq!C(lO9|GZrN{0P2{bxfZ|7R^K zDypbJH8d18G*tAoRrK^U^z^j#Odkvnw@v@Y>7ME7>E-F+<>le6f1KXhnm+i)<%5Ie zi-WC;i>-g*|Hc3B{U`sA|8L;`r~$!$3;4GM00jX+Lcyw1o!c2oaSsUYtIqotahFRC z#aA8H9nJL2VX?2Kpf`@=O%$tYZDD^BAE*@EUt5GvV-x5@sn!(_A*DQ~Vf}R_TB!`5 z6KR0;=&^zaaLyQPJ!T?RE$1Tw*ifoltS_XelJ}Z4y4<`T8!xb2Dg5=^Em(I#vFTb(`5Iy4q>a%Wd#pZnGCCTv_AS`JTa!-#h5yD)V$_SxYKFpTn>7qhRzRXci6?Ci;eg(0+`+1GD3Bx(JOs3MF<@&qkGU^an1SeURC-Z-LjYmJM+Zk;_FoO z)q@gy0%o7*j09S&7fUplmzN9kNVAgb&-Iw;BME25#p%*$L_9syVM=G*L@G@5Kjk!AG1Cmc>8xy z_@hFSTs=;MI^Yvd?b)DP=M&r@-ynk-O0-$%y)1xM=1veFxokA}cto4Ux4;gfH$ zCR?Wz6!=s6J7Wxu=!SjWlGGYH?Y8u;R#g^sIn8p|XBufc3F(#IqJ~n3BlnxvOUbqV zEEXA?wjL^uWE~$354^3}WVvpu+yD4TO=2WZ7Ii)TMr$8>2of;y8dzdEsNWbU$dPKy zz_ZG4W#8eD>cI87bWHs+yKeuL6BsLhaIrR-PV9@hb~X=W>dzu}w~-*0In*b6Yp%ww z@`_^kHZ+q;l~j_V?A*}FvEoNA1-EynYnU61?^X)=OhMxPmQj!Z7=$rZ`KFr^Zy;2j zcbkjh8;!7I1VO<`=ML7p+{FHAq)HbmP9t3a{8-&^MlJuo6|Qs$#-ca~^opAsn_hM~bO1%dmJa8O+HrG383pQK&K$_lmHkO_>Q5UU*T#OL zSdZj20+{#NR8zYj{YYBTqK#Y}!%ICvl}`tf=jSZEbwzqIX}g^DvYN8ohYSRjT3{Bt zGp|}abR3W2dbGT_`2ieDUwG|Q@)~LV!G-?0+ljgj6BqM)U#fdtP539uTBQ9MVr4}n zCac8Xc0l)u&x-E}?%s~u{l*7u2-nE^4zg#Ox~Dl6raSaqx5fxWg|5M{&+SszW$M&C zY$y{JhZ}-arcDg@A{`m>6qUn3ygYjbFA)OdLVrTqwH5VU{kd45 z7^EiDh2;8k7?S)J$&%3X%n~#e7MKDlizSvN)nj^ktkJtu98PH!#x@?zh9lag4Vw#u zJ&S}tZzUa0p*WIUu_Qh1>1+{y_ivlZ!MNsx*y@TdxnN*-IBqfgQ^viia?hAXP5bBTPt9&)6PmNxU@@BzIqCL$ zdTZ`yWqDngw=?X@DIum?vYoU?@Q@?Z@Iz+icqpN~kw@KPA&Rys&YRmcD^*41+|wS{ zx>5c?9&G9&)#y(U{g{LUQ;#&c;pE*axEzKf_D{wKH`jybdhH>lm$>gb_MQ(OYM<0j zEFg8yL$g$!Ex1x}Il|89JhFY~XrH!=b&->E;~z>ARr9yl4$DLa*OI!8^J$8jnjZ-6 zZ+sYDt$`j84rzj@{yoZcMgY;mP%; zMnvvJ#O*Wm1#nx-r*^99g;x>Ye{W$|hHeFDTP@kvrdqX!?BJKmL1t~*jr^%!WD?%% zhU~berOdjX*_v3a9#AV!FD2X<(QcW1Feri6FqvFDGzS>U^2qh*M<1Dr35+Sn;(l~) zT)eR`|9-?>x)G;r=VXx`1TUGRlyOD(R(<|1n}Sjm8Fn=Bxcs)XceXuJ3XymiWYqCj zc9o9d>QIKM^LDJw>w-4Z()}AwGAW%?T17x@XVc}S+~?*yg!XG#|XK*AAe0g9Bd zb|1az-k*`5LhRB;eZ7l$(KtGf_x%RICcfHWE}6 zDf;Lh!j~!do1z2u;sbZLS$|(J9_=zR8)7ZRFVM#~8fo|3#+%K~@at^sex$3IROm%y zoZPK2x$U^r<4`y5_~h5|*0%9~(_{GZ;>(ER6}IE4Au!XKIC{A6UBmbXaQ?h)8#-*l z>q*-wVp~eeM5g|D?^GK-yTs^mJ$rP5*IR-cw9nInPlc(``qsUO?xyDD8mgi^aP? ziax7O37Jm$8KKpBs%8`Z@vnyuNf6O%L&-f`xltQ87enh?(!P=z7I%E2?{1`|H#_I{ z#UFHwki-MLq#f>-!0X7|A2$ZugvB$0BEx6HIpFcp5I_bd1CQB^9O5pC#)ZWY#phOmMA}th=ys8Ph%1Df=bre1E7iQE~X;haXst1DV%RmiaQG;`+ zVJxZ*o7rrLj5M^FP|a$YgS8Uuk?oKyoyi0sWm0oSm@AoL(@xe3Jdx#I_7WtEUdiVN z#KCntMEtji@vJwaG;~V*h2R^6&}I@hA5;dOR%Pd4fz{!hbBIv}h>b!i4}*gY)9IPi z_jyx(JyG9K0h32T*)Zu|5dd;?KC!#`VEY&ta}Yy|Q@>;mMO1pq>qk;>GoP!IuCoZR;FDVMHl~osA))HEB}-8S=CGm#CK;&~=PO${C%ZLGu88V(P6M#!(`Q;d`W!qh**5VaV9fRx z-jHp;QGQ&+d7Rf|#@l&Zmv%DHWQLt~*2j4oa)b9{yKlTSn{4l>3 z7Lub3g2#TGQFQ>DvGEHR{-8D)0)bXV0G>b2TF zD+v$NZ5$w`zn5>9eeGviJ245`&O&~7ZjAF^TcZ{bm9@v3f5yxL{AHd{f zmfdHEZ(>K7x|`;rba678i)oB2EvH`zY&;dCZ-e6DawpF2&W39el^dh)J`T;a)BwQ= zb+{d>cl@NSNWBfQv@Qa3M#9Fbo{XtbY;cN43w3#@vZhN_X?gg!%45bKn-s3@pS_)9 zSKd18;`W}Fx_oa~-X%8ZQS#j?Q(rLzV*_G~sR-LWS1mBj?Z-wKhwzj zj`pS%aiA3ClY}tQaL9w z9Vc=tCole9 zv)A6W*4p86GNSM>STG~ zQvqoK5Rkf9*mr%1?`r}>F$HN55D!ui5WgT0kk{|G{Ek6DoasS8PW3=QIMYBtFzmA0 z)k&@8ckBP0DpYj1Ctuj681h@(9bX)6+F`@W7xL2CzVmsb*Q zd*o|~3`>GN?)+NJHpRpDU(HUpJ>=TLKH{;(M+p}eT{i>rV*}Qp^uR$NwXJS%Z$Uvp z+p3z6kB=RznydL_-l(j>&4AbVSpK;^y+hI192{)t|E9X^J{tuB(_ZgSU<5||@`+oc^(C*1)0_F1$q);pw8OK?W+hb+m zG`6HMH7_qK9-ST?<@I?F>+){D$MN~`>-qb`CDPa!xxC(jLPGpP*`nIXn%WQG#>)gQ zHd#+^GM~k-C#V*b!^+Ar;Q2!=8lSmB)O<8N*jZk}f=>r|uT_B0yw#xr?3>CjG2-oJkRGM&VsA#?0m5MEkQ z`!^ytAg4RRFN^essSWTx=Y02A^J-i3;?!7iZ(?z;wKUIKP~t21*A^1{eK4@r1RDYu zQpdlgEobJ)t(7)g7)q-}Z+tSR9*HrX!Q(l%AAWIxoS}Pnw#mE3_K_RiBfAa4+8RNG zafr9wvnWqEAj?GgkAQTHnSEtuO(Es%xd18yQ{MzI~y%4o8{d4 z;N05iyt2rerr2sqLOnORu|BSrF}0Q%mCusWM&D!XpYX)QuXb|U(E%}Vf`S@43d(xZ z+oHOj)at-&?L7!yZljSrh`Um|+?78?BZcJ@dF5mCRFiER`0n0>4acc`qC|fB9E$Z{HnFU(YEg$Lg~T!8ti9z`-tv$1sga zG>weaj*rwL!ZOS)?rL|~nPjSVLss19`A>W=1U(~COc*^3)Xc-3%H4y)-HqJf<%Q4M zxb)z>@@oI@)eUv%RDax+{oOo}z`;?Osac)P&Cf=E|A9+wDo6yJ1uC(;!axir{rBsO z^%diyR%VvpPL08hEYBGi@wQWvk&5%@%iB+A%OcsbLV>y>ugCHI*x!4)+|4J17*a4P zYQ`>@`S)uD$_WBeHkTKdHR)$pTgnf_B_mLT0H-+=X}bM&U0S=pUcCpmB)J{jMYYYbI*lH$Dv6X~A5f0j)C$%d0&&^JOuB6B8(4u_ioIv4cme-39EFT_ic^Vo4FPHfe5-Y39PPqCWU2J;2o`l~_;4e>5 z&=-6@R`dCRmabP?;^7U|YOD?Y>{PtJ$Cuv?8;)Z+q(eA!=XkD5ODkIjqgxYO%EzkwQe17 zri;~$zV9U&rX^{n#F;ziJ%vi=(4-VML!Y0htEjWEJkMm_v0z&pOn=@x3I7gq zp-y9~V_Ok!jr0dgH<7{~o$OTB)fGdHUq<%~GN^5gX=r}3405@G{siNjoI0WcDTXK?z~uYBzJJIm{5!q83@4M# zmQtu&XApxSS~S{-r^7e97gOKYH*j08P>-*QKo@=m2lPj(EDvdqkIGA{W`6Z_u~-THxJSvcqbn4F-)MG5PT(pjVSM%Idu^k!SJ9Ek`st!I z>=V5v&f=`Y!C_Mk%q)?`7nPNL7Vhl8V-$P9=XN82jeoj8^fa1CW2kxoGUL2V3rMLh z0k%O_ePD115+JW|(YaL2CnkoU-X*t$RlUXkP{>xjBxrq*w3aZQoh|?KbPdeL-CtFm zx;&@|Np(J7*#Uj$N<^jE?1=FBB<^_5!KW{Kj=Abz??SYBGO+xT@l^rTXti$GOK|{rW{FuWF53TiYL8&PJO7`XwD5I8;=y;ZyYti+=#XkMeQ^ z@o@BT22&J6IK9{bQOtqgSOX$i;o)Xi%RS|@2(TMGbRxw?mD`0u0q%ZiAXhoWKC)IB5D?(gsCOQJX0U6TjO1INa^ zB4Eh&ixHa!)OYw4o`KmfEZ0Kn>X1Y#(LM9WvxVmDw_kp^+PwmHcGrEu^KsKc9Y}TF z19#i~{WilIAJ1K1!>$YuKh2BQqzr0$b7cNZlg3AMB^jF(uZv}^aTyG3>vVmnIX2tq zobHu>zN;$@E+@^o)?Mj}rXZ1u@3*HS+v*B;xZ{1ks;^X(>eJ;0b$OxO?%I#siS|xM z1m^sN>IQ!GT>_@i5?-wcB3~5L30=zPRW#c+rxUCgi~-q=L1#b^R&) zusy2VdHlXF&{OJK_mI4`orj6WD8_7cCcaBxI?{xcV)+eeC;PWo9PL++9A^X~2MG)Y~q#4hC+ zlY~SA97-I-jz0 zl{2qL0G52=h?zx)+&dQw!+OHe0QN65pLc{dJ_!E9b9^+%5e{WVy;u>q!bj`Uk@cU^ zyz}VAflayW7}$P<#y>S;)@2-`MB3D}2=WTtyw+>KM20r2LleoORTMeWv-Q93#m_TU z!>92>xjlbfpX(D0fs;eGpUm=nHTz7$*LW`TTyEaCI)? z{Dn@JQC&5Nk8PNeX_%Q~5TBwq$2%nfuD<@l!hrna#{Q6(_mrD^y+j6caAajYi(Jq6 zX-XN(;@zcrOhyI^q51Z4Nx|qdjJX%T?l_Gvz$m&rJ}o@_Je^5lPC>NUT7%udt!5J) zgya%Ja^!O3yuM!a;U1i2!JS1Zw&f_+&s%n9u;syWiAJl=VCwy4UL;2EY(2G0dh>O< zS+p$xY#{ON$yB4wsU&Wj*U^!~m+xam4A|5AK!nlpq2|vO0@mj`La=DU!je-{KHBZG zs4AQ3dzls9c|vHWhlg3P8g}Q3=^oaC%^t>iUgTRySVr>DD=!$tvfCl zV)j7?lLjgWm!px8^WXJLLs~=)$3d>5ew3FFq$e>tuhPkS8lr8%R(DK*?p<}0?j7^} z;`~hNv|$c+^z@|t(mb+Ovy(`-PbZN*KyD}omy)!ejdbq040wX+M^OD+d9N8SZ-d=1%V6fqjE^ zYAu8>z$-c{F|a-`ur0iL5~vYH8BN2am_7*Cx>`MFV12#l(wBAVBr@lvV( z`o@IYY(Bv_Q8#AhXC-BK*_@SDyWS|mz+R)1$tGssM?QZbpFh|?816-i#NnL%O?~5X zBvk91%nLs?-0wEnz0{6hAgGO6LC8kPTIFQ@_}&Osn}&BEHwJ&B(fX`j`P{Jwfqw@K z&JFyu4Btw4Io95~!(p{BpD=bIP3X_`X%DwKB7D+}h!AbKQ`KK~EsfLdGzKA0Oby63 z8Xfk@)5`t8_FjG-1x0-!=O0nX=gvRPn|_uz>Fz8z?Jj%C&{BTsA@Vf!@&-&4}iZV((Q%g zaQ4SkzuH@)fP-9wHU`Gchf-o#Cj6Yl&S;!*pV~wQzuS0z?wP!QEdytFPwj=GZlW3v zd`#D04zs8vQd$~9Kw$0s+_5cK_<{lU-0Ii6AZR<|ycH5Z$z>TsDm#RIK}=2QYK_05 zV&?2hoT_rR=UrQkf6mO@;Jl|h!{3h4L{Y3`=zpz0-w&mC*Hz;$b}M_oPri%KWPf{C zEPgN#CBl;(U#G{)7z_M^|>qX_8OQ8{{iZyCT*4ChXg*Cjo|Nbfs8}UaSZn0ha z3(lY?GL)MsYkiK4ikg@^gj*f}HYU}>WTMNUC@V?;?0n}^ErJ)$l}P7 zSWAk8W+vk>Mru5XtpT6!)L;7zU5VT6wAp?S-3Ug*S9bSSpgn_$ zD(%}w$Byqq!g{h`=+Zm#j3(Ek<I{eWvi&Cuw}UClZH)?Ub$UPO&XLB&2)!l@ zj7dSj!qWbyDw!I?Pq7AF$Je3^tlR=3L93kk_d5Tfq7jm9UX)AQt3U~t>6<8G#@eoKwBRV)tg-yDzb5bJAx zVMtWesg$H5)`f$_(|TWoByc06xQ2#cW#v{?I`?vNyi5*5tt;KX<%+|ctK+G@qabOl zi>An=(C6`g9_^PJn|-9+C8U)RCaTNC0$D5%ALax@Y6s<-1t8g%U*9aYI*_05?I-4U z<%p&{hFjA494dgHBR?5^_aok-&v;X5--Lf>jE&;tFnNNaD%u+M^oQ2n+@3?ha3&@g zWM}CK?ld$tt?=vW^}dhl%|Fd~2r`VnyC?qs%^n?1a$%KZRrRw{ zFCi_mrF{NuriOtVSW-jgkJ1kIwk(s$m=S(D^Ssj^N?|txLG%p^dLd3wwtmI^ZyW(& z_q;wMR%UJdf8J_{K=tPojbq=pmz7dTnr#xoRE^y?mX92NVq)_8VhY{UI4M41E!4KOQYk zl>9xu*#}+#FZ|`5u>4$c=xjNhgF`0bR*R`5_QE(Kf*Vnkk_wlO`rb8b@1MtAPrLAdreffA+1mt%@_BlIc zo`G8*SjyMC-knW6JdM)Q#KP~T zJ@!V1tO=wowl9*Bc)vC+tJ&%s+Fhuh9+f;lDD&%XK;w_|2VA>({>8iilgl5J%cGs$ zx0?w?BhUL&q$R(hz4=r5j180Y2h3@Ut!7S^(T~7`hsd;}Siu~O#FxtK8&Qq-j7%L@ zThFa7+_YqKGQz3Vw@M@&$f6w*8Qkl;S#imxNvRfbSw^zcdw#-~I+>beT}M(@LHv&A z6|uczF-JZ=ZD$spn8iB)t+twMNJvOG1_HTIhxvzKkOlrv(F8G7XyA)&THDt%7 z@iU8<7s?CPHdK8FNexl$BP-z;SWApX{Scc_O-@fq%T)q5w^Axi_UhZ;p)7S&xexo3 z08wKIS`=H@)wI`9H&F8VQNZ?i^3PV)$bZTEtwT|lRTzOIBNOR+(Qt#C-LW+_<1}Ac zN+K)30fZrIviEp9iLS$khOksR!-z;Al35Vd!ka!Ohr>vG;F&f~a>F!7e>?@HlTEXz z#^OoSoh9{Dak^=-rg5&Lm`t;yqvGD)28(@PSy%Q9@%i~V2qZi_d~|el5|rTh5{lM2 zr3-(jC38}=vd*ELOo{ey2#8zrx35Vk5YY^pfZVAznQBaYvIA9b>B-UB5aFNqba77? zDp^gFk;1ZDp^jI7^n5Q`Y!k4sXi@Z+bIA-wCXmmid)g&ypqK;<1LH)o_)SQjE5D1n^*dJW-nb&4k5s3_sF27hNLT3V%iK=sq-V}xSm2O9lduq!eflzCnyKDeiuj!mBCYDC;aT5y zSzp8>ya3}O@~=hxfSGJ`fR~Ts{0D#D(?P^Odc<%iM*Ze@v|4fj^dP}%A_9fDBXTlt zq}%t-tWYSIY8{s8S%DKv4hM$Ra4kgR8P2GNgs%mu2+^@0`DO~AXUjKs0sPfxoq9(} z;)X`Vh@^v>-0moEkJfYR81c3_!3k&g8pG4RPpa(lrGtS=YV=l1fx>l8kRtesSu zpg+DUMqiR&I*4A|`@TImjP>fO=@VmD*vNZPc%e}dqHgQ1wl1O{Fj2HjSV7KE93pS@ z@Q4c<`VxybD>;MR7b6k&3Dh6X*EYH|7Dz>T_h*cWl8>Z7tfr8&Q^jZUY~-niXtPrs zJf?_P^UUmqPMx`_2?LD%ujkWcG&Y;fMw|29p>!BF07H*d4gyk6}j+>m~Yt&l}niCVp)?4hQA6^y|wkceM zQR9CJl5_>9KNkegd*nu@b9iUf`OiF1@q)KRD=jER5_L8XrEu~%#Ba86cA9kmVCllw z`OV#S<$GbluTYR&7r(NpeNMfl1Pg$4cXwZ1UFG25h^uS!eq)6L?-8)X5-hC)^Aknf z2KhNDEK_kbopxwEBa-(9YnO`#&R%Geee^;s;bK?D{A*@!5z4EJ5$+QH9DPw&wiBberO8ce~4ZxiFjt)j}`PQ z9QhbTv=%M#0@R`)^WrL=9u*4aeY`ZEGD1|fI_*2jN2)L4bEg>XV5Ty1+8n9;3`pZF z?5uGEK`{}C2n}FZ=I@0QuL-Q#*sKi=DUueqshgXdySlmr1O&vz#gC?QL-(#f9^`1Uo$wlaK?z4&*E^ zFAv1dPtHJD`KPiSh;ifR$D7dHTj}xQD+u9dHnZtYO%B`_bm6vc$4Jf#OKxIU(vYf` zL|HJ7zBcQs6n{W-RXPZ}+Y`}lFO97kY+xT6R^GuWxvdG&pQ_PFaSJOeIQE_n8F6ue z^X>1i_6s~cJze@Kojrt*7scxR3Z7I>q#(gVM362FOEUN00(bj>cNz0w|CyUAUQh8B z$pRe&(4%%S?N)RXcY5Rbe3f84FPL#5?be*^5|~<07r4B#Q&N*J30Shby*<)2{TD)$ zWvawD4xf|W#=ARe8l;@EQlK5JKEX%iu_PCZHTdT?a@n|`F{e>4&c(hicVs}1s$`v( zqO^yyItrzefF|WclMrlz9-p)+BMvzQUViD7sk!;d?k)-nN}*YepA4l>{WUNb@?z;*S)_~M@8<}@qlYY& z!K87w@D<3pTXwk4gAtb_gTV2UarHFMG9}}L3Deqs<=IP_ot&fjKZ|_iw z=>hwb1OIpx6UwiEV&R-aL?66H&BExOZg$Y3fB&d6(P43mgzk|9+VzrxlvR(sKQf?c z@3Jc{j~c9JN|12uL^Uyc0DM=?`9h)V>+9dLZfIzzsgaRZn-jF%cf6tB(Y77)CqrAj zJTA@UNd<^zC!e5TTjrNfHMq?(m&B~00=)$n-oGOEe*eGSB{(n~wBD;NwAee|dC>3m zkj4Am>6T;n*5>My;w;!G;MbB77|p!By)p}LI27ghO)g(whlPcK;AnMuz04Mh78e(j zTNI3O`Y~eN9|0i45QvEUYGlHg*>m@to@|bzvHf?x`*Vb9(VwcBuNG>I!b1=L-=OcV zhu4R%uFwNR4*jWpjOGu7Drt?j6NSv;55Sf_gzwkVDB01^{@ zfCH-SxSL(4QE^^m8xaqnK)7@`)%Rj$6&QoJ3Njls0ABG7Zpo)B%|!*xWH@WBnL3fp zwKY0AIzP`uNl8gXb#}T~A)CVuz*$&cR{Y=gT0pVWBe^st3r!mwOBJZzW>?_VV@0hYbRfp^&9H0oao#IWtA^JG{-|eQu2h2fK_G+6x^_V54@|>R*?OqgH znwEl}>ERClE0$CRL692^%79qF*J^ixXNmZhmJ86oK_JAY!w<|5OrMO4L&=rE+5ht7 zI4$b*Y)lp!Tr|O{wYm9v?l&T?H1F~B4kcl?5EJ}=QojEd3usZK-s?va`bZz6-C4?k zMXCG5sNUKR_6cAVxUZncjE|%{@KP3`*aCeAkK&F&1JVBtT0u z4kr&0qDm4JA@8?8H|WXhIL6H}Y@6p1jKfjzrE1YEui$^40XZhnBBBMrI~oExq*ONd zND1w)lmw|zS+@9CRtMhRlKW4ZFJ3oSu{3HD~h{08yARP1z=tUj< zG{Q#LjCeL2=J$ln%3DL}d7w@nIXq}A>6N#E@M zjWGp10E?`AR}kc+@3PPmFBp(MV?GJm2l$pEGETv9{&G?V{V*#e2jy|h+j_h-2EVV> z++b4AE&&*fsg}*O6s#gNBIiZ(%ZmCrL1Td~^aI2O&;*Eid3k#PFj;%MyAF?)WAm8em|)53{ahbqw#Z+017)4PoDPrjiXhYw$80z}#5M2L}f~Fkj!VprG%j zAau+uTLTi!nAu5ltIIk)r6e!2!ow)Y-lN`K-k+!KtkV}a*yezlJue#M8`)2g34X?4 z@-#x)=F2F(Sq$J7w+5G|9?-|l!#vvBJ>bmkAF!C={5m9eJ!kUV{Q-Npc3l0R3@j2lAEnq zoX+g;8nW0v$*sY~kI5xKe)_t8J3yk;UE@zvsXZeW%)1l#>9jv2v(3NjOQL|TF5c}t zOXEhF9gqZys_D?apq>67LT?-6+8Ap z%r1)KID^4zQ`h7S00A<%lCJ>3Qr)&sVGEDZZNbIIkb zX6Ja;du^{BHUlbQ&1LDuBs$ir0@f@xtS!?`$Oi-+=84w_3(Y~5FtzCn5rQ#W<~ws_7?L)I=ZB@bJdm{Jaohe<41xwYjdFR*ov_s5on2pZz*;}Kw$}(uoEvjOee`X+bGVI zPzu5g+twX%b$_?X*$as01itH$(xk#5ydzLaABiJMOUI&kyB+_S;;6RN4xFm!cING2 z3>cvs3Ni_QU$P(a6m+WTRC=VColx?+*)@-fg2S!e1&T!FiTsyP-vyE-e;fez3VU}Y zCfoe{PSFG%LO%QY7~7027Tolr@Q*5N6BYObJA{s^EfmhmwBN}pn&Aqe&o0GD{mU2s z4u8jQqGYY|c0%#J;zz+SiyIDbB@NNsT=&Z%`kCtFz0~qYuf@2EbieM&@emyn!%~OK z>eI#BK54<3xrh)%`s-={&<}E4Iz4GNM>RNRfugtWJ^sp+~Sul$WY7zY~?%!91j&LKNcYT+MW* z*ob_IpF}g;7hI?0Nh@g63v6c18 zxO|-EDdN3Pu|k8{WQbGrQhrD1RFgQ<1N0Dti_NPw?hX6xMNAHFyd2CC69FWMS}rz3 zbn9DeB?p`WoA7p+SUm6GDN=y9z;FONqtAPsec`ft@SAFW3!(?0*?Uy4bimlmDoxaD z*6%`M&9x%#HfS{B1v9>&!-nwYjqq*3`Es$h6^KpRW7DV6E0ME)VG@+xwfj6(OZ*W% zA2uJoR#WnpR8sinxwDUo{PpV% z`u2+28+D^lY~{+e(Pt4zs9h$(+2teBup}ue#B5eEySlDR-&+fHTy5Z}C zia8$Vbcojp5;eEBfkc2fxqTy_!etuSYE-2^vBA>!W6mMtVT;=on9;z*z`vacW&(W! zJsbT!=eZR*+9qyq64%mUKU%f#t>AseEe}>3HBrTH29`sh|49HB{`W^56a}2$2pf)o zU{RB+Vye6{%ENPps!qy!RVc%vG_!f7@9u+5r3~E{&eyB*ME1HrtI8bgp{%K%o|*YC zF56A+@6rKN{y*#N%oy)(PtY&)wCI)BQM*lb!C5j zN;VmEO3?TIaoiNaQRfL}zrqoJIJ4bmZuT6-x)q;xim4_NHalL49oC8j>Qg4rcHVEb z`Je#!H6NmEe8)(xGn}gT1H|*r1KbO{G?VY1jTrGz@L=>^<05i?T=M?SGM*^gap=P8 z;smYtTzQGXzm<9XREs4SKkvk8sAQiH(DD>B?D9g>dL^vu8l)E%n*9N;SdGL6`&KsS z4*sLJkZ_lp=5d6NLDt7MXhr^Lb_|z7g!|2S zJmtUSp}^tCtb(+=KB6j&hZz@infN6RZbfQ0E<(CyOqwqAYiLlucScU?ZQ!4NAe5$F zNzv%X9QT~3w!gZNW*ivAUhNB+3>IfddKN~;c(MmwO4@s>Y*mIpNwy6#4Ydrx1PswY zSeT)TqBT}IdPQUGa?Xq74<<$ilm^!THqb}S)4{F}_V zB=Sa4pHKA_otfpqx0IT(-|f6p@#jWIDS506S|2vrP}BXldDRpY)`-GoN6g%!dd!=b4Mn9n3-_?kCXHf%(e z2$1B+*)6GC=`QhFJ?Rp|-E~qoo>^|n&(_R=VRVKjB8rh$X2FC25!Fg#=%_yH?6A8nb=dU&y+%^*6MMY#jzI( ze=N%1UuL~UO+fbspE!!M2C){tY3v6Ur^wqX0wEbziNmw|<_*Vg=5#1B+QK?e)c42f zv)^(!8o$4JYv6Q{ESJ2nu>QS0DG4EWcB$)=xI91neDB`l=Z9i9AR2pobC}ojm)l-~ zrAwQ!RZv$=OIuYH3Ns9;G)}Yq9%%$4R#BWr5Xw4L;fDb`i10^w|Av>Yw7c!b3M3Qi z)t3R-^z@=yJGnVTrD3Z00c*rL*c+;E)*sb0F^|$o76TB5e8fMUFL4nr8MQe&+>u^4 z#QVM0TLDI~WX9$2*Aoq`!-zmgAi|#xYH`A-my#&7n;oHWHxhUF94Gcen+50g#X>bG zwe(`I$BW_nn8bKzj-u(1cSW_EI?RYe+ir9vk&7%Ilw7Qdv#Y!OU7T{>R3&3-hUn<$ z%h?L}e+%;p)G&@Xx+!Vq(^vvdha0rcXYMFAM}Kzq!}n!6f$Yh&odMu@tr!HO>b^VV zw>72dy3&7$H~KPi3)`G}e}PVsMxJf@f{pj>o!8eHtsUMrK=l5!gFgjTNK%o(4H!S> zO80(wrKuG)iPqOAurXO2?RdM{XP4YrJ_eH{L)jMRGw2%&28z@+>yfX!h%Z(Yk4j&_ z7j&cJt`P#aw;jdL=OF>hky`ch(?dZgFK%TkYLe+0;uHBA|8*AxITGD5j%i6Gg&#u$ z1N=n;pXX!?ad&WCO!nMG0E}I z1rPzh@fEsKN?BMBQeP`^S>w_O?^rJQd`FLiGX30tVt5#l!_wNZULD-V#ToX8nX{xY z?U)Pl#CJ@PbSm)BTM(>1UzugPFyFa@O5GDx%>qYPr?p+WigopB^^AvH+xy7mwbdnKW$hCt!t+Mmsb$BW!jf_EQQ_E(DkIVMz^}8P726H!$H2R7&(?{y zgQg(6y6+e@N;Jz%e_LlHGML*9-btPRYh0=I;N>M_g~=3lZVj(0^GFAldphmY?&IM) zgJVfe)YpFzQ&}VRc29eF^5JKRk^OBa6%IXdZ>P}AP4N5^ljRFw%6YwoR)}z^ zay9WgJ6VjN6fiXdHc46IVQ!Puek4k#81lyJQgsbdU?tjs+gaoN?(Imi{wwI!L)L?T z69dY4&LYwf=SXzsojc4HudoLmQits55oF=At4hopK0ZR?&9alp9LC>UE;<6DbbXVF zA<_~-wPz#2Q$SYKNFC1s96?4!0Bdp0^_9|pce;Idhh#oLL;veV9$e>=K7!gW@@zu7 zpjzVNg?+c*^|cr|rCyFMpWmiqGp2&RYu3wbGJ#}snYi$+=)pk-F=CzZlaSaT=kr9O z%Y2AWAKKauKHmU8pEoC^mCIY;MmQc~T6n$HOfETz(r*0cQfLdyXI1=-L4^2_gkIx> z!ogPQ!Cvpv9meiiq+G||US*8257tX;?xdKzov7+B!(T5CarUe-+ta0MTN+}cNmaZI zG%Zh-SCTQZe|r@C4d>P;DSBi=ona9mVXNzU0jd`AlQKS-fa!z+imB z*{^dUNBK78g?>AXj*Bs83dX=sGR@K>rb93f2{6GK8{0rjmWl*quhx4UF)tc#vS!~| zC%xVqW|U;?yFNKfQqvdakC8nOQ1_*iHFv=!f?u*4nNlcpK(z6CL*wXM5^~;Oa0$+r z@3HT;oLT*WuGN(GYR2awRmknq!pf!6lumm^8gETg(6Nw8pQ0Q ztrDT;*uoQkd|!fo?_VQ8`KQDE(1ju(=@5m=bTWrU|NXglay9Xw6i>-G4r`L+Extk1 zY2A>%B2(+3B(90;#Dz?$grynI#L%UL7{cBpO-J0k?CUa^hRLC(oETA0=#r|`7;FTr zZa>OWm321vbBRTkYHl!{X^82`bge0phy7Se`KMJ~WRSmlCNy~{`D|gkPbw@fQ^F)s zfHSui+H^)PBP&`+T76?99Lty)ZvQv;JyWQzeGn9bzO~v=|IIo4DQ#V@%#n;Yy08kI z6c=9j41o+Z!#@p+Zv-;B)1*TX5Am=0YtKw2)J%)S{WMSgmalSoBB(`KFCmxsRVF>x znTA_%x&Qj?y&8X0jcEE2DyGC?4~2zfHT7^(l>x7Gm%qYMdcSFcU*-4X&JO6wR&LSo@$ z?(Y-AS0^Rqq($}|9WkTUKDvk79#zq8CGs+4oCEsnFAv-^%!EKSe z*+F&TsOOSY-?}0X2Sjr0*S|2l@O$G_UnAG%Mc^LQILI zhZ+)>J~RMW48^ci?DO|5CtE)=WBaAr@{g|c?a>{m5v-rTGrK7aq2#OvI$>coCB0OD z<59iQC?AROQu0ZBd{9pKiynG?lyW&@X9@xMVrbWvi2L|*lb9?&1@ORo zjO8qI~PS-W<>Vv-qmtVY)HtD?{oM~TSoDNA~d?u zOb+m9CjV z)-`+kAjEgHowwL`v_DmDH0saJkvOK*97vFNuW6xbyH-C6{XNpz?PY|=q|B8Uvna}g zmd{X6pzzt>#$mjxTNIh*cAD_0IZ8V!*VQe@Cjml_&lI`~e<+AdQbBemgWuEB$D+G1 zPe`zG<(3d}#;}LEuh>1D-}z;h)Ih5`h3CO}`yOV~>Z4(%l|&R-nwBKymwd67&LE_z z`mWE-B?Z1~XV&Gixh7OZ8ra(}gd*AxKD|dyaTSqd1VLD|#_#aUh9W8%Qzrip`e?N1 ze}1GoHN8|$kaYZ0DiC~NoTs+Ydh)oTCSsb5NHu*cleeOYG8=mkAUL+q2Sw)W_V=`E@3Ap3QYrx&S zW2RKe$`;7sxVC?a|DxdgbjTG2Uv+q~EC|8fpdje_V2s+zg9OE&j_J?}&14IVgvp*o zBw^- zND}Xwn_}A#R&Ih8Rodj>gBe?+sssi<<4#5=QJd-*Pd2>2uvI(g zbf8`YUw8mK5G?qC21;y~J6hi}8>0om*sg!Lg`1;Lgv$ArpLxmUBk~yM5V1Rlfe~>L zWn9bGyu`mF@x|ObmeBdEI8!qH=J5CAhu|{Tt#j<3M+4y8cax*VZEx zr9negp~6n-zBigZZE}Mqv0Lu7;um4|q`i~E&H9UIN{dVm9}ho)*=*f=iskDq8?$(a zd&dz_`B-$PQMVZC%x&4=E|~f+u3_TH`AqlqdFg#w;Nwr`5eS)zLMWojlMDjy??1|v zM9zMF6RFM4cPKsnUDbY*>J<2hi)mp@db~Q_`?qj*awy9njEvlBbH#H{qdz!7QOS_H zh}YUa(Ki9|grNsvTIq;Oz;{#OJ&!yL;r{ZkJ7lvuQH@)IAX~u&SClUzpPSTWYUV5< zk9JFTf-L4CpZU_*RwjFOb6BXof(Ai;L_3R~I$-Y+26|f8XX#wWztuEez9}!W1UOKb>lBl77Nw(f|0?_{hvsiTUjp)vL0m** zvG*{9VccI$(;MH0{iHI9#^H#NFm8;g0_*9$Da2j?K)wb%E-`)&I^D?sXjNDF9tP@k z!_kuQ2OA4k;0Kgb3trznf&0`=p%!0-`EL=hXoyeh5?!4>qI8>&Ro4u-cUmvSa8g(J z?tQe}v)k+Y1&+WK8j{Aa4&oCkhObRSl{ohF*sxzs}z={nouPm(6@}q-5sI=96aC;$c+*K5{yG9Ih z=TGykadsN`H^1|VUqR7S4Q1MPDs7U?oP?ytlIp!#luUKBYCM=!D1=7QF(S$Eq~WCe zGoMuOk0iPKvF>dE6em&voHaaV?Y+R2Kp%B#93fGkDj)H*&${s7gD5&@B$*LJQhq`B z;lj*z9u+(Jz}i1B_B@^cEzMe<0NBxFCN+)s#H2FnAWC>$$jd6LYqfiq2bRhWMLF2n zHojXN`KNbbo9Q-Ac4Ju0BHA$c{HVAo3Ki7`IDl&JSlE)R%YIK454sy7-oSHkHYy9f z>#8dcf$#Ez!)GcS_=ADI&#TW5&jFgU%51WFl+e50B@Sh}dk4vA#1sKzRE74#L~HVC zF55AVjL0siOcCU%I#~sySXD4G3IhZJvXMUCpG#ZXL5;22!%_XoYy~Zq2N zPeD@O(xJ65PBBcxR)j=v-~emov4r_F#jZXf(Li+xv@vpqN669e6lLpGO-{y-Fy#@T z=i5uspG=X$WvI!F_~;UDWdyyB!#vg8B{BK@4i`^w`&UzHV@s952zmy8o8rtvQ{}cO|79gs9GxrqTEfQy3j@!RYTIBA^aEg`4H#5Di#QSQo$5zV+58PYG^K!U#D#QxW6=PqQ8 zMI5dX!G!u<%b}+>ZIDT(VqCCS1pTd_4rDFp4m@;GE>n4$#@jD9R7IkUiqC1UP{*k$ z#cYele2qHHcGrw&1fXmgS-cpE;bUK8L0ssP zq4A3-bu?Uix8c`X8r{l%V4?Fun7^~Bfm$-5ujWN0x!#Ywg}18fU5fTrYRo)WU5r6pBJBcX)d|;u99}-RVKK8;(|i>(XdpdL z&Uj7n6%Yp?ALm%)N{WJda_E@rt>N7T?LVO^vR@4|A06@Sx}3K;le$=T&3~wh(h%ms z8?7-sZ`l~CxP|;bbe&^hUBUMDW1Ed_HMVWrPGhyPZ6|GPn~l@hw$<2n-ralu_v8Dy zJ=y2Xo>{YI&3b+h37MHtB_aUe@x5i_q@+YFDLft7Q%UKm zv5JgbSvd(WO>XdFd)vr`YO;Wtx5V(K!pBLJ3*vbJNv$LbKLrF*04{a1Ei+H94T5)` z6%i?c=rjL1me*fY1gi6Q*)iQdVaDT_)oK!-hgAq~tM^yGG2iEmDcv+}HnumJQH#7c2uzouYQq z4GeuH!mDe{SSV)VXOzBCi!4c!qCz$#e=5a}f3psU;~M5D6-2j(0HMlSAH18e>R{*! zwXfU^(FpYf8@;pCStnIY8B9)RVTmPo5s3kJ#_v@=j`=E4A6q-i;Nq1sC*~n94ar1L zc~_L-^I*YqoJ6U))s>MYg4>0t_I)_EE9iH9`D{8er2trp8vM6V0eTmtqErJba{a1^ z_4yq8U<+YqQ&9^RBK|D@kF+To^P&iBR|}*sb(4p_*5J;im-J_`3M-={WDMVbzVu7a5Qgr8yAjFi5}z$-?^G-{9-vNySRg;%4hXAbx=F5l>`3>4!%2EUBTU z$2v}-_hld`=m*)r&wS#i9Moizd^L~zdu*VanQM8}UaKWnP~7~)5>HU@U#dd@v~;R_3qcN=_uF zu9&kXb(_1-x(pYf{yTH1KD~niKAo1}r0AHp&BEhJ1EM6qYC0C;>Vph|+2y0?>4Q(D zp96{X$ciV@EOOO%CZdKpK=_SsNsGQUF;<$SLEfrI3;}I4AY!8COg81bC*4XfJ?D`{%N_=r$TPx~9(3bs6kPbZNz8w+3d;s5N@j zR_zbO1|f7``tDx=3cX|NBJOd4<0NE02~WBshzu97V03?-CZ2Ig1!i9^hBrvViRmCE zbpl}iU=6rDtDCuy=G(HlHA=XXqav420hf$2ZCPrFh|~}Q0`7vI8H?3@?}A_|-KN&_ zha#8zvf3KXfslfi4|S$tCIP3oDEx9ZL{YwNu19ci)L(8=aEi>_6XoKu z#nGIYp>GyBGZFosJwz;eCEhGat}mhOc!w(AkLNzWFWV=A&YB#n@OVCdy#LlT#b09p zTiGv1JTIv-W>|jxV6HJ5I<^4@Jz{wCoHi4uG2FLKrn#+N#Mi7N#p$a0bQ)cA_}gNx zq4dD?dc?X^ik1$|>~f4e$0=Ja>uEKj0QvSh5X&yVJo#q(-1R;6x8P_g+&UP9G4UGN z7ezj1>SB=$DXy;XP$ZoX4cWv5owm5*l+*=Xy-LX@XCS?}EaA(-J{Iz`U7*o-a_?Wr z(O^79-pR^B;(0aMXuri0#KU4UoUcUySE1yxXjNYwE69ge4^QBKm&`GbfJdB|!kG^; z*DRyn!>D4gAsUWJBe?P=cd3z)n9vAIQeh=2>n3bYzwmc4H8mq|%yZMlMqZDN;2&%< z+n*o>yqTD#!JHOfyOMP4A69^_N-tfcxSyZ9?P__wLkbkgoRdX5Jh=AnMVl7B9P@3p?~ zjU}{G46HBd4C8&#G`Myc_p7&EVcMvB>0N+)%c?2k{@gYQuM4O9ryl5t;n){k^+xqvh2W?cgyl?`;_cx zT6}j2&yL+m-7nX>q{m@Car`=($6I;P9diWMLfeWAG=tx^#%6o8JEv=R5ah@#sNR$fw9E zC?_UE*PcjF;3M>@)|Jm_i=A?z@9pmk|#oA=Z$yIz}XEf4YIJnAIUra{H z*Q!g7`uba99YYR0F^h{o%iY9)U)Z7vBVUr9rr{w+w?)T(AHR&R93S=6FdD|pA^Z&G z4tjJoL=f`YX6G~52{=}pdjRI_CH*BOSG zR$APtabnbIaty`TCA&{%>9#yAJx&eWy{d0oW75F<_C?j0L8}rkpe~HfjQUT*B5Rmk zeuQ<{^ZS87*Ts<`Gv=BaZPmROQn!R)r3owrE8`&t3wDW=E4rujHvBkpyqBv~j-YVE zMA|u!jK-ArN6%LG-IDpi(Z|PF0p~Ae`Y=RijaC888n^o8g{0;tqIkdd&#aS~O96Mi ze^h|}+-Rq@)U#S;e_v02x@4U_wP1a@rKOJoFIV@cQp_!OF0O_F+AT+%B_>i3s#xw| zYiRoKF$1u~{7gw?$8lUfqml?sZI^=-6E;*V6e9XumwoXjfu`LmO23?sNSu|0Lq*1X zOM&+d78#muUu#iAi9NS(h^k%@&S`3pWMq(e^XR4WWKkbN)byBsp(>P}h z;dhmL1vAMYxF0P|&yoS9dDQ?|V6$E%j$t&iWX!gGAceCxiztFQcW|g(29G zDci;E54Bj+y)-^razGjT6RjiLSHxO%!8Q|3GwqO>3A6BaWC!@F`BCUc+7iY3lT zdICd63J)i{^+YzEZ4+SOe9f-+)1o_+Z?e<72rqGLeGx9WXkO#~rDD|(HUYWVEGx3S z;rF9<821eN<;t`DnF`U=zomeimTSId5Zl%>^9%ACFrRG05Tx_DRk7N4!a#!ZUK0BwgbVH% z6RR=?_gj_<6%g<}D0%-zY!rj;xmTm45Fbhz7F@PEeXWh<=nB`wnvs;L_b=VEs+5^z z`N?N-WIH5TwYeRdJo|b>g%ehKXh?kU^{*r)$HaQ2qSeYEn-)5?=&!YV8luY)0!t(H zv8f8rRk)uz5?wskqLi012OdZRTlDp#!7V$lD?igbFiU)#brpvi`>!p$2`DCYa$b(X zF402sULb!Nnm!mf81Vewm zW=K<^4yhwPi&wJXTJUI={5PIfW5xkD;)XtMUGgtwU3__U_jn5X=3T9<6Y9&! zTyz5@y>ylc6T_-b-AUpi%;@QGr>B!!9Xpr%xjkLZ8eaEoCqQM`AGj1#HYI4p?_19S zRaZqdb_X(tHz?w_jV)NkN?Nup&-YoHD1yuU@c{gsJ{LP;QR&+PJ4%=Zjlu=>5WZpd89>M`AHm9Nk?qpO>CHOG0J|28#16x{rCkKW*mF+}tR1c;lT z+%U8L$kxO?*AVtvwKv(Mf1P*7=X&%Pol`GgW}s68brtcE-eAp4fiKaJX8L=e&M)hk8#|u@aIJ)#VFcgXZ)* zIIPTDQc{7nTcVkASdb8pW94qpd{!5FD#^4YE7?~CmTjcQ?;DZ3$>em=`ZK$>!)-_` z;x8ljR!EIuS-tOfo&FoQP>M=?&^A$-jdbwsrQNpMnPja*XcwyvCV1Tx4|J4-&xB*D z;ZMV-KbbCj9e&l$)iEZx%>HOhoK@nb@v#0JN#cE`hzsH8dwkY_zwl-aU+qy6)p%y* z-D?UOKtmHWO#7SOIK-*{<8wIZ(0bP%w+f$2{tk<#BHH$&R5`QqauH=Z>1)XF2XL~JR%2#3MLp0X6Y1SP#Men5lIxYM4C_a~gQQdTCRC8DlPG}-lbkg2p7 zQfV3_twd@xm(rM77;ogg;r_hm)oePc?{AqBAzDYKY1`jBtf(P&FZ>j0@4^dBRwXCn_42Vra@bV^j z<{CxgJ>f3J2VtU+E5n5b*HRuVe5E}I(v|61Q>|$GAk)`w-;nvAcl644#6!UgB8h(l z&^UB5mZ@scA`ynhTZx7myoSlke!KVj+A~L$_tkiweGwgM6cM_|#BJoT;FISbX!m*1 zAY;nytMHcIxkmr)B9!oE@pF3@m55|u9YL_s_f4dGcGuy&DxkqlO3ZEWY3LUi1c!d! z7qN&b=a9HM`LEW9qKMqzr`9_uO6b#;CLTAY7{9$ejNqg|%0|!WF(5ZEHU?X!%P{** zDpi(W3Sf^HVSS#ieFm^Q*3QB-wwyeo*!+S* zBOJ(`0HNG#06+n35s|y)mS}0VK&caVTjhhgQs1^iz;xPCv$Y05c*R; zd~Q&^X@BEgFQJ(upXoMuyysWF@!7YakPdL>d^-0@+3;&5N%J<+SA=Wvx8|9e3zd(Y zM1Y4@t~T91UHhb);JLTRrBBf%d?Gmr!bA}YkTwi5u3+DW9to-XPO15UZ&V_Bx2lWZ zyCF0#MQc%3KBCbA=nll3UPfqG=n!rnTbVX&mrR>={L>7K(#URf`8O+%PW5UG>BT8u zn!!w$5wL zM!%E8ag}bmd|tkOoi6A^A1l-jO>+^{LlKzd__I%If-h8Bn1(%|$YDCs@@+j{^}c`L zZMjE#P@wQ;8{&R|tc9klJj!po*=~I}h0(!?C_$7Q5vN7;5fQJBqKM{o@BU#@vqm_t z;0hlH3C&OtvE8e$fq00LX7MYR)Ygo&s(zN+(8J&Haqv=22^(u`>x$5MRxTlm2M0j! zdw=zA&qhKjp{24NsTzrEtoIhwL4R_IqyQ&Qg>4i%p&}-u7iteIx)+*f(f77vXr&sp73-+S*yEQk*7w1FXiPSO7oOj7$CN~ma+mw7V zaf2JdxUJUlL^Ev&qC8GoboiLZ>+5%6c*>!?3xZ}u=pKjRd1 zjJ)7KscH|7o?1CtY7%JQRM<4*blj;s(I{0K41;dg!;nP;7sxTGviNvBDRB~Eg4=S0 z-lTpsb?Ku)9VYn|9}F_nnK7nu@xaCLY@^DTBhhk!ha2xLw+QQ5wM6bZvHIBS|5;HT z8fR-w*G-hnoki9_zMrayBAe-d9_j`|q7?*361g;Z1i>dC`~vk{%Dp=BD}59W{?gL; zIP^c8B@Hx)HwxtAxOX%yitWOr+xCfgNk^it&IB`*JPeaX zi$!ngs;9)&aAKI&^rSoX1L5ZEh=9_z6DMX=VH<}WI52;cn&;aQA_1&-h&-|J&Li)& zb7(C4tBxgF3*lhFN&Z;Ojg^wiUDNud9XKCn_{1FXA+GcA6dUve!bnEf)$eA6VM{)v z5V17QTV7@y?XUboLU-bE`n)Aojcw9Ged3QBuNJjy8-Ydfu2g5sBRElK)d4i3Bjwwp zsHz~zLwd-3t`GtHYZKeECqs)cm|kRRVzvVuV@8l6A-rIlmKgy&*;(pN8$>Dv5YE*OjKD6P_Ze^%u;`L-ch#N4PH2)>%PjQc(L-6T75DGCS@ zn9n?cow;0$*z(m2bf7n8aez&bT?HKn%OSpD zEMxRwJ0D{VM3X|(oP>K%#3B9gQJ9c@guuoDFsja?X|;TZrjo55Z`B3)2o0n>Yu;-+ zm}}rfU}9e@$Y$jh&$XKSppS$`J-<-a+Sq<-OAfePKf9S76k_zLBgJ6ea&?We2OVePwhBOwr({2dG;R8X7_t+2a zpg1uFX8H}2y}^`rG+GqWJgxAa+%>ZXx?-}566}Tofm2m!`lo~M_gtv0%q+%~D5fwx zi%W5^OhjSpT_@RolRPA=#67wbeG}0(4$CEW5@|!MA zVCqNaC#yDqTT3&yT5=L;b*#ks|1`)I8Z%0~NivB+c68pi;7tx%hMU5eVI&57InpQz zI(^?&{#qz^TVF|Rb8=Z^;XoFHCHMMJtC+>pH#0K>2v=EHSXfzaM^oqkt?b9swW+>7 z0a%z_GtxhB3~8^|!hG<8+Oxa+4|;vJDk4#60-UukNJ{=x&b8h9>bX9!zzs1k*zmE+ zZsi15;1d`cTdmmkaE~fTWxQ99cT^m);q9^h+mK4Kvd~Y#ru||UDk26{yzm;Y2`PeSJXzwAP z;t5g~>9eiX+aEXw?GGO?<;}a@Yl+6sS4KDco`Z2(7GY1BoCrS#m#Df`*YQ+!uw95d zO;6C-xBk*_O0azEP&=aeT3K0Hp;;r~aRcF~WN4^}3CJtt z^;~P(PNd09X>3mCbWVD`+-eAUE!-`mt>74Q1;;N{R4y(ugn6?$z~-YtdW(|7X^N@K z3w3myQ7#Y=ZX7Pg-MEIyQnc~LuCkn*-&S|AO(Q<=6Y*%>be@BQmoMHk`6g#b)PwgN zuT87Z%Gh09``lQh4biRtol8p zyuKN4$Bb2T9_q`?MRit@pMG$LUIbzR8-kgl0r~WlnI%E z`?vrQYFbVC+18;>^T%4?P6HZe0?P?- z$1rY=BQ?=Ks7SWBTDLpk-&fiODL=bmfd+-93?-d>a3%pH=perm&yIG=2fthO{jMVz zt3^q^&)%RqR|N#Tf<&N716^9y)p*jJW0Rx@I7RyEa-FX+(@pP0z(p`R3vmdnl}D#e6g^g z#1vIQyojmwfyO+-4;d!Me5aPZ0F16f_%K zVN8z$pxrH!$HQ_!ye-IXzO)6-mBfb71jynG`t~~< zZ>-A-75QWW(&KSJdYsA>6fIh^ro^Ffr_RoraQ8U(csJkF7|+IxM#y2C8z2Ame$>it z2Z#!NVaO8iL8(x2t*|)%Fw-E=hXjP14>TT_0SJg-R53AWTOA58u+u9INd(wjUW>t> z*4%qUw{6q*`%{FVvjf@<)F)c{cJK%CsOT$})};2vd1kic%vLA`Kr8J39%4F#pepDi zqMJ0-dzakapyFPu;F+kc93Xm4u=Q9|0L(`ed})!2M;U;o66mej7$_vqiz@cs001H` z{sV{rDRUe@$`cd?-@OciVmV)K*3+@>&d#PrR~4k7FbCeyYA| zBoXnIVgYc=-Av!9aM%1az+T6x0_Xb4?}c_p>&oUq|KBc3(K{B^aVBu2i|4ei7|_m+ z6hiL1+Tr|`80=4W^F}|^+HWPrF+GADVDjAhwZ1&Tu#MUSm+eK-i~l73&5k<=h=?Tm z0D9KNiHY-XsZ!^-+ASS+CgIlO=M!Twq2shC3^iJ;SYHTX0-aS({y*(@=@-x|&r(iA z9ikNm^Ty_Xbq5^Q!5p+TfWv5QSFr!LI+V>qBYgnqtXCw2$SsBg+c~!oK-u}MAI^zX zF3$S`$iLCaKo%X4w{zS7^WuAHfMzy}scdTU+PQJL(IH7D%Go2m^yenvFAzcaGDg^x z=GP&A`+)*{as{mX+r$j`uO^y8M@Lf4y2?D{z zf1}bsTNVHKMmFtuvC@}I*aHd=FWUm#--dwCGa(sStp4_`D@!nQPMoMZ{g}#;NbZbt zD7C(%e`}DEb^!%mc1w)Vdn@NuU$cYmg6HwScFVpYf;+Q>IX#Ex(OfDC>X5V;vbqZL&X zot^`l;?K+OwBx}Zw+G*4ajF>p$^YP0%|1G$+jKfOYhKmW^Nzph)Xp41ea`P*O?5an zHoSGmfvBm&Ko%ksp>1raFFB7}nw-h}c3i192fn_|KPJZMDk~0K_^-o$th;zd26;OW z9MmjsD~{gJS6;EcO2Kasx!u8$c_M7~lVjh-`u3FzV3?PYIFXQI?P&^{LjILN(Mz?u zT#N6uM*y7m$tfJ{hS#e1f58DWs6qoMJcfE6H{?2+l8zr8BLwNNYt442z|TkC0f`SN z4B9XA(f+n*IQl_;RI~vP%o#E=p}S^bw!Ev`LpDRh3B=R1+Ij@*0*4MDkpK6Q)^dP| z*71TOs^rz38a?ekPGrw-KVW7s7{J_kK%CI2j>#l#rjZvGYGreE*_|z;Vu+KD{y1B% z13rEaheTacNK-JA8xK&27GXe;1iE5`J$5EeKRi5Qt;?wZtUjmzuLKiHfV`I~HQF=7cfz+QzkG@5ls ztpxw|EC9R)7$UYYYV>o)8EdfjuOs~2c$0Z8^e2sVdxCZke&%OZR7Ej8e%~Q@j+emd zdLL`@iS^vedQeG2QH6Of7$dQ;&_YAelq6I&F0xrxk^imxE}vHx*9N)3K;mJS9sy8Q z>x1ZP8;yw&#@B&c1qz2f+AcHi_e>pST*GG?Q2nEd(Zup@@}*>|rPPvb1%JEcygYw` z0pEfK>ExA?`jh2D3gAwzOQZ{h2$qSK>C4vo!z&1G>-5 zhiB2%q_97b+&^YeU%m!7vsBe!whDCYyCNw+Kq(03CZXuIag*KKzU7 z{~J;9C<|Je%;jeDmF++DokHNd1+^>|Q<>BZPG31z?_R!t^0t6qZd`S_ZQO1m*1U3d z60P41^7jn?L7FmErL$!XC3|Kx7PoZyIcABO#)>gx`;%f4)F6yjSINvuitE~{RKbZ3 z9dtrIG8+CWwqRZB0PYE6YpOvVz53R6#NbG^LM9w}=rY!U(pLVd6$N~&b;7U&s>MKT z|IftJpwB7F`%_ZIK+51_1)vGuU*0=Xyp~EqkxiCjF;lTrMn;+sr`oX(c(D#v^@kgV z7Qm;ruZSU>Tc?jlAuW$;^y!?1b6WAz^c)O+bbcS$yExCq;|xUGoh&bRoXTP?vow%9 z9m8XHE-fA2%qP99F>Da*Qha)%yqRnN39!yyWFsZB>ATG>{%?wwx$xanNUWBzAGI#X^|Q4R{C42AW&a{O+iC z2O5s3kh@pN285XiAv?YC-)@|SE2v0nMieHHeGxO$-DZl2(6+h(_zREA{#7XADc0rI z5DDq;c3CfSq=(_Dw{&l3&g;rlE4m57yqKOxRI8%sL6&fj%L{emJj)YhI0^00(~w6uSO{-m}~2 z5ED&#jjry|c5&j>ZK;``LA$z{MS^8UK%9q#pBC9C zBh{i}(E?K2cw0a`5C=Qt3&nr3M~b*xfUsLIMc$uYNVzsRpv}u$4s&Cd!DX!FfD*7f z;7|8wtc8{4`78)J59ox=L+3b4$k1H3*Z4%}Qc#sw{JFU-ZvwVl6v(7x!slTWTj7>cUq zKCucH?yS#+1u)d$_-u8#SSZdfp?f2Zqlbyotv;2oTMgw){6ebGsjYp5)J%Vk9x%cZbqcJ1yAObi*RXTtz>;AGwW@G-Phlc ztv|NjaKkLRi+fPPZZ#wIs`c-Gdk*k&{}GYCxax-`D-{lAjQuk(p2MrHC`&B3^!GXH zsikHwoa;2|>W9-}>|45GL@jy6=p5~s%BU>*=;n|w4aF{*V1wl9koGs<38vZ;KX^iR zi>{wYVah%dLUU)?@v6yCkWefVKhxP-qjFI$KVUuzDu;{mokdiWG$js(C(p;IVu?V@4ge2{zEBp2je0GG(6M2y)!oWo zZPthe3zO7?l4+O4RgvC<%HXP^!m5i%h&?{nf*P}mOg{j5G4~`uH_cXrrI7xk}d*~H{KA)+RH!(dfEv4l+imR)bhx-qJ`X3UIr};-=Uo{NDVrN^cvV8RP zw15Dk6nncMfH`Cak`p1|7m6Q)m`xv8Q(us)@0E=RYzd{nBpdT)@1(*g%ti0 zOcdXXQ-Y@}eCyZRo6J6l{}ZH;y^N1(?0%7{Y7*$=AJ_H|Pv?Jn)y8Z(`2GK8Dz4zC z0{3yyY~pKCKX;LWlT7$|63PZ0W4)%Fd)&`q1L=sM4l1{5J!XgbVdG9tbfc?E1NOK$ z%aV>aC-H$KnXeMVlo64$GjlSMGinCvf4_hgo|G>uT9sx^s~s-RZZE1FE-r4*%%INA zV_>1J5B*`z2{9L%GI&o_WWGD){C;v&AlZVGA;ry2%ga5C{t(_tpU(o+CxAl1@ZUCG zI!`V--$$EuHShJErP7yYtKg86_V%*Kh_hepE_|XDp7q)K3q~4P)j_BDc7ONw=vi6t zSyUK=1;h4!6kt~QNdL=1i((Nq=6;imbKE8oxusu#O_{Gvvi{x^xh<}#d4+8Lz zv0nHr_NF@auI<*)oV3^y7;Zm4y^)l_eR;NCTN@>w`R#!GI$y@xRuTOG{;!s%lP;?& zs&sw_D<^(d0vK#rnD~|h=T-1JI+uzH=K@G@o_3Z;%d_)S2}w@l-f%lzjVnh7Y^(ze ztW`SFT2(PeY%B_pX_^H7-Fz=l>BJH)P{moaS95aYVHpAlqY+smwRk~FrYSnodcW6H zbJddQv!%H5QUmNhxblIv@9-29vA8%98Mrxt(k9mACKl29^Xp>sy=rHbD>P@R2fKFf zxOCtAVfxE~=8!5a4$H5n{sy{=uJ8v68u2^MZu|tO#%P$v_?YE*1m%+b+GIMrm7&)& zp$x!YjSG>gx*MaC1WGz-Y+S5^>wUU3iO1z%W?4G_qDmIpaIw`sIPvWI$771OCGcY7 zuG6gm{9}0U;VnTj4>-wgwd0`?*-+AUxb0v4IcI`;fT`Eie`S}h8^rjKvcU%pOBpAU zwzDd3RQXBfhwm4xX5~P3I~Nu{y}7wTmoU@PqRGsPxz+rAWWDtkfNB7HVi|xwWmUf? z`d7Wh_iDvdQ=80AX{uMN1sv7-?HOaajqFJ+tm&<7sco%@%^W3QqOH_Zk^sM(m1U?$ zUqYZ19JDk()F3ai8=t(78ljrGOX>yVCFaiQ2zmt40yzo)L%54z%gx~C6Y}x;`h24) zi9mQ%m|m`vd5JlUM2YwNs1{>&%nckB`@%CDyFxGF%pzX|!H&AV-C2hxPq6CkMvZU} zW_3(JZbAa}AYdluzLkwRoo!)s#K4D$+u!Jg-JTs=8`aR(l2+XkRvwq(yv9`#C!yO7 z^_(u075;T@+elT_Gy+hD#p3Z+I&5w3a=7>vQ$!WhjS|7bvyV*NQ;)kbj)VL4UjRBX zE}J~E$dlC<_S|?qr*@aIOMnXp4@szi1ed`<4`$lL83&6Ft_I*?u>f4J?{nr$8QZa` z^mqxHOeT9XqF>>Oi^@=kd+pvIqA~?4_CPRXBpYn+MZdKg68*39*e^8r+aQHNqa*=1 z-F;;U2J}!MCf#!T|IPX;CVqZg?z+0VXk2#N-Qa`^B8&(dQNYK?yHusm<+~1;4|?I8odum;jQ({A zU{O)gt5*pFxH!K=x!M7;yMxmr+3(&5-F8tAm&Z#xZ`3LGhf3yNk#+<` zg%vHjJe8_FE}Jmln2hqUu<8YEZsWYHC~SpO9n+-r7Q~@w9R6sRDO`BgvT(FV{iDc@YsCy4f-Nr_YhA%fdAR}82;50BO`D<0dI-lushb{g=-&&nq077 zn|B8w-#>-VKEeX^PAq*_N#q28x$Z9*_!S4Nj=^aW=^V9pjf&Qa`nxB=HQ)y^k^(ug zu3=pOuJ46YNQzlxswP0Z{gEpi#9^n$;WGFW5s#yZy1?Ah(hy){QjDQ6TUlA?oe~N>xK{EXD*FvL z39DP;tn!$K&IOi^PTYmn1Lqqf+dQs7a@C^&g6gO5SgKqaSJTpnG&}V$7n>9leXf3H zN-xp3^CdAHaxpwg3a!9QTr_71#SDj;z>&^IIwvL=JUgxKo+;h)#Tfq#P9J-{@9iGX zKxX6h0rLwRxfA8<^u-3Eylew1>I%OZOditJTorux;Ihyc?b<@FB&tX7?qo`}w2}pH z`S%1t5eBBNDlFzQm><`QHC2B>w&~H)>-a7=qAd6K_x8{M%QLRufDKH8?tWJ6ciKy6}9#IsfNA1y{jvmRIHAUPKiPmkMsU;v3y1 zz2{xr`4v0yQ2b!AfE)Qonwzl48j&m(}b*;$?EC@}8b9+Z)B@v-+jF@07VtG3P*?e?qih zTYYs{s|v{eq)_2f~z7bu*4?q z4Rznfdp;1nu}>uC{rx+`c+tb9?%E#0@Z;C7qTOXllG5QsQt}*hT$cbFo`Z9&%`P+L z%BCmE;V-ZNoc}!IdjHDUTxqR70KgTRlO`r-RSCR5*l;nRaQm7UMZQvFoWbY8Hc$hkkM-tbqrefC z)RgmQlOHlv-Mu78BLYISkf1;p0WNOu$%(g=3(7+{+(Wa|VzY0|o3Tf0-^~rxwoRoD zcS#zoa<6gmWt6z>-*K5jRh&u=Bs`@{&T?J}or!Ut>!JwSgA}xrhRw0V8*04d@EapG!h|$kd$*>U>{lLm-B51{RCx{t1D&2(?)UX^?G-G6 zWLn_F-dwiSHd9h={6Gm71PKH*8F5fVU47wnsRqE|>nbV51EYoe4J zDFDudVgKfMZAPTF7WEfASz>aCAR^QXLca7xqT{8St?^&zkk5~8?d4F=C(uvUP%q6< z4b6vf@$c!&)O+*$4S-k_4GsEWB4c=XdF%?kC~k)XnX~E5drCIVhpF!ijVnme{SZ$l z;FR<|?zP1`l1O5`4JQ)?oahn-0@{<09vDZUp!n3vj^E?vet)u%#p^biBbf8^Ck)rs z-JL5HfKfj^If(>=1%c4Ru$6KSd;lTE7>Cx?)y2DkT5L>7!9>|VTWP@BuX^MHJ1nyC z+UMMXIYXUSYO0f51)LPQq*|_Rq6ccNwY7$iPowac#{^6u=$_2@eFu}xaYh0s@X{h9 zF4UE{$_icelw&KBxK4pG4q8izn6U=_?%$0dz45za(~&=uo0J5#fx@>?V)W7@qN6fz zGLb`nh>pKbuBHplo-G~0fJ(-*4i1&b;mo{FL#?4K66o#>z;N->adFcI^6i>2Eu{j& zDQ_DCz9+KmlJ^b;Xy~I5h|`L)>q>3bxEMR5OC}4%SG}gW4iaIg8Ts%RX-uzF6xw~;I#bLwmYAZoi$Kb<2#Vjx1>Y002q5f<0hV=O zM@U#$fw-%c6?J5hl0XEa6e?gRjDoU#d5Ij>yR?MOj9^Qh{s1^Xha25qT|L1&1@A8P zNJGUEvw*!gUT(1pfr;I(q)lOLuNCAm=2p<pbpRtIuk*63Tpc5u zIu01{v_N54-MJjd?e1+hE5W(WKwBP_msLyCZ1jQ!! z^7OrRba3IQlx1QVxVdrM1JJ3+$%*?>u(7f6@S@@=Ir_;0$Py9~`1?@(hd&u&iQQ!* z;#@7_?q*TXUl9FMn7s~yMKe!P&eT-EWCLp&fX%vla9C-4T1Z7Z;*xr)n46U<-i2nv zXKR%ZnbmkP8dhwkWg1k@A^6cK?hWOiKJ zeWNUnW5q>@iIQyW&yC^1YCs~eGvD}k01uEO!KMF_(bblQg*gM3kjW)?&F=$qS;{e~ z^Om~Q$Lqz%>)AUeXg@K?@17qF-#zV~$yTS?;gIKJVOSB6IlsH`Gcb5KUgsZgcxJJ& zvx7ow6*4m$Z}j~Q+lzzj(scCaBJG0Fj;z=}2YOA?m<+pIk5z!d9EieJ7DLpAwC#b< zL?aFkC*v@q0Pq~~oBki9&4k-9Li^oOWKd900Gz|pcfw%+HIkpjkvK%~hJRA#+UDWH zKz?K?9QHCL<*%~R_TRmYKXukfyHRS2%?ij6q|x}?u7}N-`J~VZFTe&4Zym}4Sg74d z?(=TP5#xFSIwI5r@Yjb*aigCRWi2xh(crVpRIzp#*n;$QE?NqyMwLAzpMyksK!$o_ zqd+vLbhx;Hs;70xG<&r=4W%=20+1^Cq9Z3}7p^T!Xp{3W18YIyKSx{bF4j9Gcj0 zy#h{0OR+$r)^530P0TDO5-u*CwkDmnC4IDx12}Np>`ooQW-+78&0;_te!tEy3xakt z=MT^i{ORMCGUJOT6CB`=$VO>f>fHmVgp^of5NTzXi916Pdq7(t>OyPw5iKAQB}?NP zKBBG@CLP73q{4fNj>l`BDY$0K3>z$FQW?&SLaP62vDwQxKw5yHd|e^|sq&oY4ajX4wcXe|g2J=^N`ytCpki}FIZ{8Nu4Xnzpxl=-@tyDOph z79YIq%i?E7L@`Obrc$yLVCZtz2c4DI({VZ^S0^m< za1m#8D~9Z=#D~KXBkk;~M(t9h zpvYIl0WmJ|0i+vvV%-kw(ftI1#AGckEzjKOhq3Kk-Q}6kC#gPEnXb@KvQK}0F#Ldl z%}_zGl4AYLd+6@Lqv-gugwodIvIa}@=;*?MelE+YY!EDO2Ws+gn_5I;?KXEx9;O0k zMdbuMcD2$3(c0S~9{yf4p#VRd?t|nbf%ws22<|xi%?|J5Goa_@{+U^q&!j&bn6f@$ zLDh4}{MqN-mq84~A|y&5TdQPN-yhreD*dQpbN9Z4U~m26X912Wa7-U*FYM!@VMr2H z8$AJ~ivfSGZ{rP?LJ@Xx8!V%@rdl;Y!VMI5u)CvAMl@ zQBp}i(%DJ~Y1Yh9>b!F`0L8u+!ik|h&Asn0c>8>mzwz77_{KGx_*k?f74|S(Gmwz; z!tRJa7;U`P;Zc^mO^Aspe1t5l5o8AgQxPX0udXbfxXr z$`8nV>;J9$oL*2wz?XhDbZS)}AC%^!dpN3OnT&^r2SdQd@?luf$qevO0&=$3IlzjC z>=Pu`KX@@TY;mv#6gEbNP$%v^op6ney85`XD>U)(9owmpvkkP$3BqSxI9@Uz6*3ru zhMYEK#>#Qp6y)0nF@u1Jk9Tk=S=PeqLt@w>p=2&Am`A_`ZNbcTZj0me-qf5U@UQx7 zWGIMFW%feYTq3A4V#dsou*yQg`JgBv32~P%G3SjvtwT&a=Rw`yA*{GW`cSPMA!MM1 z&`S|>JHAkaIBqHN2n7Xg@o;|18Uit@8&Q&2AW#T)8$^7NnqG_<6%pw}mi6KDR_7bn z&DH>_5om99JV9>HA4Tq9!0_kO1?dA;^L}U#rfB&wZT|J6i;IpA(#)|`S)w2W?K4>W z@o)niQPQ`SKhW$-@&66vwGYpIm+t@72Mk2kz6bu`JA>r5%wAr^@=r+S=gW)>N$mEr zO1Bud2)-y``DY-r@F3&c*yX?*Vhou6&$sww|CZgkIew9(G6N8Jy85}Sb4q9e09Rkk A8UO$Q literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_CSharp.htm b/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_CSharp.htm new file mode 100644 index 0000000..e0752a3 --- /dev/null +++ b/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_CSharp.htm @@ -0,0 +1,210 @@ + + + +Notify User When File Changes State Example (C#) + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Notify User When File Changes State Example (C#)

    +

    This example shows how to create an add-in that pops up a message box when a file is +approved.

    + +

    + +//--------------------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +// 2. Click File > New > Project > Visual C# > Class Library (.NET Framework).
    + +// 3. Select .NET Framework 4.5 or +later in the dropdown.
    +// 4. Type StateChangeNotificationAddin in Name.
    + +// 5. Click Browse and navigate to the folder where to create the project.
    +// 6. Click OK
    + +// 7. Right-click the project name in the Solution Explorer and click Add Reference
    +// 8. In the Add Reference dialog:   

    +//    a. Add the +SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
    +//       left-side panel, navigate +to and select EPDM.Interop.epdm.dll
    +//       and click OK).

    +//    b. Add System.Windows.Forms as a reference (click Assemblies +> Framework in the
    +//       left-side panel, click System.Windows.Forms, and click OK).
    +//    c. Click Close.
    +
    // +9. Right-click the project name in the Solution Explorer and click +Properties.
    +//10. In the Properties window:
    +//    a. On the Application tab, click Assembly Information.
    +//    b. De-select Make assembly COM-Visible.
    +//    c. On the Build tab, select Any CPU, +de-select Prefer 32-bit, and select Register for COM interop.
    +//11. Save the project.
    +//12. Copy the code below to Class1.cs.
    +//13.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +//    select GUID Format 5, click Copy, and click Exit. +Populate [
    Guid("")...] +with
    +//    the copied string.

    +//14. Click +Build > Build Solution.

    +//
    +// Postconditions: 
    +// 1. Open the SOLIDWORKS +PDM Professional Administration tool, expand a vault_name node, 
    +//    and log in as Admin.

    +// 2. Ensure that Default Workflow exists under vault_name > Workflows.
    +//    a. Ensure that the workflow has an Approved state.
    +//    b. Ensure that the workflow has a Change Approved +transition.

    +// 3. Under vault_name, right-click Add-ins and click New Add-in.

    +//    a. Navigate to the +bin\Debug directory of your built project.
    +//    b. Click EPDM.Interop.epdm.dll and StateChangeNotificationAddin.dll.
    +//    c. Click Open.

    +//    d. Click OK.
    +// 4. Click OK after +reading the SOLIDWORKS PDM Professional warning dialog.
    + +// 5. Open File Explorer on a view of +vault_name.
    +//    a. Log in as Admin.
    +//    b. Create a new file in the root directory of vault_name and check it in.
    +//    c. Right-click the file and click Change State > transition.
    +//    d. Click OK in the Do Transition dialog.
    +//    e. Repeat steps c and +d until the file is in a state that it can be Approved.
    +//    g. Right-click the file and click Change State > Change Approved.
    +//    h. Click OK in the Do Transition dialog.
    + +// 6. A message box pops up notifying the user whether the file +changing state is a top
    +//    node. Click OK

    +// 7. A message box pops up notifying the user that the file has been approved. +Click OK.
    + +//---------------------------------------------------------------------------------------
    +
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +using System.Runtime.InteropServices;

    +

    +[Guid(""), +ComVisible(true)] 
    +public
     class ChangeStateNotification : IEdmAddIn5
    +{

    +    public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
    +    {

    +        try
    +        {
    +            poInfo.mbsAddInName = "C# Add-In";
    +            poInfo.mbsCompany = "Dassault Systemes";
    +            poInfo.mbsDescription = "Exercise demonstrating responding to a change state event.";
    +            poInfo.mlAddInVersion = 1;

    +            //Minimum SOLIDWORKS PDM Professional version
    +            //needed for C# Add-Ins is 6.4
    +            poInfo.mlRequiredVersionMajor = 6;
    +            poInfo.mlRequiredVersionMinor = 4;

    +            //Register to receive a notification when
    +            //a file has changed state
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostState);
    +        }
    +        catch (System.Runtime.InteropServices.COMException ex)
    +        {
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }


    +    public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +     + {
    +       try {
    +
    +             string AffectedFileNames = "";
    +            Boolean
     topNode;
    +            IEdmCmdNode cmdNode;

    +

    +
    +             switch (poCmd.meCmdType) {
    +                 //A file has changed state
    +                 case EdmCmdType.EdmCmd_PostState:
    +                    foreach ( EdmCmdData AffectedFile in ppoData) {
    +
    +                       if (AffectedFile.mbsStrData2 == "Approved") {
    +                          + AffectedFileNames += AffectedFile.mbsStrData1 + "";
    +                       }

    +

                          +cmdNode = (IEdmCmdNode)AffectedFile.mpoExtra;
    +                      topNode = (Boolean)cmdNode.GetProperty(EdmCmdNodeProp.EdmCmdNode_IsTopNode);
    +                      +((EdmVault5)(poCmd.mpoVault)).MsgBox(poCmd.mlParentWnd"File changing state is a top node? " + topNode);
    +                    + }

    +                   if (AffectedFileNames.Length > 0) {
    +                     + ((EdmVault5)(poCmd.mpoVault)).MsgBox(poCmd.mlParentWnd, AffectedFileNames + " has been approved.");
    +                   + }

    +                   break;
    + +               +//The event isn't registered
    +                default:
    +                   + ((EdmVault5)(poCmd.mpoVault)).MsgBox(poCmd.mlParentWnd"An unknown command type was issued.");
    +                   break;
    +             + }
    +         + } catch (System.Runtime.InteropServices.COMException ex) {
    +               MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +         + } catch (Exception ex) {
    +               MessageBox.Show(ex.Message);
    +         + }
    +      + }
    +  +}

    + + + + diff --git a/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_VBNET.htm b/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_VBNET.htm new file mode 100644 index 0000000..b990d26 --- /dev/null +++ b/documentation/api_extracted/Notify_User_When_File_Changes_State_Example_VBNET.htm @@ -0,0 +1,181 @@ + + + +Notify User When File Changes State Example (VB.NET) + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Notify User When File Changes State Example (VB.NET)

    +

    This example shows how to create an add-in that pops up a message box when a file is +approved.

    + +

    '--------------------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +' 2. Click File > New > Project > Visual Basic > Class Library (.NET Framework).
    +' 3. Select .NET Framework 4.5 in the dropdown.
    +' 4. Type StateChangeNotificationAddin in Name.
    +' 5. Click Browse and navigate to the folder where to create the project.
    +' 6. Click OK
    +' 7. Right-click the project name in the Solution Explorer and click Add Reference
    +' 8. In the Add Reference dialog:   

    +'    a. Add PDM +Professional interop assembly as a reference (click Browse in the
    + +'       left-side panel, select EPDM.Interop.epdm.dll
    +'       and click OK).

    +'    b. Add System.Windows.Forms as a reference (click Assemblies +> Framework in the
    +'       left-side panel, select System.Windows.Forms, and click OK).
    +'    c. Click Close.
    +
    +' 9. Right-click the project name in the Solution +Explorer and click Properties.
    +'10. In the Properties window:
    +'    a. On the Application tab, click Assembly Information.
    +'    b. De-select Make assembly COM-Visible.
    +'    c. On the Compile tab, +select Any CPU, de-select Prefer 32-bit, and +select Register for COM interop.
    +'11. Save the project.
    +'12. Copy the code below to Class1.vb.
    +'13.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +'    select GUID Format + 6, click Copy, and click Exit. Replace + <
    Guid("")> +with the
    +'    copied string.

    +'14. Click Build > Build Solution.
    +'
    +' Postconditions: 
    +' 1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, +
    +'    and log in as Admin.

    +' 2. Ensure that Default Workflow exists under vault_name > Workflows.
    +'    a. Ensure that the workflow has an Approved state.
    +'    b. Ensure that the workflow has a Change Approved +transition.

    +' 3. Under vault_name, right-click +Add-ins and click New Add-in.
    +'    a. Navigate to the
    +bin\Debug directory of your built project.
    +'    b. Click EPDM.Interop.epdm.dll and StateChangeNotificationAddin.dll
    +
    '    c. Click Open.

    +'    d. Click OK.
    +' 4. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
    +' 5. Open File Explorer on a +view of vault_name and:
    +'    a. Log in as Admin.
    +'    b. Create a new file in +the root directory of +vault_name and check it in.
    +'    c. Right-click the file and click Change State > transition.
    +'    d. Click OK in the Do Transition dialog.
    +'    e. Repeat steps c and d +until the file is in a state that it can be Approved.
    +'    g. Right-click the file and click Change State > Change Approved.
    +'    h. Click OK in the Do Transition dialog.
    +' 6. A message box pops up notifying the user whether the file changing state is +a
    +'    top node. Click OK.

    +' 7. A message box pops up notifying the user that the file has been approved. 
    +'    Click OK.
    +'---------------------------------------------------------------------------------------
    +Imports System.Windows.Forms
    +Imports EPDM.Interop.epdm
    +Imports System.Runtime.InteropServices
    +
    +<Guid("")>
    +<ComVisible(True)>
    + +Public Class ChangeStateNotification
    +    Implements IEdmAddIn5

    +    Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfoByVal poVault As IEdmVault5ByVal poCmdMgr As IEdmCmdMgr5Implements IEdmAddIn5.GetAddInInfo


    +        Try
    +            poInfo.mbsAddInName = "VB.NET Add-In"
    +            poInfo.mbsCompany = "Dassault Systemes"
    +            poInfo.mbsDescription = "Exercise demonstrating responding to a change state event."
    +            poInfo.mlAddInVersion = 1

    +            'Minimum SOLIDWORKS PDM Professional version
    +            'needed for VB.Net Add-Ins is 6.4
    +            poInfo.mlRequiredVersionMajor = 6
    +            poInfo.mlRequiredVersionMinor = 4

    +            'Register to receive a notification when
    +            'a file has changed state
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostState)
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbCrLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub OnCmd(ByRef poCmd As EdmCmdByRef ppoData As EdmCmdData[]Implements IEdmAddIn5.OnCmd

    +        Try
    +            Dim AffectedFile As EdmCmdData
    +            Dim AffectedFileNames As String = ""
    +           
    Dim cmdNode As IEdmCmdNode
    +            Dim
     topNode As Boolean
    +            Select Case poCmd.meCmdType
    +                'A file has changed state
    +                Case EdmCmdType.EdmCmd_PostState
    +                    For Each AffectedFile In ppoData
    +                        If AffectedFile.mbsStrData2 = "Approved" Then
    +                            AffectedFileNames += AffectedFile.mbsStrData1 + vbCrLf
    +                        End If

    +

                            +cmdNode = AffectedFile.mpoExtra
    +                        topNode = cmdNode.GetProperty(EdmCmdNodeProp.EdmCmdNode_IsTopNode)
    +                        MessageBox.Show("File +changing state is a top node? " + topNode)

    +


    +                    Next AffectedFile

    +                    If AffectedFileNames.Length > 0 Then
    +                        poCmd.mpoVault.MsgBox(poCmd.mlParentWnd, AffectedFileNames + " has been approved.")
    +                    End If

    +                    'The event isn't registered
    +                Case Else
    +                    poCmd.mpoVault.MsgBox(poCmd.mlParentWnd"An unknown command type was issued.")
    +            End Select
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbCrLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +End Class

    +

     

    +

     

    + +

     

    + + + + diff --git a/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_CSharp.htm b/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_CSharp.htm new file mode 100644 index 0000000..4e3ccd3 --- /dev/null +++ b/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_CSharp.htm @@ -0,0 +1,543 @@ + + + +Prevent Admin from Checking In File Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Prevent Admin from Checking In File Example (C#)

    +

    This example shows how to prevent Admin from checking in a +file that was not checked out by Admin.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //--------------------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type RefItemContainerCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project. 
    +//     d. Click OK.
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//     h. To create the class for the callback:
    +//        1. Right-click RefItemContainerCSharp in the Solution Explorer.
    +//        2. Click Add > Class.
    +//        3. Type Callback.cs in Name and click Add.
    +//        4. Replace the code in Callback.cs with this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Ensure that a file in the targeted vault is checked out by a user 
    +//     other than Admin.
    +//  5. Log into the targeted vault as Admin.
    +//  6. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Access Check-in Flags in Check in Dialog dialog box.
    +// 2. Select the vault view where you are logged in as Admin.
    +// 3. Click Select checked-out files to check in.
    +//    a. Displays the Select files dialog box.
    +//    b. Select the file verified as checked out by a user other than 
    +//       Admin.
    +//    c. Click Open.
    +// 4. Click Create batch check-in
    +//    a. Displays message boxes with callback information.
    +//    b. Click OK to close each message box.
    +//    c. Displays a message box verifying that the batch check-in 
    +//       was created. 
    +//    d. Click OK to close the message box.
    +// 5. Click Update check-in flags.
    +//    a. Displays a message box verifying that check-in flags were updated.
    +//    b. Click OK to close the message box.
    +// 6. Click Check in files.
    +//    a. Displays the Check in dialog box.
    +//    b. Select the Check in check box.
    +//    c. Click the Check in button.
    +//    d. Displays message boxes with callback information.
    +//    e. Click OK to close each message box.
    +//    f. Displays an error message informing you that the file is not
    +//       checked out by Admin. 
    +//    g. Click OK to close the error message.
    +// 7. Open a File Explorer view of the selected vault and verify that the 
    +//    file that you selected to check in is still checked out.
    +// 8. Close the Access Check-in Flags in Check in Dialog dialog box.
    +//--------------------------------------------------------------------------------------
    +
     
    + 
    +//Form1.cs
    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    +namespace RefItemContainerCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        IEdmVault5 vault1 = null;
    +        IEdmVault8 vault = null;
    +        EdmSelItem[] selFiles = null;
    +        IEdmBatchUnlock bUnlock = null;
    + 
    +        void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = { };
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }  
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void BrowseButton_Click(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                } 
    + 
    +                //Display the Select file dialog for user to
    +                //select the files 
    +                EdmStrLst5 pathList = default(EdmStrLst5);
    +                pathList = vault.BrowseForFile(this.Handle.ToInt32(), 
    +		(int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel + 
    +		(int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "SOLIDWORKS files " + 
    +		"(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + "All Files (*.*)|*.*||"""
    +		"", vault.RootFolderPath"Select files");
    + 
    +                //Exit if the user clicks Cancel
    +                if (pathList == null)
    +                    return;
    + 
    +                //Traverse the selected files
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = pathList.GetHeadPosition();
    + 
    +                //Convert the selected files to an
    +                //array of EdmSelItem structs
    +                int nbrFiles = 0;
    +                nbrFiles = pathList.Count;
    +                Array.Resize(ref selFiles, nbrFiles);
    + 
    +                int i = 0;
    +                while (!pos.IsNull)
    +                {
    +                    //Get each file path from the selected files list
    +                    string filePath = null;
    +                    IEdmFile5 file = default(IEdmFile5);
    +                    IEdmFolder5 retFolder = default(IEdmFolder5);
    +                    filePath = pathList.GetNext(pos);
    +                    file = vault.GetFileFromPath(filePath, out retFolder);
    +                    selFiles[i].mlDocID = file.ID;
    +                    selFiles[i].mlProjID = retFolder.ID;
    +                    i = i + 1;
    +                }
    +            
    +            }catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    + 
    +        }
    + 
    +        private void CreateBatchCheckinButton_Click(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                IEdmVault7 vault2 = (IEdmVault7)vault1;
    +                bUnlock = (IEdmBatchUnlock)vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock);
    +                bUnlock.AddSelection((EdmVault5)vault1, ref selFiles);
    +                bool tree = false;
    +	       Callback myCallback = new Callback();
    +                tree = bUnlock.CreateTree(this.Handle.ToInt32(), (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock, myCallback);
    +                if (tree == false)
    +                { 
    +                    MessageBox.Show("No checked-out files selected to check in. Please try again.");
    +                    return;
    +                }
    + 
    +                MessageBox.Show("Batch check-in created.");
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void UpdateBatchCheckInButton_Click(object sender, EventArgs e)
    +        {
    +             try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +                   IEdmRefItemContainer container = null;
    +                   if (bUnlock == null)
    +                    {
    +                        MessageBox.Show("No checked-out files selected to check in. Please try again.");
    +                        return;
    +                    }
    +                    else
    +                    {
    +
    +
                        container = (IEdmRefItemContainer)bUnlock;
    +                    object[] items = null;
    +                    IEdmRefItem theItem = null;
    +                    container.GetItems(EdmRefItemType.Edmrit_All, out items);
    +                    int j = 0;
    +                    while (j < items.Length)
    +                    {
    +                        IEdmRefItem aItem = null;
    +                        theItem = (IEdmRefItem)items[j];
    +                        aItem = theItem;
    +                        object value = null;
    +                        aItem.SetProperty(EdmRefItemProperty.Edmrip_CheckKeepLocked, value);
    +                        j = j + 1;
    +                    }
    +	     }
    +
    +
                        MessageBox.Show("Check-in flags updated.");
    +             }
    +                
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    + 
    +        }
    + 
    +        private void CheckInButton_Click(object sender, EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +
                    if (bUnlock == null) 
    +                {
    +                    MessageBox.Show("No checked-out files selected to check in. Please try again.");
    +                    return;
    +                }
    +                else
    +                {
    +
    +
                    if (bUnlock.ShowDlg(this.Handle.ToInt32()))
    +                {
    +                    Callback myCallback = new Callback();
    +                    bUnlock.UnlockFiles(this.Handle.ToInt32(), myCallback);
    +                }
    +          }
    +
    +
                }
    + 
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        } 
    + 
    +     }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace RefItemContainerCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.CreateBatchCheckinButton = new System.Windows.Forms.Button();
    +            this.UpdateBatchCheckInButton = new System.Windows.Forms.Button();
    +            this.CheckInButton = new System.Windows.Forms.Button();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(24, 29);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(27, 45);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(187, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // CreateBatchCheckinButton
    +            // 
    +            this.CreateBatchCheckinButton.Location = new System.Drawing.Point(27, 122);
    +            this.CreateBatchCheckinButton.Name = "CreateBatchCheckinButton";
    +            this.CreateBatchCheckinButton.Size = new System.Drawing.Size(125, 23);
    +            this.CreateBatchCheckinButton.TabIndex = 4;
    +            this.CreateBatchCheckinButton.Text = "Create batch check-in";
    +            this.CreateBatchCheckinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.CreateBatchCheckinButton.UseVisualStyleBackColor = true;
    +            this.CreateBatchCheckinButton.Click += new System.EventHandler(this.CreateBatchCheckinButton_Click);
    +            // 
    +            // UpdateBatchCheckInButton
    +            // 
    +            this.UpdateBatchCheckInButton.Location = new System.Drawing.Point(27, 164);
    +            this.UpdateBatchCheckInButton.Name = "UpdateBatchCheckInButton";
    +            this.UpdateBatchCheckInButton.Size = new System.Drawing.Size(125, 23);
    +            this.UpdateBatchCheckInButton.TabIndex = 5;
    +            this.UpdateBatchCheckInButton.Text = "Update check-in flags";
    +            this.UpdateBatchCheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.UpdateBatchCheckInButton.UseVisualStyleBackColor = true;
    +            this.UpdateBatchCheckInButton.Click += new System.EventHandler(this.UpdateBatchCheckInButton_Click);
    +            // 
    +            // CheckInButton
    +            // 
    +            this.CheckInButton.Location = new System.Drawing.Point(27, 209);
    +            this.CheckInButton.Name = "CheckInButton";
    +            this.CheckInButton.Size = new System.Drawing.Size(125, 23);
    +            this.CheckInButton.TabIndex = 6;
    +            this.CheckInButton.Text = "Check in files";
    +            this.CheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.CheckInButton.UseVisualStyleBackColor = true;
    +            this.CheckInButton.Click += new System.EventHandler(this.CheckInButton_Click);
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(27, 82);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(125, 23);
    +            this.BrowseButton.TabIndex = 7;
    +            this.BrowseButton.Text = "Select checked-out files to check in";
    +            this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(384, 254);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.CheckInButton);
    +            this.Controls.Add(this.UpdateBatchCheckInButton);
    +            this.Controls.Add(this.CreateBatchCheckinButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Access Check-in Flags in Check in Dialog";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button CreateBatchCheckinButton;
    +        private System.Windows.Forms.Button UpdateBatchCheckInButton;
    +        private System.Windows.Forms.Button CheckInButton;
    +        private System.Windows.Forms.Button BrowseButton;
    +    }
    +}
    +
    + +
    +
    //Callback.cs
    +
    +
    +
    using EPDM.Interop.epdm;
    +using System.Windows.Forms;
    + 
    +namespace RefItemContainerCSharp
    +{
    +    class Callback : IEdmUnlockOpCallback
    +    {
    +        #region IEdmUnlockOpCallback Members
    +        public EdmUnlockOpReply MsgBox(EdmUnlockOpMsg mssge, int docId, int projID, string path, ref EdmUnlockErrInfo err)
    +        {
    +            EdmUnlockErrInfo unlockErr;
    +            unlockErr = err;
    +            MessageBox.Show("MsgBox callback: " + "\n" + "  Document ID: " + unlockErr.mlDocID.ToString() + "\n" + "  Configuration: " + unlockErr.mbsConfigName + "\n" + "  Unique ID of variable that caused error: " + unlockErr.mlVarID.ToString() + "\n" + "  Name of unique variable that caused error: " + unlockErr.mbsVarName);
    +            return (EdmUnlockOpReply)EdmUnlockOpMsg.Euom_AdminUnlock;
    +        }
    + 
    + 
    +        public void ProgressBegin(EdmProgressType type, EdmUnlockEvent events, int steps)
    +        {
    +            MessageBox.Show("ProgressBegin callback: " + "\n" + "  Type of progress bar: " + type.ToString() + "\n" + "  Type of operation: " + events.ToString() + "\n" + "  Number of steps: " + steps.ToString() + "\n");
    +            return;
    +        }
    + 
    + 
    +        public void ProgressEnd(EdmProgressType type)
    +        {
    +            MessageBox.Show("Type of progress bar: " + type.ToString() + "\n");
    +            return;
    +        }
    + 
    + 
    +        public bool ProgressStep(EdmProgressType type, string msgText, int progressPos)
    +        {
    +            MessageBox.Show("ProgressStep callback: " + "\n" + "  Type of progress bar: " + type.ToString() + "\n" + "  Message: " + msgText + "\n" + "  New position of progress bar: " + progressPos.ToString());     
    +            return true;
    +        }
    + 
    + 
    +        public bool ProgressStepEvent(EdmProgressType type, EdmUnlockEventMsg opText, int progressPos)
    +        {
    +            MessageBox.Show("ProgressStepEvent callback: " + "\n" + "  Type of progress bar: " + type.ToString() + "\n" + "  Message: " + opText.ToString() + "\n" + "  New position of progress bar: " + progressPos.ToString());
    +            return true;
    +        }       
    + 
    +        #endregion
    + 
    +    }
    +}
    +
    + +
    +
     
    +
    + + + + diff --git a/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_VBNET.htm b/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_VBNET.htm new file mode 100644 index 0000000..448025b --- /dev/null +++ b/documentation/api_extracted/Prevent_Admin_from_Checking_In_File_Example_VBNET.htm @@ -0,0 +1,456 @@ + + + +Prevent Admin from Checking In File Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Prevent Admin from Checking In File Example (VB.NET)

    +

    This example shows how to prevent Admin from checking in a +file that was not checked out by Admin.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    +
    '--------------------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type RefItemContainerVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project. 
    +'     d. Click OK.
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'     h. To create the class for the callback:
    +'        1. Right-click RefItemContainerVBNET in the Solution Explorer.
    +'        2. Click Add > Class.
    +'        3. Type Callback.vb in Name and click Add.
    +'        4. Replace the code in Callback.vb with this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Ensure that a file in the targeted vault is checked out by a user 
    +'     other than Admin.
    +'  5. Log into the targeted vault as Admin.
    +'  6. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Access Check-in Flags in Check in Dialog dialog box.
    +' 2. Select the vault view where you are logged in as Admin.
    +' 3. Click Select checked-out files to check in.
    +'    a. Displays the Select files dialog box.
    +'    b. Select the file verified as checked out by a user other than
    +'       Admin.
    +'    c. Click Open.
    +' 4. Click Create batch check-in
    +'    a. Displays message boxes with callback information.
    +'    b. Click OK to close each message box.
    +'    c. Displays a message box verifying that the batch check-in 
    +'       was created. 
    +'    d. Click OK to close the message box.
    +' 5. Click Update check-in flags.
    +'    a. Displays a message box verifying that check-in flags were updated.
    +'    b. Click OK to close the message box.
    +' 6. Click Check in files.
    +'    a. Displays the Check in dialog box.
    +'    b. Select the Check in check box.
    +'    c. Click the Check in button.
    +'    d. Displays message boxes with callback information.
    +'    e. Click OK to close each message box.
    +'    f. Displays an error message informing you that the file is not
    +'       checked out by Admin. 
    +'    g. Click OK to close the error message.
    +' 7. Open a File Explorer view of the selected vault and verify that the 
    +'    file that you selected to check in is still checked out.
    +' 8. Close the Access Check-in Flags in Check in Dialog dialog box.
    +'--------------------------------------------------------------------------------------
    + 
    + 
    +'Form1.vb
    +Imports System.Windows.Forms
    +Imports EPDM.Interop.epdm
    + 
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Private vault As IEdmVault8 = Nothing
    +    Private selFiles As EdmSelItem() = Nothing
    +    Private bUnlock As IEdmBatchUnlock = Nothing
    +    Private pathList As EdmStrLst5 = Nothing
    +    Private pos As IEdmPos5 = Nothing
    +    Private UnlockCallback As MyCallback
    + 
    + 
    +    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
    + 
    +        Try
    +            vault1 = New EdmVault5()
    +            vault = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = {}
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub BrowseButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles BrowseButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Display the Select file dialog for user to
    +            'select the files 
    +            pathList = vault.BrowseForFile(Me.Handle.ToInt32(), _
    +                        CInt(EdmBrowseFlag.EdmBws_ForOpen) + CInt(EdmBrowseFlag.EdmBws_PermitMultipleSel) + _
    +                        CInt(EdmBrowseFlag.EdmBws_PermitVaultFiles), "SOLIDWORKS files " + _
    +                        "(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + _
    +                        "All Files (*.*)|*.*||""""", vault.RootFolderPath, _
    +                        "Select files")
    + 
    +            'Exit if the user clicks Cancel
    +            If pathList Is Nothing Then
    +                Return
    +            End If
    + 
    +            'Traverse the selected files
    +            pos = pathList.GetHeadPosition()
    + 
    +            'Convert the selected files to an
    +            'array of EdmSelItem structs
    +            Dim nbrFiles As Integer = 0
    +            nbrFiles = pathList.Count
    +            Array.Resize(selFiles, nbrFiles)
    + 
    +            Dim i As Integer = 0
    +            While Not pos.IsNull
    +                'Get each file path from the selected files list
    +                Dim filePath As String = Nothing
    +                Dim file As IEdmFile5 = Nothing
    +                Dim retFolder As IEdmFolder5 = Nothing
    +                filePath = pathList.GetNext(pos)
    +                file = vault.GetFileFromPath(filePath, retFolder)
    +                selFiles(i).mlDocID = file.ID
    +                selFiles(i).mlProjID = retFolder.ID
    +                i = i + 1
    + 
    +            End While
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    + 
    +    End Sub
    + 
    +    Private Sub CreateBatchCheckinButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles CreateBatchCheckinButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            Dim vault2 As IEdmVault7 = DirectCast(vault1, IEdmVault7)
    +            bUnlock = DirectCast(vault2.CreateUtility(EdmUtility.EdmUtil_BatchUnlock), IEdmBatchUnlock)
    +            bUnlock.AddSelection(DirectCast(vault1, EdmVault5), selFiles)
    +            Dim tree As Boolean = False
    + 
    +            Dim UnlockCallback = New MyCallback
    +            tree = bUnlock.CreateTree(Me.Handle.ToInt32(), CInt(EdmUnlockBuildTreeFlags.Eubtf_MayUnlock), _
    +                    UnlockCallback)
    + 
    +            If tree = False Then
    +                MessageBox.Show("No checked-out files selected to check in. Please try again.")
    +                Return
    +            End If
    + 
    + 
    +            MessageBox.Show("Batch check-in created.")
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub UpdateBatchCheckInButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles UpdateBatchCheckInButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +            Dim container As IEdmRefItemContainer = Nothing
    +
                If IsNothing(bUnlock) Then
    +                MessageBox.Show("No checked-out files selected to check in. Please try again.")
    +                Exit Sub
    +            Else 
    +                container = DirectCast(bUnlock, IEdmRefItemContainer)
    +                Dim items As Object() = Nothing
    +                Dim theItem As IEdmRefItem = Nothing
    +                container.GetItems(EdmRefItemType.Edmrit_All, items)
    +                Dim j As Integer = 0
    +                While j < items.Length
    +                    Dim aItem As IEdmRefItem = Nothing
    +                    theItem = DirectCast(items(j), IEdmRefItem)
    +                    aItem = theItem
    +                    Dim value As Object = Nothing
    +                    aItem.SetProperty(EdmRefItemProperty.Edmrip_CheckKeepLocked, value)
    +                    j = j + 1
    +                End While
    +            End If
    + 
    +            MessageBox.Show("Check-in flags updated.")
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    + 
    +    End Sub
    + 
    +    Private Sub CheckInButton_Click(ByVal sender As ObjectByVal e As EventArgsHandles CheckInButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +
                If IsNothing(bUnlock) Then
    +                MessageBox.Show("No checked-out files selected to check in. Please try again.")
    +                Exit Sub
    +            Else
    +                Dim UnlockCallback = New MyCallback
    +                If bUnlock.ShowDlg(Me.Handle.ToInt32()) Then
    +                    bUnlock.UnlockFiles(Me.Handle.ToInt32(), UnlockCallback)
    +                End If
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + vbLf + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.CreateBatchCheckinButton = New System.Windows.Forms.Button()
    +        Me.UpdateBatchCheckInButton = New System.Windows.Forms.Button()
    +        Me.CheckInButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(22, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select view vault:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(25, 54)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(199, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(25, 81)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(199, 23)
    +        Me.BrowseButton.TabIndex = 2
    +        Me.BrowseButton.Text = "Select checked-out files to check in"
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'CreateBatchCheckinButton
    +        '
    +        Me.CreateBatchCheckinButton.Location = New System.Drawing.Point(25, 110)
    +        Me.CreateBatchCheckinButton.Name = "CreateBatchCheckinButton"
    +        Me.CreateBatchCheckinButton.Size = New System.Drawing.Size(199, 23)
    +        Me.CreateBatchCheckinButton.TabIndex = 3
    +        Me.CreateBatchCheckinButton.Text = "Create batch check-in"
    +        Me.CreateBatchCheckinButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.CreateBatchCheckinButton.UseVisualStyleBackColor = True
    +        '
    +        'UpdateBatchCheckInButton
    +        '
    +        Me.UpdateBatchCheckInButton.Location = New System.Drawing.Point(25, 139)
    +        Me.UpdateBatchCheckInButton.Name = "UpdateBatchCheckInButton"
    +        Me.UpdateBatchCheckInButton.Size = New System.Drawing.Size(199, 23)
    +        Me.UpdateBatchCheckInButton.TabIndex = 4
    +        Me.UpdateBatchCheckInButton.Text = "Update check-in flags"
    +        Me.UpdateBatchCheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.UpdateBatchCheckInButton.UseVisualStyleBackColor = True
    +        '
    +        'CheckInButton
    +        '
    +        Me.CheckInButton.Location = New System.Drawing.Point(25, 168)
    +        Me.CheckInButton.Name = "CheckInButton"
    +        Me.CheckInButton.Size = New System.Drawing.Size(199, 23)
    +        Me.CheckInButton.TabIndex = 5
    +        Me.CheckInButton.Text = "Check in files"
    +        Me.CheckInButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.CheckInButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(355, 222)
    +        Me.Controls.Add(Me.CheckInButton)
    +        Me.Controls.Add(Me.UpdateBatchCheckInButton)
    +        Me.Controls.Add(Me.CreateBatchCheckinButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Access Check-in Flags in Check in Dialog"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents CreateBatchCheckinButton As System.Windows.Forms.Button
    +    Friend WithEvents UpdateBatchCheckInButton As System.Windows.Forms.Button
    +    Friend WithEvents CheckInButton As System.Windows.Forms.Button
    + 
    +End Class
    +
    + +
    +
    'Callback.vb
    +
    +
    +
    Imports EPDM.Interop.epdm
    + 
    +Public Class MyCallback
    +    Implements IEdmUnlockOpCallback
    + 
    +    Public Function MsgBox(ByVal eMsg As EPDM.Interop.epdm.EdmUnlockOpMsgByVal lDocID As IntegerByVal lProjID As IntegerByVal bsPath As StringByRef poError As EPDM.Interop.epdm.EdmUnlockErrInfoAs EPDM.Interop.epdm.EdmUnlockOpReply Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.MsgBox
    +        Dim unlockErr As EdmUnlockErrInfo
    +        unlockErr = poError
    +        MessageBox.Show("MsgBox callback: " + vbLf + "  Document ID: " + unlockErr.mlDocID.ToString + vbLf + "  Configuration: " + unlockErr.mbsConfigName + vbLf + "  Unique ID of variable that caused error: " + unlockErr.mlVarID.ToString + vbLf + "  Name of unique variable that caused error: " + unlockErr.mbsVarName)
    +        Return EdmUnlockOpMsg.Euom_AdminUnlock
    +    End Function
    + 
    +    Public Sub ProgressBegin(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal eEvent As EPDM.Interop.epdm.EdmUnlockEventByVal lSteps As IntegerImplements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressBegin
    +        MessageBox.Show("ProgressBegin callback: " + vbLf + "  Type of progress bar: " + eType.ToString + vbLf + "  Type of operation: " + eEvent.ToString + vbLf + "  Number of steps: " + lSteps.ToString + vbLf)
    +    End Sub
    + 
    +    Public Sub ProgressEnd(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeImplements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressEnd
    +        MessageBox.Show("Type of progress bar: " + eType.ToString + vbLf)
    +        Return
    +    End Sub
    + 
    +    Public Function ProgressStep(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal bsText As StringByVal lProgressPos As IntegerAs Boolean Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressStep
    + 
    +        MessageBox.Show("ProgressStep callback: " + vbLf + "  Type of progress bar: " + eType.ToString + vbLf + "  Message: " + bsText + vbLf + "  New position of progress bar: " + lProgressPos.ToString)
    +        Return True
    +    End Function
    + 
    +    Public Function ProgressStepEvent(ByVal eType As EPDM.Interop.epdm.EdmProgressTypeByVal eText As EPDM.Interop.epdm.EdmUnlockEventMsgByVal lProgressPos As IntegerAs Boolean Implements EPDM.Interop.epdm.IEdmUnlockOpCallback.ProgressStepEvent
    +        MessageBox.Show("ProgressStepEvent callback: " + vbLf + "  Type of progress bar: " + eType.ToString + vbLf + "  Message: " + eText.ToString + vbLf + "  New position of progress bar: " + lProgressPos.ToString)
    +        Return True
    +    End Function
    +End Class
    + +
    + + + + diff --git a/documentation/api_extracted/PreviewBitmap.gif b/documentation/api_extracted/PreviewBitmap.gif new file mode 100644 index 0000000000000000000000000000000000000000..363c8044670598eb421a5e59ec40a6fc43d7b1f6 GIT binary patch literal 8428 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 + + + + + + Release Notes + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + +
    + + + + + +
    + + + + + + + + + + + +
    + + SOLIDWORKS PDM Professional API Help + + + +
    + + Release Notes + +
    + + Send Feedback +
    + + +
    +
    +

    Glossary Item Box

    +
    +
    +
    + +

    This topic provides you with quick access to the enhancements made to SOLIDWORKS PDM Professional API.

    + +

     

    +
    SOLIDWORKS PDM Professional API 2024
    +

    New interfaces and methods

    + +

    New structure

    + +
    SOLIDWORKS PDM Professional API 2023 SP01
    +

    New interface and method

    + +
    SOLIDWORKS PDM Professional API 2022
    +

    New interfaces

    + +
    SOLIDWORKS PDM Professional API 2021 SP04
    +

    New interface

    +
      +
    • IEdmRefItem2 (get old and new paths for references that have been moved or renamed by another client)
    +

    New structure

    + +
    SOLIDWORKS PDM Professional API 2021 SP03
    +

    New interfaces

    + +
    SOLIDWORKS PDM Professional API 2021
    +

    New functionality and interfaces

    + +
    SOLIDWORKS PDM Professional API 2020
    +

    New functionality and interfaces

    + +

    New structure

    + +
    SOLIDWORKS PDM Professional API 2019 SP04
    +

    New functionality and interface

    + +
    SOLIDWORKS PDM Professional API 2019 SP03
    +

    New functionality and interface

    + +
    SOLIDWORKS PDM Professional API 2019
    +

    New functionality and interfaces

    + +

    New structure

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2018 SP04
    +

    New functionality and interfaces

    + +

    New structure

    + +
    SOLIDWORKS PDM Professional API 2018 SP03
    +

    New functionality and interfaces

    + +
    SOLIDWORKS PDM Professional API 2018
    +

    New functionality and interfaces

    +
      +
    • Remove a PDM add-in. See IEdmAddInMgr9. +
    • Get a list of values associated with a drop-down control on a data card. See IEdmCardControl7. +
    • Add custom tabs to a PDM vault view in File Explorer using a PDM add-in. The add-in: +
        +
      • implements hooks to allow third-parties to display their user interfaces in a custom tab. +
      • supports custom tab names and icons. +
      • supports multiple custom tabs. +
      • programmatically removes custom tabs. +
      • See IEdmCmdMgr6.
      +
    • Change the state of a file using a specific transition. See IEdmFile13. +
    • Get the thumbnail of a file. See IEdmFile13. +
    • Restore deleted items from the recycle bin to the vault view. See IEdmFolder11. +
    • Construct more complicated search criteria using comparators and boolean operators. See IEdmSearch8. +
    • Call the Set Revision command to update a revision table in a SOLIDWORKS drawing in this vault. See IEdmVault19. +
    • Copy an assembly tree of referenced parts and drawings to a destination folder. See IEdmVault19
    +

     

    +

    New structures

    + +

     

    +
    SOLIDWORKS PDM Professional API 2017 SP01
    +

    New interfaces

    + +
    SOLIDWORKS PDM Professional API 2017
    +

    New interfaces

    + +

     

    +

    New structures

    + +

     

    +
    SOLIDWORKS PDM Professional API 2016
    +
      +
    • SOLIDWORKS Enterprise PDM is now called SOLIDWORKS PDM, and the API is only available in SOLIDWORKS PDM Professional.
    +

    New interfaces

    + +

     

    +
    SOLIDWORKS PDM Professional API 2015 SP04
    +

    New interfaces

    + +

     

    +
    SOLIDWORKS PDM Professional API 2015 SP03
    +

    New interface

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2015 SP02
    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2015
    + +

    New interfaces

    + +
    SOLIDWORKS PDM Professional API 2014
    +
      +
    • SOLIDWORKS Enterprise PDM API Help has been upgraded to be consistent with all of the other SOLIDWORKS API Help systems. For example, SOLIDWORKS Enterprise PDM API Help now includes syntax for VB.NET, C#, and managed C++ and a Send Feedback link on most Help topics. Additionally, SOLIDWORKS Enterprise PDM API Help: +
        +
      • contains updated Stand-alone Applications and Add-in Applications books and Help topics. +
      • includes C# and VB.NET add-in and stand-alone code samples that you can recreate in Microsoft Visual Studio. If you use the local version of SOLIDWORKS Enterprise PDM API Help, then click the Index tab and type C# add-ins, C# examples, VB.NET add-ins, or VB.NET examples to quickly locate these examples. Additional examples will appear in subsequent releases. +
      • is now available on the: +
          +
        • SOLIDWORKS Help menu, Help > API Help > SOLIDWORKS Enterprise PDM API Help. +
        • internet, help.solidworks.com  > API Help (English only) > SOLIDWORKS Enterprise PDM API Help.
        +
      • SOLIDWORKS Enterprise PDM includes a primary interop assembly (also called an interop) called EPDM.Interop.epdm.dll for use with stand-alone applications. See Using .NET Framework 4.0 in Stand-alone Applications for more information.
      +
    • Any application not supplied and supported by SOLIDWORKS Corporation that logs into SOLIDWORKS Enterprise PDM or directly accesses the database must ensure that sufficient SOLIDWORKS Enterprise PDM licenses are available when the same user is not logged into a local view.

      To make this easier to program and to comply with the SOLIDWORKS End User License Agreement (EULA), SOLIDWORKS Enterprise PDM API 2014 includes a new login method called IEdmVault13::LoginEx. This method ensures that licenses are properly consumed by the application.
    +

    New structure

    + +

    New method

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2013
    +

    New interfaces

    + +

    Back to top 

    +
    SOLIDWORKS PDM Professional API 2012
    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2011
    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2010
    +

    New functionality

    +

    You can now program items and tasks.

    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2009
    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API 2008
    +

    New and changed functionality

    +
      +
    • Visual Basic 6 is no longer supported. All add-ins must now be multi-threaded; for example, create your add-ins using the Visual Studio .NET development environment. +
    • The recommended way of accessing variables has changed. See IEdmEnumeratorVariable8::CloseFile.
    +

    New interfaces

    + +

     

    +
    SOLIDWORKS PDM Professional API 2007 SP03
    +

    New functionality

    +

    Support for 64-bit add-ins for the 64-bit version is included in this release.

    +

    New interface

    + +

    +
    SOLIDWORKS PDM Professional API 2007
    +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API version 6.5
    +

    Conisio has been re-branded as SOLIDWORKS Enterprise PDM; however, an OEM-version of the product sold under the name Conisio still exists. Both of these products share the same API.

    +

    New and changed functionality

    +
      +
    • The name of the type library has changed from ConisioLib to EdmLib. +
    • The name of the API has changed from Conisio 6.4 Type Library to PDMWorks Enterprise 6.5 Type Library.

      NOTE: The change in the name of the type library might require you to recompile existing applications. However, the names of all interfaces, structures, methods, properties, and enumerations are unchanged.
    +

    Back to top

    +
    SOLIDWORKS PDM Professional version 6.4
    +

    New functionality

    + +

    New interfaces

    + +

    Back to top

    +
    SOLIDWORKS PDM Professional API version 6.3
    +

    New interfaces

    + +

     

    + + +
    + + + +
    + + + \ No newline at end of file diff --git a/documentation/api_extracted/ReturnCodes.htm b/documentation/api_extracted/ReturnCodes.htm new file mode 100644 index 0000000..897202b --- /dev/null +++ b/documentation/api_extracted/ReturnCodes.htm @@ -0,0 +1,51 @@ + + + +Return Codes + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Return Codes

    + +

    The SOLIDWORKS PDM Professional API return +codes are provided in EPDM.interop.EPDMResultCode.dll +which contains these enumerations:

    + +

    The following examples show how to reference EPDM.interop.EPDMResultCode.dll +in your program and access return +codes by handling exceptions.

    + +

    See Also

    +

    Getting Started

    +

    Using .NET Framework 4.0 in +Stand-alone Applications

    +

    IEdmVault5::GetErrorString

    +

    IEdmVault11::GetErrorMessage

    +

    IEDMVault11::GetErrorName

    + + + + diff --git a/documentation/api_extracted/Revision.gif b/documentation/api_extracted/Revision.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c8b08d5a18c8c411ef831507fbcde9a0f246f4 GIT binary patch literal 7434 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 L97jW^~vB8Z`Nny6COD z2Ak)v!zP>NvCBp~<+IafyX2-XdOGTp+ooIOwd=DMp>#xT?d+oR9 zzI*S#2S0rA$G5(YYn*zT^^cMfr+xR|hd+M#=cm7Z`|rm;fBpC8zkmP#=U+GkI6wjx z(0~U-U;_RXxIhLT@EXW)iaj>+2V^+Qf)~VK1~s@r4tCIk9|U0tML0qdmXL!^=@1H4 zxIz}T(1kCAVGL#Hlve!V0YP|xI83-h9`?|OKLlbBcZd;K%+QEOL}C(U7>);^000m8 z!!?9BMJiU&idPIG5tX<_E_M-y$*>^+01yNQ{6QSaz+xKJxJEWkk%&|AVjSg!mk z4-9yL7{@q4d-Tzde*|P81vyAU7SfQ1L}VfrxkyGfl9Ba*WF+koNlI4Il9$9}CN;T9 zPIl6h0@0*FZ1{jY>QRg^*hnf>xk^^H(v`1-Wh`YmOIp^_mbb)ZE_Jy}UiQ+LxOAc( I0|5d6J8A`@F#rGn literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/RevokeTransitions.gif b/documentation/api_extracted/RevokeTransitions.gif new file mode 100644 index 0000000000000000000000000000000000000000..770b457cc547c9d8996dc91d219ac43bfbd93c36 GIT binary patch literal 8799 zcmV-lBB0$zNk%w1VJra=0e1iZA^8LW00000EC2ui04xC!0f+wp{{R30001)p08sz{ zTmS%V004dfG=Bg_o&Z;y0ArB=V5C zG5}dJGJY{woHk&qHDb3jfq^l4x;2H%Gn)T85(_;S6FqCZJ$tQ3cELrW;7b4iO8`?% zD<(}bEKf*BN~qyh00341R!}4yQ70c)F?&=%J5y6rQ&whETVzS&i`OGhg^`wXlQ6>a(!xaf^!xZaBy&Ody0OV|8%F^ zcD(p|0RVd;5qlyTelh@jF))2k0C;$Ke1lVagN}QfdwQ?nd%V1RyV-ib`F_Luf8PIq z0aSw-6o*z+gkAuGhmVG;hJeKTh0N}b91@2%HH=C*icCU{Y6g*UbdH>=j<)}jU|E%E zVwQ3Vl9ia4qO6jw!F2ovpvqsmq10(ekS8?yv03z4-mNCJVMkIki$mwNgU5W?8m{0k+89xYxM7&)~Gv z?zYzUyCw>~M>fB7Xu5hax`qL}j}yYBRJ*%+yxW|**x9_>`M%x1#3>2HOE|-Tb-}#< zz`(%I&(Foz=)&3Y#NYVL<^0b%GtWsi%u+wjW>L*~X3K>&&4YT)iG$CMiOiOf&YTd> zpBU1mq0OpP(XOn_%!bU^%C`QL_n-;svfoLJzYnc%Fb+`WC^*RtK+o!#BO+uPgK>&)Nm(j8i#e+c)8@)FW#sYxgCYfBjz=I2iyEhr$WXO{v$CezM z^XJf`D^KZ!WU1wr+_Z+qlxV#3rIcZ^#wC|3$~RwF59CLjEkj247?i!>XZy$J|zRClAg)UqiLGM zq681jqu*U{3VG+MthVZEhyHp7`JiBb{wY~GHRh^oGUZG$Pk)wLB}0GZn4u0Z$O7}I zHq0_B={eA5da0&pKr3mp%{m%Qvgx2ekEqVwL#nC7QHPBz=%%Z#y05nD?z^qV`dpEG z0#+-Mx9+O1a=rdKouyPtc`32R{$lVi(Il*}HqbU4ZLpVC>oBwmSA1}{-##ZU1mxaj zt}M{WGR(*%pCSvqD5tD4hVmweSD$~~`{1p^)l65vcF8c$JTf5TGcr2!{PWMns^iPi zNc)n_(o8qK^p`vHjE2)xXOr~N-JFndxDs%DDvi#8{G7=3l0JcPa~G$Zu8S_Ciw^qdiU9M$x8QEvG1%vZJWM@j!_!aN z7qZ>=-dVV6%G|6LgTO5qeq%x(KYC+;B`A|aN8fc0=(2S(OIG;g5KCpb;kAAhg9k{TuF?xJ0RqGO&KZM7R zeY8Ps6*8VVG}tP+waR(WyO8v#XSeHRZ+mo_kN37yEAdT^a#4$6)ZlkG$Vtv|GWeek z0hqbXA<%yQn8=_0a?y+;`tN-J>_QRu7rR#g5fk*Y9qzaW0SA^VY_4#{B@!WvQ}m;P z`pCxxi}#1)ncxuS*qhr_AU!m)V+mn+quUCAz2%vs7y-zF90TA03*nKEf6QYb*;oR% z^^p^9GvS2pw#H%{015{1L?Hw4Jn2bcjT@wc+pr)#K4>xk2B^dm^2SI$nqwSGn1Ugl z;|RBrz&S9}j;&@uix=i_hdQL8;b<`g_2Cegx$L1aW;eT6yzZFCyk+~2*gj+)^A*Gd zT`&}wyRKQ$V__4;JJ2x)Su|oFVa!K9&VWG*vCVA)a3dVkXaYWz(H!tVfHMBTfC-u6 zdCUGQh5>G&!8ayvLh#rpg+N##ecob(cYK~XIMGK6Sr2=7o;qPoI=vD1}C- zy}qHcqIpB53Q%bPN>F0}eL%(Y<`qj>;)|9qRNUgG)Huh{f(Y1{+!SUyr72{t3B!!$ zE{00fqNYwtUD(A@16b6eM)PyQ0KpU)Xw9#EED`9~#TaDKhOVCBtK=l33f|Z^c)0DX zVTk7~Ou@!8PV|hX044O)cvgwRQ=ti+>m>Kd(YBoxujY7YUN`7hyde~!oZucuQTS1n zhES!g809IKpag87!U6L#(#vMHgYmuavxw`2X!V2B(VF(Os6{O;fVzp+x^@#yjsC4{ zXIs?Qx|SGHoe&kTiI=d=VHddILIl$#R(2i&9t8;DgxIkKKWyO;ZG7t?;+jX}dI*nw z1R+`BdA+{cwL*d=C?}rx(ZfzJlZKsMM<Q_5RR~fCp=*XJ9xpQfQ2!%rdz63@qu9*0~eZ5 z1X)z!#7RiP$;vq)4swD4Z>(p95Lr*QDfFJVkQ+P(a0nYK_d*W^A!56G-eRB>L*aei zdhf=`^CEOY3|*{8N4Yl@$ae`NjqiM)<5SRg+eVGGh`44Y^F`^YFqo-r!fW~P9TmB7aGL9 z>zyouuxK8Hz|nO}x4OHhC;aNAF<}N@Io?2o8QA;Y_|CV!_s#Eq>l+6x2zU!zKyZTN z;NS>PxWX6Ca2yoe;A<#{j&=)fv4Kn$BM3nVG@t==ulwUElNW*h-2HBN$NMo8Qi{q~ z&hn#FNMlufQ`m+ZL6F`Zq9BG?=DqABKpU39;YNhrswef zdC;dmB&GX}ibv0rsI1<-9x**SPS@;S7!wLsgre+Ff6Ua^j-aY@on_&QK&h-6E3SWC z=YJCW(-(90zWW{RCWj2$*FN;OPaGS!xQE<#XD)ep8}2@O`Q3$tB)u=F=YP+9-_tJm z!3)mqhOds|=YGY>o4!D|VCk#?XL-Ir{q>rUedb@^dC$wN@OF2OEk@7y)5i)z(8+u2 z1@rpE$o}}qPd?|>Zu@)TUg@G=yj9K7^6FdPCWg@Sbzq2fC!j?3b=p_ z*nkfBfDjmg5;%brSb-3@1OLZ+`XPW8*nuASfgl)yA~=F1NP-v`eWZ66^e})W*n%$j zf-o3^GB|=KsCybn94k13I=F*8*n>V8f;ET@0Ju9j_=84xgh-f#JQ#$DCw?l(f=U>L zQaFWF_<$I=K;n{uworss*o9vBg;98gFsFrF2!>{OhG^)5V#qaQ2!(0*hHw~%5x9m_ z)rN9-hj^HW1W1QjNG=?xhkzJ}X&8ic=!aYAhW>(>h>947YEp3{Ein2J1dpK2!_hBBB zinO?ktaydFBX?FrBf7|o#3+is78xxjKgS+ z+^C1x7>!nh9NXB94-?=vJwSl)Z~@8Sf(Mz9`$&%c_>cKWfbw7iVlWTzU;&g6kO-N83ps%Yc?=tA zfF0S8&WJmrl8tZykqtPK1;~;j8IlqB{*f?AlFaCfCkc)ziH{A)4o=VkF(i-yAOK>p zkU%Mv^B@m3;5Ibi1OadW3<(buP?1n628(c3JDs6aWSYS(IYn4g^36 z@^AxYNs(unku-^iHVKVY8!3|@d6@H%nDelh2kDo4iJ9&Y09QGaZFz@piIV0*mjvhz2XG7niB4dN znr9^dh8Z<3d6|C+lua3#fC-Ye37dhbmmis$cew~XzzATF0q)?FpXrSz377OBmpTc7 zXDJC7shh_Tojb#lE}55xIgxw*X`7Halh_%Sd`X=<;|?1D1j_&fk5G`unTIxM4!3v@ z%TW%bS(%JE52h)Y1$mK@5SW8$krq%1{aKiv*$V;SlWS?82e1riiJ-VSpalw;`01Z! zSpz<~2xYmR>}itjDFG1xpS(hS5lMhm82}fGly|w1CTf%>%9%)cp|IJNm3dZ9NuU7$ z0gky0HQ=Jv*_9}olt#&u1?dj;d7v2jhV3aX9f}+hH=jk?q#$^t915S60isS?r7{Sm zNh)zvYNcG-i5iNeQkrrh+NESFfmkY~OFE`yx~2_yrk1g#3m6GOAOdt+r*?X$c$%kr zx~F{Fr+)gUfa<3~5DETldVw1H4^cX$aH@cyU<+OGsE`_|k~*oB8Wpxs2!(2ehuSsw zps4c+3Y8kFqB^RidKH+OscpKc5YVYw`l(Lg0k9gYvO24@TC28NtEHN&qk5{Sx_~<% z6cmD}tNNy{`VY5ytjL10G-wP$90cY6(antM1CJ%{s4-`mE4;fYN#s)Hd06Vcra0}>) z2;MrY=FkTzJN_T&>aevMudyn#7+bSbVXqpyheDyRoLUa^02CoRve+=O-U_oS>jMO< z1%v>zMmwuA+pZF8vr_vMIGeLE#If|SuRja2|N5#wAg(_^uuU7Q=FkHUdkbd!vQQzh z9`Lkn8?{qgs%JH~P*Js3yE9lzty{~r3<$6k>lF8pwzTT7h=2w6kghNLu<**ZZ)>q} zJF0UV08wGLcbm7Iy0`w?x34<1u!^!MJGeaX1Llyhi5s(wOS6wFw{9a9lxww?yQ-KQ zv`!JW-?|P4yReo(y6O6^Oslvvd%AF&x}++(tb4Zx_`3HHyIuPamXNaJiUi>56zn>- zObZnR{tLB>>$t+(tgV}~ulo(JdcO3UzW2Jm zH<7vRE5G_Xuk;J8$jh9?y1xQUs{PxmSV|9a@rU_4zziI!1&pc~=rTwejF8y3j@rN& z45^oDyagD+3Npb7T)_)i4xmuNCVavuoWd%+!YtgvF8snU9K$i}vm7i#9vm4CLBUK~ z!(4j9TbRR-xWhbLr4fu5wLlL*jEW&U#8z6wws6ErtiVj{zw`hzw1C7BU`4ec!c%O( z^pF=<437G-#pbZYU0kF)U=Dc!3P_BLWNgM~yq;;i#%;`7WgN!_tj2i3#?iPtcZ|pW znL5Wj*T$xjz<&(LY%0iLM#zz1$Z(9vB&o=(z{rja$%(ATi`>VJd>4mo$z3YRNL(tL zYzv+2$xV#Ole~D5uz{s)%1#Q(mLE7}t!< zxlGF2JkG^f&WCZ%kpK$X%+7Lb4(80r@~qDEOw9KD&Mo3K`7F)`=mthm&<1_b2%XRh zz0eHZ&<_335FODHJ<$|h(H4Et6zv8v=+4&s&!!U4OZ){Ioxvns(k8tX^WgplUjTy~ z&BmV?&xaw<1ZV{Fki7d`g~?0PFWAx^4b$Pg#6|$VH{FH*pwnvD&mH~JogmLLEkj0N z(?d;#_h8hWh}15P%}f2$4*1kjjnh6r(})-mbU z8mZPT=#q*!)hun*9-RkS-PAF})d;Aa5<1r$36pCnlXP8xL<)h{>6vy7n2BA1k8O~0 zy?}^4*&~S8JFVBB$k$`N)n(n1l?~a2eV8MO*@PX}k*%9_joKbL+N@21uASLmZGxQ5 zF`f+yejPP{eSkb^oYgsyLP?auU6Cuglv{a}Nl5_v8JS`kqYtXwB>qYXKv|XtnFAL} zmS%~T0_p_>*`wcm0p87-J7bqlS>0?2nAj}|#XXf?Ig|rw-3W=4=Uv?8&6KBk0obhr zR(X))U63@|0oPrdVHw}lE#3qP-M}4zntjyw+}TU5+hh$)I}{E~DF9ax4o`3e;@}Mz zkO~*j3LDf>qP$ItDc&S{^_>9>7Z`u!cONcKI{R& z>52a5fezM4J;@MW!iGK%h~Dh%Qw=w;2Yt>y)bQcmE)L&5>Er%CTV5BAnE*`3Krl8CNA#k z{_g|N;?+>*@80SG&+c;`>hj*=9WU_g!|v{m?YQ**?6wVfJ>A!2eGM$%@-BZ3K+f{h zZ~&fQ;@3b87BJ^EPXjmK@HSuZlHT&?PUkz{^LsGl2!91EKkn9G^FTiCE?*5bzya4F z@=!1DMGy2We)C(;^{deIJRkE*&*EU;^LzmF%YF@I|Mc*#<7JQYXYcjnuI*<(^P$f5 zsetqekL=%G^lZNhc(3r9b%8Fyu?``%qsB7#{pB5BhTs_^1BwHo*?~{zm8&7MV@R_$80ZQZ_wyLO(qr%~+^oT?MzygU>^0gd{_4cEJc4If6FSn*=U zjWddK^TjdEyrHW01@$*;U?ZJ9fBps?TJ&hrrA?nkom%y3)~#K?W-WQL)P)Q|UG@uj z_HN$2eg6g?JaOLJd-Dv+tXueU=FOcyhn}!@=Bjv*YmS~>`*!Z#3r?jj;lVuX$v1mP zpI-fX#NdmMhjU#yd;0b5uLp1FA$iej z>I(}m#4tk*H{`HG4?hGkL=i_Mu|yM3L@`AbF|>)mNhCzDzrg;Xu|^wj#4$%5cjU20 zAAbZgNFj$LvPdJ3M3P3?C|d}W7x#>LE$tT5=lu$|$vQ$%3PeqkWPVw?I(n-&(G*ww=rFFup`Lq>UAj17$FxP4DfIc95DzN`=m zVU{^(VDbGl0={hi?ifv-ho+V1Ngnc<&``WJ=wqUvzSL->=>dA_iJOKxYfasK_h<ar#0TvfVrDlTx$38%Jm)3KyH^vf}Kd?3hAhyBaX zZL@sz)&+V!cHMJKy>`|$e|&f0f$UuZ(SL_~c;#;_{`kz3Uq1TgSATx*=&zsNcHmvV zzI!ES7t{CZ3-@06?2)&=eBsX@zjXDNXP&a5%LIUjqZXHGS{StBLM9V)gAXp5X=CLQCR z%g9KRpL`A{jpIpBmQpx*@mkABX-Zc1rZSKWS}SGAm{%I-l5(77E^AUtOGa`zZh%cN zh5k8AVivPBZg3$lf9A{J2xcDdBhow~(?VtD;g-&s$vt#w7;V<&gw?!ebByqhZ64+y z-fSWaEn`b&0%s%T9L3=^a4kR=OSN&*I2fEa+hIJle4L}EcbJKL@WStQ+*>W}_{tmwO z)vtdAY+(E9je!!B0DK6?6Rsc*Z(Lv%b>M(FN|AtYIDrO|O+aH+VS~jccCn3J1z$ny z4GJuFuop-oaahB$ge|B5u0UJGGPkj*4L|}!TUeo*cC?OVY+(g_s*%0!Y-JnT^s@H? zwGBXIl{;U+4i|*AESS8+iCp^9mm1&|$21Z^4GZ|Tuhw`16&(BD(Ec|S7Vv{@32b1$ zGMK^D;H)?t3|2rZLaYO1`yj-@VKB(?lXgX9N+({ zLeG4rMx5syXvYqk178NSJn#F^{Ju=DW`=a8HN9z*ggJv_)-Q85!f8^Mn$w=fAgC>! z(s`KL)vs2HQ}$_BZjm`STj@$%biHd{_uAKEnTw=dOlcT1M=*rJXHX#HtO%+)qQCiq zF{M3iYF9fn%x*TZZJlgx1B%w5+IF|aO)PDPdfewG_qQwkY;^wP)7d+1cP8JB%Xph| z-t|8Bz40w>eeavw{r0!J%f0G=Zxi4JH~7HWjc|J_9Nr9{=ONmdMl@+&mDKVb$ zPx7+Z9KU#R!wqtIi`?8K2c^eHj`Bt-^P~i4`6TJN@R;+lmOis)J!?M5n@dEI^xioZ zZ%z+D0zK$a9C{wDcJz|7f+}Boqu7?tbV(}2=`k#$9;x1Pb6j0@QeWB|b})9bm)-1V zM|;}UzIL{^-R*COd)(zdce>Zz?svy~+TQ@f+i+2EIk|;71V4Df7vAuPM||QHzj($s z-tmuzeB>oRdCFJb@|RcqEo`G7F1o=Mb_IRtML&AdTmEr$r$>G2Rlj=Hx8C)yhkf2` zF?-tA-uAc0eeQL?d*1gx_P+;y@bd;bP`E(?LXdzu?aD^xH{bcsZ+_{eA9~?e-}=|@ zefG7#eeUO8^`O6g_)`zMa!4Qr0Fb~NupuVq8^ZmCfPehuKY#kW-~RXaiIW5duhBc- zuHpy408G8^BftVQK-xP!&;vUGT)pXAzGQHN2mk;85CRBrgK}U6Lx{gY;J^;dgAWA3 z5d6RnB*7BwK>5SJ{mU2oi$C{k8`ERJ7!1Dyq`?}*z0t9a0f2w1~9w8J~Z!#XscJ>{#6T3pK_tXNG{i$h V#6&E_JmexpbVNfuzatC?06UnuJdgkY literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Roll_Back_Revisions_Example_CSharp.htm b/documentation/api_extracted/Roll_Back_Revisions_Example_CSharp.htm new file mode 100644 index 0000000..f492e54 --- /dev/null +++ b/documentation/api_extracted/Roll_Back_Revisions_Example_CSharp.htm @@ -0,0 +1,386 @@ + + + +Roll Back Revisions Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Roll Back Revisions Example (C#)

    +

    This example shows how to roll back a checked-in file to its first revision in the current version.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//    b. Type RevisionCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, replace the code in Form1.Designer.cs with 
    +//       this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add > Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dllAddOK).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. To find a checked-in file with a revision scheme and at least three 
    +//    revisions in the current version:
    +//    a. Open a vault view in File Explorer.
    +//    b. Click a checked-in file.
    +//    c. Click Display > History.
    +//    d. Examine the Event column. If Revision is:
    +//       * listed in the Event column, then the file  
    +//         has a revision scheme. Scroll down and examine the 
    +//         Event and Version columns to verify that at least three 
    +//         revisions exist for the current version of the file.
    +//       * not listed in the Event column, then
    +//         repeat steps 4b - 4d until you find a checked-in file 
    +//         with a revision scheme and at least three revisions for
    +//         the current version. 
    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Get revision names dialog box.
    +// 2. Select a vault view.
    +// 3. Click Browse.
    +// 4. Displays the Select a file dialog box.
    +//    a. Click the file identified in Preconditions step 4 in the 
    +//       selected vault.
    +//    b. Click Open to display the selected file's path and file  
    +//       name in the Get revision names dialog box.
    +// 5. Click Get revisions
    +// 6. Displays a message box listing the names of the revisions 
    +//    for the selected file. Click OK to close the message box.
    +// 7. Displays a message box showing the revision to which the file 
    +//    was rolled back and the current version. Click OK to close the 
    +//    message box.
    +// 8. Close the Get revision names dialog box.
    +// 9. Click the file in the vault in File Explorer for which revisions 
    +//    were rolled back.
    +//    a. Click Display > History.
    +//    b. Scroll down and examine the Event, Version, and Comment columns.
    +//----------------------------------------------------------------------------
    +//Form1.cs
    + 
    +using EPDM.Interop.epdm;
    +using System.Windows.Forms;
    +using System;
    + 
    +namespace RevisionCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        IEdmVault5 vault1 = null;
    +        IEdmVault8 vault = null;
    +        IEdmFile5 aFile;
    +        IEdmFolder5 folder;
    + 
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                vault1 = new EdmVault5();
    +                vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = { };
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void RevisionButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Get the local version number
    +                int version = 0;
    +                version = aFile.GetLocalVersionNo(folder.ID);
    +                if (version < 1)
    +                {
    +                    MessageBox.Show("A local copy of " + aFile.Name + " does not exist.");
    +                    return;
    +                }
    + 
    +                //Get the version interface
    +                IEdmEnumeratorVersion7 verEnum = default(IEdmEnumeratorVersion7);
    +                verEnum = (IEdmEnumeratorVersion7)aFile;
    +                IEdmVersion8 ver = default(IEdmVersion8);
    +                ver = (IEdmVersion8)verEnum.GetVersion(version);
    + 
    +                //Enumerate the revisions
    +                string message = null;
    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = ver.GetFirstRevisionPosition();
    +                IEdmRevision7 rev = default(IEdmRevision7);
    +                int verNbr = 0;
    + 
    +                if (!pos.IsNull)
    +                {
    +                    message = "The following revisions are set on " + aFile.Name + ": " + "\n";
    +                    while (!pos.IsNull)
    +                    {
    +                        rev = (IEdmRevision7)ver.GetNextRevision(pos);
    +                        message = message + "    " + rev.Name + "\n";
    +			verNbr = rev.VersionNo;
    +                    }
    +                }
    +                else
    +                {
    +                    message = "A revision scheme is not defined for " + aFile.Name + "." + "\n";
    +                    MessageBox.Show(message);
    +                    return;
    +                }
    + 
    +                MessageBox.Show(message);
    +
    		//Roll back to first revision
    +		pos = ver.GetFirstRevisionPosition();
    +		rev = (IEdmRevision7)ver.GetNextRevision(pos);
    +		ver = (IEdmVersion8)verEnum.GetVersion(version);
    +		message = ("Roll back to revision " + rev.Name + " of version " + verNbr);
    +		rev.Rollback3(message, true);
    +		MessageBox.Show(message);
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //If one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +                //Set the initial directory in the Select a file dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Select a file dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();
    + 
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    //Do nothing
    +                }
    +                else
    +                {
    +                    //Browse for a local file whose revisions you want to see
    +                    string fileName = OpenFileDialog1.FileName;
    +                    FileListBox.Items.Add(fileName);
    +                    aFile = vault1.GetFileFromPath(fileName, out folder);
    + 
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    + 
    +        }
    +    }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace RevisionCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FileListBox = new System.Windows.Forms.ListBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.RevisionButton = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(23, 13);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(26, 30);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(220, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FileListBox
    +            // 
    +            this.FileListBox.FormattingEnabled = true;
    +            this.FileListBox.Location = new System.Drawing.Point(26, 90);
    +            this.FileListBox.Name = "FileListBox";
    +            this.FileListBox.Size = new System.Drawing.Size(167, 17);
    +            this.FileListBox.TabIndex = 2;
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(199, 84);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(75, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(BrowseButton_Click);
    +            // 
    +            // OpenFileDialog1
    +            // 
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = true;
    +            this.OpenFileDialog1.Title = "Select a file";
    + 
    +            // 
    +            // RevisionButton
    +            // 
    +            this.RevisionButton.Location = new System.Drawing.Point(26, 137);
    +            this.RevisionButton.Name = "RevisionButton";
    +            this.RevisionButton.Size = new System.Drawing.Size(88, 23);
    +            this.RevisionButton.TabIndex = 4;
    +            this.RevisionButton.Text = "Get revisions";
    +            this.RevisionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.RevisionButton.UseVisualStyleBackColor = true;
    +            this.RevisionButton.Click += new System.EventHandler(RevisionButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 187);
    +            this.Controls.Add(this.RevisionButton);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.FileListBox);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Get revision names";
    +            this.Load += new System.EventHandler(Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.ListBox FileListBox;
    +        private System.Windows.Forms.Button BrowseButton;
    +        private System.Windows.Forms.Button RevisionButton;
    +        private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +    }
    +}
    +
    + + + + + diff --git a/documentation/api_extracted/Roll_Back_Revisions_Example_VBNET.htm b/documentation/api_extracted/Roll_Back_Revisions_Example_VBNET.htm new file mode 100644 index 0000000..80f30f7 --- /dev/null +++ b/documentation/api_extracted/Roll_Back_Revisions_Example_VBNET.htm @@ -0,0 +1,336 @@ + + + +Roll Back Revisions Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Roll Back Revisions Example (VB.NET)

    +

    This example shows how to roll back a checked-in file to +its first revision in the current version.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type RevisionVBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, replace the code in Form1.Designer.vb with 
    +'       this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add > Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll > AddOK).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. To find a file with a revision scheme:
    +'    a. Open a vault view in File Explorer.
    +'    b. Click a checked-in file.
    +'    c. Click Display > History.
    +'    d. Examine the Event column. If Revision is:
    +'       * listed in the Event column, then the file  
    +'         has a revision scheme. Scroll down and examine the 
    +'         Event and Version columns to verify that at least three 
    +'         revisions exist for the current version of the file. 
    +'       * not listed in the Event column, then
    +'         repeat steps 4b - 4d until you find a file with 
    +'         a revision scheme. 
    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Get revision names dialog box.
    +' 2. Select a vault view.
    +' 3. Click Browse.
    +' 4. Displays the Select a file dialog box.
    +'    a. Click the file identified in Preconditions step 4 in the 
    +'       selected vault.
    +'    b. Click Open to display the selected file's path and file
    +'       name in the Get revision names dialog box.
    +' 5. Click Get revisions.
    +' 6. Displays a message box listing the names of the revisions 
    +'    for the selected file. Click OK to close the message box.
    +' 7. Displays a message box showing the revision to which the file 
    +'    was rolled back and the current version. Click OK to close the 
    +'    message box.
    +' 8. Close the Get revision names dialog box.
    +' 9. Click the file in the vault in File Explorer for which revisions 
    +'    were rolled back.
    +'    a. Click Display > History.
    +'    b. Scroll down and examine the Event, Version, and Comment columns.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm 
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim folder As IEdmFolder5 
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub RevisionButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RevisionButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Get the local version number
    +            Dim version As Integer
    +            version = aFile.GetLocalVersionNo(folder.ID)
    +            If version < 1 Then
    +                MsgBox("A local copy of " + aFile.Name + " does not exist.")
    +                Exit Sub
    +            End If
    + 
    +            'Get the version interface
    +            Dim verEnum As IEdmEnumeratorVersion7
    +            verEnum = aFile
    +            Dim ver As IEdmVersion8
    +            Dim rev As IEdmRevision7
    +	    Dim verNbr As Integer
    +
    +            ver = verEnum.GetVersion(version)
    + 
    +            'Enumerate the revisions
    +            Dim message As String
    +            Dim pos As IEdmPos5
    +            pos = ver.GetFirstRevisionPosition
    +            If Not pos.IsNull Then
    + 
    +                message = "The following revisions are set on " + aFile.Name + ": " + vbLf
    +                While Not pos.IsNull
    +                    rev = ver.GetNextRevision(pos)
    +                    message = message + "    " + rev.Name + vbLf
    +		    verNbr = rev.VersionNo
    +                End While
    +            Else
    +                message = "A revision scheme is not defined for " + aFile.Name + "." + vbLf
    +                MsgBox(message)
    +                Exit Sub
    +            End If
    + 
    +            MsgBox(message)
    +
    +	   'Roll back to first revision
    +           pos = ver.GetFirstRevisionPosition()
    +	   rev = ver.GetNextRevision(pos)
    +	   ver = verEnum.GetVersion(version)
    +	   message = ("Roll back to revision " + rev.Name + " of version " + verNbr.ToString)
    +           rev.Rollback3(message, True)
    +           MsgBox(message)
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            'If one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +            'Set the initial directory in the Select a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                'Do nothing
    +            Else
    +                'Browse for a local file whose revisions you want to see
    +                Dim fileName As String = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(fileName)
    +                aFile = vault1.GetFileFromPath(fileName, folder)
    + 
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.RevisionButton = New System.Windows.Forms.Button()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(24, 27)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(27, 44)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(166, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(27, 95)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(206, 17)
    +        Me.FileListBox.TabIndex = 2
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(239, 89)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(62, 23)
    +        Me.BrowseButton.TabIndex = 3
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'RevisionButton
    +        '
    +        Me.RevisionButton.Location = New System.Drawing.Point(27, 140)
    +        Me.RevisionButton.Name = "RevisionButton"
    +        Me.RevisionButton.Size = New System.Drawing.Size(88, 23)
    +        Me.RevisionButton.TabIndex = 4
    +        Me.RevisionButton.Text = "Get revisions"
    +        Me.RevisionButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.RevisionButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(311, 195)
    +        Me.Controls.Add(Me.RevisionButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Get revision names"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents RevisionButton As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/SWHeader.png b/documentation/api_extracted/SWHeader.png new file mode 100644 index 0000000000000000000000000000000000000000..1089dc6fa939f6fae356ed881aefa80881047775 GIT binary patch literal 83731 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 + + +Create a Task that Finds Approved Files Example (C#) + + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Create a Task that Finds Approved Files Example (C#)

    +

    This example shows how to create a task add-in that notifies the logged-in +user as to which files in +the vault are in the Approved state.

    + +

    //--------------------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +// 2. Click File > New > Project > Visual +C# > Class Library (.NET Framework).
    +// 3. Select .NET Framework 4.5 +or later in the dropdown.
    +// 4. Type TaskAddinExample in Name.
    +// 5. Click Browse and navigate to the folder where to create the project.
    +// 6. Click OK
    +// 7. Right-click the project name in the Solution Explorer and click Add Reference
    +// 8. In the Add Reference dialog:   
    +//    a. Add the +SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
    +//       left-side panel, click +EPDM.Interop.epdm.dll
    +//       and click OK).

    +//    b. Add System.Windows.Forms as a reference (click Assemblies +> Framework in the

    +//       left-side panel, click System.Windows.Forms, and click OK).
    +//    c. Click Close.
    +
    // +9. Right-click the project name in the Solution Explorer and click +Properties.
    +//10. In the Properties window:
    +//    a. On the Application tab, click Assembly Information.
    +//    b. De-select Make assembly COM-Visible.
    +//    c. On the Build tab, select Any CPU, de-select +Prefer 32-bit, and select Register for COM interop.
    +//11. Save the project.
    +//12. Copy the code below to Class1.cs.
    +//13.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +//    select GUID Format 5, click Copy, and click Exit. +Populate [
    Guid(""), +...] with
    +//    the copied string.

    +//14. Click +Build > Build Solution.

    +//
    +// Postconditions: 
    +//  1. Open the SOLIDWORKS +PDM Administration tool, expand a vault_name node, 
    +//     and log in as Admin.

    +//  2. Ensure that Default Workflow with an Approved state exists 
    +//     under vault_name > Workflows.
    +//  3. Under vault_name, +right-click Add-ins and click New Add-in.
    +//     a. Navigate to the
    +bin\Debug directory of your built +project.
    +//     b. Click EPDM.Interop.epdm.dll and TaskAddinExample.dll.
    +//     c. Click Open.
    +//     d. Click OK.
    +//  4. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
    +//  5. In the taskbar notification area:
    +//     a. Click the SOLIDWORKS PDM icon.
    +//     b. Click Task Host Configuration.
    +//     c. Select vault_name in the File Vault dropdown.
    +//     d. Select Permit next to the add-in you installed in step 3.
    +//     e. Click OK.

    +//  6. In the Administration tool +under the vault_name, right-click Tasks and click +New Task.
    +//     a. Type Approved Files Task in the upper-left text box.
    +//     b. Select the C# Task Add-in from the Add-in dropdown.
    +//     c. When the attach debugger message box appears:
    +//        1. In the IDE, click Debug > Attach to Process > ConisioAdmin.exe.
    +//        2. Click Attach.
    +//        3. Click OK to close the message box.
    +//     d. Click Next.
    +//     e. On the Execution Method properties page, select the local computer.
    +//     f. Click Next.
    +//     g. On the Scheduling properties page, select This task is not scheduled.
    +//     h. Click Next.
    +//     i. On the Permissions property page, select Admin.
    +//     j. Click Next.
    +//     k. On the Success Notification property page:
    +//        1. Select Notify the user who launched the task.
    +//        2. In the Subject field, type Success.
    +//        3. In the Text field, type The task successfully completed at, type +a space,
    +//           click >, and click Current Time.
    +//     l. Click OK to close the New Task dialog.
    +//  7. Expand vault_name > Tasks and double-click Task List.
    +//  8. Click Add Task
    +//  9. In the Add Task dialog:
    +//     a. Select Approved Files Task from the dropdown.
    +//     b. Click OK.
    +// 10. When the attach debugger message box appears:
    +//     a. In the IDE, click Debug > Attach to Process > TaskExecutor.exe.
    +//     b. Click Attach.
    +//     c. Click OK to close the message box.
    +// 11. The task appears in the Pending tasks list. Observe the task status.
    +// 12. When the task completes, the task moves to the Completed tasks
    +//     list. The logged-in user receives a notification with the list of approved files.
    +//---------------------------------------------------------------------------------------
    +
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +using System.Runtime.InteropServices;
    +
    +[Guid(""), +ComVisible(true)] 
    + +public class TaskAddinExample : IEdmAddIn5
    +{

    +    public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
    +    {
    +        try
    +        {
    +            poInfo.mbsAddInName = "C# Task Add-In";
    +            poInfo.mbsCompany = "Dassault Systemes";
    +            poInfo.mbsDescription = "Exercise demonstrating a task that lists files in the Approved state.";
    +            poInfo.mlAddInVersion = 1;

    +            //Minimum SOLIDWORKS PDM Professional version
    +            //needed for C# Task Add-Ins is 10.0
    +            poInfo.mlRequiredVersionMajor = 10;
    +            poInfo.mlRequiredVersionMinor = 0;

    +            //Register this add-in as a task add-in
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun);
    +            //Register this add-in to be called when
    +            //selected as a task in the Administration tool
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup);
    +        }
    +        catch (System.Runtime.InteropServices.COMException ex)
    +        {
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") +  ex.Message);
    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }


    +    public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +    {
    +        try
    +        {
    +            PauseToAttachProcess(poCmd.meCmdType.ToString());

    +            switch (poCmd.meCmdType)
    +            {
    +                case EdmCmdType.EdmCmd_TaskRun:
    +                    OnTaskRun(ref poCmd, ref ppoData);
    +                    break;
    +                case EdmCmdType.EdmCmd_TaskSetup:
    +                    OnTaskSetup(ref poCmd, ref ppoData);
    +                    break;
    +            }
    +        }
    +        catch (System.Runtime.InteropServices.COMException ex)
    +        {
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }


    +    private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +    {
    +        //Get the task instance interface
    +        IEdmTaskInstance inst = default(IEdmTaskInstance);
    +        inst = (IEdmTaskInstance)poCmd.mpoExtra;
    +        try
    +        {
    +            //Keep the Task List status up to date
    +            inst.SetStatus(EdmTaskStatus.EdmTaskStat_Running);

    +            //Format a message that will be displayed
    +            //in the task list
    +            inst.SetProgressRange(10, 1, "Task is running.");

    +            List<EdmSelItem2> Items = new List<EdmSelItem2>();
    +            inst.SetProgressPos(4, "Task is searching.");

    +            IEdmSearch6 Search = (IEdmSearch6)((IEdmVault5)(poCmd.mpoVault)).CreateSearch();
    +            if (Search == null)
    +                return;

    +

                 +Search.SetToken(EdmSearchToken.Edmstok_AllVersions, true);
    +            Search.SetToken(EdmSearchToken.Edmstok_FindFilestrue);
    +            Search.SetToken(EdmSearchToken.Edmstok_WorkflowName"Default Workflow");
    +            Search.SetToken(EdmSearchToken.Edmstok_StateName"Approved");
    +
    +            +

    + +

    +            +//Uncomment and modify the following lines to look for files
    +            //that have a +card variable with values in a specific range

    +

                +//object varName1 = "Card_Variable_ID_or_Name";
    +            //object +varValue1 = "Card_Variable_Value_1";
    +            //int varOp1 += EdmVarOp_NumberGreaterThan;
    +            //object +varValue2 = "Card_Variable_Value_2";
    +            //int varOp2 += EdmVarOp_NumberLessThan;
    +           
    //Search.BeginAND();
    +               +//Search.AddVariable2(ref varName1, ref varValue1, varOp1);
    +               +//Search.AddVariable2(ref varName1, ref varValue2, varOp2);
    +            //Search.EndAND();

    +



    +            IEdmSearchResult5 SearchResult = Search.GetFirstResult();
    +            while ((SearchResult != null))
    +            {
    +                EdmSelItem2 SelItem = new EdmSelItem2();
    +                SelItem.mlID = SearchResult.ID;
    +                SelItem.mlParentID = SearchResult.ParentFolderID;
    +                SelItem.meType = SearchResult.ObjectType;
    +                SelItem.mlVersion = SearchResult.Version;

    +                Items.Add(SelItem);
    +                SearchResult = Search.GetNextResult();
    +            }
    +            inst.SetProgressPos(7, "Task finished searching.");

    +            EdmSelItem2[] NotificationArray = new EdmSelItem2[Items.Count];
    +            Items.CopyTo(NotificationArray);

    +            string ProgresssMsg = null;
    +            if ((Items.Count > 0))
    +            {
    +                ProgresssMsg = "Found " + Items.Count.ToString() + " files.";
    +            }
    +            else
    +            {
    +                ProgresssMsg = ("No files found.");
    +            }

    +            inst.SetProgressPos(10, ProgresssMsg);
    +            inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", NotificationArray, ProgresssMsg);
    +        }
    +        catch (System.Runtime.InteropServices.COMException ex)
    +        {
    +            inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, ex.ErrorCode, "The test task failed!");
    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }


    +    private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +    {
    +        try
    +        {
    +            //Get the property interface used to
    +            //access the framework
    +            IEdmTaskProperties props = default(IEdmTaskProperties);
    +            props = (IEdmTaskProperties)poCmd.mpoExtra;

    +            //Set the property flag that says you want a
    +            //menu item for the user to launch the task
    +            //and a flag to support scheduling
    +            props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsInitExec + (int)EdmTaskFlag.EdmTask_SupportsScheduling;

    +            //Set up the menu commands to launch this task
    +            EdmTaskMenuCmd[] cmds = new EdmTaskMenuCmd[1];
    +            cmds[0].mbsMenuString = "List Approved files task";
    +            cmds[0].mbsStatusBarHelp = "This command runs the task add-in to get the names of the files in the Approved state.";
    +            cmds[0].mlCmdID = 1;
    +            cmds[0].mlEdmMenuFlags = (int)EdmMenuFlags.EdmMenu_Nothing;
    +            props.SetMenuCmds(cmds);
    +        }
    +        catch (System.Runtime.InteropServices.COMException ex)
    +        {
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }


    +    private void PauseToAttachProcess(string callbackType)
    +    {
    +        try
    +        {
    +            //If the debugger isn't already attached to a
    +            //process, 
    +            if (!Debugger.IsAttached)
    +            {
    +                //Launch the debug dialog
    +                //Debugger.Launch()
    +                //or
    +                //use a MsgBox dialog to pause execution
    +                //and allow the user time to attach it
    +                MessageBox.Show("Attach debugger to process \"" + Process.GetCurrentProcess().ProcessName + "\" for callback \"" + callbackType + "\" before clicking OK.");
    +            }

    +        }
    +        catch (Exception ex)
    +        {
    +            MessageBox.Show(ex.Message);
    +        }
    +    }

    +}

    + + + + diff --git a/documentation/api_extracted/Schedule_Task_Addin_Example_VBNET.htm b/documentation/api_extracted/Schedule_Task_Addin_Example_VBNET.htm new file mode 100644 index 0000000..b14ede8 --- /dev/null +++ b/documentation/api_extracted/Schedule_Task_Addin_Example_VBNET.htm @@ -0,0 +1,383 @@ + + + +Create a Task that Finds Approved Files Example (VB.NET) + + + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Create a Task that Finds Approved Files Example (VB.NET)

    +

    This example shows how to create a task add-in that notifies the logged-in +user as to which files in +the vault are in the Approved state.

    + +

    + +'--------------------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +' 2. Click File > New > Project > Visual Basic > Class Library +(.NET Framework).
    + +' 3. Select .NET Framework 4.5 or +later in the dropdown.
    +' 4. Type TaskAddinExample in Name.
    +' 5. Click Browse and navigate to the folder where to create the project.
    +' 6. Click OK
    + +' 7. Right-click the project name in the Solution Explorer and click Add Reference
    +' 8. In the Add Reference dialog:   

    +'    a. Add the +SOLIDWORKS PDM Professional +interop assembly as a reference (click Browse in the
    +//       left-side panel, click +EPDM.Interop.epdm.dll
    +//       and click OK).

    +'    b. Add System.Windows.Forms as a reference (click Assemblies +> Framework in the
    +'       left-side panel, click System.Windows.Forms, and click Add).
    +'    c. Click Close.
    +' 9. Right-click the project name in the Solution Explorer and click +Properties.
    +'10. In the Properties window:
    +'    a. On the Application tab, click Assembly Information.
    +'    b. De-select Make assembly COM-Visible.
    +'    c. On the Compile tab, +select Any CPU, de-select +Prefer 32-bit, and select Register for COM interop.
    +'11. Save the project.
    +'12. Copy the code below to Class1.vb.
    +'13.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +'    select GUID Format + 6, click Copy, and click Exit. Replace + <
    Guid("")> +with the
    +'    copied string.

    +'14. Click Build > Build Solution.
    +'
    +' Postconditions:
    +'  1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
    +'     and log in as Admin.

    +'  2. Ensure that Default Workflow with an +Approved state exists 
    +'     under vault_name > Workflows.

    +'  3. Under +vault_name, right-click Add-ins and click New Add-in.
    +'     a. Navigate to the
    +bin\Debug directory of your built +project.
    +'     b. Click EPDM.Interop.epdm.dll and TaskAddinExample.dll.
    +'     c. Click Open.

    +'     d. Click OK.
    +'  4. Click OK after +reading the SOLIDWORKS PDM Professional warning dialog.
    +
    +'  5. In the taskbar notification area:
    +'     a. Click the SOLIDWORKS PDM icon.
    +'     b. Click Task Host Configuration.
    +'     c. Select vault_name in the File Vault +dropdown.
    +'     d. Select Permit next to the add-in you +installed in step 3.
    +'     e. Click OK.

    +'  6. In the Administration tool under vault_name, +right-click Tasks and click New Task.
    +'     a. Type Approved Files Task in the upper-left text box.
    +'     b. Select the VB.NET Task Add-in from the Add-in dropdown.
    +'    + c. When the attach debugger message box appears:
    +'        1. In the IDE, click Debug > Attach to Process > ConisioAdmin.exe.
    +'        2. Click Attach.
    +'        3. Click OK to close the message box.
    +'     d. Click Next.
    +'     e. On the Execution Method properties page, select the +local computer.
    +'     f. Click Next.
    +'     g. On the Scheduling properties page, select This task is not scheduled.
    +'     h. Click Next.
    +'     i. On the Permissions property page, select Admin.
    +'     j. Click Next.
    +'     k. On the Success Notification property page:
    +'        1. Select Notify the user who launched the task.
    +'        2. In the Subject field, type Success.
    +'        3. In the Text field, type The task successfully completed at, +type a space, +
    +'           click >, and click Current Time.

    +'     l. Click OK to close the New Task dialog.
    +'  7. Expand vault_name > Tasks and double-click Task List.
    +'  8. Click Add Task
    +'  9. In the Add Task dialog:

    +'   +  a. Select Approved Files Task from the dropdown.
    +'     b. Click OK.
    +' 10. When the attach debugger message box appears:
    +'     a. In the IDE, click Debug > Attach to Process > TaskExecutor.exe.
    +'     b. Click Attach.
    +'     c. Click OK to close the message box.
    +' 11. The task appears in the Pending tasks list. Observe the task status.
    + +' 12. When the task completes, the task moves +to the Completed tasks
    +'     list. The logged-in user receives a notification with the list of approved files.

    + +'---------------------------------------------------------------------------------------

    +Imports EPDM.Interop.epdm
    +Imports System.Runtime.InteropServices
    +
    +<Guid("")>
    +<ComVisible(True)>
    +Public Class TaskAddinExample
    +    Implements IEdmAddIn5

    +    Public Sub GetAddInInfo( _
    +      ByRef poInfo As EdmAddInInfo, _
    +      ByVal poVault As IEdmVault5, _
    +      ByVal poCmdMgr As IEdmCmdMgr5) _
    +      Implements IEdmAddIn5.GetAddInInfo

    +        Try
    +            poInfo.mbsAddInName = _
    +              "VB.NET Task Add-In"
    +            poInfo.mbsCompany = "Dassault Systemes"
    +            poInfo.mbsDescription = _
    +              "Exercise demonstrating a task that lists " _
    +              + "files in the Approved state."
    +            poInfo.mlAddInVersion = 1

    +            'Minimum SOLIDWORKS PDM Professional version
    +            'needed for VB.Net Task Add-Ins is 10.0
    +            poInfo.mlRequiredVersionMajor = 10
    +            poInfo.mlRequiredVersionMinor = 0

    +            'Register this add-in as a task add-in
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun)
    +            'Register this add-in to be called when
    +            'selected as a task in the Administration tool
    +            poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup)
    +        Catch ex As Runtime.InteropServices.COMException
    +            MsgBox("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MsgBox(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub OnCmd(ByRef poCmd As EdmCmd, _
    +      ByRef ppoData As EdmCmdData[]) _
    +      Implements IEdmAddIn5.OnCmd

    +        Try
    +            PauseToAttachProcess(poCmd.meCmdType.ToString())

    +            Select Case poCmd.meCmdType
    +                Case EdmCmdType.EdmCmd_TaskRun
    +                    OnTaskRun(poCmd, ppoData)
    +                Case EdmCmdType.EdmCmd_TaskSetup
    +                    OnTaskSetup(poCmd, ppoData)
    +            End Select
    +        Catch ex As Runtime.InteropServices.COMException
    +            MsgBox("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MsgBox(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub OnTaskRun(ByRef poCmd As EdmCmd, _
    +      ByRef ppoData As EdmCmdData[])

    +        'Get the task instance interface
    +        Dim inst As IEdmTaskInstance
    +        inst = poCmd.mpoExtra
    +        Try
    +            'Keep the task list status up to date
    +            inst.SetStatus _
    +              (EdmTaskStatus.EdmTaskStat_Running)

    +            'Format a message that will be displayed
    +            'in the task list
    +            inst.SetProgressRange(10, 1, "Task is running.")

    +            Dim Items As List(Of EdmSelItem2) = _
    +              New List(Of EdmSelItem2)
    +            inst.SetProgressPos(4, "Task is searching.")

    +            Dim Search As IEdmSearch6 = _
    +              poCmd.mpoVault.CreateSearch()
    +            If Search Is Nothing Then Return

    +            

    +

    +             Search.SetToken( _
    +              EdmSearchToken.Edmstok_FindFilesTrue)

    +

    +             +Search.SetToken(EdmSearchToken.Edmstok_AllVersions, +True)
    +            Search.SetToken( _
    +              EdmSearchToken.Edmstok_WorkflowName, _
    +              "Default Workflow")
    +            Search.SetToken( _
    +              EdmSearchToken.Edmstok_StateName"Approved")

    + +

    +            +'Uncomment and modify the following lines to look for files
    +            'that have a +card variable with values in a specific range

    +

                +'Dim varName1 As Object = "Card_Variable_ID_or_Name"
    +            'Dim varValue1 +As Object = "Card_Variable_Value_1"
    +            'Dim varOp1 +as Integer = EdmVarOp_NumberGreaterThan
    +            'Dim varValue2 +As Object = "Card_Variable_Value_2"
    +            'Dim varOp2 +as Integer = EdmVarOp_NumberLessThan
    +           
    'Search.BeginAND
    +               'Search.AddVariable2(varName1, +varValue1, varOp1)
    +               +'Search.AddVariable2(varName1, +varValue2, varOp2)
    +            'Search.EndAND


    +            Dim SearchResult As IEdmSearchResult5 = _
    +              Search.GetFirstResult()
    +            While Not SearchResult Is Nothing
    +                Dim SelItem As EdmSelItem2 = New EdmSelItem2()
    +                SelItem.mlID = SearchResult.ID
    +                SelItem.mlParentID = SearchResult.ParentFolderID
    +                SelItem.meType = SearchResult.ObjectType
    +                SelItem.mlVersion = SearchResult.Version

    +                Items.Add(SelItem)
    +                SearchResult = Search.GetNextResult()
    +            End While
    +            inst.SetProgressPos(7, "Task finished searching.")

    +            Dim NotificationArray(Items.Count - 1) _
    +              As EdmSelItem2
    +            Items.CopyTo(NotificationArray)

    +            Dim ProgresssMsg As String
    +            If (Items.Count > 0) Then
    +                ProgresssMsg = "Found " + _
    +                  Items.Count.ToString() + " files."
    +            Else
    +                ProgresssMsg = ("No files found.")
    +            End If

    +            inst.SetProgressPos(10, ProgresssMsg)
    +            inst.SetStatus( _
    +              EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", _
    +              NotificationArray, ProgresssMsg)
    +        Catch ex As Runtime.InteropServices.COMException
    +            inst.SetStatus _
    +              (EdmTaskStatus.EdmTaskStat_DoneFailed, _
    +              ex.ErrorCode, "The test task failed!")
    +        Catch ex As Exception
    +            inst.SetStatus _
    +              (EdmTaskStatus.EdmTaskStat_DoneFailed, _
    +              0, "Non COM test task failure!")
    +        End Try
    +    End Sub

    +    Private Sub OnTaskSetup(ByRef poCmd As EdmCmd, _
    +      ByRef ppoData As EdmCmdData[])

    +        Try
    +            'Get the property interface used to
    +            'access the framework
    +            Dim props As IEdmTaskProperties
    +            props = poCmd.mpoExtra

    +            'Set the property flag that says you want a
    +            'menu item for the user to launch the task
    +            'and a flag to support scheduling
    +            props.TaskFlags = _
    +              EdmTaskFlag.EdmTask_SupportsInitExec + _
    +              EdmTaskFlag.EdmTask_SupportsScheduling

    +            'Set up the menu commands to launch this task
    +            Dim cmds(0) As EdmTaskMenuCmd
    +            cmds(0).mbsMenuString = "List Approved files task"
    +            cmds(0).mbsStatusBarHelp = _
    +              "This command runs the task add-in to get the" + _
    +              " names of the files in the Approved state."
    +            cmds(0).mlCmdID = 1
    +            cmds(0).mlEdmMenuFlags = _
    +              EdmMenuFlags.EdmMenu_Nothing
    +            props.SetMenuCmds(cmds)
    +        Catch ex As Runtime.InteropServices.COMException
    +            MsgBox("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MsgBox(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub PauseToAttachProcess( _
    +      ByVal callbackType As String)

    +        Try
    +            'If the debugger isn't already attached to a
    +            'process, 
    +            If Not Debugger.IsAttached() Then
    +                'Launch the debug dialog
    +                'Debugger.Launch()
    +                'or
    +                'use a MsgBox dialog to pause execution
    +                'and allow the user time to attach it
    +                MsgBox("Attach debugger to process """ + _
    +                  Process.GetCurrentProcess.ProcessName() + _
    +                  """ for callback """ + callbackType + _
    +                  """ before clicking OK.")
    +            End If

    +        Catch ex As Exception
    +            MsgBox(ex.Message)
    +        End Try
    +    End Sub

    +End Class

    +
     
    +

     

    +

     

    + +

     

    + + + + diff --git a/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_CSharp.htm b/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_CSharp.htm new file mode 100644 index 0000000..a753977 --- /dev/null +++ b/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_CSharp.htm @@ -0,0 +1,831 @@ + + + +Create a Task that Finds Files in Workflow States Example (C#) + + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Create a Task that Finds Files in Workflow States Example (C#)

    +

    This example shows how to create a task add-in that finds files that have +been in specified workflow states a specified number of days.
    +
    +

    + +

    + +//--------------------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > Visual C# > Class Library (.NET Framework).

    +//  3. Select .NET Framework 4.5 or later in the dropdown.

    +//  4. Click Browse and navigate to the folder where to create the project.
    +//  5. Type StateAgeTask_CSharp in Name.

    +//  6. Click OK.
    +//  7. Right-click the project in the Solution Explorer and click Add > User Control.
    +//  8. In the Add New Item dialog, keep the default name and click Add.
    +//  9. Click Show all Files in the Solution Explorer toolbar and expand +UserControl1.vb.

    +// 10. Replace the code in Class1.cs with this code.
    +// 11. Replace the code in UserControl1.Designer.cs with this code.
    +// 12. Replace the code in UserControl1.cs +with this code.

    +// 13. Right-click the project name in the Solution Explorer and click Add Reference
    +// 14. In the Add Reference dialog:   

    +//     a. Add the SOLIDWORKS PDM Professional +interop assembly as a reference (click Browse in the
    +//        left-side panel, click +EPDM.Interop.epdm.dll
    +//        and click OK).
    //     b. Add System.Windows.Forms as a reference (click Assemblies +> Framework in the
    +//        left-side panel, click System.Windows.Forms, and click OK).

    +//     c. Click Close.
    +// 15. Right-click the project name in the Solution Explorer and click +Properties.
    +// 16. In the Properties window:
    +//     a. On the Application tab, click Assembly Information.
    +//     b. De-select Make assembly COM-Visible.
    +//     c. On the Build tab, +select Any CPU, de-select +Prefer 32-bit, and select Register for COM interop.
    +// 17. Save the project.
    +// 18.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +//     select GUID Format 5, click Copy, and click Exit. +Replace [
    Guid(""), +...]
    +//     with the copied string.

    +// 19. Click Build > Build Solution.

    +//
    +// Postconditions:
    +//  1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
    +//     and log in as Admin.
    +//  2. Under vault_name, right-click Add-ins and click New Add-in.
    + +//     a. Navigate to the bin\Debug + +directory of your built project.
    +//     b. Click EPDM.Interop.epdm.dll and StateAgeTask_CSharp.dll.
    +//     c. Click Open.
    +//     d. Click OK.
    +//  3. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
    +//  4. In the taskbar notification area:
    +//     a. Click the SOLIDWORKS PDM icon.
    +//     b. Click Task Host Configuration.
    +//     c. Select vault_name in the File Vault dropdown.
    +//     d. Select Permit next to the add-in you just +installed.
    +//     e. Click OK.
    +//  5. In the Administration tool under vault_name, right-click Tasks and click New Task.
    +//  6. In the New Task dialog:

    +//     a. Type State Age Task in the upper-left text box.
    +//     b. Select the C# Workflow State Age +Task Add-in from the Add-in dropdown.
    +//     c. Click Next.
    + +//     d. On the Execution Method properties page, select the local computer.
    +//     e. Click Next.
    +//     f. On the Scheduling properties page, select This task is not scheduled.
    +//     g. Click Next.
    +//     h. On the Choose states to check page, select the +file search criteria in:
    +//        1. Choose Workflow.
    +//        2. Select States.
    +//        3. Number of Days in State.
    +//     i. Click Next.

    +//     j. On the Permissions property page, select Admin.
    +//     k. Click Next.
    +//     l. On the Success Notification property page:
    +//        1. Select Notify the user who launched the task.
    +//        2. In the Subject field, type Success.
    +//        3. In the Text field, type The task successfully completed at, type a space, 
    +//           click >, and click Current Time.
    +//     m. Click OK to close the New Task dialog.
    +//  7. Expand vault_name > Tasks and double-click Task List.
    +//  8. Click Add Task
    +//  9. In the Add Task dialog:
    +//     a. Select State Age Task from the dropdown.
    +//     b. Click OK.
    +// 10. The task appears in the Pending tasks list. Observe the task status.
    + +// 11. When the task completes, the task moves to the Completed tasks
    + +//     list. After a minute or so, the logged-in user receives a notification with the 
    +//     list of files that have
    + +been in the specified workflow states a specified
    +//     number of days.

    + +//---------------------------------------------------------------------------------------

    +

    +
    +
    Back to top

    +

    +//Class1.cs

    +

    +
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using EPDM.Interop.epdm;
    +using System.Runtime.InteropServices;
    +using System.Windows.Forms;

    +

    +
    +namespace StateAgeTask_CSharp
    +{
    +    [Guid(""), +ComVisible(true)] 
    +    public class Class1 : IEdmAddIn5
    +    {

    +        SetupPage SetupPageObj;
    +        public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
    +        {

    +            try
    +            {
    +                poInfo.mbsAddInName = "C# Workflow State Age Task Add-In";
    +                poInfo.mbsCompany = "Dassault Systemes";
    +                poInfo.mbsDescription = "Example demonstrates a task that finds files that have been in selected workflow states a selected number of days";
    +                poInfo.mlAddInVersion = 1;
    +                //Minimum SOLIDWORKS PDM Professional version
    +                //needed for Tasks is 10.0
    +                poInfo.mlRequiredVersionMajor = 10;
    +                poInfo.mlRequiredVersionMinor = 0;

    +                //Register to call OnCmd on task-related events
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails);
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {

    +            try
    +            {
    +                switch (poCmd.meCmdType)
    +                {

    +                    //Called from the Administration tool when
    +                    //the user selects this task add-in from the
    +                    //drop-down list and whenever this task is
    +                    //subsequently edited in the Administration tool
    +                    case EdmCmdType.EdmCmd_TaskSetup:
    +                        OnTaskSetup(ref poCmd, ref ppoData);

    +                        break;
    +                    //Sent when the user clicks OK or
    +                    //Cancel in the task property dialog box
    +                    case EdmCmdType.EdmCmd_TaskSetupButton:
    +                        OnTaskSetupButton(ref poCmd, ref ppoData);

    +                        break;
    +                    //Called when an instance of the
    +                    //task is run
    +                    case EdmCmdType.EdmCmd_TaskRun:
    +                        OnTaskRun(ref poCmd, ref ppoData);

    +                        break;
    +                    //Called from the Task List in the
    +                    //Administration tool when the task details
    +                    //dialog is displayed
    +                    case EdmCmdType.EdmCmd_TaskDetails:
    +                        OnTaskDetails(ref poCmd, ref ppoData);
    +                        break;
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }

    +        }

    +        private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskProperties props = (IEdmTaskProperties)poCmd.mpoExtra;
    +                if ((props != null))
    +                {
    +                    //Set the task properties
    +                    props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsScheduling + (int)EdmTaskFlag.EdmTask_SupportsDetails;

    +                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, props);
    +                    //Force immediate creation of the control
    +                    //and its handle
    +                    SetupPageObj.CreateControl();
    +                    SetupPageObj.LoadData(poCmd);

    +                    EdmTaskSetupPage[] pages = new EdmTaskSetupPage[1];
    +                    //Page name that appears in the
    +                    //navigation pane of the Add +Task dialog
    +                    //in the Administration tool
    +                    pages[0].mbsPageName = "Choose states to check";
    +                    pages[0].mlPageHwnd = SetupPageObj.Handle.ToInt32();
    +                    pages[0].mpoPageImpl = SetupPageObj;

    +                    props.SetSetupPages(pages);

    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " +" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void OnTaskSetupButton(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                //Custom setup page, SetupPageObj, is created
    +                //in method Class1::OnTaskSetup; SetupPage::StoreData 
    +                //saves the contents of the list box to poCmd.mpoExtra 
    +                //in the IEdmTaskProperties interface
    +                if (poCmd.mbsComment == "OK" & (SetupPageObj != null))
    +                {
    +                    SetupPageObj.StoreData();
    +                }
    +                SetupPageObj = null;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + +" " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskInstance TaskInstance = default(IEdmTaskInstance);
    +                TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
    +                if ((TaskInstance != null))
    +                {
    +                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_Running);
    +                    TaskInstance.SetProgressRange(100, 0, "Task is running.");

    +                    string NoDays = null;
    +                    NoDays = (string)TaskInstance.GetValEx("NoDaysVar");

    +                    string States = "";
    +                    States = (string)TaskInstance.GetValEx("SelectedStatesVar");

    +                    List<EdmSelItem2> Items = new List<EdmSelItem2>();

    +                    DoSearch((IEdmVault11)poCmd.mpoVault, States, NoDays, Items);

    +                    EdmSelItem2[] NotificationArray = new EdmSelItem2[Items.Count];

    +                    Items.CopyTo(NotificationArray);

    +                    string ProgresssMsg = null;
    +                    if ((Items.Count > 0))
    +                    {
    +                        ProgresssMsg = "Found " + Items.Count.ToString() + " files.";
    +                    }
    +                    else
    +                    {
    +                        ProgresssMsg = ("No files found.");
    +                    }

    +                    TaskInstance.SetProgressPos(100, ProgresssMsg);
    +                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", NotificationArray, ProgresssMsg);
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + +" " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void DoSearch(IEdmVault11 Vault, string States, string Days, List<EdmSelItem2> Items)
    +        {
    +            try
    +            {
    +                //Calculate age to use for search 
    +                DateTime dt = DateTime.Today;
    +                int DaysInt = Convert.ToInt32(Days) - 1;
    +                TimeSpan ts = new TimeSpan(DaysInt, 0, 0, 0);
    +                dt = dt.Subtract(ts);

    +                //Split States into an array of
    +                //State strings
    +                string[] +StatesObj = States.Split(new string[] { "\\n" }, StringSplitOptions.None);
    +                //Search each selected state for aged files
    +                foreach (string State in StatesObj)
    +                {
    +                    //Skip empty strings
    +                    if (string.IsNullOrEmpty(State.Trim()))
    +                    {
    +                        continue;
    +                    }

    +                    IEdmSearch6 Search = (IEdmSearch6)Vault.CreateSearch();
    +                    if (Search == null)
    +                        return;

    +                    Search.FindFiles = true;
                        +Search.SetToken(EdmSearchToken.Edmstok_AllVersions, true);
    +                    Search.SetToken(EdmSearchToken.Edmstok_StateBefore, dt);
    +                    Search.SetToken(EdmSearchToken.Edmstok_StateName, State);

    +                    IEdmSearchResult5 SearchResult = Search.GetFirstResult();
    +                    while ((SearchResult != null))
    +                    {
    +                        EdmSelItem2 SelItem = new EdmSelItem2();
    +                        SelItem.mlID = SearchResult.ID;
    +                        SelItem.mlParentID = SearchResult.ParentFolderID;
    +                        SelItem.meType = SearchResult.ObjectType;
    +                        SelItem.mlVersion = SearchResult.Version;

    +                        Items.Add(SelItem);
    +                        SearchResult = Search.GetNextResult();
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void OnTaskDetails(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskInstance TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
    +                if ((TaskInstance != null))
    +                {
    +                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, TaskInstance);
    +                    //Force immediate creation of the control
    +                    //and its handle
    +                    SetupPageObj.CreateControl();
    +                    SetupPageObj.LoadData(poCmd);
    +                    SetupPageObj.DisableControls();
    +                    poCmd.mbsComment = "State Age Details";
    +                    poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32();
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +    }
    +}

    +

    +Back to top

    +

    +//UserControl1.cs

    +

    +
    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +namespace StateAgeTask_CSharp
    +{
    +    // Setup page used in the task setup and task details dialogs must be a System.Windows.Forms.UserControl
    +    public partial class SetupPage
    +    {

    +        private IEdmVault7 mVault;
    +        private IEdmTaskProperties mTaskProps;
    +        private IEdmTaskInstance mTaskInst;
    +        // Constructor called from task setup
    +        public SetupPage(IEdmVault7 Vault, IEdmTaskProperties Props)
    +        {
    +            try
    +            {
    +                InitializeComponent();
    +                mVault = Vault;
    +                mTaskProps = Props;
    +                mTaskInst = null;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +        // Constructor called from task details
    +        public SetupPage(IEdmVault7 Vault, IEdmTaskInstance Props)
    +        {
    +            try
    +            {
    +                InitializeComponent();
    +                mVault = Vault;
    +                mTaskProps = null;
    +                mTaskInst = Props;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void LoadData(EdmCmd poCmd)
    +        {
    +            try
    +            {
    +                //Add the names of the available workflows
    +                //to WorkflowsComboBox
    +                WorkflowsComboBox.Items.Clear();
    +                IEdmWorkflowMgr6 WorkflowMgr = default(IEdmWorkflowMgr6);
    +                WorkflowMgr = (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);
    +                IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();
    +                while (!WorkflowPos.IsNull)
    +                {
    +                    IEdmWorkflow6 Workflow = default(IEdmWorkflow6);
    +                    Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);
    +                    WorkflowsComboBox.Items.Add(Workflow.Name);
    +                }

    +                string SelectedWorkflow = "";
    +                string NoDays = "";
    +                if ((mTaskProps != null))
    +                {
    +                    //Retrieve the name of the workflow that was
    +                    //selected by the user
    +                    SelectedWorkflow = (string)mTaskProps.GetValEx("SelectedWorkflowVar");
    +                    //Retrieve the number of days in a state
    +                    //before sending a message
    +                    NoDays = (string)mTaskProps.GetValEx("NoDaysVar");
    +                }
    +                else if ((mTaskInst != null))
    +                {
    +                    //Retrieve the name of the workflow that
    +                    //was selected by the user
    +                    SelectedWorkflow = (string)mTaskInst.GetValEx("SelectedWorkflowVar");
    +                    //Retrieve the number of days in a state
    +                    //before sending a message
    +                    NoDays = (string)mTaskInst.GetValEx("NoDaysVar");
    +                }

    +                //Select the workflow to display in
    +                //WorkflowsComboBox; setting this also
    +                //causes SetupPage::WorkflowsComboBox_SelectedIndexChanged
    +                //to be called to +fill StatesListBox 
    +                //with the available states for this workflow
    +                if (string.IsNullOrEmpty(SelectedWorkflow))
    +                {
    +                    WorkflowsComboBox.SelectedIndex = 0;
    +                }
    +                else
    +                {
    +                    WorkflowsComboBox.Text = SelectedWorkflow;
    +                }

    +                

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void StoreData()
    +        {
    +            try
    +            {
    +                //Add the selected states to StatesList
    +                string StatesList = "";
    +                foreach (int SelectedStateIndex in StatesListBox.SelectedIndices)
    +                {
    +                    StatesList += StatesListBox.Items[SelectedStateIndex] + "";
    +                }
    +                //Save the states selected by the user
    +                mTaskProps.SetValEx("SelectedStatesVar", StatesList);
    +                //Save the workflow selected by the user
    +                mTaskProps.SetValEx("SelectedWorkflowVar", WorkflowsComboBox.Text);
    +                //Save the number of days selected by the user
    +                mTaskProps.SetValEx("NoDaysVar", DaysNumericUpDown.Value.ToString());

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        private void WorkflowsComboBox_SelectedIndexChanged(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Find the IEdmWorkflow corresponding to the
    +                //selected workflow name
    +                IEdmWorkflowMgr6 WorkflowMgr = default(IEdmWorkflowMgr6);
    +                WorkflowMgr = (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);
    +                IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();
    +                IEdmWorkflow6 Workflow = null;
    +                IEdmWorkflow6 SelectedWorkflow = null;
    +                while (!WorkflowPos.IsNull)
    +                {
    +                    Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);
    +                    if (Workflow.Name == WorkflowsComboBox.Text)
    +                    {
    +                        SelectedWorkflow = Workflow;
    +                        break
    +                    }
    +                }
    +                
    +                //Add the names of the available states for the
    +                //selected workflow to StatesListBox
    +                StatesListBox.Items.Clear();
    +                if (SelectedWorkflow != null)
    +                {
    +                    IEdmPos5 StatePos = SelectedWorkflow.GetFirstStatePosition();
    +                    while (!(StatePos.IsNull))
    +                    {
    +                        IEdmState6 State = default(IEdmState6);
    +                        State = SelectedWorkflow.GetNextState(StatePos);
    +                        StatesListBox.Items.Add(State.Name);
    +                        
    +                    }
    +                   
    +                }

    +                string SelectedStates = "";
    +                if ((mTaskProps != null))
    +                {
    +                    SelectedStates = (string)mTaskProps.GetValEx("SelectedStatesVar");
    +                }
    +                else if ((mTaskInst != null))
    +                {
    +                    SelectedStates = (string)mTaskInst.GetValEx("SelectedStatesVar");
    +                }

    +                string[] +States = SelectedStates.Split(new string[] { "\\n" }, StringSplitOptions.None);
    +                foreach (string State in States)
    +                {
    +                    if (!string.IsNullOrEmpty(State.Trim()))
    +                    {
    +                        StatesListBox.SelectedItems.Add(State);
    +                    }
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        public void DisableControls()
    +        {
    +            try
    +            {
    +                WorkflowsComboBox.Enabled = false;
    +                StatesListBox.Enabled = false;
    +                DaysNumericUpDown.Enabled = false;
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +    }
    +}

    +

    +Back to top

    +

    +//UserControl1.Designer.cs

    +

    +
    +namespace StateAgeTask_CSharp
    +{
    +    
    +    partial class SetupPage : System.Windows.Forms.UserControl
    +    {

    +        //UserControl overrides dispose to clean up the component list.
    +        [System.Diagnostics.DebuggerNonUserCode()]
    +        protected override void Dispose(bool disposing)
    +        {
    +            try
    +            {
    +                if (disposing && components != null)
    +                {
    +                    components.Dispose();
    +                }
    +            }
    +            finally
    +            {
    +                base.Dispose(disposing);
    +            }
    +        }

    //Required by the Windows Form Designer

    +        private System.ComponentModel.IContainer components;
    +        //NOTE: The following procedure is required by the Windows Form Designer
    +        //It can be modified using the Windows Form Designer.  
    +        //Do not modify it using the code editor.
    +        [System.Diagnostics.DebuggerStepThrough()]
    +        private void InitializeComponent()
    +        {
    +            this.StatesListBox = new System.Windows.Forms.ListBox();
    +            this.WorkflowsComboBox = new System.Windows.Forms.ComboBox();
    +            this.WorkflowLabel = new System.Windows.Forms.Label();
    +            this.StatesLabel = new System.Windows.Forms.Label();
    +            this.DaysLabel = new System.Windows.Forms.Label();
    +            this.DaysNumericUpDown = new System.Windows.Forms.NumericUpDown();
    +            ((System.ComponentModel.ISupportInitialize)(this.DaysNumericUpDown)).BeginInit();
    +            this.SuspendLayout();
    +            // 
    +            // StatesListBox
    +            // 
    +            this.StatesListBox.FormattingEnabled = true;
    +            this.StatesListBox.Location = new System.Drawing.Point(19, 97);
    +            this.StatesListBox.Margin = new System.Windows.Forms.Padding(2);
    +            this.StatesListBox.Name = "StatesListBox";
    +            this.StatesListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
    +            this.StatesListBox.Size = new System.Drawing.Size(124, 108);
    +            this.StatesListBox.TabIndex = 0;
    +            
    +            // 
    +            // WorkflowsComboBox
    +            // 
    +            this.WorkflowsComboBox.FormattingEnabled = true;
    +            this.WorkflowsComboBox.Location = new System.Drawing.Point(19, 35);
    +            this.WorkflowsComboBox.Margin = new System.Windows.Forms.Padding(2);
    +            this.WorkflowsComboBox.Name = "WorkflowsComboBox";
    +            this.WorkflowsComboBox.Size = new System.Drawing.Size(124, 21);
    +            this.WorkflowsComboBox.TabIndex = 1;
    +            this.WorkflowsComboBox.SelectedIndexChanged += new System.EventHandler(this.WorkflowsComboBox_SelectedIndexChanged);
    +            // 
    +            // WorkflowLabel
    +            // 
    +            this.WorkflowLabel.AutoSize = true;
    +            this.WorkflowLabel.Location = new System.Drawing.Point(20, 12);
    +            this.WorkflowLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
    +            this.WorkflowLabel.Name = "WorkflowLabel";
    +            this.WorkflowLabel.Size = new System.Drawing.Size(91, 13);
    +            this.WorkflowLabel.TabIndex = 2;
    +            this.WorkflowLabel.Text = "Choose Workflow";
    +            // 
    +            // StatesLabel
    +            // 
    +            this.StatesLabel.AutoSize = true;
    +            this.StatesLabel.Location = new System.Drawing.Point(20, 72);
    +            this.StatesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
    +            this.StatesLabel.Name = "StatesLabel";
    +            this.StatesLabel.Size = new System.Drawing.Size(76, 13);
    +            this.StatesLabel.TabIndex = 3;
    +            this.StatesLabel.Text = "Select State(s)";
    +            // 
    +            // DaysLabel
    +            // 
    +            this.DaysLabel.AutoSize = true;
    +            this.DaysLabel.Location = new System.Drawing.Point(20, 223);
    +            this.DaysLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
    +            this.DaysLabel.Name = "DaysLabel";
    +            this.DaysLabel.Size = new System.Drawing.Size(122, 13);
    +            this.DaysLabel.TabIndex = 4;
    +            this.DaysLabel.Text = "Number of Days in State";
    +            // 
    +            // DaysNumericUpDown
    +            // 
    +            this.DaysNumericUpDown.Location = new System.Drawing.Point(22, 247);
    +            this.DaysNumericUpDown.Margin = new System.Windows.Forms.Padding(2);
    +            this.DaysNumericUpDown.Name = "DaysNumericUpDown";
    +            this.DaysNumericUpDown.Size = new System.Drawing.Size(119, 20);
    +            this.DaysNumericUpDown.TabIndex = 5;
    +            // 
    +            // SetupPage
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.Controls.Add(this.DaysNumericUpDown);
    +            this.Controls.Add(this.DaysLabel);
    +            this.Controls.Add(this.StatesLabel);
    +            this.Controls.Add(this.WorkflowLabel);
    +            this.Controls.Add(this.WorkflowsComboBox);
    +            this.Controls.Add(this.StatesListBox);
    +            this.Margin = new System.Windows.Forms.Padding(2);
    +            this.Name = "SetupPage";
    +            this.Size = new System.Drawing.Size(162, 278);
    +            ((System.ComponentModel.ISupportInitialize)(this.DaysNumericUpDown)).EndInit();
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }
    +        private System.Windows.Forms.ListBox StatesListBox;
    +        private System.Windows.Forms.ComboBox WorkflowsComboBox;
    +        private System.Windows.Forms.Label WorkflowLabel;
    +        private System.Windows.Forms.Label StatesLabel;
    +        private System.Windows.Forms.Label DaysLabel;

    +        private System.Windows.Forms.NumericUpDown DaysNumericUpDown;
    +    }
    +}

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_VBNET.htm b/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_VBNET.htm new file mode 100644 index 0000000..bee59fb --- /dev/null +++ b/documentation/api_extracted/Schedule_Task_to_Find_Files_in_State_Addin_Example_VBNET.htm @@ -0,0 +1,798 @@ + + + +Create a Task that Finds Files in Workflow States Example (VB.NET) + + + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Create a Task that Finds Files in Workflow States Example (VB.NET)

    +

    This example shows how to create a task add-in that finds +files that have been in specified workflow states a specified number of +days.
    +
    +

    + +

    + +'--------------------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Class Library (.NET Framework).

    +'  3. Select .NET Framework 4.5 or +later in the dropdown.
    +'  4. Click Browse and navigate to the folder where to create the project.
    +'  5. Type StateAgeTask in Name.

    +'  6. Click OK.
    +'  7. Right-click the project in the Solution Explorer and click Add > User Control.
    +'  8. In the Add New Item dialog, keep the default name and click Add.

    +'  9. Create a user +control similar to the one shown above and change:
    +'     a. Top label to WorkflowLabel.
    +'     b. Combo box to WorkflowsComboBox.
    +'     c. Second label to StatesLabel.
    +'     d. List box to StatesListBox.
    +'     e. Third label to DaysLabel.
    +'     f. Numeric spin box to DaysNumericUpDown.
    +' 10. Click Show All Files in the Solution Explorer toolbar and expand +UserControl1.vb.

    +' 11. Replace the code in Class1.vb with this code.
    +' 12. Replace the code in UserControl1.Designer.vb with this code.
    +' 13. Replace the code in UserControl1.vb +with this code.

    + +' 14. Right-click the project name in the Solution Explorer and click Add Reference
    +' 15. In the Add Reference dialog:   

    +'     a. Add the SOLIDWORKS PDM Professional +interop assembly as a reference (click Browse in the
    +'        left-side panel, click +EPDM.Interop.epdm.dll
    +'        and click OK).

    +'     b. Click Close.
    +' 16. Right-click the project name in the Solution Explorer and click +Properties.
    +' 17. In the Properties window:
    +'     a. On the Application tab, click Assembly Information.
    +'     b. De-select Make assembly COM-Visible.
    +'     c. On the Compile tab, +select Any CPU, de-select +Prefer 32-bit, and select Register for COM interop.
    +' 18. Save the project.
    +' 19.
    To populate the GUID + attribute, click Tools > Create GUID in the IDE,
    +'     select GUID Format + 6, click Copy, and click Exit. Replace + <
    Guid("")> +with
    +'     the copied string.

    +' 20. Click Build > Build Solution.
    +'
    +' Postconditions:
    +'  1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
    +'     and log in as Admin.

    +'  2. Under +vault_name, right-click Add-ins and click New Add-in.
    +'     a. Navigate to the
    +bin\Debug directory of your built +project.
    +'     b. Click EPDM.Interop.epdm.dll and StateAgeTask.dll.
    +'     c. Click Open.

    +'     d. Click OK.
    +'  3. Click OK after +reading the SOLIDWORKS PDM Professional warning dialog.
    +
    +'  4. In the taskbar notification area:
    +'     a. Click the SOLIDWORKS PDM Professional icon.
    +'     b. Click Task Host Configuration.
    +'     c. Select vault_name in the File Vault +dropdown.
    +'     d. Select Permit next to the add-in you just +installed.
    +'     e. Click OK.

    +'  5. In the Administration tool under vault_name, +right-click Tasks and click New Task.
    +'  6. In the New task dialog:

    +'     a. Type State +Age Task in the upper-left text box.
    +'     b. Select the VB.NET Workflow +State Age Task Add-in from the Add-in dropdown.
    +'     c. Click Next.
    +'     d. On the Execution Method properties page, select the +local computer.
    +'     e. Click Next.
    +'     f. On the Scheduling properties page, select This task is not scheduled.
    +'     g. Click Next.
    +'     h. On the Choose states to check page, select the file +search criteria in:
    +'
            1. Choose Workflow.
    +'        2. Select States.
    +'        3. Number of Days in State.
    +'     i. Click Next.

    +'     j. On the Permissions property page, select Admin.
    +'     k. Click Next.
    +'     l. On the Success Notification property page:
    +'        1. Select Notify the user who launched the task.
    +'        2. In the Subject field, type Success.
    +'        3. In the Text field, type The task successfully completed at, +type a space, +
    +'           click >, and click Current Time.

    +'     m. Click OK to close the New Task dialog.
    +'  7. Expand vault_name > Tasks and double-click Task List.
    +'  8. Click Add Task
    +'  9. In the Add Task dialog:

    +'   +  a. Select State Age Task from the dropdown.
    +'     b. Click OK.
    +' 10. The task appears in the Pending tasks list. Observe the task status.
    + +' 11. When the task completes, the task moves +to the Completed tasks
    +'     list. After a minute or so, the +logged-in user receives a notification 
    +'     with the list of files that have been in +the specified workflow states a
    +'     specified number of days.

    + +'---------------------------------------------------------------------------------------

    +

    +Back to top

    +

    +
    +'UserControl1.vb

    +

    +Imports EPDM.Interop.epdm
    +
    + +' Setup page used in the task setup and task details dialogs must be a 
    +' System.Windows.Forms.UserControl

    +

    +Public Class SetupPage

    +  Private mVault As IEdmVault7
    +  Private mTaskProps As IEdmTaskProperties
    +  Private mTaskInst As IEdmTaskInstance
    +    ' Constructor called from task setup
    +  Public Sub New(ByVal Vault As IEdmVault7, _
    +      ByVal Props As IEdmTaskProperties)
    +    Try
    +      InitializeComponent()
    +      mVault = Vault
    +      mTaskProps = Props
    +      mTaskInst = Nothing

    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub
    +

    +    ' Constructor called from task details
    +  Public Sub New(ByVal Vault As IEdmVault7, _
    +      ByVal Props As IEdmTaskInstance)
    +    Try
    +      InitializeComponent()
    +      mVault = Vault
    +      mTaskProps = Nothing
    +      mTaskInst = Props

    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub

    +  Public Sub LoadData(ByVal poCmd As EdmCmd)
    +    Try
    +      'Add the names of the available workflows +to WorkflowsComboBox
    +      WorkflowsComboBox.Items.Clear()
    +      Dim WorkflowMgr As IEdmWorkflowMgr6
    +      WorkflowMgr = mVault.CreateUtility( _
    +        EdmUtility.EdmUtil_WorkflowMgr)
    +      Dim WorkflowPos As IEdmPos5 = _
    +        WorkflowMgr.GetFirstWorkflowPosition()
    +      While Not WorkflowPos.IsNull
    +        Dim Workflow As IEdmWorkflow6
    +        Workflow = _
    +          WorkflowMgr.GetNextWorkflow(WorkflowPos)
    +        WorkflowsComboBox.Items.Add(Workflow.Name)
    +      End While

    +      Dim SelectedWorkflow As String = ""
    +      Dim NoDays As String = ""
    +      If Not mTaskProps Is Nothing Then
    +        'Retrieve the name of the workflow that was
    +        'selected by the user
    +        SelectedWorkflow = _
    +          mTaskProps.GetValEx("SelectedWorkflowVar")
    +        'Retrieve the number of days in a state
    +        'before sending a message
    +        NoDays = mTaskProps.GetValEx("NoDaysVar")
    +      ElseIf Not mTaskInst Is Nothing Then
    +        'Retrieve the name of the workflow that
    +        'was selected by the user
    +        SelectedWorkflow = _
    +          mTaskInst.GetValEx("SelectedWorkflowVar")
    +        'Retrieve the number of days in a state
    +        'before sending a message
    +        NoDays = mTaskInst.GetValEx("NoDaysVar")
    +      End If


    +      'Select the workflow to display in
    +      'WorkflowsComboBox; setting this also
    +      'causes SetupPage::WorkflowsComboBox_SelectedIndexChanged
    +      'to be called to +fill StatesListBox 
    +      'with the available states for this workflow
    +      If SelectedWorkflow = "" Then
    +        WorkflowsComboBox.SelectedIndex = 0
    +      Else
    +        WorkflowsComboBox.Text = SelectedWorkflow
    +      End If

    +      'Retrieve the number of days in a state
    +      'before sending a message
    +      If IsNumeric(NoDays) Then
    +        DaysNumericUpDown.Value = _
    +          Convert.ToDecimal(NoDays)
    +      Else
    +        DaysNumericUpDown.Value = 0
    +      End If

    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub

    +  Public Sub StoreData()
    +    Try
    +      'Add the selected states to StatesList
    +      Dim StatesList As String = ""
    +      For Each SelectedStateIndex As Integer _
    +          In StatesListBox.SelectedIndices
    +        StatesList += _
    +          StatesListBox.Items(SelectedStateIndex) + _
    +            vbCrLf
    +      Next
    +      'Save the states selected by the user
    +      mTaskProps.SetValEx("SelectedStatesVar", _
    +        StatesList)
    +      'Save the workflow selected by the user
    +      mTaskProps.SetValEx("SelectedWorkflowVar", _
    +        WorkflowsComboBox.Text)
    +      'Save the number of days selected by the user
    +      mTaskProps.SetValEx("NoDaysVar", _
    +        DaysNumericUpDown.Value.ToString())

    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub


    +  Private Sub WorkflowsComboBox_SelectedIndexChanged( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles WorkflowsComboBox.SelectedIndexChanged
    +    Try
    +      'Find the IEdmWorkflow corresponding to the
    +      'selected workflow name
    +      Dim WorkflowMgr As IEdmWorkflowMgr6
    +      WorkflowMgr = mVault.CreateUtility( _
    +        EdmUtility.EdmUtil_WorkflowMgr)
    +      Dim WorkflowPos As IEdmPos5 = _
    +        WorkflowMgr.GetFirstWorkflowPosition()
    +      Dim Workflow As IEdmWorkflow6 = Nothing
    +      Dim SelectedWorkflow As IEdmWorkflow6 = Nothing
    +      While Not WorkflowPos.IsNull
    +        Workflow = _
    +          WorkflowMgr.GetNextWorkflow(WorkflowPos)
    +        If Workflow.Name = WorkflowsComboBox.Text Then
    +          SelectedWorkflow = Workflow
    +          Exit While
    +        End If
    +      End While

    +      'Add the names of the available states for the
    +      'selected workflow to StatesListBox
    +      StatesListBox.Items.Clear()
    +      If Not SelectedWorkflow Is Nothing Then
    +        Dim StatePos As IEdmPos5 = _
    +          SelectedWorkflow.GetFirstStatePosition()
    +        While Not StatePos.IsNull
    +          Dim State As IEdmState6
    +          State = SelectedWorkflow.GetNextState(StatePos)
    +          StatesListBox.Items.Add(State.Name)
    +        End While
    +      End If

    +      Dim SelectedStates As String = ""
    +      If Not mTaskProps Is Nothing Then
    +        SelectedStates = _
    +          mTaskProps.GetValEx("SelectedStatesVar")
    +      ElseIf Not mTaskInst Is Nothing Then
    +        SelectedStates = _
    +          mTaskInst.GetValEx("SelectedStatesVar")
    +      End If

    +      Dim States As Object = _
    +        Split(SelectedStates, vbCrLf)
    +      For Each State As String In States
    +        If Not Trim(State) = "" Then
    +          StatesListBox.SelectedItems.Add(State)
    +        End If
    +      Next

    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub

    +  Public Sub DisableControls()
    +    Try
    +      WorkflowsComboBox.Enabled = False
    +      StatesListBox.Enabled = False
    +      DaysNumericUpDown.Enabled = False
    +    Catch ex As Runtime.InteropServices.COMException
    +      MsgBox("HRESULT = 0x" + _
    +         ex.ErrorCode.ToString("X") + vbCrLf + _
    +         ex.Message)
    +    Catch ex As Exception
    +      MsgBox(ex.Message)
    +    End Try
    +  End Sub

    +End Class

    +

    +Back to top

    +

    +
    'UserControl1.Designer.vb
    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class SetupPage
    +    Inherits System.Windows.Forms.UserControl

    +    'UserControl overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub

    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer

    +    'NOTE: The following procedure is required by the Windows Form Designer;
    +    'It can be modified using the Windows Form Designer;  
    +    'Do not modify it using the code editor
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.StatesListBox = New System.Windows.Forms.ListBox
    +        Me.WorkflowsComboBox = New System.Windows.Forms.ComboBox
    +        Me.WorkflowLabel = New System.Windows.Forms.Label
    +        Me.StatesLabel = New System.Windows.Forms.Label
    +        Me.DaysLabel = New System.Windows.Forms.Label
    +        Me.DaysNumericUpDown = New System.Windows.Forms.NumericUpDown
    +        CType(Me.DaysNumericUpDown, System.ComponentModel.ISupportInitialize).BeginInit()
    +        Me.SuspendLayout()
    +        '
    +        'StatesListBox
    +        '
    +        Me.StatesListBox.FormattingEnabled = True
    +        Me.StatesListBox.ItemHeight = 16
    +        Me.StatesListBox.Location = New System.Drawing.Point(25, 119)
    +        Me.StatesListBox.Name = "StatesListBox"
    +        Me.StatesListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended
    +        Me.StatesListBox.Size = New System.Drawing.Size(164, 132)
    +        Me.StatesListBox.TabIndex = 0
    +        '
    +        'WorkflowsComboBox
    +        '
    +        Me.WorkflowsComboBox.FormattingEnabled = True
    +        Me.WorkflowsComboBox.Location = New System.Drawing.Point(25, 43)
    +        Me.WorkflowsComboBox.Name = "WorkflowsComboBox"
    +        Me.WorkflowsComboBox.Size = New System.Drawing.Size(164, 24)
    +        Me.WorkflowsComboBox.TabIndex = 1
    +        '
    +        'WorkflowLabel
    +        '
    +        Me.WorkflowLabel.AutoSize = True
    +        Me.WorkflowLabel.Location = New System.Drawing.Point(27, 15)
    +        Me.WorkflowLabel.Name = "WorkflowLabel"
    +        Me.WorkflowLabel.Size = New System.Drawing.Size(117, 17)
    +        Me.WorkflowLabel.TabIndex = 2
    +        Me.WorkflowLabel.Text = "Choose Workflow"
    +        '
    +        'StatesLabel
    +        '
    +        Me.StatesLabel.AutoSize = True
    +        Me.StatesLabel.Location = New System.Drawing.Point(27, 89)
    +        Me.StatesLabel.Name = "StatesLabel"
    +        Me.StatesLabel.Size = New System.Drawing.Size(101, 17)
    +        Me.StatesLabel.TabIndex = 3
    +        Me.StatesLabel.Text = "Select State(s)"
    +        '
    +        'DaysLabel
    +        '
    +        Me.DaysLabel.AutoSize = True
    +        Me.DaysLabel.Location = New System.Drawing.Point(27, 275)
    +        Me.DaysLabel.Name = "DaysLabel"
    +        Me.DaysLabel.Size = New System.Drawing.Size(162, 17)
    +        Me.DaysLabel.TabIndex = 4
    +        Me.DaysLabel.Text = "Number of Days in State"
    +        '
    +        'DaysNumericUpDown
    +        '
    +        Me.DaysNumericUpDown.Location = New System.Drawing.Point(30, 304)
    +        Me.DaysNumericUpDown.Name = "DaysNumericUpDown"
    +        Me.DaysNumericUpDown.Size = New System.Drawing.Size(159, 22)
    +        Me.DaysNumericUpDown.TabIndex = 5
    +        '
    +        'SetupPage
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.Controls.Add(Me.DaysNumericUpDown)
    +        Me.Controls.Add(Me.DaysLabel)
    +        Me.Controls.Add(Me.StatesLabel)
    +        Me.Controls.Add(Me.WorkflowLabel)
    +        Me.Controls.Add(Me.WorkflowsComboBox)
    +        Me.Controls.Add(Me.StatesListBox)
    +        Me.Name = "SetupPage"
    +        Me.Size = New System.Drawing.Size(216, 342)
    +        CType(Me.DaysNumericUpDown, System.ComponentModel.ISupportInitialize).EndInit()
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +    Friend WithEvents StatesListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents WorkflowsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents WorkflowLabel As System.Windows.Forms.Label
    +    Friend WithEvents StatesLabel As System.Windows.Forms.Label
    +    Friend WithEvents DaysLabel As System.Windows.Forms.Label
    +    Friend WithEvents DaysNumericUpDown As System.Windows.Forms.NumericUpDown

    +End Class

    + +
    'Class1.vb
    +

    + Imports EPDM.Interop.epdm
    +Imports System.Runtime.InteropServices
    +
    + <Guid("")>
    + <ComVisible(True)>
    + Public Class Class1
    +     Implements IEdmAddIn5

    +     Dim SetupPageObj As SetupPage

    +     Public Sub GetAddInInfo( _
    +           ByRef poInfo As EdmAddInInfo, _
    +           ByVal poVault As IEdmVault5, _
    +           ByVal poCmdMgr As IEdmCmdMgr5) _
    +           Implements IEdmAddIn5.GetAddInInfo
    +         Try

    +             poInfo.mbsAddInName = "VB.NET Workflow State Age Task Add-In"
    +             poInfo.mbsCompany = "Dassault Systemes"
    +             poInfo.mbsDescription = "Example demonstrates " _
    +       + "a scheduled task that finds files that have been in selected workflow states a selected number of days"
    +             poInfo.mlAddInVersion = 1
    +             'Minimum SOLIDWORKS PDM Professional version
    +             'needed for tasks is 10.0
    +             poInfo.mlRequiredVersionMajor = 10
    +             poInfo.mlRequiredVersionMinor = 0

    +             'Register to call OnCmd on task-related events
    +             poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup)
    +             poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton)
    +             poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun)
    +             poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails)
    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    +     Public Sub OnCmd(ByRef poCmd As EdmCmd, _
    +         ByRef ppoData As EdmCmdData[]) _
    +         Implements IEdmAddIn5.OnCmd
    +         Try

    +             Select Case poCmd.meCmdType

    +                 'Called from the Administration tool when
    +                 'the user selects this task add-in from the
    +                 'drop-down list and whenever this task is
    +                 'subsequently edited in the Administration tool
    +                 Case EdmCmdType.EdmCmd_TaskSetup
    +                     OnTaskSetup(poCmd, ppoData)

    +                 'Sent when the user clicks OK or
    +                 'Cancel in the task property dialog box
    +                 Case EdmCmdType.EdmCmd_TaskSetupButton
    +                     OnTaskSetupButton(poCmd, ppoData)

    +                 'Called whenever an instance of the
    +                 'task is run
    +                 Case EdmCmdType.EdmCmd_TaskRun
    +                     OnTaskRun(poCmd, ppoData)

    +                 'Called from the Task List in the
    +                 'Administration tool whenever the task details
    +                 'dialog is displayed
    +                 Case EdmCmdType.EdmCmd_TaskDetails
    +                     OnTaskDetails(poCmd, ppoData)
    +             End Select

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try

    +     End Sub

    +     Private Sub OnTaskSetup(ByRef poCmd As EdmCmd, _
    +         ByRef ppoData As EdmCmdData[])
    +         Try
    +             Dim props As IEdmTaskProperties = poCmd.mpoExtra
    +             If Not props Is Nothing Then
    +                 'Set the task properties
    +                 props.TaskFlags = _
    +                   EdmTaskFlag.EdmTask_SupportsScheduling + _
    +                   EdmTaskFlag.EdmTask_SupportsDetails

    +                 SetupPageObj = New SetupPage( _
    +                   poCmd.mpoVault, props)
    +                 'Force immediate creation of the control
    +                 'and its handle
    +                 SetupPageObj.CreateControl()
    +                 SetupPageObj.LoadData(poCmd)

    +                 Dim pages(0) As EdmTaskSetupPage
    +                 'Name that appears in the
    +                 'navigation pane of the Add + Task dialog
    +                 'in the Administration tool
    +                 pages(0).mbsPageName = "Choose states to check"
    +                 pages(0).mlPageHwnd = SetupPageObj.Handle.ToInt32
    +                 pages(0).mpoPageImpl = SetupPageObj

    +                 props.SetSetupPages(pages)

    +             End If

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    +     Private Sub OnTaskSetupButton(ByRef poCmd As EdmCmd, _
    +         ByRef ppoData As EdmCmdData[])
    +         Try
    +             'Custom setup page, SetupPageObj, is created
    +             'in method SetupPage::OnTaskSetup; SetupPage::StoreData 
    +             'saves the contents of the list box to poCmd.mpoExtra 
    +            'in the IEdmTaskProperties interface

    +             If poCmd.mbsComment = "OK" And _
    +                 Not SetupPageObj Is Nothing Then
    +                 SetupPageObj.StoreData()
    +             End If
    +             SetupPageObj = Nothing

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    +     Private Sub OnTaskRun(ByRef poCmd As EdmCmd, _
    +         ByRef ppoData As EdmCmdData[])
    +         Try
    +             Dim TaskInstance As IEdmTaskInstance
    +             TaskInstance = poCmd.mpoExtra
    +             If Not TaskInstance Is Nothing Then
    +                 TaskInstance.SetStatus( _
    +                   EdmTaskStatus.EdmTaskStat_Running)
    +                 TaskInstance.SetProgressRange(100, 0, _
    +                   "Task is running.")

    +                 Dim NoDays As String
    +                 NoDays = TaskInstance.GetValEx("NoDaysVar")

    +                 Dim States As String = ""
    +                 States = TaskInstance.GetValEx( _
    +                   "SelectedStatesVar")

    +                 Dim Items As List(Of EdmSelItem2) = _
    +                   New List(Of EdmSelItem2)

    +                 DoSearch(poCmd.mpoVault, States, NoDays, Items)

    +                 Dim NotificationArray(Items.Count - 1) _
    +                   As EdmSelItem2

    +                 Items.CopyTo(NotificationArray)

    +                 Dim ProgresssMsg As String
    +                 If (Items.Count > 0) Then
    +                     ProgresssMsg = "Found " + _
    +                       Items.Count.ToString() + " files."
    +                 Else
    +                     ProgresssMsg = ("No files found.")
    +                 End If

    +                 TaskInstance.SetProgressPos(100, ProgresssMsg)
    +                 TaskInstance.SetStatus( _
    +                   EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", _
    +                   NotificationArray, ProgresssMsg)
    +             End If

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    +     Public Sub DoSearch(ByVal Vault As IEdmVault11, _
    +         ByVal States As StringByVal Days As String, _
    +         ByVal Items As List(Of EdmSelItem2))
    +         Try
    +             'Calculate date to use in file search
    +             Dim dt As DateTime = DateTime.Today
    +             Dim DaysInt As Integer = Convert.ToInt32(Days) - 1
    +             Dim ts As TimeSpan = New TimeSpan(DaysInt, 0, 0, 0)
    +             dt = dt.Subtract(ts)

    +             'Split States into an array of + strings
    +             Dim StatesObj As Object = Split(States, vbCrLf)
    +             'Search for files + with the specified state age
    +             For Each State As String In StatesObj
    +                 'Skip empty strings
    +                 If Trim(State) = "" Then
    +                     Continue For
    +                 End If

    +                 Dim Search As IEdmSearch6 = Vault.CreateSearch()
    +                 If Search Is Nothing Then Return

    +                 Search.FindFiles = True
                   

    +

    +                    + Search.SetToken(EdmSearchToken.Edmstok_AllVersions, + True)
                      Search.SetToken( _
    +                   EdmSearchToken.Edmstok_StateBefore, dt)
    +                 Search.SetToken( _
    +                   EdmSearchToken.Edmstok_StateName, State)

    +                 Dim SearchResult As IEdmSearchResult5 = _
    +                   Search.GetFirstResult()
    +                 While Not SearchResult Is Nothing
    +                     Dim SelItem As EdmSelItem2 = New EdmSelItem2()
    +                     SelItem.mlID = SearchResult.ID
    +                     SelItem.mlParentID = SearchResult.ParentFolderID
    +                     SelItem.meType = SearchResult.ObjectType
    +                     SelItem.mlVersion = SearchResult.Version

    +                     Items.Add(SelItem)
    +                     SearchResult = Search.GetNextResult()
    +                 End While
    +             Next State

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    +     Private Sub OnTaskDetails(ByRef poCmd As EdmCmd, _
    +         ByRef ppoData As EdmCmdData[])
    +         Try
    +             Dim TaskInstance As IEdmTaskInstance = _
    +               poCmd.mpoExtra
    +             If Not TaskInstance Is Nothing Then
    +                 SetupPageObj = New SetupPage( _
    +                   poCmd.mpoVault, TaskInstance)
    +                 'Force immediate creation of the control
    +                 'and its handle
    +                 SetupPageObj.CreateControl()
    +                 SetupPageObj.LoadData(poCmd)
    +                 SetupPageObj.DisableControls()
    +                 poCmd.mbsComment = "State Age Details"
    +                 poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32()
    +             End If

    +         Catch ex As Runtime.InteropServices.COMException
    +             MsgBox("HRESULT = 0x" + _
    +                ex.ErrorCode.ToString("X") + vbCrLf + _
    +                ex.Message)
    +         Catch ex As Exception
    +             MsgBox(ex.Message)
    +         End Try
    +     End Sub

    + End Class

    +

    + Back to top

    +
     
    +
     
    +

     

    +

     

    + +

     

    + + + + diff --git a/documentation/api_extracted/SearchSyntax-epdmapi.html b/documentation/api_extracted/SearchSyntax-epdmapi.html new file mode 100644 index 0000000..5b05aa7 --- /dev/null +++ b/documentation/api_extracted/SearchSyntax-epdmapi.html @@ -0,0 +1,325 @@ + + + + + + + Search Syntax + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + +
    + + + + + +
    + + + + + + + + + + + +
    + + SOLIDWORKS PDM Professional API Help + + + +
    + + Search Syntax + +
    + + Send Feedback +
    + + +
    +
    +

    Glossary Item Box

    +
    +
    +
    +

    Before now you searched for documents in the vault using text, comparison operators, and wildcards. As of SOLIDWORKS PDM Professional 2020, you can search using a richer syntax set. To do this, create a new search object using IEdmVault21::CreateSearch2. The new search object gives all IEdmSearch* properties and method parameters the enhanced search syntax capability outlined below.

    +

    Summary of Syntax Kernel Logic

    +

    Basic Syntax - Details

    + +

    Advanced Syntax - Details

    + +

    Examples

    + +

     

    +
    Summary of Syntax Kernel Logic
    +

    A. The basic rules - preparing variable names and search values

    +
      +
    • Comparison operators: =, <, >, <>, <=, >=. +
    • Contains patterns (P) and comparisons (<= Q) can be combined using logical operators AND (&), OR (|) and NOT (!) and parentheses (). +
    • Negated comparisons are similar to negated simple patterns. For example, !=P is the same as !{=P}. <>P is the same as {!=P} and (< P | > P). +
    • Spaces may be used to divide operands and operators for readability. +
    • AND is implicit in patterns. For example, (P Q R) means P & Q & R. +
    • The order of logical operator processing is NOT, AND, OR.  +
    • To search for spaces and special characters, quote them with " or escape them with \. +
    • A quotation mark inside a pattern is not interpreted. To recognize ", escape it with \.  +
    • A backslash inside a pattern must also be escaped with \. +
    • \ escapes both inside and outside of quotations.   +
    • * and ? are wildcards both inside and outside of quotations, but only in the context of Contains or !Contains. +
    • \ is not required before * and ? in variable/configuration names or with comparison operators. +
    • Numeric constants are compared as numbers only if the variable has a numeric data type. +
    • Correctly represented dates (as quoted or unquoted strings) are compared as dates only if the variable has the DATE data type.
    +

     

    +

    - Back to top -

    +

    B. Patterns and comparisons (explicit and implicit data types)

    +
      +
    • Single-value search logic is the default search logic. All conditions are implicitly contained in {} (see Encapsulated expressions and complex patterns). You can use braces, but they do not change the underlying logic. In single-value search logic, condtions target single variables/condigurations. For example,
    +

            A & B and {A B} both find documents containing variable values that contain both A and B

    +
      +
    • : !P finds documents even if they have no variable values. +
    • {!P} only finds documents with existing variable values. +
    • : !P or !{...} finds all those documents that aren't found by P (or {...})  +
    • Patterns can be negated indirectly. For example,
    +

              !(!P | Q) is the same as P & !Q

    +
      +
    • Comparisons (including =, < , ...), even combined with AND/OR, always work over a single value, whether negated or not (directly or indirectly).  +
    • Data type specifiers (TEXT, INT, ...) explicitly set how patterns should be compared. +
    • TEXT and the other data types have the same priority as NOT. For example, in condition INT A B, INT operates only on A. To extend the scope of INT, INT(A & B) should be used. +
    • The common data type of a multi-variable field is detected implicitly:
    +

               If texts are mixed with non-texts, then the data type is TEXT.

    +

               If dates are mixed with non-dates, then it is TEXT.

    +

               If integers are mixed with floats, then it is FLOAT.

    +

     

    +

    - Back to top -

    +

    C. Variables (@) and configurations (@@)

    +
      +
    • @ introduces a variable, e.g., @Comment, @"Document number". Quotation/escaping is needed in case of spaces or special characters. Case is not detected. +
    • @ can also be used with a numeric constant representing a variable ID. +
    • @ can also be a binder that binds a certain variable to a syntax expression that follows. For example,
    +

               @Author!=Pete

    +
      +
    • A binding can be multi-variable (like @(...)) with several variables inside that are delimited by OR (|). For example,  
    +

              @(Author | Creator) != Pete 

    +
      +
    • "" or 0 represents a multiple "variable" that includes all common variables in the database. It corresponds to <Any Variable> in tab Variables.  +
    • _Name is a special "variable" which corresponds to the file/folder name criterion.  +
    • A binding has the same priority as NOT, !, TEXT, DATE, etc. For example, 
    +

               In @Version P Q, Version must contain P, and Q must be found in another variable specified in the attached variable list.

    +

               In @Variable1 (@Variable2 P & Q), P must be found in Variable2 and Q must be found in Variable1.

    +
      +
    • @Var1 @Var2 P results in a syntax error. To set multiple variables, use @(Var1|Var2) P. +
    • Parentheses can change the binding's operation, e.g., @Version(P Q) means Version must contain both P and Q.
    +
      +
    • Bindings are directly applied to positive patterns in a distributive fashion (either simple (P), or complex { ... }). For example,
    +

              @Number(!P &{ Q | R }) is the same as !@Number(P) & @Number{Q | R}

    +
      +
    • @ is not allowed inside encapsulation braces { ... }. 
    +
      +
    • In addition to | , variables can be combined with AND (&), NOT (!), and parentheses. For example,
    +

              @("" & !Comment) P means at least one of the database variables, but not Comment, contains P. 

    +
      +
    • @@ introduces configurations in the same way that @ introduces variables. For example,
    +

              @@"@" P means search only the default configuration ("@") to find P.

    +
      +
    • "" or 0 represents a multiple "configuration" which includes all configurations from the database.  +
    • Default configuration is "@". +
    • Configuration 1 has a predefined name " " (a single space), no matter what its name is in the database.  +
    • @() and @@() represent the initial setting of variables / configurations. +
    • @() means no variables (as initially in tab Variables). +
    • @@() means the same as @@"" or @@0. By default all configurations are searched.
    +

     

    +

    - Back to top -

    +

    D. Colon-attached (:) specifiers and variables

    +
      +
    • Some keywords and operators at the beginning of (sub)-formula can have a colon attached, e.g., AND:, OR:, NOT:, &:, |:, !:, TEXT:, INT:, FLOAT:, DATE:. Such specifiers have the lowest priority and are processed after (), {}, NOT, AND, OR. For example,
    +

              TEXT: a | b is the same as TEXT(a | b)

    +

              (TEXT: a) & (INT: 1) is the same as TEXT a INT 1

    +

              NOT: a b is the same as NOT(a b)

    +
      +
    • OR: implicitly sets spaces as ORs inside a given (sub-)formula. +
    • AND: implicitly sets spaces as ANDs inside a given (sub-)formula. +
    • You can use a colon in place of @ for variable binding. Instead of @(Author|Comment|_Name|52) (john|smith) you can use Author:Comment:_Name:52: john|smith. +
    • You can use two colons in place of @@ for configuration binding. For example, "@":: 1:: 3:: john|smith.
    +

    E. The advanced and multi-value specifiers (@: and :)

    +
      +
    • The basic search syntax can be restrictive (i.e., no variable/configuration binding, no syntax error reporting, no explicit variable/config names/ids in conditions). +
    •  @: placed at the beginning of a condition permits: +
        +
      • Variable/configuration binding, including the colon-attached format. For example, @:Comment:city finds documents where Comment contains city. +
      • Multi-value search logic in which conditions target multiple variables/configurations. Braces are needed to specify single-value complex patterns. +
      • Syntax error reporting. +
      • Using _Name to represent a file/folder name. +
      • Using virtual variables, including "" and 0 which represent all variables or configurations.
      +
    • : (colon) placed at the beginning of a condition permits: +
        +
      • Multi-value search logic in which conditions target multiple variables/configurations. Braces are needed to specify local single-value complex patterns within the multi-value condition.
    +

     

    +

    - Back to top -

    +
    Basic Syntax - Details
    +

    Syntax expressions

    +

    Syntax expressions and patterns are the new search values. The former search value Metal is exactly the same as the new corresponding pattern Metal. Syntax expressions include conditions with logical operators AND/OR/NOT or their shortcuts & | !. For example, Ferrous & Metal means a document should contain both substrings, Metal and Ferrous.

    +

    Single-value search logic is the default search logic. In single-value search logic conditions target single variables/configurations. Documents that contain a variable/configuration which satisfies the single-value complex pattern are found. Any condition that is passed as a second argument to IEdmSearch8::AddVariable2 or IEdmSearch9::AddMultiVariableCondition is also implicitly enclosed in {} and is processed as a single-value complex pattern. (For multi-value search logic, see the Advanced Syntax - Details section.)

    +

    The logical AND can be applied implicitly by omitting AND (&). For example, Ferrous Metal. However, the old search value, Ferrous Metal, meant an exact phrase to be searched inside a variable value. According to the new rules, you should apply quotation marks to set the exact phrase, "Ferrous Metal". The quotation marks are auxiliary here - they don't belong to the searched text itself. This is similar to Google Search where Metal and Ferrous can be found in different places of the document, in any order, in any number of instances, and so on. If we want to search for the phrase Ferrous Metal in Google Search, then we must quote it. The same is now true with SOLIDWORKS PDM Pro 2020.

    +

    If a quotation mark itself belongs to the searched text, then it has to be preceded by an auxiliary backslash. For example, \". Each searched backslash has to be also preceded by another backslash - the first is an auxiliary one, the second is an actual character. In fact, any character can be escaped in that way. Special characters like &, | and others cannot be searched directly: A&B means "A" AND "B" but not "A&B". So they should be either quoted or escaped, or both, if searched, e.g. "A&B" or A\&B or "A\&B".

    +

    You can avoid using quotes in favor of escaping. For example, Ferrous\ Metal (the space is escaped). On the contrary, you can always use auxiliary quotes, even if they are not really needed. For example, "Metal".

    +

    When quoting, the searched text should be between the beginning and the ending quote, so "" means an empty string. Quoted and unquoted pieces cannot be attached to each other. For example, "("abc")" is incorrect.

    +

     

    +

    - Back to top -

    +

    Patterns (Variable, Search, and Complex types)

    +

    A pattern is any quoted or unquoted searched (as a whole unit) text. For example, Ferrous Metal contains two patterns, and "Ferrous Metal" is a single one.

    +

    A pattern is a syntax expression that represents a searched value or a variable/configuration name or ID. Though we sometimes say "Document number" is a variable name, that is not correct. The variable name is actually Document number. It is quoted, "Document number", to represent the variable name. We can represent the variable name in different ways, e.g. Document\ number.

    +

    Simple names (or searched values) can be identical to their representations: Author, Comment, etc. However, even simple names can be represented by different patterns:  Author, "Author", \Author, Au\thor, "\Author" represent the same name, Author. Document number cannot be identical to its representation because of the space inside its name.

    +

    When talking about variables and configurations, numeric constants are database IDs. If a variable name in the database is identical to a numeric constant (i.e., constituted of digits), then you should use quotation marks or backslashes in its representation to differentiate it from numeric constants, i.e., "51", \82. If a name in the database begins with _, it must also to be represented using " or \ because initial-underscored names are reserved for syntax usage.

    +

    Patterns may require another set of quotes as are required in C# or VB applications to escape their own reserved characters.

    +

    Spaces can be used or not between patterns and comparison/logical signs and parentheses to improve readability.

    +

    Without a comparison sign, any pattern is interpreted in the context of "Contains". In such cases, * and ? (if not escaped) work as wildcards "any number of characters" and "a single arbitrary character", e.g. "(*)" means a variable value should begin with "(" and end with ")". If no explicit non-escaped wildcards, they are meant implicitly. For example, Metal is equivalent to *Metal* (if no comparison sign, of course). Due to the explicit wildcard, "(*)" represents the whole variable value, not a substring inside it.

    +

    When talking about searched values (i.e. not about variable/configuration names), patterns can include wildcards, but only in the context of Contains, i.e. without =, <, >, etc. A pattern with wildcards represents a multitude of values. Again different patterns with wildcards can be equivalent to one other, even without " and \. For example, a*z represents the same set of values as a**z. Of course, \ and " give other equivalent representations: "a**z", \a*z, "a*\z", etc. Note, you cannot use \ before wildcards if they are expected to work as wildcards. For example, a\*z represents exactly one word of three characters: a, *, and z. A backslash (\) before * and ? makes them common characters, no matter in what context. \ is not required before * and ? in variable/configuration names or with =, <, >, etc.

    +

    A complex pattern is any expression of the kind of {...}. Variables and configurations cannot be represented by complex patterns, and comparison operators cannot stand before them. Complex patterns are always considered in the context of Contains. For example,

    +

          {a* & *z} is interpreted as "Contains a value that satisfies the condition inside {...}"

    +

    It's clear that a complex pattern {a* & *z} and a simple one a*z can both represent the same set of searched values.

    +

    It's easy to find examples where a pattern is equivalent to a non-pattern: Ferrous is equivalent to (Ferrous) and to {Ferrous}, and to (Ferrous & Ferrous), and to !!Ferrous.

    +

    Positive patterns only work over existing document values. If a document contains a value that satisfies the given pattern, then the document is found. Any encapsulated complex sub-condition {...} is also a positive pattern. {!P}, being a positive complex pattern, only works on existing values. If one value/configuration of the document contains P but another one does not, the document is found. If a pattern is in the scope of a single variable and a single configuration, then {!P} AND P cannot be satisfied. If several variable/configurations are inolved, :{!P} & P may find some documents.

    +

    Negative patterns are patterns that are under negation. For example, !Metal. Negation can be indirect. For example, !(A !B) means that A is negated and B is not negated. Negative patterns find all those documents that are not found by corresponding positive patterns.

    +

    For example,

    +

          : !P yields every document that doesn't contain P in any of its variables/configurations. It may find documents that don't have any values at all, because emptiness also does not contain P.

    +

         {!P}, being a positive complex pattern, only works on existing values.

    +

          !{!P} returns all documents where each existing value contains P, including those documents without values.

    +

          P & !P returns no documents.

    +

          : P | !P returns all documents.  

    +

     

    +

    - Back to top -

    +

    Encapsulated expressions and complex patterns

    +

    A complex pattern is any expression of the kind of {...}. Variables and configurations cannot be represented by complex patterns, and comparison operators cannot appear before them. Complex patterns are always considered in the context of Contains. For example,

    +

          {a* & *z} is interpreted as "Contains a value that satisfies the condition inside {...}"

    +

    It's clear that a complex pattern {a* & *z} and a simple pattern (a*z) can both represent the same set of searched values.

    +

    Braces ({}) show that the whole sub-formula inside them should be searched for within a single variable value (for a given combination of variable and configuration). {Metal Ferrous} means that both substrings Metal and Ferrous should belong to the same variable value in the same configuration (in any order, in any places, and in any number of instances). Without braces, Ferrous can be found in one variable (or configuration) and Metal in a different variable (of the same document, of course).

    +

    Encapsulated expressions {...} can be considered complex patterns. You can write a*b or {a* & *b}. Both mean the same and both are checked inside the same single value.

    +

    {!=100} only finds a document that has a certain value not equal to 100, though some other value can be equal to 100. <>100 works the same as {!=100}!{=100} or just !=100 only finds those documents that don't have any values equal to 100 (multi-value context).

    +

    Basic search syntax employs single-value search logic that implicitly encapsulates conditions in braces. You can use braces, but they do not change the underlying logic.

    +

    Advanced search syntax employs multi-value search logic that does not implicitly encapsulate conditions in braces. You must use braces to specify complex patterns. (See the Advanced Syntax- Details section.)

    +

     

    +

    - Back to top -

    +

    Patterns and comparisons

    +

    A comparison is a combination of a sign like =, <, >= etc. and a pattern like =Ferrous.

    +

    Patterns and comparisons are simple operands (i.e. terms) that can be combined with AND, OR, NOT. To set the logical order, use parentheses: (sldptr | txt) & attachment. Without parentheses, NOT has the highest priority and OR has the lowest.

    +

    Spaces can be used or not between patterns and comparison/logical signs and parentheses to improve readability.

    +

    Without a comparison sign, any pattern is interpreted in the context of "Contains". In that case, * and ? (if not escaped) work as wildcards (* = "any number of characters" and ? = "a single arbitrary character"). For example, "(*)" means a variable value should begin with "(" and end with ")". If no explicit non-escaped wildcards, they are meant implicitly. For example, Metal is equivalent to *Metal* (if no comparison sign, of course). Due to the explicit wildcard, "(*)" represents the whole variable value, not a substring inside it.

    +

     

    +

    - Back to top -

    +

    Explicit/implicit data types

    +

    Expressions are processed under a certain data type that has been inherited from the field variable. You can explicitly set a different data type. For example, in DATE >="Jan 15, 2005" , "Jan 15, 2005" will be considered a date type, not a string type. In the DATE context, patterns will be compared as texts if they don't represent correct dates. A correct date representation can be quoted or have escaped characters. 

    +

    Each of data type specifiers (TEXT, INT, FLOAT, DATE) has the same priority as NOT.

    +

    In the TEXT context, all patterns are considered as string values.

    +

    In the INT or FLOAT context, each pattern which represents a correct numeric constant is compared as a number, otherwise as text. E.g. "123" and \123 aren't correct constants, so they will be compared as string values.

    +

    In the case of multi-variable search syntax, the common implicit field data type is automatically detected from variables. For example, if dates are mixed with non-dates (or texts mixed with non-texts), then the date type will be TEXT; when INT is mixed with FLOAT, then the date type will be FLOAT. Booleans are considered as INTs (0 or 1). Automatic types are only used if there are no explicit type specifiers.

    +

    Colons can be used to change the priority of NOT and specifiers, e.g. INT: >=1 <=10 sets the integer type for the whole expression. Without the colon, INT would have operated only on >=1.

    +

    Such "colon-attached" specifiers as AND: and OR: (&: |:) set spaces as the implicit AND or the implicit OR. For example,

    +

          OR: a b c (&: d e f) is equivalent to a | B | c | d & e & f.

    +

    By default AND is the implicit operator.

    +

    The full list of "colon-attached" specifiers (no space before the colon):

    +

          TEXT: INT: FLOAT: DATE: AND: OR: NOT: &: |: !:

    +

    Data type specifiers and bindings are applied directly to positive patterns inside the linked expression. A data type specifier or binding just sets the scope. Units which a type/binding act on are only positive patterns. For example,

    +

          TEXT ( !1 & (200 | 300) ) is actually processed as ! TEXT 1 & (TEXT 200 | TEXT 300)

    +

    It would be similar if there had been a single-variable or multi-variable binding in place of TEXT.

    +

    Data types operate the same between () and {}, so you can write {INT 1 & TEXT a}. However, for bindings each {...} is considered a large atomic positive pattern.

    +

    - Back to top -

    +

    Colon-attached specifiers and variables

    +

    Consider INT( >=1 <=10 ). The parentheses are required because INT has the same priority as NOT. Without them, INT would only affect >=1, the whole expression being equivalent to INT( >=1 ) <=10.

    +

    INT: has the lowest priority. It is processed after NOT, AND and OR. Thus, INT: >=1 <=10 is the same as INT: (>=1 <=10). Owing to the colon, you can omit parentheses, making the expression simpler.

    +

    All the colon-attached specifiers have the same lowest priority. They are especially convenient when you apply them to the whole condition. However, when applying to simple operands (e.g. to terms containing patterns and comparisons), colon-attached specifiers may be unnecessary. For example,

    +

          (INT: 100) | (TEXT: abc) is equivalent to a much simpler INT 100 | TEXT abc

    +

    Because of their lowest priority and for the sake of avoiding ambiguities, all the colon-attached specifiers have to be used one by one on the left of the subsequent expression. They are placed at the very beginning of the whole condition or between "(" and the expression. The scope of such specifiers extend to the end of the condition or up to the corresponding ")". For example,

    +

          Comment: 1:: "Document number": 2:: 123 & abc

    +

    has four specifiers followed by the syntax expression, 123 & abc. In the case of several colon-attached variables before the same syntax expression, all variables are implicitly grouped in a single binding with | between variable names. All the colon-attached configurations are similarly grouped in their own binding. The order of names/IDs/variables/configurations is not important.

    +

     

    +

    - Back to top -

    +
    Advanced Syntax - Details
    +

    Advanced specifiers (@:)

    +

    Single-value search logic is the default search logic (see the Basic Syntax - Details section.) In some cases, multi-value search logic is needed. In multi-value search logic, conditions target multiple variables/configurations. To turn on multi-value search logic, you must use either the multi-value specifier, :, or the advanced specifier, @:. Advanced specifiers allow you to use variable/configuration names/identifiers inside conditions. They also turn on syntax checking and reporting. To turn on multi-value search logic and syntax checking, a condition must begin with @:. Because @ has a special meaning, it should be quoted or escaped if it is being searched for in patterns. The advanced specifier forces you to write safer and less ambiguous expressions. It forbids risky syntax elements such as inch (") constants. For example, it requires you to use 4\" instead of 4". With the advanced specifier, you must use {} to specify local single-value complex patterns within multi-value conditions (see Encapsulated expressions and complex patterns).

    +

    Multi-value specifiers (:)

    +

    The multi-value specifier (:) is a light version of the advanced specifier (@:). Like @:, the multi-value specifier (:) placed before a condition turns on multi-value search logic and indicates that you must use {} to specify local single-value complex patterns within multi-value condition. Unlike @:, the multi-value specifier (:) does not allow explicit variables/configurations and does not support syntax error messaging. For example,

    +

        A B is equivalent to :{A B}

    +

        : {=5 =10} returns no documents

    +

    If you want a document with 5 in one variable/configuration and 10 in another variable/configuration, use:

    +

        : =5 =10

    +

    To check whether a value is in a range, curly braces should be applied:

    +

        :{>=1 <=10}

    +

    Braces are not necessary for ranges if there is no multi-value specifier:

    +

        >=1 <=10 

    +

    Variable and configuration bindings

    +

    @  is called "variable binder", because it binds a variable to a pattern or representation. It indicates that the subsequent pattern represents a variable name or identifier (if a numeric constant). For example, @Comment, @"Document number". A combination of a variable binder and a pattern is a binding. The binding has the same priority as DATE or NOT. The binding acts on the subsequent operand, i.e., it indicates that it needs to be compared with the given variable, e.g. @Number=100, @Author Johns.

    +

    A binding can contain multiple variables. For example, @(Comment | "Document number") 123 which is equivalent to @Comment 123 | @"Document number" 123. We can also use the other logical operators inside a binding. For example, @(V & !U) P is the same as @V(P) & !@U(P). Multi-variable bindings provide better performance when compared to equivalent expressions where all bindings are single-variable ones.

    +

    If a variable name begins with an underscore, then it should be quoted/escaped, e.g. @"_SpecialVar". Initial-underscore names are reserved for future syntax extensions. Currently only _Name has a special meaning in the syntax. _Name is a virtual variable indicating the file/folder name of a searched document/project. _Name can be used in any place where common variable names are used. _Name and _name are equivalent.

    +

    An empty string "" or numeric constant 0 represents one or more "virtual" variables. It can be used to specify the whole set of the database variables. @"" is like @(var1 | var2 | ... | varN) which enumerates all of the common variable names. @("" | _Name) includes file/folder names in that enumeration.

    +

    A configuration binder @@ is similar to @ but deals with names and IDs of configurations. Again, @@0 or @"" searches over all configurations (and is assumed implicitly). Configuration 1 is present in projects and non-SOLIDWORKS documents and has a predefined name " ", i.e. a single space. Configuration 2 (commonly named "@") represents the default configuration.

    +

    @() and @@() set the initial (default) binding state: @() indicates that no variables are defined, so they should be explicitly present in the subsequent sub-formula. @@() is the same as @@0 and indicates that all configurations are searched.

    +

    You can think of data type specifiers and bindings as applied directly to positive patterns inside linked expressions. A data type specifier or binding just sets the scope. Units that a type/binding acts on are positive patterns.

    +

          @(var1|var2) (>=100 !150 <=200) is equivalent to @(var1|var2) {>=100 <=200} & !@(var1|var2) 150.

    +

    Colon-attached bindings

    +

    Bindings can be set in the "colon-attached" format. For example,

    +

          Comment: 1:: "Document number": 2:: 123 & abc is the same as @(Comment | "Document number") @@(1|2) (123 & abc)

    +

    Configuration bindings use colons to differentiate them from variable bindings.

    +

    @ and @@ are not applied at all if colons are used.

    +

     

    +

    - Back to top -

    + + +
    + + + +
    + + + \ No newline at end of file diff --git a/documentation/api_extracted/SecondCommand.gif b/documentation/api_extracted/SecondCommand.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d4245118c09e4a43b0194d4e9d1a8e1e301f828 GIT binary patch literal 7234 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 QxIz}T(1abRU_bx>JN*cduK)l5 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/SendMessage.gif b/documentation/api_extracted/SendMessage.gif new file mode 100644 index 0000000000000000000000000000000000000000..f53a226d3d04abe640995be34e07b62c2700e67e GIT binary patch literal 7382 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Send_Message_to_Users_Example_CSharp.htm b/documentation/api_extracted/Send_Message_to_Users_Example_CSharp.htm new file mode 100644 index 0000000..91a2413 --- /dev/null +++ b/documentation/api_extracted/Send_Message_to_Users_Example_CSharp.htm @@ -0,0 +1,255 @@ + + + +Send Message to Users Example (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Send Message to Users Example (C#)

    +

    This example shows how to send a message, also called a notification, to logged-in users who have +permission to modify Categories.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +
    
    + 
    +//----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > C# > Windows Forms Application.
    +//  3. Type SendMessageCSharp in Name.
    +//  4. Click the Browse button and browse to the folder where to create the project.
    +//  5. Click OK
    +//  6. Create a form similar to the form shown above and change: 
    +//     a. Label to VaultsLabel.
    +//     b. Combo box to VaultsComboBox
    +//     c. Button to TraverseUsersButton.   
    +//  7. Replace the code in Form1.cs with this code.
    +//  8. Replace the code in Form1.Designer.cs with this code.
    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Framework in the left-side panel, browse to the top folder of your 
    +//     SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +// 11. Switch back to the Form1.cs code window.
    +// 12. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click the Send message to users who can modify Categories button.
    +//  4. After several minutes, a SOLIDWORKS PDM Professional notification 
    +//     is displayed only to logged-in users who have 
    +//     permission to modify Categories. 
    +//  5. To open the the message, click:
    +//     * either the notification while it is displayed or
    +//       the SOLIDWORKS PDM Professional tray icon.
    +//       - or - 
    +//     * Tools > Inbox in File Explorer.
    +//  6. Close the dialog.
    +//---------------------------------------------------------------------------- 
    +
    +//Form1.cs
    +using System;
    +using System.Windows.Forms;
    +using System.Diagnostics;
    +using System.Runtime.InteropServices;
    +using EPDM.Interop.epdm; 
    + 
    +namespace SendMessageCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        void SendMessageCSharp_Load(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5
    +                IEdmVault5 vault1 = new EdmVault5();
    + 
    +                //Cast IEdmVault5 to IEdmVault8
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    + 
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void TraverseUsersButton_Click(System.Object sender, System.EventArgs e)
    +        {
    + 
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5 object
    +                IEdmVault5 vault = new EdmVault5();
    +                //Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    + 
    +                //Declare an IEdmUserMgr5 object
    +                IEdmUserMgr5 UserMgr = default(IEdmUserMgr5);
    +                UserMgr = (IEdmUserMgr5)vault;
    + 
    +                IEdmPos5 UserPos = default(IEdmPos5);
    +                UserPos = UserMgr.GetFirstUserPosition();
    +                while (!UserPos.IsNull)
    +                {
    +                    IEdmUser5 User = default(IEdmUser5);
    +                    IEdmUser7 User1 = default(IEdmUser7);
    +                    User = UserMgr.GetNextUser(UserPos);
    +                    User1 = (IEdmUser7)User;
    +                    if (User.IsLoggedIn)
    +                    {
    +                        if (User1.HasSysRightEx(EdmSysPerm.EdmSysPerm_ModifyCategories))
    +                        {
    +                            User.SendMsg("Category request""Please stop by my office sometime " + "this morning to discuss adding " + "a new file type to a Category.");
    +                        }
    +                    }
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}
    + +
    //Form1.Designer.cs
    +
    namespace SendMessageCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.TraverseUsersButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(80, 27);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(67, 67);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // TraverseUsersButton
    +            // 
    +            this.TraverseUsersButton.Location = new System.Drawing.Point(67, 110);
    +            this.TraverseUsersButton.Name = "TraverseUsersButton";
    +            this.TraverseUsersButton.Size = new System.Drawing.Size(121, 53);
    +            this.TraverseUsersButton.TabIndex = 2;
    +            this.TraverseUsersButton.Text = "Send message to users who can modify Categories";
    +            this.TraverseUsersButton.UseVisualStyleBackColor = true;
    +            this.TraverseUsersButton.Click += new System.EventHandler(this.TraverseUsersButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(268, 200);
    +            this.Controls.Add(this.TraverseUsersButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Send Message to Users";
    +            this.Load += new System.EventHandler(this.SendMessageCSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button TraverseUsersButton;
    +    }
    +}
    + + + + + diff --git a/documentation/api_extracted/Send_Message_to_Users_Example_VBNET.htm b/documentation/api_extracted/Send_Message_to_Users_Example_VBNET.htm new file mode 100644 index 0000000..5bd1345 --- /dev/null +++ b/documentation/api_extracted/Send_Message_to_Users_Example_VBNET.htm @@ -0,0 +1,235 @@ + + + +Send Message to Users Example (VB.NET) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Send Message to Users Example (VB.NET)

    +

    This example shows how to send a message, also called a notification, to logged-in users who have +permission to modify Categories.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type Exercise3 in Name.
    +'  4. Click the Browse button and browse to the folder where to create the project.
    +'  5. Click OK
    +'  6. Create a form similar to the form shown above and change: 
    +'     a. Label to VaultsLabel.
    +'     b. Combo box to VaultsComboBox
    +'     c. Button to TraverseUsersButton.   
    +'  7. Replace the code in Form1.vb with this code.
    +'  8. Replace the code in Form1.Designer.vb with this code.
    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Framework in the left-side panel, browse to the top folder of your 
    +'     SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Switch back to the Form1.vb code window.
    +' 12. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click the Send message to users who can modify Categories button.
    +'  4. After several minutes, a SOLIDWORKS PDM Professional notification 
    +'     is displayed only to logged-in users who have permission 
    +'     to modify Categories. 
    +'  5. To open the the message, click:
    +'     * either the notification while it is displayed or
    +'       the SOLIDWORKS PDM Professional tray icon.
    +'       - or - 
    +'     * Tools > Inbox in File Explorer.
    +'  6. Close the dialog.
    +'----------------------------------------------------------------------------
    +
     
    +
    'Form1.vb 
    + 
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Exercise3
    + 
    +  Private Sub Exercise3_Load( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles MyBase.Load
    + 
    +    Try
    +      Dim vault As IEdmVault8 = New EdmVault5
    +      Dim Views() As EdmViewInfo = Nothing
    + 
    +      vault.GetVaultViews(Views, False)
    +      VaultsComboBox.Items.Clear()
    +      For Each View As EdmViewInfo In Views
    +        VaultsComboBox.Items.Add(View.mbsVaultName)
    +      Next
    +      If VaultsComboBox.Items.Count > 0 Then
    +        VaultsComboBox.Text = VaultsComboBox.Items(0)
    +      End If
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +  Private Sub TraverseUsersButton_Click( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles TraverseUsersButton.Click
    + 
    +    Try
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +        Me.Handle.ToInt32())
    + 
    +      'Declare an IEdmUserMgr5 object
    +      Dim UserMgr As IEdmUserMgr5
    +      'The IEdmUserMgr5 interface is implemented by the
    +      'same class as the IEdmVault5 interface,
    +      'so in VB we can simply assign the value of
    +      'the IEdmVault5 object
    +      UserMgr = vault
    + 
    +      Dim UserPos As IEdmPos5
    +      UserPos = UserMgr.GetFirstUserPosition()
    +      While Not UserPos.IsNull
    +        Dim User As IEdmUser7
    +        User = UserMgr.GetNextUser(UserPos)
    +        If User.IsLoggedIn Then
    +          If User.HasSysRightEx(EdmSysPerm. _
    +            EdmSysPerm_ModifyCategories) _
    +            Then
    +            User.SendMsg("Category request", _
    +              "Please stop by my office sometime " + _
    +              "this morning to discuss adding " + _
    +              "a new file type to a Category.")
    +          End If
    +        End If
    +      End While
    + 
    +    Catch ex As Runtime.InteropServices.COMException
    +      MessageBox.Show("HRESULT = 0x" + _
    +        ex.ErrorCode.ToString("X") + vbCrLf + _
    +        ex.Message)
    +    Catch ex As Exception
    +      MessageBox.Show(ex.Message)
    +    End Try
    +  End Sub
    + 
    +End Class
    +
     
    + +
    +
    'Form1.Designer.vb
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Exercise3
    +   Inherits System.Windows.Forms.Form
    + 
    +   'Form overrides dispose to clean up the component list.
    +   <System.Diagnostics.DebuggerNonUserCode()> _
    +   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +      Try
    +         If disposing AndAlso components IsNot Nothing Then
    +            components.Dispose()
    +         End If
    +      Finally
    +         MyBase.Dispose(disposing)
    +      End Try
    +   End Sub
    + 
    +   'Required by the Windows Form Designer
    +   Private components As System.ComponentModel.IContainer
    + 
    +   'NOTE: The following procedure is required by the Windows Form Designer
    +   'It can be modified using the Windows Form Designer.  
    +   'Do not modify it using the code editor.
    +   <System.Diagnostics.DebuggerStepThrough()> _
    +   Private Sub InitializeComponent()
    +        Me.TraverseUsersButton = New System.Windows.Forms.Button()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.SuspendLayout()
    +        '
    +        'TraverseUsersButton
    +        '
    +        Me.TraverseUsersButton.Location = New System.Drawing.Point(57, 90)
    +        Me.TraverseUsersButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.TraverseUsersButton.Name = "TraverseUsersButton"
    +        Me.TraverseUsersButton.Size = New System.Drawing.Size(136, 67)
    +        Me.TraverseUsersButton.TabIndex = 18
    +        Me.TraverseUsersButton.Text = "Send message to users who can modify Categories"
    +        Me.TraverseUsersButton.UseVisualStyleBackColor = True
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(57, 41)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(136, 21)
    +        Me.VaultsComboBox.TabIndex = 16
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(71, 9)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 17
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'Exercise3
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(252, 168)
    +        Me.Controls.Add(Me.TraverseUsersButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.Name = "Exercise3"
    +        Me.Text = "Send Message to Users"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +   Friend WithEvents TraverseUsersButton As System.Windows.Forms.Button
    +   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/SerialNumbers.gif b/documentation/api_extracted/SerialNumbers.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc2d1387b515235f5d59df1cee4a85e3a738d2de GIT binary patch literal 6219 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 + + +Set Initial Revision Example (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Set Initial Revision Example (C#)

    +

    This example shows how to set the initial revision of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +


    +

    + +//--------------------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    + +//  2. Click File > New > Project +> Visual C# > Windows Forms Application.
    +//  3. Select .NET Framework 4 in the top dropdown.

    +//  4. Click Browse and navigate to the folder where to create the project.
    +//  5. Type SetRevision_CSharp in Name.

    +//  6. Click OK.
     
    +//  7. Right-click the project +name in the Solution Explorer +and click Add Reference
    +//  8. In the Add Reference dialog:
    + +//     a. Click Assemblies > Framework in the left-side panel, 
    +//        browse to the top folder of your SOLIDWORKS PDM Professional installation, 
    +//        locate and click EPDM.Interop.epdm.dll, click Open, and click Add.
    +//     b. Click Close.
    +//  9. Right-click References > EPDM.Interop.epdm in the Solution Explorer, 
    +//     click Properties, and set Embed Interop Types to False to handle methods 
    +//     that pass arrays of structures.

    + +// 10. Create a form similar to the form shown above and change: 
    +//     a. Label to VaultsLabel.
    +//     b. Combo box to VaultsComboBox
    +//     c. Button to SetInitialRevisionButton.
    +
    // +11. Click Show All Files in the Solution Explorer toolbar and expand +Form1.cs.   
    +// 12. Replace the code in Form1.cs with this code.
    + +// 13. Replace the code in Form1.Designer.cs with this code.
    +// 14. Copy a SOLIDWORKS part to a PDM vault view.
    +//     +a. Check in the part.
    +//     +b. Right-click the part and click Change State > No Approval Required.
    +//        +Part is now in the Approved state, and data card Revision is A.
    +//     +c. Check out the part.
    +//     +d. In the part's data card, type G in Revision.
    +//     +e. Save the data card.
    +//     +f. Check in the part.
    +// 15. +Click Debug > Start Debugging or press F5.

    +//
    +// Postconditions: 
    +// 1. The Set Revision dialog opens.
    +// 2. Select the vault containing the SOLIDWORKS part you just checked in.
    +// 3. Click Set Initial Revision.
    + +// 4. In the Select files on which to set initial revision dialog, click the
    +//    SOLIDWORKS part you just checked in and click Open.
    + +// 5. In the File already has a revision dialog, click OK to set the initial
    + +//    revision.
    +// 6. Refresh the vault view, click the SOLIDWORKS part, and click the Version tab.
    + +//    Observe that the local revision of the file is now G.
    +// 7. Close the Set Revision dialog.
    + +//--------------------------------------------------------------------------------------
    +

    +
    //Form1.cs
    +

    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +
     
    +namespace SetRevision_CSharp
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void SetRevision_CSharp_Load(System.Object sender, System.EventArgs e)
        {
     
        try {
    +             IEdmVault5 vault = new EdmVault5();
                 EdmViewInfo[] Views = {};
     
                ((IEdmVault8)vault).GetVaultViews(out Views, false);
                VaultsComboBox.Items.Clear();
                foreach (EdmViewInfo View in Views) {
                    VaultsComboBox.Items.Add(View.mbsVaultName);
                }
                if (VaultsComboBox.Items.Count > 0) {
                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
                }
    +          }
              catch (System.Runtime.InteropServices.COMException ex)
              + {
                  MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
              + }
              catch (Exception ex)
              + {
                  MessageBox.Show(ex.Message);
               + }
        }
     
        private void SetInitialRevisionButton_Click(System.Object sender, System.EventArgs e)
        {
     
        try {
    +           //Declare and create an instance of IEdmVault5
                IEdmVault5 vault = new EdmVault5();
     
                //Log into selected vault as the current user
                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
     
                //Display a File Open dialog for user to
                //choose the files on which set the initial revision
                EdmStrLst5 PathList = default(EdmStrLst5);
                PathList = vault.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, "SOLIDWORKS files " + "(*.sldprt; *.sldasm; *.slddrw)|" + "*.sldprt;*.sldasm;*.slddrw|" + "All Files (*.*)|*.*||""""", vault.RootFolderPath, "Select Files to Set Initial Revision on");
     
                //Exit if the user clicks Cancel
                 if (PathList == null)
                return;
     
                //Traverse the selected files
                IEdmPos5 pos = default(IEdmPos5);
                pos = PathList.GetHeadPosition();
                while (!pos.IsNull) {
                    //Get each file path from the selected files list
                    string FilePath = null;
                    FilePath = PathList.GetNext(pos);
                    //Get the IEdmFile5 object corresponding
                    //to the path
                    IEdmFile5 FileObj = default(IEdmFile5);
                        IEdmFolder5 retfold = default(IEdmFolder5);
                    FileObj = vault.GetFileFromPath(FilePath, out retfold);
     
                    //Skip any files that are checked out
                    if (FileObj.IsLocked) {
                        MessageBox.Show    (FilePath + " is checked out." + "\r\n" + "Check it in and try again." + "\r\n" + "Skipping this file.""File is checked out."MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        continue;
                    }
     
                    //Get the value of the file data
                    //card variable +named Revision
                    IEdmEnumeratorVariable8 EnumVarObj = default(IEdmEnumeratorVariable8);
                    //Keeps the file open
                    EnumVarObj = (IEdmEnumeratorVariable8)FileObj.GetEnumeratorVariable();
     
                    bool GetVarSuccess = false;
                    //GetVar returns a Variant
                    object RevisionObj = null;
                    GetVarSuccess = EnumVarObj.GetVar("Revision""@"out RevisionObj);
                    EnumVarObj.CloseFile(false);
                    //Pass True to flush
     
                    //Skip any files without a Revision 
                    //card variable value
                    if (RevisionObj == null) {
                        MessageBox.Show("The \"Revision\" custom " + "property of " + FilePath + " is not set to a value." + "\r\n" + "Skipping this file.""Revision custom property empty."MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        continue;
                    }
     
                    //Check type
                    System.Type RevType = default(System.Type);
                    RevType = RevisionObj.GetType();
                    if (!(RevType.Name == "String")) {
                        MessageBox.Show("The \"Revision\" " + "variable type is not \"String\"." + "\r\n" + "Skipping this file.""Revision custom property empty."MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        continue;
                    }
     
                    string RevisionProp = null;
                    RevisionProp = (string)RevisionObj;
     
                    //Skip any files whose Revision value
                    //is not formatted appropriately
                    if (!(RevisionProp.Length == 1)) {
                        MessageBox.Show("The \"Revision\" custom " + "property of " + FilePath + " does not conform to the expected " + "revision number format." + "\r\n" + "Skipping this file.""Revision custom property in the wrong format."MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        continue;
                    }
     
                    //Create an IEdmRevisionMgr2 object
                    IEdmRevisionMgr2 RevMgr = default(IEdmRevisionMgr2);
                    RevMgr = (IEdmRevisionMgr2)((IEdmVault7)vault).CreateUtility(EdmUtility.EdmUtil_RevisionMgr);
     
                    //Get the revision number ID
                    bool CanIncrement = false;
                    +int RevisionNumberID = 0;
                    //Return 0 if there is no revision number
                    //generator defined for the file's current state
                    RevisionNumberID = RevMgr.GetRevisionNumberIDFromFile(FileObj.ID, out CanIncrement);
     
                    //Skip this file if there is no
                    //revision number generator for it
                    if (RevisionNumberID == 0) {
                        MessageBox.Show("Move " + FilePath + " to a state where a Revision Number " + "is defined." + "\r\n" + "Skipping this file.""No Revision Number is defined " + "for this state."MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        continue;
                    }
     
                    //Get the revision number info for this file
                    EdmRevNo[] RevNumbers = {
    +
                    };
                    RevMgr.GetRevisionNumbers(RevisionNumberID, out RevNumbers);
                    string RevNoFormatString = null;
                    RevNoFormatString = RevNumbers[0].mbsData;
                    string RevNoFormatLiteral = null;
                    int PercentPos = 0;
                    PercentPos = RevNoFormatString.IndexOf("%");
                    RevNoFormatLiteral = RevNoFormatString.Substring(0, PercentPos);
                    string NewRev = null;
                    NewRev = RevNoFormatLiteral + RevisionProp;
     
                    //Check the file's current revision
                    string CurRev = null;
                    CurRev = FileObj.CurrentRevision;
     
                    //Give the user the option to skip this file
                    //if it already has a revision set
                    if (!(CurRev == string.Empty)) {
                        System.Windows.Forms.DialogResult MsgBoxResult = default(System.Windows.Forms.DialogResult);
                        MsgBoxResult = MessageBox.Show("The current revision of " + FilePath + " is \"" + CurRev + "\"." + "\r\n" + "The new revision will be \"" + NewRev + "\"" + "\r\n" + "Would you like to continue?""File already has a revision"MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                        if (MsgBoxResult == System.Windows.Forms.DialogResult.Cancel)
                        continue;
                    }
     
                    //Get the revision number components for the 
                    //revision number used by this file
                    EdmRevComponent2[] RevComponents = {
    +
                    };
                    RevMgr.GetRevisionNumberComponents2(-RevisionNumberID, out RevComponents);
                    string RevComponentName = null;
                    RevComponentName = RevComponents[0].mbsComponentName;
     
                    //Declare an array of EdmRevCounter structures,
                    //even though only one +is used,
                    //and assign the values to set
                    EdmRevCounter[] RevCounters = new EdmRevCounter[1];
                    //Assign the name of the revision counter
                    //to set
                    RevCounters[0].mbsComponentName = RevComponentName;
                    //Assign the new revision counter value to the
                    //value stored in the Revision card variable
                    //converted to an integer
                    +int RevInt = 0;
                    RevInt = Strings.Asc(RevisionProp.ToUpper()) - Strings.Asc("A") + 1;
                    RevCounters[0].mlCounter = (int)RevInt;
     
                    //Set the revision counter to the new values
                    RevMgr.SetRevisionCounters(FileObj.ID, RevCounters);
     
                    //Set the revision of the file to the new values
                    RevMgr.IncrementRevision(FileObj.ID);
     
                    //Save the new values to the database
                    EdmRevError[] RevErrors = {
    +
                    };
                    RevMgr.Commit("Set starting revision for " + "legacy file."out RevErrors);
                }
    +          }
              catch (System.Runtime.InteropServices.COMException ex) {
    +               MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
              } 
    +          catch (Exception ex) {
                    MessageBox.Show(ex.Message);
              }
           }
     
        }
    }

    + +
    //Form1.Designer.cs
    +

    +namespace SetRevision_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.SetInitialRevisionButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(52, 28);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(136, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select Preferred Vault View";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(55, 58);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // SetInitialRevisionButton
    +            // 
    +            this.SetInitialRevisionButton.Location = new System.Drawing.Point(55, 97);
    +            this.SetInitialRevisionButton.Name = "SetInitialRevisionButton";
    +            this.SetInitialRevisionButton.Size = new System.Drawing.Size(121, 23);
    +            this.SetInitialRevisionButton.TabIndex = 2;
    +            this.SetInitialRevisionButton.Text = "Set Initial Revision";
    +            this.SetInitialRevisionButton.UseVisualStyleBackColor = true;
    +            this.SetInitialRevisionButton.Click += new System.EventHandler(this.SetInitialRevisionButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 262);
    +            this.Controls.Add(this.SetInitialRevisionButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Set Revision";
    +            this.Load += new System.EventHandler(this.SetRevision_CSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button SetInitialRevisionButton;
    +    }
    +}

    + + + + + diff --git a/documentation/api_extracted/Set_Initial_Revision_Example_VBNET.htm b/documentation/api_extracted/Set_Initial_Revision_Example_VBNET.htm new file mode 100644 index 0000000..b3bb417 --- /dev/null +++ b/documentation/api_extracted/Set_Initial_Revision_Example_VBNET.htm @@ -0,0 +1,400 @@ + + + +Set Initial Revision Example (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Set Initial Revision Example (VB.NET)

    +

    This example shows how to set the initial revision of a +file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    '---------------------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Select .NET Framework 4 in the top dropdown.

    +'  4. Click Browse and navigate to the folder where to create the project.
    +'  5. Type SetRevision in Name.

    +'  6. Click OK.
    +'  7. Right-click the project name in the Solution Explorer and +click Add Reference
    '  8. In the Add Reference dialog:
    '     a. Click Assemblies > Framework in the left-side panel, 
    '        browse to the top folder of your SOLIDWORKS PDM Professional installation, 
    '        locate and click EPDM.Interop.epdm.dll, click Open, and click Add.
    '     b. Click Close.
    +'  9. Right-click References > EPDM.Interop.epdm in the Solution Explorer, 
    +'     click Properties, and set Embed Interop Types to False to handle methods 
    +'     that pass arrays of structures.
    +' 10. Create a form similar to the form shown above and change: 

    +'     a. Label to VaultsLabel.
    +'     b. Combo box to VaultsComboBox
    +'     c. Button to SetInitialRevisionButton.
    +
    +' 11. Click Show All Files in the Solution +Explorer toolbar and expand Form1.vb.   
    +' 12. Replace the code in Form1.vb with this code.
    +' 13. Replace the code in Form1.Designer.vb with this code.
    +' 14. Copy a SOLIDWORKS part to a PDM vault view.

    +'     a. Check in the part.
    +'     b. Right-click the part and +click +Change State > No Approval Required.
    +'        Part is now in the Approved state, +and data card Revision is A.
    +'     c. Check out the part.
    +'     d. In the part's data card, type G in Revision.
    +'     e. Save the data card.
    +'     f. Check in the part.
    +' 15. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. The Set Revision dialog opens.
    +' 2. Select the vault containing the SOLIDWORKS part you just checked in.
    +' 3. Click Set Initial Revision.
    +' 4. In the Select files on which to set initial revision dialog, +click the
    +'    SOLIDWORKS part you just checked in and click Open.
    +' 5. In the File already has a revision dialog, click OK to set the initial
    +'    revision.

    +' 6. Refresh the vault view, click the SOLIDWORKS part, and click the Version tab.
    +'    Observe that the local revision of the file is now G.
    +' 7. Close the Set Revision dialog.

    +'--------------------------------------------------------------------------------------- 
    +'Form1.vb

    +

    +Imports EPDM.Interop.epdm

    +Public Class Form1

    +  Private Sub Form1_Load(ByVal sender As _
    +    System.ObjectByVal e As System.EventArgs) _
    +    Handles MyBase.Load

    +    Dim vault As IEdmVault8 = New EdmVault5
    +    Dim Views() As EdmViewInfo = {}

    +    vault.GetVaultViews(Views, False)
    +    VaultsComboBox.Items.Clear()
    +    For Each View As EdmViewInfo In Views
    +      VaultsComboBox.Items.Add(View.mbsVaultName)
    +    Next
    +    If VaultsComboBox.Items.Count > 0 Then
    +      VaultsComboBox.Text = VaultsComboBox.Items(0)
    +    End If
    +  End Sub

    +  Private Sub SetInitialRevisionButton_Click( _
    +    ByVal sender As System.Object, _
    +    ByVal e As System.EventArgs) _
    +    Handles SetInitialRevisionButton.Click

    +        'Declare and create an instance of IEdmVault5
    +    Dim vault As IEdmVault5 = New EdmVault5()

    +    'Log into selected vault as the current user
    +    vault.LoginAuto(VaultsComboBox.Text, _
    +       Me.Handle.ToInt32())

    +        'Display a File Open dialog for user to
    +        'choose the files on which set the initial revision
    +    Dim PathList As EdmStrLst5
    +        PathList = vault.BrowseForFile( _
    +           Me.Handle.ToInt32(), _
    +           EdmBrowseFlag.EdmBws_ForOpen + _
    +           EdmBrowseFlag.EdmBws_PermitMultipleSel + _
    +           EdmBrowseFlag.EdmBws_PermitVaultFiles, _
    +           "SOLIDWORKS files " + _
    +           "(*.sldprt; *.sldasm; *.slddrw)|" + _
    +           "*.sldprt;*.sldasm;*.slddrw|" + _
    +           "All Files (*.*)|*.*||", _
    +           """", vault.RootFolderPath, _
    +           "Select Files to Set Initial Revision on")

    +        'Exit if the user clicks Cancel
    +    If PathList Is Nothing Then Exit Sub

    +    'Traverse the selected files
    +    Dim pos As IEdmPos5
    +    pos = PathList.GetHeadPosition
    +    While Not pos.IsNull
    +      'Get each file path from the selected files list
    +      Dim FilePath As String
    +      FilePath = PathList.GetNext(pos)
    +      'Get the IEdmFile5 object corresponding
    +      'to the path
    +      Dim FileObj As IEdmFile5
    +      FileObj = vault.GetFileFromPath(FilePath)

    +      'Skip any files that are checked out
    +      If FileObj.IsLocked Then
    +        MessageBox.Show(FilePath + _
    +           " is checked out." _
    +           + vbCrLf + "Check it in and try again." _
    +           + vbCrLf + "Skipping this file.", _
    +           "File is checked out.", _
    +           MessageBoxButtons.OK, _
    +           MessageBoxIcon.Warning)
    +        Continue While
    +      End If

    +      'Get the value of the file data
    +            'card variable +named Revision
    +      Dim EnumVarObj As IEdmEnumeratorVariable8
    +      'Keeps the file open
    +      EnumVarObj = FileObj.GetEnumeratorVariable

    +      Dim GetVarSuccess As Boolean
    +      'GetVar returns a Variant
    +      Dim RevisionObj As Object = Nothing
    +      GetVarSuccess = EnumVarObj.GetVar("Revision", _
    +         "@", RevisionObj)
    +      EnumVarObj.CloseFile(False'Pass True to flush

    +            'Skip any files without a Revision 
    +            'card variable value
    +      If RevisionObj Is Nothing Then
    +        MessageBox.Show("The ""Revision"" custom " + _
    +           "property of " + FilePath + _
    +           " is not set to a value." _
    +           + vbCrLf + "Skipping this file.", _
    +           "Revision custom property empty.", _
    +           MessageBoxButtons.OK, _
    +           MessageBoxIcon.Warning)
    +        Continue While
    +      End If

    +            'Check type
    +      Dim RevType As System.Type
    +      RevType = RevisionObj.GetType()
    +      If Not RevType.Name = "String" Then
    +        MessageBox.Show("The ""Revision"" " + _
    +           "variable type is not ""String""." _
    +           + vbCrLf + "Skipping this file.", _
    +           "Revision custom property empty.", _
    +           MessageBoxButtons.OK, _
    +           MessageBoxIcon.Warning)
    +        Continue While
    +      End If

    +      Dim RevisionProp As String
    +      RevisionProp = RevisionObj

    +            'Skip any files whose Revision value
    +            'is not formatted appropriately
    +      If Not RevisionProp.Length = 1 Then
    +                MessageBox.Show("The ""Revision"" custom " + _
    +                   "property of " + FilePath + _
    +                   " does not conform to the expected " + _
    +                   "revision number format." + vbCrLf + _
    +                   "Skipping this file.", _
    +                   "Revision custom property in the wrong format.", _
    +                   MessageBoxButtons.OK, _
    +                   MessageBoxIcon.Warning)
    +        Continue While
    +      End If

    +      'Create an IEdmRevisionMgr2 object
    +      Dim RevMgr As IEdmRevisionMgr2
    +      RevMgr = vault.CreateUtility( _
    +         EdmUtility.EdmUtil_RevisionMgr)

    +      'Get the revision number ID
    +      Dim CanIncrement As Boolean
    +      Dim RevisionNumberID As Long
    +            'Return 0 if there is no revision number
    +      'generator defined for the file's current state
    +      RevisionNumberID = _
    +         RevMgr.GetRevisionNumberIDFromFile( _
    +         FileObj.ID, CanIncrement)

    +      'Skip this file if there is no
    +      'revision number generator for it
    +      If RevisionNumberID = 0 Then
    +                MessageBox.Show("Move " + FilePath + _
    +                   " to a state where a Revision Number " + _
    +                   "is defined." + vbCrLf + _
    +                   "Skipping this file.", _
    +                   "No Revision Number is defined " + _
    +                   "for this state."MessageBoxButtons.OK, _
    +                   MessageBoxIcon.Warning)
    +        Continue While
    +      End If

    +      'Get the revision number info for this file
    +      Dim RevNumbers() As EdmRevNo = {}
    +      RevMgr.GetRevisionNumbers(RevisionNumberID, _
    +         RevNumbers)
    +      Dim RevNoFormatString As String
    +      RevNoFormatString = RevNumbers(0).mbsData
    +      Dim RevNoFormatLiteral As String
    +      Dim PercentPos As Integer
    +      PercentPos = RevNoFormatString.IndexOf("%")
    +      RevNoFormatLiteral = _
    +         RevNoFormatString.Substring(0, PercentPos)
    +      Dim NewRev As String
    +      NewRev = RevNoFormatLiteral + RevisionProp

    +      'Check the file's current revision
    +      Dim CurRev As String
    +      CurRev = FileObj.CurrentRevision

    +      'Give the user the option to skip this file
    +      'if it already has a revision set
    +      If Not CurRev = String.Empty Then
    +        Dim MsgBoxResult As _
    +           System.Windows.Forms.DialogResult
    +        MsgBoxResult = MessageBox.Show( _
    +           "The current revision of " _
    +           + FilePath + " is """ + CurRev + """." + _
    +           vbCrLf + "The new revision will be """ + _
    +           NewRev + """" + vbCrLf _
    +           + "Would you like to continue?", _
    +           "File already has a revision", _
    +           MessageBoxButtons.OKCancel, _
    +           MessageBoxIcon.Question)
    +        If MsgBoxResult = _
    +           Windows.Forms.DialogResult.Cancel Then _
    +           Continue While
    +      End If

    +      'Get the revision number components for the 
    +      'revision number used by this file
    +      Dim RevComponents() As EdmRevComponent2 = {}
    +      RevMgr.GetRevisionNumberComponents2( _
    +         -RevisionNumberID, RevComponents)
    +      Dim RevComponentName As String
    +      RevComponentName = _
    +         RevComponents(0).mbsComponentName

    +            'Declare an array of EdmRevCounter structures,
    +            'even though only +one is used,
    +      'and assign the values to set
    +      Dim RevCounters(0) As EdmRevCounter
    +      'Assign the name of the revision counter
    +      'to set
    +      RevCounters(0).mbsComponentName = _
    +         RevComponentName
    +      'Assign the new revision counter value to the
    +      'value stored in the Revision card variable
    +      'converted to an integer
    +      Dim RevInt As Long
    +      RevInt = _
    +         Asc(RevisionProp.ToUpper()) - Asc("A") + 1
    +      RevCounters(0).mlCounter = RevInt

    +      'Set the revision counter to the new values
    +      RevMgr.SetRevisionCounters(FileObj.ID, _
    +         RevCounters)

    +      'Set the revision of the file to the new values
    +      RevMgr.IncrementRevision(FileObj.ID)

    +      'Save the new values to the database
    +      Dim RevErrors() As EdmRevError = {}
    +      RevMgr.Commit("Set starting revision for " + _
    +         "legacy file.", RevErrors)
    +    End While
    +  End Sub
    +End Class

    + +
    'Form1.Designer.vb
    +
    + +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +   Inherits System.Windows.Forms.Form

    +   'Form overrides dispose to clean up the component list.
    +   <System.Diagnostics.DebuggerNonUserCode()> _
    +   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +      Try
    +         If disposing AndAlso components IsNot Nothing Then
    +            components.Dispose()
    +         End If
    +      Finally
    +         MyBase.Dispose(disposing)
    +      End Try
    +   End Sub

    +   'Required by the Windows Form Designer
    +   Private components As System.ComponentModel.IContainer

    +   'NOTE: The following procedure is required by the Windows Form Designer
    +   'It can be modified using the Windows Form Designer.  
    +   'Do not modify it using the code editor.
    +   <System.Diagnostics.DebuggerStepThrough()> _
    +   Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.SetInitialRevisionButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(22, 16)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(136, 13)
    +        Me.VaultsLabel.TabIndex = 10
    +        Me.VaultsLabel.Text = "Select Preferred Vault View"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(26, 32)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(132, 21)
    +        Me.VaultsComboBox.TabIndex = 11
    +        '
    +        'SetInitialRevisionButton
    +        '
    +        Me.SetInitialRevisionButton.Location = New System.Drawing.Point(41, 57)
    +        Me.SetInitialRevisionButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.SetInitialRevisionButton.Name = "SetInitialRevisionButton"
    +        Me.SetInitialRevisionButton.Size = New System.Drawing.Size(101, 41)
    +        Me.SetInitialRevisionButton.TabIndex = 14
    +        Me.SetInitialRevisionButton.Text = "Set Initial Revision"
    +        Me.SetInitialRevisionButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(222, 119)
    +        Me.Controls.Add(Me.SetInitialRevisionButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.Name = "Form1"
    +        Me.Text = "Set Revision"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub
    +   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +   Friend WithEvents SetInitialRevisionButton As System.Windows.Forms.Button

    +End Class

    + +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_CSharp.htm b/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_CSharp.htm new file mode 100644 index 0000000..c050186 --- /dev/null +++ b/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_CSharp.htm @@ -0,0 +1,374 @@ + + + +Set Part Numbers Using Default Serial Numbers Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Set Part Numbers Using Default Serial Numbers Example (C#)

    +

    This example shows how to set part numbers using default serial numbers.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type SerialNumbersCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Ensure that you have:
    +//     * a vault with at least one serial number generator.
    +//     * a checked-out file in that vault with its Part Number variable's  
    +//       default set to a serial number.
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the Serial Numbers dialog box.
    +//  2. Select a vault view.
    +//  3. Click Get Vault Serial Number Names.
    +//  4. Displays a message box containing the names of the serial number
    +//     generators for the selected vault. 
    +//  5. Click OK to close the message box.
    +//  6. Click Browse.
    +//     a. Click a checked-out file in the selected vault whose  
    +//        data card has a Part Number variable. 
    +//     b. Click Open.
    +//     The selected file's path and file name appear in the Serial 
    +//     Numbers dialog box.
    +//  7. Click Set New Serial Number
    +//  8. Displays a message box verifying that the Part Number was 
    +//     set and shows the value of that Part Number. 
    +//     NOTES:
    +//     * The value set for the Part Number is the next number in the first 
    +//       serial number generator shown in the message box displayed in
    +//       step 3.
    +//     * Make note of the Part Number.
    +//  9. Click OK to close the message box.
    +// 10. Check in the file whose Part Number was set in step 7, then check out the 
    +//     file.
    +// 11. Examine the Part Number on the data card of the checked-out file.
    +// 12. Close the Serial Numbers dialog box.
    +//----------------------------------------------------------------------------
    +
    //Form1.cs 
    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    +namespace SerialNumbersCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        private IEdmVault5 vault1 = null;
    +        string aSerialNbrName;
    +        string aFileName;
    +        IEdmFile5 aFile;
    +        string aFolder;
    +        IEdmSerNoGen7 serialNbrs;
    + 
    +    	private void Form1_Load(System.Object sender, System.EventArgs e)
    +	    {
    +
    +		try {
    +			vault1 = new EdmVault5();
    +            		IEdmVault8 vault = (IEdmVault8)vault1;
    +			EdmViewInfo[] Views = null;
    +
    +			vault.GetVaultViews(out Views, false);
    +			VaultsComboBox.Items.Clear();
    +			foreach (EdmViewInfo View in Views) {
    +				VaultsComboBox.Items.Add(View.mbsVaultName);
    +			}
    +			if (VaultsComboBox.Items.Count > 0) {
    +				VaultsComboBox.Text = (string) VaultsComboBox.Items[0];
    +			}
    +
    +		} catch (System.Runtime.InteropServices.COMException ex) {
    +			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " "  + ex.Message);
    +		} catch (Exception ex) {
    +			MessageBox.Show(ex.Message);
    +		}
    +	}
    +
    +	public void Button1_Click(System.Object sender, System.EventArgs e)
    +	{
    +		try {
    +			//Only create a new vault object
    +			//if one hasn't been created yet
    +			IEdmVault11 vault2 = null;
    +			if (vault1 == null) {
    +				vault1 = new EdmVault5();
    +			}
    +			vault2 = (IEdmVault11)vault1;
    +			if (!vault1.IsLoggedIn) {
    +				//Log into selected vault as the current user
    +				vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +			}
    +
    +			serialNbrs = (IEdmSerNoGen7)vault2.CreateUtility(EdmUtility.EdmUtil_SerNoGen);
    +			string[] names = {	};
    +			serialNbrs.GetSerialNumberNames(out names);
    +			string myMessage = "";
    +			myMessage = "Serial number names in selected vault: " + "\n ";
    +			int idx = 0;
    +			idx = (names.GetLowerBound(0));
    +			while (idx <= (names.GetUpperBound(0))) {
    +				myMessage = myMessage + names[idx] + "\n";
    +				idx = idx + 1;
    +			}
    +
    +			// Use this serial number generator
    +			aSerialNbrName = names[0];
    +
    +			MessageBox.Show(myMessage);
    +
    +		} catch (System.Runtime.InteropServices.COMException ex) {
    +			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +		} catch (Exception ex) {
    +			MessageBox.Show(ex.Message);
    +		}
    +	}
    +
    +	public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +	{
    +		try {
    +
    +			//Set the initial directory in the Select a file dialog
    +			OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +			//Show the Select a file dialog
    +			System.Windows.Forms.DialogResult DialogResult;
    +			DialogResult = OpenFileDialog1.ShowDialog();
    +
    +			if (!(DialogResult == System.Windows.Forms.DialogResult.OK)) {
    +				// Do nothing
    +			} else {
    +				// Browse for a file whose serial number to set
    +				// File's data card must have a Part Number associated
    +				// with a serial number generator and must be checked out
    +				string fileName = OpenFileDialog1.FileName;
    +				FileListBox.Items.Add(fileName);
    +                			IEdmFolder5 retFolder = default(IEdmFolder5);
    +				aFile = vault1.GetFileFromPath(fileName, out retFolder);
    +
    +			}
    +
    +		} catch (System.Runtime.InteropServices.COMException ex) {
    +			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +		} catch (Exception ex) {
    +			MessageBox.Show(ex.Message);
    +		}
    +	}
    +
    +	public void NewButton_Click(System.Object sender, System.EventArgs e)
    +	{
    +		try {
    +
    +			IEdmSerNoValue serialNbrValue = default(IEdmSerNoValue);
    +			serialNbrValue = serialNbrs.AllocSerNoValue(aSerialNbrName, this.Handle.ToInt32(), " ", 0, 0, 0, 0);
    +			dynamic serialNbrValueValue = serialNbrValue.Value;
    +			IEdmEnumeratorVariable5 enumVariable = default(IEdmEnumeratorVariable5);
    +			enumVariable = aFile.GetEnumeratorVariable(aFileName);
    +			// Set the Part Number of the selected file
    +			enumVariable.SetVar("Part Number""@", serialNbrValueValue);
    +            		IEdmEnumeratorVariable8 enumVariable8 = (IEdmEnumeratorVariable8)enumVariable;
    +			enumVariable8.CloseFile(true);
    +
    +			MessageBox.Show("Part Number set to " + serialNbrValueValue.ToString() + "." + " ");
    +
    +
    +		} catch (System.Runtime.InteropServices.COMException ex) {
    +			MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +		} catch (Exception ex) {
    +			MessageBox.Show(ex.Message);
    +		}
    +	}
    +    }
    + 
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    + 
    +namespace SerialNumbersCSharp
    +{
    +	partial class Form1
    +	{
    +		/// <summary>
    +		/// Required designer variable.
    +		/// </summary>
    +		private System.ComponentModel.IContainer components = null;
    + 
    +		/// <summary>
    +		/// Clean up any resources being used.
    +		/// </summary>
    +		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +		protected override void Dispose(bool disposing)
    +		{
    +			if (disposing && (components != null))
    +			{
    +				components.Dispose();
    +			}
    +			base.Dispose(disposing);
    +		}
    + 
    +		#region Windows Form Designer generated code
    + 
    +		/// <summary>
    +		/// Required method for Designer support - do not modify
    +		/// the contents of this method with the code editor.
    +		/// </summary>
    +		private void InitializeComponent()
    +		{
    +			this.VaultsLabel = new System.Windows.Forms.Label();
    +			this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +			this.Button1 = new System.Windows.Forms.Button();
    +			this.FileListBox = new System.Windows.Forms.ListBox();
    +			this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +			this.BrowseButton = new System.Windows.Forms.Button();
    +			this.NewButton = new System.Windows.Forms.Button();
    +			this.SuspendLayout();
    +			//
    +			//VaultsLabel
    +			//
    +			this.VaultsLabel.AutoSize = true;
    +			this.VaultsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +			this.VaultsLabel.Location = new System.Drawing.Point(25, 28);
    +			this.VaultsLabel.Name = "VaultsLabel";
    +			this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +			this.VaultsLabel.TabIndex = 0;
    +			this.VaultsLabel.Text = "Select vault view:";
    +			//
    +			//VaultsComboBox
    +			//
    +			this.VaultsComboBox.FormattingEnabled = true;
    +			this.VaultsComboBox.Location = new System.Drawing.Point(28, 44);
    +			this.VaultsComboBox.Name = "VaultsComboBox";
    +			this.VaultsComboBox.Size = new System.Drawing.Size(190, 21);
    +			this.VaultsComboBox.TabIndex = 1;
    +			//
    +			//Button1
    +			//
    +			this.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +			this.Button1.Location = new System.Drawing.Point(28, 84);
    +			this.Button1.Name = "Button1";
    +			this.Button1.Size = new System.Drawing.Size(190, 23);
    +			this.Button1.TabIndex = 2;
    +			this.Button1.Text = "Get Vault Serial Number Names";
    +			this.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +			this.Button1.UseVisualStyleBackColor = true;
    +            		this.Button1.Click += new System.EventHandler(this.Button1_Click);
    +			//
    +			//FileListBox
    +			//
    +			this.FileListBox.FormattingEnabled = true;
    +			this.FileListBox.Location = new System.Drawing.Point(28, 141);
    +			this.FileListBox.Name = "FileListBox";
    +			this.FileListBox.Size = new System.Drawing.Size(190, 17);
    +			this.FileListBox.TabIndex = 3;
    +			//
    +			//OpenFileDialog1
    +			//
    +			this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +			this.OpenFileDialog1.Multiselect = true;
    +			this.OpenFileDialog1.Title = "Select a file";
    +			//
    +			//BrowseButton
    +			//
    +			this.BrowseButton.Location = new System.Drawing.Point(239, 135);
    +			this.BrowseButton.Name = "BrowseButton";
    +			this.BrowseButton.Size = new System.Drawing.Size(56, 23);
    +			this.BrowseButton.TabIndex = 4;
    +			this.BrowseButton.Text = "Browse...";
    +			this.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +			this.BrowseButton.UseVisualStyleBackColor = true;
    +            		this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
    +			//
    +			//NewButton
    +			//
    +			this.NewButton.Location = new System.Drawing.Point(28, 182);
    +			this.NewButton.Name = "NewButton";
    +			this.NewButton.Size = new System.Drawing.Size(190, 23);
    +			this.NewButton.TabIndex = 5;
    +			this.NewButton.Text = "Set New Serial Number";
    +			this.NewButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +			this.NewButton.UseVisualStyleBackColor = true;
    +            		this.NewButton.Click += new System.EventHandler(this.NewButton_Click);
    +			//
    +			//Form1
    +			//
    +			this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +			this.ClientSize = new System.Drawing.Size(326, 262);
    +			this.Controls.Add(this.NewButton);
    +			this.Controls.Add(this.BrowseButton);
    +			this.Controls.Add(this.FileListBox);
    +			this.Controls.Add(this.Button1);
    +			this.Controls.Add(this.VaultsComboBox);
    +			this.Controls.Add(this.VaultsLabel);
    +			this.Name = "Form1";
    +			this.Text = "Serial Numbers";
    +            		this.Load += new System.EventHandler(this.Form1_Load);
    +			this.ResumeLayout(false);
    +			this.PerformLayout();
    +
    +	}
    +
    +	#endregion
    +		
    +	internal System.Windows.Forms.Label VaultsLabel;
    +	internal System.Windows.Forms.ComboBox VaultsComboBox;
    +	internal System.Windows.Forms.Button Button1;
    +	internal System.Windows.Forms.ListBox FileListBox;
    +	internal System.Windows.Forms.Button BrowseButton;
    +	internal System.Windows.Forms.Button NewButton;
    +	internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +
    +   }
    +
    +}
    +
    + + + + + diff --git a/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_VBNET.htm b/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_VBNET.htm new file mode 100644 index 0000000..a7c23f6 --- /dev/null +++ b/documentation/api_extracted/Set_Part_Number_Using_Default_Serial_Numbers_Example_VBNET.htm @@ -0,0 +1,343 @@ + + + +Set Part Numbers Using Default Serial Numbers Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Set Part Numbers Using Default Serial Numbers Example (VB.NET)

    +

    This example shows how to set part numbers using default serial numbers.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type SerialNumbersVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Ensure that you have:
    +'     * a vault with at least one serial number generator.
    +'     * a checked-out file in that vault with its Part Number variable's 
    +'       default set to a serial number.
    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Serial Numbers dialog box.
    +'  2. Select a vault view.
    +'  3. Click Get Vault Serial Number Names.
    +'  4. Displays a message box containing the names of the serial number
    +'     generators for the selected vault. 
    +'  5. Click OK to close the message box.
    +'  6. Click Browse.
    +'     a. Click a checked-out file in the selected vault whose  
    +'        data card has a Part Number variable. 
    +'     b. Click Open.
    +'     The selected file's path and file name appear in the Serial 
    +'     Numbers dialog box.
    +'  7. Click Set New Serial Number
    +'  8. Displays a message box verifying that the Part Number was 
    +'     set and shows the value of that Part Number. 
    +'     NOTES:
    +'     * The value set for the Part Number is the next number in the first 
    +'       serial number generator shown in the message box displayed in
    +'       step 3.
    +'     * Make note of the Part Number.
    +'  9. Click OK to close the message box.
    +' 10. Check in the file whose Part Number was set in step 7, then check out 
    +'     file.
    +' 11. Examine the Part Number on the data card of the checked-out file.
    +' 12. Close the Serial Numbers dialog box.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aSerialNbrName As String
    +    Dim aFileName As String
    +    Dim aFile As IEdmFile5
    +    Dim aFolder As String
    +    Dim serialNbrs As IEdmSerNoGen7
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            serialNbrs = vault2.CreateUtility(EdmUtility.EdmUtil_SerNoGen)
    +            Dim names() As String = {}
    +            serialNbrs.GetSerialNumberNames(names)
    +            Dim myMessage As String = ""
    +            myMessage = "Serial number names in selected vault: " + vbLf + vbLf
    +            Dim idx As Integer
    +            idx = LBound(names)
    +            While (idx <= UBound(names))
    +                myMessage = myMessage + names(idx) + vbLf
    +                idx = idx + 1
    +            End While
    + 
    +            ' Use this serial number generator
    +            aSerialNbrName = names(0)
    + 
    +            MessageBox.Show(myMessage)
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    + 
    +            'Set the initial directory in the Select a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                ' Do nothing
    +            Else
    +                ' Browse for a file whose serial number to set
    +                ' File's data card must have a Part Number associated
    +                ' with a serial number generator and must be checked out
    +                Dim fileName As String = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(fileName)
    +                aFile = vault1.GetFileFromPath(fileName)
    + 
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub NewButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles NewButton.Click
    +        Try
    + 
    +            Dim serialNbrValue As IEdmSerNoValue
    +            serialNbrValue = serialNbrs.AllocSerNoValue(aSerialNbrName, Me.Handle.ToInt32)
    +            Dim serialNbrValueValue = serialNbrValue.Value
    +            Dim enumVariable As IEdmEnumeratorVariable5
    +            enumVariable = aFile.GetEnumeratorVariable(aFileName)
    +            Dim serialNbrValueObj As Object = Nothing
    +            ' Set the Part Number of the selected file
    +            enumVariable.SetVar("Part Number""@", serialNbrValueValue)
    +            enumVariable.CloseFile(True)
    + 
    +            MessageBox.Show("Part Number set to " + serialNbrValueValue.ToString + "." + vbLf)
    + 
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.Button1 = New System.Windows.Forms.Button()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.NewButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.VaultsLabel.Location = New System.Drawing.Point(25, 28)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(28, 44)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(190, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'Button1
    +        '
    +        Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.Button1.Location = New System.Drawing.Point(28, 84)
    +        Me.Button1.Name = "Button1"
    +        Me.Button1.Size = New System.Drawing.Size(190, 23)
    +        Me.Button1.TabIndex = 2
    +        Me.Button1.Text = "Get Vault Serial Number Names"
    +        Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.Button1.UseVisualStyleBackColor = True
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(28, 141)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(190, 17)
    +        Me.FileListBox.TabIndex = 3
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(239, 135)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(56, 23)
    +        Me.BrowseButton.TabIndex = 4
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'NewButton
    +        '
    +        Me.NewButton.Location = New System.Drawing.Point(28, 182)
    +        Me.NewButton.Name = "NewButton"
    +        Me.NewButton.Size = New System.Drawing.Size(190, 23)
    +        Me.NewButton.TabIndex = 5
    +        Me.NewButton.Text = "Set New Serial Number"
    +        Me.NewButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.NewButton.UseVisualStyleBackColor = True
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(326, 262)
    +        Me.Controls.Add(Me.NewButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.Button1)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Serial Numbers"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents Button1 As System.Windows.Forms.Button
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents NewButton As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    + 
    +End Class
    +
    +
    +
    Back to top
    +
    + +
    + + + + diff --git a/documentation/api_extracted/SetupPage.png b/documentation/api_extracted/SetupPage.png new file mode 100644 index 0000000000000000000000000000000000000000..86ecba6eb32d2beecc89a28d3edb2320a1c808f6 GIT binary patch literal 6723 zcmc&(XH-*NvkpB(NT2}QWk_q#vupS$i__s`j9&)RF|nc2_G-g8cbp}saXgbe}$fv9zLG>kzYA|}H7 z9GIB!R1jeeAPhwA#@Ya=Y?ytWFd?`yGt`XCjM<$4&w?J(vm>JT4K6B(TCgGH^}{dlgVkD!#{_f;<3|_u>_9G- zrt4oV6txdZqUN-(6+JdoGt9J|sk4tk28Jvf_D6~5`F zNz+RIw1@R2<7q<)IXM|AnO2)gizhbt9(AeSJIgrrNllLo*k(%m%k7q?gE25S-yOP5U#|61pNo4hLfR@E0jmf!MD&q}+~FYlep ze0}xBubGgc47om!+p8uUEkB(#%X-mMCi)7W;59kth~&E$PVKawG0t;1T8^YCdVoWk zq)h+J>I`8ctCVhV&fc)B1*}D9iHZ#|8*HSo;U#b_-s7>)%dD<9D1P(meKNA3tYud# zd=k@EcugS5JLZQ#4M_8%E8Cc-!>x@!J>Qu2I(SjldGVQl8@43f)fcV7u^H7UM+RCE|b)TOD6e5P?b zX$3CxCZ^@xy^QjNl^eO4>I)+KJ)N9=;rrL%0jSl0l1LBH4YHm#%!7 zEm3qEs84sRjk|Z5yPE`5uWcwEr=D-NFO%a=d2TSo2)A`Dp${@lidL&rUrZ(6*)H7q zM6N%bXF3{lkvmYE>>nofnCIrmguuk%{ZQGdkNNxutF5`eS>_L4dsZ#a$&gF#4yn7` znU|dRmQTl{&N;7zPB+gW^n@UfJ2v@N?{4agJkf4a6k|#r%e#%@=-qICvTxNql0KD2 z-hP3(G7&RXpJXa6_=mq{JJuO@5r|fHi{!N|td93c;vRGT3nh7{$cYQw33Ff9@zI;I z(N|Na9&v=|-}s!N+z+pLa`yZ|^Y5kS?QHeIj8>vTHTcGp9%Y01fSQA6_obfC&m&?} z!}cGqdoF|Q z9i2>{sXd$X8G62p?XpR$#2IdFn);FXE!7_Tt5g~mR#RHRA7Ek+x0h4qWb$YgZl*U_ zW11HUB%2!aKQ0cCZJNc>o(~`N_@YIulhzd)xx=g@ql%WGr<+*GvLnyuGv(H^;^$pF z->Q2g0`#dGo?i~hZgTqg&1bcs>MSQJaYyog8T<&Q0Q0qFOtoG4kzVe$|1p(fWpo%* zz|mo+-@SUJ#&?I?zQZ<3xPJBLs^)ib-sg<&yF145l{{MsO#^<1{;gkke@T!_dKPuH zh_*a%A^2R~ChqNPc43=wlN^pY0Qp9V$zpzzudtV*R4f-cCsyToK5fLXC_XiKHIHg9 zfxf$BSUS&@`fnOm!B4zZQdLMbhTgIgT!mQ~R&Ce&ryu2qadOoUCi#pqHf@`u#NtKV z*7$yf^RNRVUKxi~&vR43Xyt@3$$+DI50Y<6@;fWhqEqK47xkCbdu+g3c9H?!J2Q*6 zXDDpTfVkRB0u)@imsZ7ZY7jq82vN7?D4Lw zZx|J$s;54PZrXf_9b6bX#Y|9z!R(uy?qkN%`N6HFyOj;mlU7&rf--YfsZI@|4Ay&- z7v{ZM)_+wweiGb@_Jf&hI0FyjDHG0 zFPmGqy2H0Ja~MygXNw%ZJ18{*Ry}KA5qQyVH;Lx2vxK&5zQ@HT7 zu5`Axfa|mV;PzU-=MY%RlIL-sq*@U4sxfSMp^|>0S@Yy6vB{1X@T>Ov-RR6AgWt+<#m$ zVe95O_?+RwBQBb7@U(+_{&F?(N8MXZlJOg6$ao+-03ABHDkUu1eudm&XU2mevBEVk z!CGYbg<^0KhYym>N2_qD;uxoS|EeohOMT5%_nPh2)O6#nPHulH%Zkov#P%S|VV&iU zSoZQ4{a zyAOKk=MIYu-~Uqp(R*v3?qj3pY>p(tRx|Ig#a0DmqXV{DhkSzH3!x&W28^>YA8r zvT2hsaQz@9qrgCA09EaBu&=Cbs?c$j%j$h8W{c{Q%#F3$WSZ7kO+bo0wH2y zhH835T)ccRHgzH{1bYy%F$4q`IvHgl3>XkYtT70z+ZWbj2m-??GJ_I{)pYb!q(X_+ z!15rn90m|zypO&~7*7DOWM2iL!o|pbQe;rX7W|=_&Je?=+b>0+d_dA&tX!8cgUnSLSfN?F>%hLj zCGmg|nS-%|Q`2{*U6W{3Vau2$kdhhETRGT*?C_E|{es(D>- z!o2b>0X@)__bl`DY@unZuKtLuh|QFbix-8Z^D&Hy)zrg)S!eVF$+QF%S*o0J6ZyFq z=s^1~leldyo^OIp(``ml;!VNeJ_A*yUXe_CxFWv{LdGOrHtJy{6mEX=;6-}dvBZtJ zqe-{ccR!Mzf9`SmmG*<%@d~>I5?|Y^*g_m-iro68y zLpdJ2_2eA1U|c!lr!O+H=4~# z{_6H(w~s{A6oKF!ThhGGwcOB1FvzDKLPsxN`2r)usWf6?0^akx>Aw2x#l$!&bnc}= z^>Vl1lFFd?M}#tbxj~;btVFieZF8;ksruTJ7;GQrYVn!3VMHuPg8r>=yZXkr6UQ&- zobGQtRKTY~Hr3fLqW9E_F9RQe-ENa{@G zw+G>|K@l$)g%!PnWw{ubX1t-D^oeBNdUREfpQt-bps(24g%Y9JHNfY#pJ=6x!l6$Q zpMaH+STk~j8#R14fkU;QPJ)$=Zua#Wv5T7E6-3rqlHzWHw5ns^vVKQ*9pr_|>%W@O zxYg7V={k+a?@)qDURP04(ksr-qPV4b1xfE{Ao^)-#HqnZO~I_wcc}0*FZKF(@ZP)8 zMrt^k3cL*X2E&%Cp>V(=+7d$z7DBaD(C{p4Qtm$Xi=p+xb47C$X5@8#%URCmraaKG@w+Or?;4E$H zy#|f+^=v)Y9*Us_vbCbJ#=|dO4XuQqN@N?x#ByA{27E8Nu}_XrAVag@KMC_zLnuE? zLuaks;|QTs1@?AH5VlZyaXP5ug7s5YsGd0Rj{720rhtf@TH*b!3!sV$Iu&q|wIx!q1} zmDlO&05dB2i}xta;m@i_!+hMYmi9ZS_8Ub??`d?Y&Dchl7G(EvKc=r$xGg#|(7nJQ zbod^?iLMf%Z~N&#Bu8Ya3o_$f1AZmYZ-?|h?OXi1$VbGnoe_^xwe#xe4=y&+=x<-_ zk_1*|5Jwp;-2|v$wEk+?@0u}2G)_213drlSy0?G0%oW%#wpHW<5A3IJy>r7zCR~uP zJ(ci-p}yOMhzmmd$pTuSO}>X4lu2Jgf(wJMc!b#{oF1i{ybnO5*m4izi(Ho>VQO?j zHb~Mt&fqP@R}r#YIqYcmr7sldr@}EOF}a+nBkV6fOn*6w$QkLTKIK!G5LvSq)`pV( z8v;}lVatr)8gB3YdNXR2^yOSN=RzDMZ)pH#T|E*jFpi8Y08kNF)1$JJNMb?+t^pMK zHY)^*YY67!AG^x$^jbB#<(etyRk^z2cWee}%YB4T;(0Xt2sr&aRKetX z|21eo8$ovrZidpO?S#M8{!D2k=rbR#TSJEF%&j z;+${Rz3iOD4(GT^e)~l#2RtN9l8eC;l7umv)~_z!Ng65}VUqq8|9Zc`DL-Ci2$kY{ zV)So4`Szo3j~oHm*)tPTS_#|`caP=4uD-g^j*Xf8UjjL9%=Q*hlK`Itj2~x^?U>{} z+jYLrV!o?y2V9*M*6!^_q=Uh=Q(pojllRJWcD&=TqMLqwzxtK&!uU0B0U$r# z3*)V|HWxZNc6yZk>OB#f%e_#kFT{h*AU!9PKO(jVtQ|=L7nY;~+YNrr;b$ewSRA#b z`^f@-=nUp4c3GtcpYS9u^4|W(K`Q^>^72k3${v}sVrKkHLO=pQM9bFTLQQ)q%KwUf z<{Q%!Xz*Q_6hSPet2Ykb9c7b`4E0yxvqr`b}{4B4y02`2<4w4ZQa z`K0@Par9h(5sYjg;xd!|JC)E^fc6W*=`3LLX&KR&5SqAHD&Mw1YpDrOF}W@5^zT?lEH@QQaJiVW@Flp6;K{LT&Ah4cr=R zSLOMEO%28HuprWphwEYhF&(igAofZXaX)I3IoG~z6y&#Z`c^@JQIu>-mO1d&r6c27 zRv*23Z%4!jTTYe~8d}0P0y-s1OJqk3uC*Z*-feWNaOCLOtgb6k3t$s|ak)|#SFLwg z``J8MgLbkrslXI`-mq=g#0sp?cZ>3@Yj#<_-2}_ax?zIjdZs5-xn`7k>EOG+4$U&p z;I^PgLRmj##8oyL0+}R&Ts3ueW91MXF(dZtFGFMBW2ur31Yj?yZ|a9rFNuZhnuTxu zkfL?=d-f8;&KZw{;`f%qA_k_J82)vq4Je1wpJKK`5?9B1A~RR}O3tDyW(UK@9oUS`>_0 z#8D$coW5B(hM){3sS!Y5(s}=)z$QBhx+0RVQ3c=k#535CDT}X~65sdII@r*&iLaCq z-{-3pY&bd2mk-CsrQGJ?&9(++iQy>`q=3W*A6gV2m!`?ZEA(jUB~1Wkl@{FRG;OLJ z1mlyWKqU4~AEpJtOx?*5CPFhw=Rq)JH5q~-az@%R7*>lTMSR^z!7g;f?6VRB{d_}4 zVLd!n2`94r3Pv7WUn72gnU$VIg=5G8J!GwFsA7685sZiZ=+?r@glXxQ65%M);SgaE zB1D+6$Qnbtf8;%FRd6e-ik^&6fLS#KxPc=IAMA)hZAQVz0H)-TH!YPWA4ep)L3=r=EsDfk+zdB!16H63uXFm-X8uv6h0Os!v;H4 z>BX@)*0?$mtBVNFxWNQSzM2j)k_IM&NTc1CQI$w}`{vTdmhJ&u7LjHk>{%DdJGs5h z0M?8r;s(mj1W9sX8@Zevz}WheJG(*Gk@G#>Y_{fCFk{ZE+5}G>UgO*%16VwMecqEtf9MM?BO^;{q*K%+(^LT_AgCJ% zqC@EKaxm&o1qp2)$^U(u_rEuZ5d$Q6)GY)@`4}ErjMYS!j8`ch*XB*%A_Ci)G~d=h z-U5QB2~B0CZd7!9Aqc9s(!yQz|1MA?M-;I9`5hrh=DSl~8?dKna@!=7*f5BI^r1KU zKfQ4aHKC6tMf`WG+(MyFbOo;P<`$7)ERy(?L;jqCpkWenu4<&@^KnNROh@?31Jc#h K*C+!Xh5Q%UOM(Od literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/SetupPageResult.png b/documentation/api_extracted/SetupPageResult.png new file mode 100644 index 0000000000000000000000000000000000000000..9578b14646d3f831e21ec2ac1f54ae87ee5d394d GIT binary patch literal 104782 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/ShowTransitions.gif b/documentation/api_extracted/ShowTransitions.gif new file mode 100644 index 0000000000000000000000000000000000000000..67d4d79f7618462a9e7b1acbbbec5a326f5d0b28 GIT binary patch literal 5863 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 + + +Stand-alone Applications (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Stand-alone Applications (VB.NET)

    + + + +
    + + + + diff --git a/documentation/api_extracted/StandAloneAppCSharp.htm b/documentation/api_extracted/StandAloneAppCSharp.htm new file mode 100644 index 0000000..df44c1f --- /dev/null +++ b/documentation/api_extracted/StandAloneAppCSharp.htm @@ -0,0 +1,216 @@ + + + +Stand-alone Applications (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Stand-alone Applications (C#)

    + + + +
    + +

    +This topic describes how to create a C# stand-alone application that logs into +a SOLIDWORKS PDM Professional file vault and lists the files in the root folder.

    +
      +
    1. +

      + Start up Microsoft Visual Studio.

    2. +
    3. +

      + Click File > New > Project > Visual C# > Windows Forms App + (.NET Framework).

      +
        +
      1. +

        Type StandaloneApplicationCSharp in Name.

        +
      2. +
      3. +

        Click Browse and navigate to the folder where to create the + project.

      4. +
      5. +

        Click OK.

      6. +
      7. +

        Right-click the name of your project in the Solution Explorer and select + Add Reference + to add the SOLIDWORKS PDM Professional primary assembly interop to your project.

        +
        +
          +
        1. Browse to the top + folder of your SOLIDWORKS PDM Professional installation.
        2. +
        3. Locate and click + EPDM.Interop.epdm.dll.
          +
           
        4. +
        5. Click Open. +
        6. +
        7. Click Add. +
        8. +
        9. Click Close.
        10. +
        +
        +
      8. +
      +
    4. +
    5. +

      + Change the + version of the .NET Framework and the + platform + target.

      +
        +
      1. Click Project > + StandaloneApplicationCSharp + Properties > Build and set Platform target to Any CPU.
      2. +
      3. Click Application + and keep suggested Target framework or change it to .NET Framework 4.5 + (or later).
      4. +
      5. De-select Prefer 32-bit.
      6. +
      7. Click Yes.
         
      8. +
      +
    6. +
    7. +

      + Right-click Form1.cs + in the Solution Explorer and click View Designer.

      +
    8. +
    9. +

      + Click View > Toolbox.

      +
    10. +
    11. +

      + Drag a button from the Toolbox onto the form.

      +
    12. +
    13. +

      Double-click the button + to open Form1.cs and replace all of the code in the code window with the following + code.

    14. +
    +
    +
    using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    +namespace StandaloneApplicationCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    + 
    +        private void button1_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    + 
    +                //Create a file vault interface and log into a vault
    +                IEdmVault5 vault = new EdmVault5();
    +                vault.LoginAuto("MyVaultName"this.Handle.ToInt32());
    + 
    +                //Get the vault's root folder interface
    +                string message = "";
    +                IEdmFile5 file = null;
    +                IEdmFolder5 folder = null;
    +                folder = vault.RootFolder;
    + 
    +                //Get position of first file in the root folder
    +                IEdmPos5 pos = null;
    +                pos = folder.GetFirstFilePosition();
    +                if (pos.IsNull)
    +                {
    +                    message = ("The root folder of your vault does not contain any files.");
    +                    MessageBox.Show(message);
    +                    return;
    +                }
    +                message = ("The root folder of your vault contains these files: " + "\n");
    +                while (!pos.IsNull)
    +                {
    +                    file = folder.GetNextFile(pos);
    +                    message = message + file.Name + "\n";
    +                }
    + 
    +                //Show the names of all files in the root folder
    +                MessageBox.Show(message);
    + 
    +            }
    + 
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    + 
    + 
    +        }
    +    }
    +}
    +
    +
    +
      +
    1. +

      + Replace + MyVaultName in + the code with the name of a SOLIDWORKS PDM Professional vault on your + computer.

    2. +
    3. +

      + Click Debug > + Start Debugging or press F5.

        +
      1. +

        + Click Button1 on the + form.

        A message box is displayed that either contains the names of + the files in the root folder of the specified vault or informs you that the + root folder of the specified vault does not contain any files.

      2. +
      3. +

        + Close the form.

      4. +
    4. +
    5. +

      + Click File > Save All.

    6. +
    +

    + See +Also

    +

    Stand-alone Applications +(VB.NET)

    +

    Stand-alone Applications (C++)

    + +
    + + + + diff --git a/documentation/api_extracted/StandAloneAppCpp.htm b/documentation/api_extracted/StandAloneAppCpp.htm new file mode 100644 index 0000000..2bd1ded --- /dev/null +++ b/documentation/api_extracted/StandAloneAppCpp.htm @@ -0,0 +1,169 @@ + + + +Stand-alone Applications (C++) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Stand-alone Applications (C++)

    + + + + +
    + +

    This topic describes how to create a C++ Windows MFC stand-alone application that logs into +a SOLIDWORKS PDM Professional file vault and lists the files in the root folder.

    + +
      +
    1. Start up Microsoft Visual Studio.
    2. +
    3. Click File > New > Project > Visual C++ > MFC/ATL > MFC + Application.
        +
      1. Type the name of your project in Name.
      2. +
      3. Click the Browse button and browse to the folder where to + create your project.
      4. +
      5. Click OK.
      6. +
      7. Click Next.
      8. +
      9. Select application type, Dialog based.
      10. +
      11. Click Next, Next, and Next.
      12. +
      13. Click Finish.
      14. +
      15. Click Build > Build Solution.
      16. +
      +
    4. + + +
    5. Copy C:\Program Files\SOLIDWORKS + PDM\EdmInterface.dll to the project folder.
    6. +
    7. Drag a button from the Toolbox onto the form.
    8. +
    9. Double-click Button1 on the form.
    10. +
    11. Add the following code after the #include statements:
      #import + "Edminterface.dll" no_namespace
    12. Find and replace + //TODO: Add your control + notification handler code + here, which appears + in the button's command handler, with the following code. Fix the formatting + of the code if needed.
      + + //Initialize COM (Usually done just once, for + instance in InitInstance.)
      CoInitialize(0);

      IEdmVault5Ptr poVault;
      HRESULT hRes = poVault.CreateInstance( __uuidof(EdmVault5), NULL );
      try
      {
      + //Create a vault interface.
      if( FAILED(hRes) )
      _com_issue_error(hRes);
      +
      //Log in on the vault.
      poVault->LoginAuto( "MyVault", (long)m_hWnd );
      +
      //Get a pointer to the root folder.
      IEdmFolder5Ptr poFolder;
      poFolder = poVault->RootFolder;
      +
      //Get position of first file in the folder.
      IEdmPos5Ptr poPos;
      poPos = poFolder->GetFirstFilePosition();
      +
      CString oMessage;
      if( poPos->IsNull )
      oMessage = "The root folder of your vault does not contain any files.";
      else
      oMessage = "The root folder of your vault contains these files:\n";
      +
      while( poPos->IsNull == VARIANT_FALSE )
      {
      IEdmFile5Ptr poFile = poFolder->GetNextFile( poPos );
      oMessage += (LPCTSTR)poFile->GetName();
      oMessage += "\n";
      }
      +
      AfxMessageBox( oMessage );
      }
      catch( const _com_error &roError )
      {
      + //We get here if one of the methods above failed.
      if( poVault == NULL )
      {
      AfxMessageBox( _T("Could not create vault interface." ));
      }
      else
      {
      BSTR bsName = NULL;
      BSTR bsDesc = NULL;
      poVault->GetErrorString( (long)roError.Error(), &bsName, &bsDesc );
      bstr_t oName( bsName, false );
      bstr_t oDesc( bsDesc, false );
      +
      bstr_t oMsg = "Something went wrong.\n";
      oMsg += oName;
      oMsg += "\n";
      oMsg += oDesc;
      AfxMessageBox( oMsg );
      }
      }
      +
      //Deinitialize COM.
      CoUninitialize();
    13. +
    +
      +
    1. +
      Replace MyVault in the code with the name of a SOLIDWORKS PDM Professional vault on your computer.
      +
    2. +
    3. +
      If creating this project on a 64-bit computer, change the platform to x64:
      +
        +
      1. +
        Right-click the name of your project in the Solution Explorer and click Properties.
        +
      2. +
      3. +
        Click the Configuration Manager button.
        +
      4. +
      5. +
        Click the down-arrow button in the Platform column and select New. 
        +
      6. +
      7. +
        Select x64 in New platform and click OK.  
        +
      8. +
      9. +
        Click Close. If Active(x64) is not shown in Platform, then repeat Steps 2 - 5 until it is. 
        +
      10. +
      11. +
        Click OK.
        +
      12. +
      +
    4. + +
    5. +
      Specify the project configuration properties:
      +
        +
      1. +
        Right-click the name of your project in the Solution Explorer and click Properties.
        +
      2. +
      3. +
        Click Configuration Properties > General.
        +
      4. +
      5. +
        Set Use of MFC to Use MFC in a Shared DLL.
        +
      6. +
      7. +
        Set Character Set to Use Unicode Character Set.
        +
      8. +
      +
    6. +
    7. +
      Click Build > Clean Solution.
      +
    8. +
    9. +
      Click Build > Rebuild Solution.
      +
    10. +
    11. +
      Click Debug > Start Debugging or press F5.
      +
        +
      1. +
        Click Button1.
        +
        +A message box is displayed that either contains the names of the files in the root folder of the specified vault or informs you that the root folder of the specified vault does not contain any files.
        +
      2. +
      3. +
        Close the form.
        +
      4. +
      +
    12. +
    13. +
      Click File > Save All.
      +
    14. +
    +

    + See +Also

    +

    Stand-alone Applications (VB.NET)

    +

    +Destroy Deleted +Files in Vault Example (C++)

    +

    +Destroy Deleted Files +in Vault Example (VB.NET)

    + +
    + + + + + + diff --git a/documentation/api_extracted/StandardTaskAddIn.htm b/documentation/api_extracted/StandardTaskAddIn.htm new file mode 100644 index 0000000..e56731c --- /dev/null +++ b/documentation/api_extracted/StandardTaskAddIn.htm @@ -0,0 +1,186 @@ + + + +Standard Task Add-in + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Standard Task Add-in

    +
    + You can write your own + task + add-in using SOLIDWORKS PDM Professional API's methods and + interfaces. Doing so gives you full control over what the task should do. +

    However, if + you simply want a task to open files in SOLIDWORKS and run VBScripts on + them, then you can reuse the standard task add-in shipped with SOLIDWORKS PDM + Professional.
    +
    + The standard task add-in provides two tasks:

    +
      +
    • Printing files + using SOLIDWORKS.
    • +
    • Converting + SOLIDWORKS files to other file formats.
    • +
    +

    Additionally you can modify the + standard task add-in to execute any script.

    +
      +
    1. Make sure that + the add-in, SWTaskAddIn, is installed in the vault. +
    2. +
    3. Start the + Administration tool, right-click Tasks in the tree, and select + New Task. +
    4. +
    5. Select the + SWTaskAddIn add-in in the first page of the dialog box. +
    6. +
    7. Go to the Script + page and edit the code in the main function.
      + The Insert Macro button makes it possible to insert macros that + will be replaced with data from SOLIDWORKS PDM Professional when the + script is executed.
      + Read more + about macros in the following section. +
    8. +
    9. Set all other + tasks settings, such as computer on which to execute, notifications, + etc.
    10. +
    +

    + Macros

    +

    The macros in the Insert + Macro menu work inconsistently. Keep in mind:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + Menu Option

    +

    + Macro

    +

    + Note

    +

    + Source File Name

    +

    + <Filename>

    +

    + This option is added as the literal string "<Filename>" to the script. + The script has to scan for the string and replace it with the real file + name.

    +

    + Source File Extension

    +

    + <Extension>

    +

    + This option works like <Filename> in the sense that the macro is not + resolved.

    +

    + Configuration Name

    +

    + <Configuration>

    +

    + This option works like <Filename> in the sense that the macro is not + resolved.

    +

    + Source Folder Path

    +

    + <Path>

    +

    This + macro will be replaced with the file system path to the parent folder of + the source file. Add double quotes around "<Path>" to use it as a + string. Example: + C:\MyVault\Drawings\

    +

    + Vault Root Folder Path

    +

    + <VaultPath>

    +

    + Resolves to the root folder of the vault. For instance: + + C:\MyVault\

    +

    + Task Instance GUID

    +

    + <TaskInstanceGuid>

    +

    + A GUID (Globally Unique Identifier) that identifies the task instance.

    +

    + Source File Path

    +

    + <Filepath>

    +

    + Resolves to the full path to the source file. Example: + + C:\MyVault\Drawings\Part.sldprt

    + +
    +

    You can + create an input card using the card editor to provide a user interface when + the task is launched. The data entered in the card can then be used in the + script. Refer to a card variable value in the script by enclosing it with { + }, for example {Description}, to insert a value from variable, Description.
    +
    + It is a good idea to have a look at the scripts for printing and converting, + which are shipped with SOLIDWORKS PDM Professional, for hints on how to write + scripts. The SOLIDWORKS PDM Professional Help contains additional information + about the Administration tool and using the standard task add-in.

    + +

    See Also

    +

    Task Add-in Sample

    +

    Task Add-in +Sample (C#)

    +

     

    + + + + diff --git a/documentation/api_extracted/StateTransitions.gif b/documentation/api_extracted/StateTransitions.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ee0750359ad1b7e3d0d42b54498261d88184ede GIT binary patch literal 5351 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/StringDicSearch.gif b/documentation/api_extracted/StringDicSearch.gif new file mode 100644 index 0000000000000000000000000000000000000000..853386cee564ae1d3656862fe9ac8f66b5e64edc GIT binary patch literal 3737 zcmc)J`#aP99|!Pv!;H{SY)%=H>9mo<=q^o8W{maY6&DoX^cm-qu3HVjFGLEvS$2z(;~FG3I+5d=PhC_s>8 zgb1>X2tk%0e8mV~36d;EMncF`DT*e=$mC10OesEJif2j*Olf3%Vy%9@Ac!Y?66cJG(5>`Z(!HYzYNGuf- zfS8C76Om$)3`$JGh)Gy686_rT#AI2(i+!#N#aPNI8xTh;&>Tf zF(ieE2#6$ugvcm}jDdV*uuw1_iYG(yzEG-6Fhq-l^5Y?9DpXE`%JU(P3=Sri3d~F5z(`Jg$V_C=u`_kXRy-O2s1SzsLW-w*R{U|Ly`ntbyA~ z8@;P5b2Al>)}?nM;RST0F{#}3P*DB_lx4*G?r%ZQFBuy1bGoZd)^FT$sM?zl^o+zZ zg!kO=y6dcF`uk;DiiT4U^O{4ZvOeiy&7144#pcI)62h3bJS%JiGvuCSm2C+aY&oqN zTD&!&DksZ`^Y`$Buz@?rdYibT&9P${XN|P#1}oyfPQQ9tntNQ&HYf^(AYuxhX2+Nb zI$Q2dykHo+U-f8>JK4duj1=_|;??vRF;SdDnRFE$d<4^3ZvwZTuI)pcF+?87)owX% z>rvOz41LH`U%&ZaTg$hJ?&5971?4wh7AbGKYD?`ukfW+pbIkUTk=;LIU1!&HA=mac zK4WH}_ULPv8#~N$;>;k zx%<64AI-e&Vbs-C_h6X|>MpyNf9rPuN`80u2O3+@-skQNxjn_g3TLKDt*$y0?Cjh= z@4jm<3_ZzkCe37{-yIt_VUjOIfTgW39*znGRd32ryQW zbDHSZ>WcO)+E$--N73q<)~wjwOyy3`&b?}r0oUbzC%&vL^v8X!)6Iz`y0wt6%WdL& z&MO3ME}P85?~S^xXki*1nCoDN+Sb78R!ix*L{z)+#i7W8CeX z9M(iwXe$_b8mipGdAiw+M!nVV_RQ?l-Yf0PFh0`J`)$D7$Xyldc>i{fM`c>vcat24 z%lkVtc<5*p}u0K8J6*pKRm~`#mRBD~I2fAzH`$I_^N`?auG~3N| zcp~Szz~U#fYTTmvpSrm{4%H{lT5Qefc-h&bhQK9`;2y$bHq{?+e2$Dxjijm1eGZW4 z6aD04W)F1uKUBM?h<`RB3XyN1bSUmho7=JRLs$HuXSMRSKHc2Ktyd1jxS|IW82jZl zl11xgsy9r!YVGNdm211xxh>PdzWbl(H2c+mQXy39zSY%**D-0|20h~P%xf3+F|e>Q z{?JJpN+ zfSY+#DIe|b(t0$Pg`<6R%6Cz9W5718>bjbHtaG3uJvG;|!sM)+8667F9n@^M3bj+| za;7l2|L=NUI@6U+`V8cT!J4Of)m7O#0r%9bVh?CX8WJ@w&gF-BT-O=u=36%vX5nM0 z>uc1N$mKzCFt_K}WV1YKn2{z88RTvkOI@d@uAqjg(!|R-b>N7G>HX`}`;rxx4dvDs zw>h>j3bWiU?l%lIxu)xK+gX?Womu0-F+WNn{Wa`hWq!kW%il995e_-o*O5+}%c_(- zkQu6juAPWIp55^3N~=4q`#*wtb{8Iwb29T&M}6MWfubtf0hnr?5-sYKrlPC2X~?sY zvbf8dxH^wpc0;+u2nV9Z1CuPQ>47}Iyr6X6+Oubd-N?Q`t+;jiw$q4IIi21xdfxf| zPJ(t%KizJjs={ZB6+&Gp*=we{cv*g7EhpFgZ%a1Ta2f#f{u4XjT3n+TS)i&i!-)$V zT)}O}KhdiD{-$m?JD0inN5{ZkR2MSKOdbQr=j?GXSHSSnfon>kr8(S^`NqRK*KpvD z@8X?Wl}y|?pj#v_*7~1u)P2_hw`P1)(IJ}SOLhA5O}^Q%*Im?{A`Lxyd!{1!Rjt3o zj=0ejqw-y8JHIPdKCr&zhFLg5UOjk7x2=fDaGLO6(HZIP>40PNsmfE`BZ4MFg&hoI zvWxw@r-_wvTiF^2uM3RN!^#R)#5Gn_sQc)nO03~NLddg6* zXz7uJH&@V*CU*buB%pr2C8=7INaX01F-~U zZuR)6Y||pA=sI_PN8d-aRNHoxa4y@$oHdroYY1MPpXVwm&xQ@WNT&lfA=O0-u` z>~LJ+`TIkxQQZ)O_2}M(g70f=v|ortrca+F`awa1$HYov84q+nNO@W=Hm{|;em-;m z>d&@mhuM+-V6BC!=X+-MTKc{!pwH8sVyErgM_$J+eZMT#n>kq8+Mm92p<>;R&j+*Z z25w9*WMT^@xBo2bzh(U}74nEYJeo3aQEQR=%`d`fgWX?xA!mxewnf@JxjfWpaONIG zf7WML>PQc~iHqGHwOey^@LHnvgL|sc(WyUrqXkVjIjRw`0fL|?F`+?wZ1%`D-J$G| zqzBEbkxB7CL>u=eW%hC>H_u*q^-FCzC3X8;h9!F({>O5tv%>|;o`F=C*rF!)D)a$Ds4FoN<&A&qYip%=3rOl6C z6nqJvKu>G2RvN?CW-e)-ow0&eUZVAnSBg_7mro{Dm#ocSnMe~pnx;HBdF+g#r*!H{fe9_4Vg+ckzF|B;0yD zcGzICsGLLKH#x7Oysx)? zuKsYgergZocVX;P=Pu{(C2P_MvHi~hXK~7#uk93pqy6f21IY+=^M|i5C=<@-ZSIe3 zPFhadvpUAwx2%7SlJLS{G3RF36$!+uAkY>pmw$yV+ zsaiEjC^l8OnW`5SYp_g(X=fM>$C!9$xFu$oxt=g@$=EB**jW>dLuFc9XYNJ?TPJ7k zVkO(n1n(KnMA}3-xSrT&OSAH#!Rhg&7MjN}?cg%avxR0%rx|SZ_Dat3W@q`@BE1~a z0Y7$=i)uzT{FrSP+LWdV2SLk8CuXu%6zJhC^bf44c<=0lweJNe-CVef~o1V3teHxXcAxXPv8<1I(gAdL5X_^gOPH8&l7_c&rG|^9?5}!B6 zq`BtmPv;)W&UFimszMzvPtId?hg5c-tYgzT!+AHfFZkWeGYE|;4h?8PMLlBE9=Kk( z?3&jZ7FdG{ZDZ3I%NOKW`I}5(p<&VKhypk3+!pWSgWWlKL-|Tu3kJOk7?Og*;h1-} zL1Q`e>Ewvy<%=n(OLHyRpKJqAY7$(|ThUg+AbkSkkeCL)-Q%aF}Q@;7_eC$Y( z2|u?87k+6Mp}1tGz`8ZapsaXPQ}LegOOwmR@mfqGIvCRg_EpNyEb86(i+ON`>4`2O z6H1Qwlz34}yxmIlaqG}5pgLC)fMx{|SjQbkV}+twVQ#EbE38;_X&j+6!Kd_8 lS)jZjNNFui8!0`vQksrtXAsylA2yxB&M9NVkVpXR{|md$J%<1Q literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/TaskDetailsPage.png b/documentation/api_extracted/TaskDetailsPage.png new file mode 100644 index 0000000000000000000000000000000000000000..fc492a0b8317a6593cab59f97e533a52e0af3b75 GIT binary patch literal 9005 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 RIGrYDVQzD-#O(V0{{xEeAwU2C literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/TaskList.png b/documentation/api_extracted/TaskList.png new file mode 100644 index 0000000000000000000000000000000000000000..9993a3966460158add52ef8e6fa274c5eaf6e849 GIT binary patch literal 26540 zcmcfpcOaGj8$XUCL^es1ky#)5-1mJwuj_g~uJydGXJOA((7=lw%9N^y!=JM*w7#QBH7#IP; z7#PREPXTKf7;cX-Fg9LbUcP+=R{8DLRZ>SDLlIBaBw4r!_jtoRIh_E>oGIi|^9y>!$Lr%s+(&U@Vx| zgvq>citJ=GefKW-7AeEK;C;^N!MBIY@xgi9@q^)R^QevdM(@%O>lu|+D-)_B!#-nL zjx7hJ8zue|nyMGQVH9k(=iFwUq2GDv889&M#4)f)12C`|FamM$wkAI=9qla5Kpjc; z!dDWPnCO3f=@C2Mq2{rCHP@`y<@E2%SKkqllD4;4uA;<_I<4joh1znfC*FT=T~0Kp ze>LUO6EA}OhdA(lmKT=q39(4C+3UF3=#@lD2Qq|*=#Qjgkr>R!*K%{XbS= z`B{U!F6}6kVo;xq*xP@C1<3y|4-C&a0#BeeDJOH(eR#ih^UpK!kJzZW5*yTsWraLp zL?Vh$Y5>(W^e!>U^KVIA1p;TFcL~vn!au*2bTR}9omhP`S)b*ko^M>^Bp;3>CHb?| zU@^8s`u-_@MdRLfo0soBiDzLFT_wVO6#j?b<}bSDeHQKgHRVY)%pRBfI!+grgTC4{-rYXw-l`3%J%Wg;2_2M@upCne9SpX$aPd03L~-0@ zVEV&;0B0aUn_I^*^7X)>dE>$M#9@}B)XY&bN`D)u%v3+_ngPf9yp_}R}>w=fA1)LT?t6#GPB(Liyy zx@o84^vnxbH1hvxQ6ulAM&xVo36zSw^Zjj2a&EXw#fr+lG?atfYg=i+p&6V;=I1iC zY<8-A@mREP%JWtj8GsdK5`PH%`B4)~e5OAqcj$Ct2$Rfqsg}LlZFYo>*V)mDsGiWl z=gg49%G0#AmLyJ$*STpEhlZ|4;P*el;7}?hh!ye&_uQ-2T z`%dwDj$@2LldrYPMfBA^D`w>D5rd!~Tcpc_>h z#>AQ(4ss>{@#=OqiCtSN=yxQ6v7PcQc$eFzv)%Y>UDf9?x8WK8g~to!1V(O~Fc#xy zVeOzdUSCU7R{UPIcXu+($P-SLUnqVZZk;6`-aX!-5YrMu<|w3`r4H=rWX~Qc%=`P7 zAD;XBX{%nG#~&m!IDQ+&5@Y=;pEvma#)?2@M;8*Qk?XOrL>b1)*46P3nWDUO6#|=%on=ob?~*g^gsrov1N_yVJMAbc zgH^q3G|WihoRO|mw5J?dX3$!H4}D{?bH5=(F5M1N%w_DvZqGP4pm|Um`!f25VDG zxNc1EOZ9ix$VUQ}-RtRf$>hm8EqFk51W)XAn92URA!7!B_1Pvl6~_b!J(>h% z#vMWkdC4L5}E%Y}MLN3bro-7Siru&T1sv~lB((`)SnwO&; z)7^)m8JWk`N#`dfMKJ%3Xc=XJ!f&@b!YLLuTHMo>Jw!SV;cukcrNqX8^Ky6YRqz5}_Vjf{o_l zK{X$wk!(|~Ja{3};KF4Vx_@#4z~Zx(@O?Hn@WHn#yxmR$uSnd`_evZ%{`AEPl~Q%m z<@E;p(xC4ggM9(AwqFlBv)mJk=GlhO@u8!KpQ~qWyuv~*6O7;PW6cvwEPd*tymY(q zM=w3)m0ug|tr1>mEfl?IC98gF^g9@3i;a|uND26^6aQbqxeYZm4$DMMDg0kiT}O!* zE|TjJ@K-Pg{(4jC`;sEK@1B?pIloBkwLh`}sZSN_yZa>rhELYc#@$j@T7&Hz^7k`{g(+aApQ+R9Z*D+x81UJ9|<31K}?8KnWgApKBIiVg| zhZuZoscDbiTbo+2#_bLM3#TstsU6JSp0*yo%FP?OS>Gxr+)>@i!yNZ*V%*`!4=1ES z9anGD>k|R3*Z+Rip^)_wj=VATg)6y}7aA`+<3>9>fIM@^N>ZYj4NDQ4lt3x@tNL+K zL$c8X!L0~)3eT0u8ruPBmYBTk)lI-f=+FLG zBK;&{$k=u-sX2lAK__&TW`De@rDiVUmcP9LByVK!oOWzj6Zc;wh`(sSyIBS^&>=!D zd>f}!RQMZBMVaEMHmDbvP3<12QIgQRe?PO1yL`rKr{w+zGnja_8373^8B;=8A=E9` zDA-h*f5a*2Z$Dy@{0nbD+hDalUAfOX1MZ!N~WSs~8nO=%)sxqU_P2G$9B+fjzwUR}1!MibF;i~kAe zrqk2fhNT1}!;F>aG7C9gkBbUD{TJy?TLqs*f!z;m#CvSI+3=g`v7HoELL!jIUQ1EX zEfSa1nD2CrW{my}}tT(&V2+cSm=%LMFyXK$)aS zce|YyV5b-R5H*|nJ%cdsd~!3YaZ1Xrkg)kH=&tx9GGE-`QbWyyy)EWODm}~I8q)eY z-`*1Ud9%g}W1;vkcWUgUjNt_Ms*2KyM^OrI z^z;tG5u4BjRuyIqQ$ze4H4BYN@oIS<(JRp#8^gTlYG?X`?fK>fu1GQ)I?&;0gxx|d z*~rfFrxHK#;=Rk=3VgzT(j@~n@RHH;IZQ>=Pwf`T5yVPYsaEH9 zh>9b+(%l2bW1RcAKs$mfO#8OZL6f&e3Z%c<$oq@Ys;KwY5lu*RvguSqEK|=x&r+cw z$F(sU7ww8$=&ko^RH|xWbziVwJ8N`ao&>CkVm&c+oUIoT{Tbe%$;f?IjH1Vs7mon? zy)1)+?~V{4+P%Ud&!xd|8rkS()2Uegyw>)YH!F)Z>WZm;?Zx(VeuzA6Zolpr=d#3- zl&l3CW)-5+Pl2?4-lNLBOVSlJEu)cUc;+HSnt6Y(x8%H84-iwo=NjdDw=9=3YD@us zXB&gX!?V;l`#3c_R}zO38S=J3u}E#QDGu`Ljk8vp`Kqmhl#bjuY?WiCJj4tHg~Vbj zJ+gJ$!R6qMUh_{x%$CmkdE#9L%qa23Uc%a}%H}99&=Wi>TL<&dil518icDoq&-h!# z6-E)q`+1f*N3-%y?Buo#^RLWP3?|f_mokFGRom3jaNoH7SChxyONDJtG#_fr8+j@?M&7R7AnCIK zrRAF;Z+k7>04sw&9+wn!*`PpZ#?7SS6a(MDvaiL@d`-@bjh;<#N`cw@I8F4S&<#on zu}JnJY&b3Q;f`ONC$w0n>JfZa-*9Yu5|&~RW}9EZ!fcKDZrHj4fZ{t%2z+q+%bF-< zr7x;UqP3c4VnPg+LzCE~mndX%p}a#bhC);pd;U(+`?1*Da*Dbpxs&{UBNIok9U*iBk}Vm z2BpSiu93_*7Kc(brJZ&^9)&bfReMCyxRn9=CXl3o(}vn=fCmg(4M=dTQT)Ua$=W?% zB4lB{GP4a$+>F&7-R_IAvt!$)m!Ke|3M5RRCN6DN)HbgqEcqxg`N8*fO+P4&TRMqD zBITY9n~7vQnWkQ4YpF%YY)p1NpJqzNw>G7)NgG8lyFxj!8^O)=`$kKR7jP$<#O5wn zBPnnpcd?Z8#*by&og@OK&BNk!?F(Dk3VnNlCoW#B`yIME+>N!PU6Aig?@Whi)^9A` zNo>{E$%b9V(^xl@7rXoBrSB8)-ul!o^*b_JV`5GbHad^o!Zm)=m=8L35cd5M<$LhW zgVU{&u19}RZAnHvH(ABNU+iw;3MxZ#j~56esVOH@lufVSmBL8q1q5Bc6aC(~+JFGO zBqADqo}Uj#IrE1+I@Sy42Mq>%Ce+az&Sf~XyvEp|@b%gQbcd-83iSY_1K!Nh7nK7+ zor&SIB4=+?fIMJ~Ex>7Lrf3oL5M>+z5dwt|ArjhPw$5#L4i{5~5d-Cj+z=nQ@6p=# zL5csZ`e|pW$7H5z{qeO*p>55pm?Pma77_3^2lID;>KjA6t%xoIPXG+lidOso#K62t z8T7@!Pwp&jn#_FpRQg=!&xf)GuG6>B;l%eV9>7KXm+3@)RDgN*J;YwF?*-=W%HAc;6#pIM(M;C&zdKnw_psMB7+%J#&=tRhF%j=CV+eKK!+U699;^Ou zN?pHG_$rnv>vad7{Vn6WMD_LZ*RN^^Wzq(~5Bq*J-&=v3scY6|mlDCxjtMH?W-Gv3 zY{wpYNu%NX^QT=DsvtGm>Z{aCTwWa8gD+ag8%!=<(}lhA4RT%qp=$wu9z8+%ZvrYX0my@9M$+zVQACgnxj##(6ydS_^ul@2VKeGR4Y) zd9?X`CTc^}vEezQruS9?f@gb%5JWYc50*sG=Zi+$O>Kw%-zv@|RFP0<>&a3`&m3g2 zqL}S`VwA!|#Mf+bivr#Mv^CGsLLuM$78Y>KTqoc)@T0opc`E&tC6K{eUL0(CTZ@C) z+gqH@Yu^x1wH_@-42Yl+WqLJ!3v^=sKPx6IPe&SUE+)li;(u2&H!=S?)kHFUDpAKq zU99hu`21|0_Wvb=Oy?T&b3CZb+&xY@-qMZ!kX&6Dp+NM4D(l$aF5~ z!w+3)^`AJi2x+nR`*DdEsxp|2)3*N6wp^|G_b=ju&N5DwUM{XI$2%!IR%zUR$|dYB zjoLIK<>VEM(gb)pdx7}8QFhByr)AT|L{Z~-SsooJN6PC7oDpVLL`+?FmWxAlv318npsCG)N@xe4W4b!Qb*ZEYLkN4_8MP-7Zg!!s?nM9KGSL-I**Vb#nP{AL1U|5Tr@~AJKMR z2sP|8f3`gWNA@noohOo8iG8JSJ3gWJM*6nZ{FvbKL(=mh?;v2ClX0S@XNdDpA3UyG zOsOX*@!8k%4)6NRA5GhdolNDO&?g@b#i*XDI{H=}j?3BkKZYJQRh}-$@kckh{G^$n zI}Rz0HgsCvaWwWXDil)!+tsAa7_WHx014>vdrG^Jqh|Lj&O)`Bs-F&Hu98mHv&F^V|b;0c0cpt{CQB=QGYFBO58D*U)bh8gnAdqUyQAnh?uT-EroCj{ zjNDHSHfYG}6N^-$PBR#k`fS&}CvmPpCF!KlX;vG-vTn)iupoVUCsNV%Vwm6?4xj$$ z2TohsoxHhyx`Cg>j3L>1RB&H-y5TuJ~ zb=lg%u`1F%>Zh!byP!o1$;huhx!AP!=j0}%ycMSAgEpT;<|V5)QBynp4|QD~U-wdG zxRE|xl2m*q+53}mM0@fsTMk96-Sb3Y%`z}cA9>qe$RjM!{itiP`mE)xp7Ux&yS(z# zQ2`}&26ABsPq3G&b?8l=d{C~W=%*7~dX-BjK-XyVxrJr@OfCN-77g?6tWsGJlr&?U zJFR(Pqu5p&YVu1&&P3HQLyG~{Q~5P{Ua2IsM`1hLVL)plKTULh>UY{lNr7dc5EJwL??#yZW{<~Y1&+fPfeR#?@m~1(WTb=wy6FsbstD#?oXZdYM(E``% z^>UQwGc(1rapO$Gco4Mo-l?;&=+;`&OA2veh1)l_gWHEF6y{!Tb3sE054cv1q*|kb zO_^RD=T+YBIFoOca-Kd8Kpkhr#m?E2o}srLakAOv;EugML?qu$u;pz^t|RIS|!=@;6=4 zLZAOp2Tetb-^O+e1mW0XetL19%0Dr;8$a!zs(W&fdC?8YIL{S>EW`|W{(`FbdHt|5 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/TaskSample.htm b/documentation/api_extracted/TaskSample.htm new file mode 100644 index 0000000..2621d56 --- /dev/null +++ b/documentation/api_extracted/TaskSample.htm @@ -0,0 +1,514 @@ + + + +Task Add-in Sample + + + + + + + + + + + +

    SOLIDWORKS PDM Professional +API Help

    +

    Task Add-in Sample

    +
    +

    The following shows the entire source code of a task add-in + written in VB.NET. The add-in:

    +
      +
    • Implements + IEdmAddIn5.
    • +
    • Creates custom pages in the Task property dialog box.
    • +
    • Customizes the task details page.
    • +
    • Displays a user interface on launch.
    • +
    +

    NOTE: To populate the GUID attribute below, click Tools > Create GUID + in the IDE, select GUID Format 6, click Copy, and click Exit. + Replace <Guid("")> + with the copied string.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + + Imports EPDM.Interop.epdm
    Imports System.Runtime.InteropServices

    +

    <Guid("")> _
    <ComVisible(True)> _
    + Public Class TaskAddIn
    + Implements
    + IEdmAddIn5
    +
    + Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault + As IEdmVault5, + ByVal poCmdMgr As + IEdmCmdMgr5) + Implements IEdmAddIn5.GetAddInInfo
    + On Error GoTo ErrHand
    ' Fill in the add-in's description
    +
      poInfo.mbsAddInName = "Task Test Add-in"
    +  poInfo.mbsCompany = "SOLIDWORKS"
    +  poInfo.mbsDescription = "Add-in used to test the task execution system"
    +  poInfo.mlAddInVersion = 1
    +
    ' Minimum SOLIDWORKS PDM Professional version + needed for VB.NET add-ins is 2010
    +
      poInfo.mlRequiredVersionMajor = 10
    +  poInfo.mlRequiredVersionMinor = 0
    +
    'Register this add-in as a task add-in
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun)
    'Register this add-in as being able to append + its own property pages in the Administration tool
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup)
    'Register this add-in to be called when the + task is launched on the client computer
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskLaunch)
    'Register this add-in to provide extra details + in the Details dialog box in the task list in the Administration tool
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails)
    'Register this add-in to be called when the + launch dialog box is closed
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskLaunchButton)
    'Register this add-in to be called when the + set-up wizard is closed
    +
      poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton)
    +
    + Exit Sub
    +
    + ErrHand:
    + Dim v11 As
    + + IEdmVault11
    + v11 = poVault
    + MsgBox(v11.GetErrorMessage(Err.Number))
    + End Sub
    +

    +
    + Private Sub + OnTaskDetails(ByRef poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[])
    +  Dim inst As + + IEdmTaskInstance

    +  inst = poCmd.mpoExtra
    +
    'Create a custom page in the task properties + dialog box; TaskDetailsPage is a 
    +  'user control; TaskDetailsPage::LoadData fills in some edit boxes with
    +  'values from IEdmTaskInstance::GetValEx
    +
      Dim myPage As TaskDetailsPage
    +  myPage = New TaskDetailsPage
    +  myPage.CreateControl()
    +  poCmd.mpoExtra = myPage
    +
    +  poCmd.mlParentWnd = myPage.Handle.ToInt32
    +  poCmd.mbsComment = "My Test Page"
    +
    +  myPage.LoadData(inst)
    +
    + End Sub

    +
    + Private Sub + OnTaskLaunch(ByRef poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[])
    +
    'Display a message box
    + + where the user types data that is + +
    +  '
    passed + + to the task add-in via IEdmTaskInstance::SetValEx
    +
      Dim v11 As + IEdmVault11
    +  v11 = poCmd.mpoVault
    +  If v11.MsgBox(poCmd.mlParentWnd, "Hello!" + vbLf + "Are you sure you want + to launch the test task?", EdmMBoxType.EdmMbt_YesNo) <> EdmMBoxResult.EdmMbr_Yes + Then
    +    poCmd.mbCancel = True
    +    Exit Sub
    +  End If
    +
    'Get the property interface used to access the + framework
    +  Dim inst As + + IEdmTaskInstance

    +  inst = poCmd.mpoExtra
    +  inst.SetValEx("MyLaunchVar", "A launch value")
    +
    + End Sub

    +
    + + Private Sub OnTaskLaunchButton(ByRef + poCmd As EdmCmd, + ByRef ppoData As EdmCmdData[])
    +
    +   'If displaying a card for editing, + this is
      'called when the user clicks OK or Cancel in the + launch dialog box
    +

    + End Sub

    +
    +
    + Private Sub + OnTaskRun(ByRef poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[])
    +
    'Get the property interface used to access the + framework
    +
      Dim inst As + + IEdmTaskInstance
    +  inst = poCmd.mpoExtra
    +
    +  On Error GoTo ErrHand
    'Inform the framework that the task has started
    +
      inst.SetStatus(EdmTaskStatus.EdmTaskStat_Running)
    +
    'Format a message to be displayed in the task + list
    +  Dim msg As String
    +  msg = "Test is running:"
    +  msg = msg + " MyTestSetupVar='" + CStr(inst.GetValEx("MyTestSetupVar"))
    +  msg = msg + "' MyLaunchVar='" + inst.GetValEx("MyLaunchVar")
    +  msg = msg + "' Idx="
    +
    'This is the main worker loop that does all + of the important work; 
    +  'it just beeps and sleeps
    +
      Dim idx As Integer
    +  idx = 1
    +  Dim maxPos As Integer
    +  maxPos = 200
    +  inst.SetProgressRange(maxPos, 0, msg + CStr(idx))
    +  While idx < maxPos
    +    'Update progress bar that shows in the + task list
    +
        inst.SetProgressPos(idx, msg + CStr(idx))
    +    idx = idx + 1
    +
    +    'Do some important work here
    +    System.Media.SystemSounds.Beep.Play()
    +    System.Threading.Thread.Sleep(60000 / maxPos)
    +
    +    'Handle the cancel button in the task + list
    +    If inst.GetStatus() = EdmTaskStatus.EdmTaskStat_CancelPending Then
    +      inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneCancelled)
    +      Exit Sub
    +    End If
    +
    +    'Handle temporary suspension of the task
    +
        If inst.GetStatus() = EdmTaskStatus.EdmTaskStat_SuspensionPending + Then
    +      inst.SetStatus(EdmTaskStatus.EdmTaskStat_Suspended)
    +      While inst.GetStatus() = EdmTaskStatus.EdmTaskStat_Suspended
    +        System.Threading.Thread.Sleep(1000)
    +      End While
    +      If inst.GetStatus() = EdmTaskStatus.EdmTaskStat_ResumePending + Then
    +        inst.SetStatus(EdmTaskStatus.EdmTaskStat_Running)
    +      End If
    +    End If
    +  End While
    +
    'Inform the framework that the task has successfully +
    + + completed
    +  inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneOK)
    +  Exit Sub
    +
    + ErrHand:
    'Return errors to the framework by failing the + task
    +
      inst.SetStatus(EdmTaskStatus.EdmTaskStat_DoneFailed, Err.Number, + "The test task failed!")
    + End Sub

    +
    + + 'Store the custom set-up page here so it + can be accessed from both OnTaskSetup and OnTaskSetupButton
    + Dim currentSetupPage As SetupPage
    + Private Sub + OnTaskSetup(ByRef poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[])
    'Get the property interface used to access the + framework
    +
      Dim props As + + IEdmTaskProperties
    +  props = poCmd.mpoExtra
    +
    'Turn on some properties, e.g., the task can + be launched during a
    +  'state change, 
    can + extend the details page, is called when the
    +  'task is
    + + launched, and supports scheduling
    +
      props.TaskFlags = EdmTaskFlag.EdmTask_SupportsChangeState + + EdmTaskFlag.EdmTask_SupportsDetails + EdmTaskFlag.EdmTask_SupportsInitExec + + EdmTaskFlag.EdmTask_SupportsScheduling
    +
    'Set menu commands that launch this task from + File Explorer
    +
      Dim cmds(0) As EdmTaskMenuCmd
    +  cmds(0).mbsMenuString = "Run the test task"
    +  cmds(0).mbsStatusBarHelp = "This command runs the task add-in"
    +  cmds(0).mlCmdID = 1
    +  cmds(0).mlEdmMenuFlags = EdmMenuFlags.EdmMenu_Nothing
    +  props.SetMenuCmds(cmds)
    +
    'Add a custom setup page; SetupPage is a user + control with an
    +  'edit box; SetupPage::LoadData populates the edit box from a
    +  'variable in IEdmTaskProperties; saving of properties is handled
    +  'by OnTaskSetupButton 
    +
      currentSetupPage = New SetupPage
    +  currentSetupPage.CreateControl()
    +  currentSetupPage.LoadData(poCmd)
    +
    +  Dim pages(0) As EdmTaskSetupPage
    +  pages(0).mbsPageName = "Test Add-in page"
    +  pages(0).mlPageHwnd = currentSetupPage.Handle.ToInt32
    +  pages(0).mpoPageImpl = currentSetupPage
    +
    +  props.SetSetupPages(pages)
    + End Sub

    +
    + + 'Called when the user clicks OK or Cancel + in the
    'task property dialog box
    +
    Private Sub OnTaskSetupButton(ByRef poCmd As EdmCmd, +
    + + ByRef ppoData As EdmCmdData[])
    'The custom set-up page in currentSetupPage +
      'was created in method OnTaskSetup;
    +  'StoreData saves the contents of the edit
      'box in the user control + to
    +  'IEdmTaskProperties in poCmd.mpoExtra
    +
      If poCmd.mbsComment = "OK" And Not currentSetupPage Is + Nothing Then
    +    currentSetupPage.StoreData(poCmd)
    +  End If
    +  currentSetupPage = Nothing
    + End Sub
    +
    + + 'Main entry point of the add-in; called + by SOLIDWORKS
    'PDM Professional for all task-related events
    +
    Public Sub OnCmd(ByRef poCmd As EdmCmd,
    + + ByRef ppoData As EdmCmdData[]) + Implements IEdmAddIn5.OnCmd
    + On Error GoTo ErrHand
    +
    'Check the command type and call the right procedure
    +  Select Case poCmd.meCmdType
    +    Case EdmCmdType.EdmCmd_TaskDetails
    +      OnTaskDetails(poCmd, ppoData)
    +    Case EdmCmdType.EdmCmd_TaskLaunch
    +      OnTaskLaunch(poCmd, ppoData)
    +    Case EdmCmdType.EdmCmd_TaskLaunchButton
    +      OnTaskLaunchButton(poCmd, ppoData)
    +    Case EdmCmdType.EdmCmd_TaskRun
    +      OnTaskRun(poCmd, ppoData)
    +    Case EdmCmdType.EdmCmd_TaskSetup
    +      OnTaskSetup(poCmd, ppoData)
    +    Case EdmCmdType.EdmCmd_TaskSetupButton
    +      OnTaskSetupButton(poCmd, ppoData)
    +  End Select
    +  Exit Sub
    +
    + ErrHand:
    +  Dim v11 As
    + + IEdmVault11
    +  v11 = poCmd.mpoVault
    +  MsgBox(v11.GetErrorMessage(Err.Number))
    + End Sub
    +
    + End Class

    +
    +


    + The following is a resource template of the custom set-up page that is displayed + in the Task property dialog box by TaskAddIn::OnTaskSetup. + It is a user control in Visual Studio with an edit box named TextBox1 and a + button named TestButton.

    +

    +
    +  

    +

    +The code behind the custom set-up page is as follows.
    +

    +
    +

    + + Imports EPDM.Interop.epdm
    +
    + Public Class SetupPage
    +
    + 'Button handler for a button on the page
    + Private Sub TestButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + Handles TestButton.Click
    +  MsgBox("You pressed the test button")
    + End Sub
    +

    + Public Sub LoadData(ByRef poCmd As + EdmCmd)
    +
    +   'Get the property interface used to + access the framework
    +
      Dim props As + IEdmTaskProperties
    +  props = poCmd.mpoExtra
    +
    +   'Populate the edit box from a variable
    TextBox1.Text = props.GetValEx("MyTestSetupVar")
    +
    +
    End Sub


    + + + + + Public Sub StoreData(ByRef + poCmd As EdmCmd)
    +
    'Get the property interface used to access the + framework
    +
      Dim props As + IEdmTaskProperties
    +  props = poCmd.mpoExtra
    +
    'Make sure the user has typed a value in the + edit box
    +  If TextBox1.Text = "" Then
    +    MsgBox("Enter a test value for the add-in!")
    +    poCmd.mbCancel = True
    +    Exit Sub
    +  End If
    +
    'Save the value entered by the user
    +  props.SetValEx("MyTestSetupVar", TextBox1.Text)
    +
    + End Sub
    +
    + End Class

    +
    +


    +
    + The following + is the resource + template of the extra details page added by TaskAddIn::OnTaskDetails. + +It is a user control in Visual Studio that displays two task variables:

    + +
    + + +


    +

    +
    +

    The code behind the extra details + page:
    +

    + +
    + + +

    + + Imports EPDM.Interop.epdm
    + Public Class TaskDetailsPage
    +
    + Public Sub LoadData(ByRef inst As IEdmTaskInstance)
    +
    +  'Populate the editboxes from the variables in the task
    +  TextBoxSetupVar.Text = CStr(inst.GetValEx("MyTestSetupVar"))
    +  TextBoxLaunchVar.Text = CStr(inst.GetValEx("MyLaunchVar"))
    +
    + End Sub
    + End Class
    +

    +
    +

    The following is the set-up page + when the add-in is used in a task.

    +


    +
    +
    + The following is the task details + page when opened from the task list.

    +


    +

    +

    +

     

    +

    + The following is the task list during task execution.

    +

    +
    +

    +

     

    +

    See Also

    +

    Programming + Tasks

    +

    + Standard Task Add-in

    +

    + Task Sample (C#)

    +

    +   
    +

    +
    + + + + + + diff --git a/documentation/api_extracted/TaskSample_CSharp.htm b/documentation/api_extracted/TaskSample_CSharp.htm new file mode 100644 index 0000000..338a6d5 --- /dev/null +++ b/documentation/api_extracted/TaskSample_CSharp.htm @@ -0,0 +1,1743 @@ + + + +Task Add-in Sample (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Task Add-in Sample (C#)

    +

    The following shows the entire source code of a task add-in + written in C#. The add-in:

    +
      +
    • Is created using a C# class library (.NET Framework) + project in Visual Studio.
    • +
    • Implements + IEdmAddIn5.
    • +
    • Creates custom pages in the Task property dialog box.
    • +
    • Customizes the task details page.
    • +
    +

     

    +

    NOTE: To populate the GUID attribute below, click Tools > Create GUID + in the IDE, select GUID Format 6, click Copy, and click Exit. + Replace <Guid("")> + with the copied string.

    +

     

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    +using System;
    +using System.Collections;
    +using System.Collections.Generic;
    +using System.Data;
    +using System.Diagnostics;
    +using EPDM.Interop.epdm;
    +using System.Runtime.InteropServices;
    +using System.Windows.Forms;

    +

    + [Guid(""), +ComVisible(true)] 
    +    public class Class1 : IEdmAddIn5
    +    {

    +        SetupPage SetupPageObj;
    +        public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
    +        {

    +            try
    +            {
    +                poInfo.mbsAddInName = "C# Workflow State Age Task Add-In";
    +                poInfo.mbsCompany = "Dassault Systemes";
    +                poInfo.mbsDescription = "Example demonstrates a task that finds files that have been in selected workflow states a selected number of days";
    +                poInfo.mlAddInVersion = 1;
    +                //Minimum SOLIDWORKS PDM Professional version
    +                //needed for Tasks is 10.0
    +                poInfo.mlRequiredVersionMajor = 10;
    +                poInfo.mlRequiredVersionMinor = 0;

    +                //Register to call OnCmd on task-related events
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun);
    +                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails);
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +

    +
    + private void OnTaskDetails(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskInstance TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
    +                if ((TaskInstance != null))
    +                {
    +                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, TaskInstance);
    +                    //Force immediate creation of the control
    +                    //and its handle
    +                    SetupPageObj.CreateControl();
    +                    SetupPageObj.LoadData(poCmd);
    +                    SetupPageObj.DisableControls();
    +                    poCmd.mbsComment = "State Age Details";
    +                    poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32();
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +
    +
    +
    + +
    +
    + + private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskInstance TaskInstance = default(IEdmTaskInstance);
    +                TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
    +                if ((TaskInstance != null))
    +                {
    +                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_Running);
    +                    TaskInstance.SetProgressRange(100, 0, "Task is running.");

    +                    string NoDays = null;
    +                    NoDays = (string)TaskInstance.GetValEx("NoDaysVar");

    +                    string States = "";
    +                    States = (string)TaskInstance.GetValEx("SelectedStatesVar");

    +                    List<EdmSelItem2> Items = new List<EdmSelItem2>();

    +                    DoSearch((IEdmVault11)poCmd.mpoVault, States, NoDays, Items);

    +                    EdmSelItem2[] NotificationArray = new EdmSelItem2[Items.Count];

    +                    Items.CopyTo(NotificationArray);

    +                    string ProgresssMsg = null;
    +                    if ((Items.Count > 0))
    +                    {
    +                        ProgresssMsg = "Found " + Items.Count.ToString() + " files.";
    +                    }
    +                    else
    +                    {
    +                        ProgresssMsg = ("No files found.");
    +                    }

    +                    TaskInstance.SetProgressPos(100, ProgresssMsg);
    +                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", NotificationArray, ProgresssMsg);
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + +" " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +
    + + 'Store the custom set-up page here so it + can be accessed from both OnTaskSetup and OnTaskSetupButton
    + SetupPage SetupPageObj;
    + + private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                IEdmTaskProperties props = (IEdmTaskProperties)poCmd.mpoExtra;
    +                if ((props != null))
    +                {
    +                    //Set the task properties
    +                    props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsScheduling + (int)EdmTaskFlag.EdmTask_SupportsDetails;

    +                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, props);
    +                    //Force immediate creation of the control
    +                    //and its handle
    +                    SetupPageObj.CreateControl();
    +                    SetupPageObj.LoadData(poCmd);

    +                    EdmTaskSetupPage[] pages = new EdmTaskSetupPage[1];
    +                    //Page name that appears in the
    +                    //navigation pane of the Add +Task dialog
    +                    //in the Administration tool
    +                    pages[0].mbsPageName = "Choose states to check";
    +                    pages[0].mlPageHwnd = SetupPageObj.Handle.ToInt32();
    +                    pages[0].mpoPageImpl = SetupPageObj;

    +                    props.SetSetupPages(pages);

    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " +" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +
    + + 'Called when the user clicks OK or Cancel + in the
    'task property dialog box
    +
    private void OnTaskSetupButton(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +        {
    +            try
    +            {
    +                //Custom setup page, SetupPageObj, is created
    +                //in method Class1::OnTaskSetup; SetupPage::StoreData 
    +                //saves the contents of the list box to poCmd.mpoExtra 
    +                //in the IEdmTaskProperties interface
    +                if (poCmd.mbsComment == "OK" & (SetupPageObj != null))
    +                {
    +                    SetupPageObj.StoreData();
    +                }
    +                SetupPageObj = null;

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + +" " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +
    + + 'Main entry point of the add-in; called + by SOLIDWORKS
    'PDM Professional for all task-related events
    +
    public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +         {

    +             try
    +             {
    +                 switch (poCmd.meCmdType)
    +                 {

    +                     //Called from the Administration tool when
    +                     //the user selects this task add-in from the
    +                     //drop-down list and whenever this task is
    +                     //subsequently edited in the Administration tool
    +                     case EdmCmdType.EdmCmd_TaskSetup:
    +                         OnTaskSetup(ref poCmd, ref ppoData);

    +                         break;
    +                     //Sent when the user clicks OK or
    +                     //Cancel in the task property dialog box
    +                     case EdmCmdType.EdmCmd_TaskSetupButton:
    +                         OnTaskSetupButton(ref poCmd, ref ppoData);

    +                         break;
    +                     //Called when an instance of the
    +                     //task is run
    +                     case EdmCmdType.EdmCmd_TaskRun:
    +                         OnTaskRun(ref poCmd, ref ppoData);

    +                         break;
    +                     //Called from the Task List in the
    +                     //Administration tool when the task details
    +                     //dialog is displayed
    +                     case EdmCmdType.EdmCmd_TaskDetails:
    +                         OnTaskDetails(ref poCmd, ref ppoData);
    +                         break;
    +                 }

    +             }
    +             catch (System.Runtime.InteropServices.COMException ex)
    +             {
    +                 MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +             }
    +             catch (Exception ex)
    +             {
    +                 MessageBox.Show(ex.Message);
    +             }

    +         }
    +
    +


    + The following is a resource template of the custom set-up page that is displayed + in the Task property dialog box by TaskAddIn::OnTaskSetup. + It also appears in the Task Details page + + + + added by TaskAddIn::OnTaskDetails. It is a user control in Visual Studio.

    +

    +
    +  

    +

    +The code behind the custom set-up page is as follows.
    +

    +
    +

    +

    + + + +

    + using + System;

    +

    + using + System.Collections;

    +

    + using + System.Collections.Generic;

    +

    + using + System.Data;

    +

    + using + System.Diagnostics;

    +

    + using + System.Windows.Forms;

    +

    + using + EPDM.Interop.epdm;

    +

    + namespace + StateAgeTask_CSharp

    +

    + {

    +

    +     // Setup page used in the task setup and task details dialogs must be a System.Windows.Forms.UserControl

    +

    +     public + + + partial + + + class + + + SetupPage

    +

    + +     {

    +

    +  

    +

    + +         + + private IEdmVault7 mVault;

    +

    + +         + + private IEdmTaskProperties + mTaskProps;

    +

    + +         + + private IEdmTaskInstance + mTaskInst;

    +

    +         // Constructor called from task setup

    +

    +         public + + + SetupPage(IEdmVault7 + Vault, IEdmTaskProperties Props)

    +

    + +         + {

    +

    + +             + + try

    +

    + +             + {

    +

    + +                 + InitializeComponent();

    +

    + +                 + mVault = Vault;

    +

    + +                 + mTaskProps = Props;

    +

    + +                 + mTaskInst = + + null;

    +

    +  

    +

    + +             + }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +         // Constructor called from task details

    +

    +         public + + + SetupPage(IEdmVault7 + Vault, IEdmTaskInstance Props)

    +

    + +         + {

    +

    + +             + + try

    +

    + +             + {

    +

    + +                 + InitializeComponent();

    +

    + +                 + mVault = Vault;

    +

    + +                 + mTaskProps = + + null;

    +

    + +                 + mTaskInst = Props;

    +

    +  

    +

    + +             + }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +  

    +

    + +         + + public + void LoadData(EdmCmd poCmd)

    +

    + +         + {

    +

    + +             + + try

    +

    + +             + {

    +

    +                 //Add the names of the available workflows

    +

    +                 //to WorkflowsComboBox

    +

    + +                 WorkflowsComboBox.Items.Clear();

    +

    + +                 + IEdmWorkflowMgr6 WorkflowMgr = + + default(IEdmWorkflowMgr6);

    +

    + +                 + WorkflowMgr = + (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);

    +

    + +                 + IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();

    +

    + +                 + + while + (!WorkflowPos.IsNull)

    +

    + +                 + {

    +

    + +                     + IEdmWorkflow6 Workflow = + + default(IEdmWorkflow6);

    +

    + +                     + Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);

    +

    + +                     + WorkflowsComboBox.Items.Add(Workflow.Name);

    +

    + +                 + }

    +

    +  

    +

    + +                 + + string + SelectedWorkflow = + "";

    +

    + +                 + + string + NoDays = + + "";

    +

    + +                 + + if ((mTaskProps != + + null))

    +

    + +                 + {

    +

    +                     //Retrieve the name of the workflow that was

    +

    +                     //selected by the user

    +

    + +                     SelectedWorkflow = (string)mTaskProps.GetValEx("SelectedWorkflowVar");

    +

    +                     //Retrieve the number of days in a state

    +

    +                     //before sending a message

    +

    + +                     NoDays = (string)mTaskProps.GetValEx("NoDaysVar");

    +

    + +                 + }

    +

    + +                 + + else + if ((mTaskInst != + + null))

    +

    + +                 + {

    +

    +                     //Retrieve the name of the workflow that

    +

    +                     //was selected by the user

    +

    + +                     SelectedWorkflow = (string)mTaskInst.GetValEx("SelectedWorkflowVar");

    +

    +                     //Retrieve the number of days in a state

    +

    +                     //before sending a message

    +

    + +                     NoDays = (string)mTaskInst.GetValEx("NoDaysVar");

    +

    + +                 + }

    +

    +  

    +

    + +                 + + + //Select the workflow to display in

    +

    + +                 + + + //WorkflowsComboBox; setting this also

    +

    + +                 + + + //causes SetupPage::WorkflowsComboBox_SelectedIndexChanged

    +

    + +                 + + //to be called to + fill StatesListBox 

    +

    + +                 + + + //with the available states for this workflow

    +

    + +                 + + if (string.IsNullOrEmpty(SelectedWorkflow))

    +

    + +                 + {

    +

    + +                     + WorkflowsComboBox.SelectedIndex = 0;

    +

    + +                 + }

    +

    + +                 + + else

    +

    + +                 + {

    +

    + +                     + WorkflowsComboBox.Text = SelectedWorkflow;

    +

    + +                 + }

    +

    +  

    +

    +  

    +

    +  

    +

    + +             }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +  

    +

    + +         + + public + void StoreData()

    +

    + +         + {

    +

    + +             + + try

    +

    + +             + {

    +

    +                 //Add the selected states to StatesList

    +

    +                 string + StatesList = + + "";

    +

    + +                 + + foreach + (int + SelectedStateIndex + in StatesListBox.SelectedIndices)

    +

    + +                 + {

    +

    + +                     + StatesList += StatesListBox.Items[SelectedStateIndex] + + "";

    +

    + +                 + }

    +

    +                 //Save the states selected by the user

    +

    + +                 mTaskProps.SetValEx("SelectedStatesVar", + StatesList);

    +

    +                 //Save the workflow selected by the user

    +

    + +                 mTaskProps.SetValEx("SelectedWorkflowVar", + WorkflowsComboBox.Text);

    +

    +                 //Save the number of days selected by the user

    +

    + +                 mTaskProps.SetValEx("NoDaysVar", + DaysNumericUpDown.Value.ToString());

    +

    +  

    +

    + +             + }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +  

    +

    +  

    +

    + +         + + private + void + WorkflowsComboBox_SelectedIndexChanged(System.Object sender, + System.EventArgs e)

    +

    + +         {

    +

    + +             + + try

    +

    + +             + {

    +

    +                 //Find the IEdmWorkflow corresponding to the

    +

    +                 //selected workflow name

    +

    + +                 IEdmWorkflowMgr6 WorkflowMgr = + default(IEdmWorkflowMgr6);

    +

    + +                 + WorkflowMgr = + (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);

    +

    + +                 + IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();

    +

    + +                 + IEdmWorkflow6 Workflow = + + null;

    +

    + +                 + IEdmWorkflow6 SelectedWorkflow = + + null;

    +

    + +                 + + while + (!WorkflowPos.IsNull)

    +

    + +                 + {

    +

    + +                     + Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);

    +

    + +                     + + + if + (Workflow.Name == WorkflowsComboBox.Text)

    +

    + +                     + {

    +

    + +                         + SelectedWorkflow = Workflow;

    +

    + +                         + + + break;

    +

    + +                     + }

    +

    + +                 + }

    +

    +  

    +

    + +                 + + + //Add the names of the available states for the

    +

    + +                 + + + //selected workflow to StatesListBox

    +

    + +                 + StatesListBox.Items.Clear();

    +

    + +                 + + if (SelectedWorkflow != + + + null)

    +

    + +                 + {

    +

    + +                     + IEdmPos5 StatePos = SelectedWorkflow.GetFirstStatePosition();

    +

    + +                     + + + while + (!(StatePos.IsNull))

    +

    + +                     + {

    +

    + +                         + IEdmState6 State = + + default(IEdmState6);

    +

    + +                         + State = SelectedWorkflow.GetNextState(StatePos);

    +

    + +                         + StatesListBox.Items.Add(State.Name);

    +

    +  

    +

    + +                     + }

    +

    +  

    +

    + +                 + }

    +

    +  

    +

    + +                 + + string + SelectedStates = + + "";

    +

    + +                 + + if ((mTaskProps != + + null))

    +

    + +                 + {

    +

    + +                     + SelectedStates = (string)mTaskProps.GetValEx("SelectedStatesVar");

    +

    + +                 + }

    +

    + +                 + + else + if ((mTaskInst != + + null))

    +

    + +                 + {

    +

    + +                     + SelectedStates = (string)mTaskInst.GetValEx("SelectedStatesVar");

    +

    + +                 + }

    +

    +  

    +

    + +                 + + string[] + States = SelectedStates.Split(new + string[] { + "\\n" }, StringSplitOptions.None);

    +

    + +                 + + foreach + (string + State + + in + States)

    +

    + +                 + {

    +

    + +                     + + + if + (!string.IsNullOrEmpty(State.Trim()))

    +

    + +                     + {

    +

    + +                         + StatesListBox.SelectedItems.Add(State);

    +

    + +                     + }

    +

    + +                 + }

    +

    +  

    +

    + +             + }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +  

    +

    + +         + + public + void DisableControls()

    +

    + +         + {

    +

    + +             + + try

    +

    + +             + {

    +

    + +                 + WorkflowsComboBox.Enabled = + + false;

    +

    + +                 + StatesListBox.Enabled = + + false;

    +

    + +                 + DaysNumericUpDown.Enabled = + + false;

    +

    + +             + }

    +

    + +             + + catch + (System.Runtime.InteropServices.COMException ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show("HRESULT = 0x" + + ex.ErrorCode.ToString("X") + ex.Message);

    +

    + +             + }

    +

    + +             + + catch (Exception ex)

    +

    + +             + {

    +

    + +                 + MessageBox.Show(ex.Message);

    +

    + +             + }

    +

    + +         + }

    +

    +  

    +

    + +     }

    +

    + }

    +
    + + + + +

     

    +

    See Also

    +

    Programming + Tasks

    +

    + Standard Task Add-in

    +

    + TaskSample (VB.NET)

    +
    + +

    +

     

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Tasks.htm b/documentation/api_extracted/Tasks.htm new file mode 100644 index 0000000..99f8468 --- /dev/null +++ b/documentation/api_extracted/Tasks.htm @@ -0,0 +1,138 @@ + + + +Programming Tasks + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Programming Tasks

    + + + +

    +In + SOLIDWORKS PDM Professional 2009 and earlier, add-ins work only on single client machines:

    +
      +
    • A change-state hook calls the add-in on the machine where the change state command + is executed.
    • +
    +

            - or -

    +
      +
    • A menu + command executes the add-in on the computer where the menu command is selected. +
    • +
    +

    +Although this is often desirable, there are times when you want to execute the add-in on different machines. SOLIDWORKS PDM +Professional and later allow you to program tasks to execute add-ins on other +machines.
    +
    + A task consists of:

    + +
    +
      +
    • Add-in to execute.
    • +
    • Card, if any, to show when the task is launched.
    • +
    • User credentials to use to execute the add-in.
    • +
    • Computers on which to execute the add-in.
    • +
    • + Optional scheduling of the add-in.
    • +
    • Credentials of users who have permission to run the add-in.
    • +
    • Error and success notifications.
    • +
    + +
    +

    + You can read more about + the task execution system in the SOLIDWORKS PDM Professional Help.
    +
    + To program your own task:

    +
      +
    1. Write an add-in DLL that supports + task execution.
    2. +
    3. Add the add-in + to the vault using the Administration tool.
    4. +
    5. Enable execution of the add-in on one or more servers by + selecting the Task Host Configuration command from the context-sensitive menu on the SOLIDWORKS PDM Professional icon in the task bar navigation area + (system tray).
    6. +
    7. Right-click the tasks node in the Administration tool and select + New Task from the menu.
    8. +
    9. Select your add-in + in the task wizard.
    10. +
    11. Select other options in the task wizard.
    12. +
    +

    + The task is executed in one of the following ways: +

    +
      +
    • A task definition spawns task instances + according to a defined schedule.
    • +
    • A workflow change + state action executes the task.
    • +
    • Start the Administration tool, expland Tasks, + double-click Task List, and click Add Task.
    • +
    • Right-click a file vault view and select the task on the + context-sensitive menu.
    • +
    +

    + Using the Standard Task Add-in

    +

    + You do not need to program your own task add-in if you only need to open files in SOLIDWORKS and execute scripts on them. To do + that, use the standard task add-in + that is shipped with SOLIDWORKS PDM Professional.

    +

    Code +Samples 

    + +

    Interfaces

    + +

    + Structures and Constants

    + + + + + + diff --git a/documentation/api_extracted/TraverseFilesFolders.gif b/documentation/api_extracted/TraverseFilesFolders.gif new file mode 100644 index 0000000000000000000000000000000000000000..b00fe367bf13b78b2f7081a4f8598039825c098f GIT binary patch literal 11602 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®&!j#XJqEG7NOY0O)?4-N;w7dIc z%=|p8(h<<=Bhbk-(EN&>1jW4toeB07y#VFUWMWPLT|Mu-P-}`$4V_N}?a-yjP{$li z&#WdA{ZJFNP!t7D61ez(jUdr5EarV_0S~^Qym>sD)rJ5 zHPS4lQ8k59Gi_5bby7Gj(<_}*G_BM3Oj0(L(j(>5D)rOX1XSfr(Jy6CCY{mgBvT(v z)H4mzJvCHc0**n|O*ds!IIYwuB~(n^()H`oTC!B~oYFv5rA?L7KlRiLMO8diRXWvD zR&~?~l~E1*)I5yLRt3{Mjnr6uQeAyiUTsoe)zn!HO+~d;Sw&P@Mb?11RSwKmW4%sD z9o9EBRZ->CONCWyom5W(R%WHvMSa$S4ApNv)^JVMUzOJXL|123)=_QGQtj4LU02+! zRd-d_Wj$A6{uS4E%~nz^RPdxFbDdUxP1j=8*MfajJtfv_C0KSfSbRlTc&*S?%~y&= zz<^E9fvs1PpwNu9*wa~vXiZp%UD#gb))8t6lEqlb(^x=SS&l7Pdu`VJq#5bK)>Q4( zZOzo#`5tfW*pc{Hmkn8;RS21F+3|Z>^x+&z4O)>HTBR-8yZKpqomr2)SDW<~oPAiD zZC9-&7_NQVkce8Sb5E)*8lb&eq0QPI^_CFHSy$azhD}-M`3)zr+N3pGc@>(wJ(alK z)swB(o&^xR1>9g2+m5glIyydOjisf18%_!;RDe5g=%RS!U-QG$fUb*eu-^E^% z(q4(;Uh*~G>m`-+RbKIBUay5*w?*CQmEY;TOK)18!drCY2%9;2w5hsnz~r zA?9HQ2H*;o;S&bkCHA=v0Ob)L-BE5`1J#D@JI++bs#TU* zSN;gsy=3ysmh*WHE@VcorD5)fVxGBap&zrOWw5ekrzKrd z#!lg?X6LwOwXNMP%U_NIFX61OgQzN!q6861q3l*VX??&itTUPhKDe}3kFz~`E_>6^ysoYv``=INgH>7NGb zpr$=|nHH8-;8I}bil$YZ{uiNk>ZgY4sFv!fzG*&th@$R@h?b_8p64}<&wp_j`~vH- zChM{`>$67dv{vi2X6v?g>$gs8mQuh3+z74aCa&IG{3PqZ5o@^i>%Ru(rtHeL?90Y%$W{R;$iKv{>y|dH{>BF9uWsrTID$Kv z?95i})n@J1-fIAkrWu^>ylT3pZP13T z+jiX01Z!;|KHnDZ>89@LUTbaOfji*7n3?U2sO@}W?ykjJ$le0!v+nao@ANjmC@}B2 zHtPOG>aK3?&D?A0R`2`9@730Z;ydi)e(wm5@4PP1vQF*%Ht+-gYq>^j4RGN6B<7^* z8K?0YxA7Z)>K6A66CVf^UuVF?l?>}lJZK2 z3`sXBO4oGb;B<~E^iRi*OZRkAFZBgx!%Ro@!He+T%0 z*NS{6_<}e1gGcy;SNN2u_l9@)hlluxe|XfQ_=>l9z?uY8umS`afdfzmK@fyVn1qWb z`I0wziAVXASNWA^`Ie7(lZW}3m-(5e`I@(Qk;nO**ZG|nd5~9z1DF5+C;%(Sg*li5 zkVpEYSNf%AdZrh7LLda5p9HASd8oJgowxd^m-?;e`mV3~tM~e_$NH=%`?5FttQUK( zC;Lfg`nGrbw}<< + + +Traverse Folders and Files in Vault Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Traverse Folders and Files in Vault Example (C#)

    +

    This example shows how to recursively traverse all of the +folders and files in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    +

    +//----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//  2. Click File > New > Project > Visual C# > Windows Forms Application.
    +//  3. Type TraverseFilesFoldersCSharp in Name.
    +//  4. Click Browse and navigate to the folder where to create the project.
    +//  5. Click OK
    +//  6. Replace the code in Form1.cs with this code.
    +//  7. Replace the code in Form1.Designer.cs with +this code.
    +//  8. If using Microsoft Visual Studio 2012 and .NET Framework 4.5, ensure
    +//     that the Prefer 32-bit check box is cleared +(right-click the project
    +//     name in the Solution Explorer and click Properties. +On the Build tab,
    +//     if Platform target is set to Any CPU, +ensure that Prefer 32-bit is cleared.)

    +//  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click +Browse
    +//     navigate to the top folder of your SOLIDWORKS PDM Professional installation,
    +//     locate and select EPDM.Interop.epdm.dll).

    +// 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +// 11. Ensure +that the vault contains one or more checked-out files.
    +// 12. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays a Traverse +Folders and Files dialog.
    +// 2. Select a vault.
    +// 3. Click Log +in, get client log, get checked-out files in vault.
    +// 4. Displays a message box with the vault type.
    +// 5. Click OK.
    +// 6. Populates Client log and Checked-out files.

    +// 7. Close the dialog.
    +//---------------------------------------------------------------------------- 

    +

    +

    //Form1.cs

    +

    +using System;
    +using System.Diagnostics;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;
    +using EPDM.Interop.epdm;

    +namespace TraverseFilesAndFoldersCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        IEdmVault20 vault;
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }

    +        void TraverseFilesAndFolders_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Declare and create an instance of IEdmVault5
    +                IEdmVault5 vault1 = new EdmVault5();

    +                vault = (IEdmVault20)vault1;

    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void TraverseFoldersButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                

    +                //Log into selected vault as the current user
    +                vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());

    +                MessageBox.Show(vault.GetVaultType().ToString(), "Vault type");

    +                String log;
    +                vault.GetClientLog(out log);
    +                textBox1.Text = log;

    +                TraverseFolder(vault.RootFolder);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void TraverseFolder(IEdmFolder5 CurFolder)
    +        {
    +            try
    +            {
    +                //Enumerate the files in the folder
    +                IEdmPos5 FilePos = default(IEdmPos5);
    +                FilePos = CurFolder.GetFirstFilePosition();
    +                IEdmFile5 file = default(IEdmFile5);
    +                while (!FilePos.IsNull)
    +                {
    +                    file = CurFolder.GetNextFile(FilePos);
    +                    //Get its checked out status
    +                    if (file.IsLocked)
    +                    {
    +                        listBox1.Items.Add(file.LockPath);
    +                    }
    +                }

    +                //Enumerate the sub-folders in the folder
    +                IEdmPos5 FolderPos = default(IEdmPos5);
    +                FolderPos = CurFolder.GetFirstSubFolderPosition();
    +                while (!FolderPos.IsNull)
    +                {
    +                    IEdmFolder5 SubFolder = default(IEdmFolder5);
    +                    SubFolder = CurFolder.GetNextSubFolder(FolderPos);
    +                    TraverseFolder(SubFolder);
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    + +

    //Form1.Designer.cs

    +

    +namespace TraverseFilesAndFoldersCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.TraverseFoldersButton = new System.Windows.Forms.Button();
    +            this.label1 = new System.Windows.Forms.Label();
    +            this.label2 = new System.Windows.Forms.Label();
    +            this.listBox1 = new System.Windows.Forms.ListBox();
    +            this.textBox1 = new System.Windows.Forms.TextBox();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(25, 30);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(28, 46);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // TraverseFoldersButton
    +            // 
    +            this.TraverseFoldersButton.Location = new System.Drawing.Point(28, 84);
    +            this.TraverseFoldersButton.Name = "TraverseFoldersButton";
    +            this.TraverseFoldersButton.Size = new System.Drawing.Size(238, 44);
    +            this.TraverseFoldersButton.TabIndex = 2;
    +            this.TraverseFoldersButton.Text = "Log in, get client log, get checked-out files in vault";
    +            this.TraverseFoldersButton.UseVisualStyleBackColor = true;
    +            this.TraverseFoldersButton.Click += new System.EventHandler(this.TraverseFoldersButton_Click);
    +            // 
    +            // label1
    +            // 
    +            this.label1.AutoSize = true;
    +            this.label1.Location = new System.Drawing.Point(25, 158);
    +            this.label1.Name = "label1";
    +            this.label1.Size = new System.Drawing.Size(53, 13);
    +            this.label1.TabIndex = 3;
    +            this.label1.Text = "Client log:";
    +            // 
    +            // label2
    +            // 
    +            this.label2.AutoSize = true;
    +            this.label2.Location = new System.Drawing.Point(29, 349);
    +            this.label2.Name = "label2";
    +            this.label2.Size = new System.Drawing.Size(92, 13);
    +            this.label2.TabIndex = 4;
    +            this.label2.Text = "Checked-out files:";
    +            // 
    +            // listBox1
    +            // 
    +            this.listBox1.FormattingEnabled = true;
    +            this.listBox1.HorizontalScrollbar = true;
    +            this.listBox1.Location = new System.Drawing.Point(32, 365);
    +            this.listBox1.Name = "listBox1";
    +            this.listBox1.ScrollAlwaysVisible = true;
    +            this.listBox1.Size = new System.Drawing.Size(234, 147);
    +            this.listBox1.TabIndex = 5;
    +            // 
    +            // textBox1
    +            // 
    +            this.textBox1.Location = new System.Drawing.Point(28, 174);
    +            this.textBox1.Multiline = true;
    +            this.textBox1.Name = "textBox1";
    +            this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
    +            this.textBox1.Size = new System.Drawing.Size(238, 153);
    +            this.textBox1.TabIndex = 6;
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(293, 531);
    +            this.Controls.Add(this.textBox1);
    +            this.Controls.Add(this.listBox1);
    +            this.Controls.Add(this.label2);
    +            this.Controls.Add(this.label1);
    +            this.Controls.Add(this.TraverseFoldersButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Traverse Folders and Files";
    +            this.Load += new System.EventHandler(this.TraverseFilesAndFolders_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button TraverseFoldersButton;
    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.Label label2;
    +        private System.Windows.Forms.ListBox listBox1;
    +        private System.Windows.Forms.TextBox textBox1;
    +    }
    +}

    +

     

    +
    +
    Back to top
    +
    + +
    + + + + diff --git a/documentation/api_extracted/Traverse_Folders_and_Files_in_Vault_Example_VBNET.htm b/documentation/api_extracted/Traverse_Folders_and_Files_in_Vault_Example_VBNET.htm new file mode 100644 index 0000000..d984846 --- /dev/null +++ b/documentation/api_extracted/Traverse_Folders_and_Files_in_Vault_Example_VBNET.htm @@ -0,0 +1,309 @@ + + + +Traverse Folders and Files in Vault Example (VB.NET) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Traverse Folders and Files in Vault Example (VB.NET)

    +

    This example shows how to recursively traverse all of the folders and files +in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    +

    + +

    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'  2. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'  3. Type TraverseFilesFolders in Name.
    +'  4. Click Browse and navigate to the folder where to create the project.
    +'  5. Click OK
    +'  6. Replace the code in Form1.vb with this code.
    +'  7. Replace the code in Form1.Designer.vb with this code.
    +'  8. If using Microsoft Visual Studio 2012 and .NET Framework 4.5, ensure
    +'     that the Prefer 32-bit check box is cleared +(right-click the project
    +'     name in the Solution Explorer and click Properties. +On the Compile tab,
    +'     if Target CPU is set to AnyCPU, ensure +that Prefer 32-bit is cleared.)

    +'  9. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click +Browse
    +'     navigate to the top folder of your SOLIDWORKS PDM Professional installation, 
    +'     locate and select EPDM.Interop.epdm.dll).

    +' 10. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +' 11. Ensure that the vault contains one or more +checked-out files.
    +' 12. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays a Traverse +Folders and Files dialog.
    +' 2. Select a vault.
    +' 3. Click Log in, get client log, get +checked-out files in vault.
    +' 4. Displays a message box with the vault type.
    +' 5. Click OK.
    +' 6. Populates Client log and Checked-out files.

    +' 7. Close the dialog.
    +'---------------------------------------------------------------------------- 

    +

     

    +

    'Form1.vb

    + + 

    +

    +Imports EPDM.Interop.epdm

    +

    +Public Class TraverseFilesFolders

    +    Dim vault As IEdmVault20
    +    Public Sub TraverseFilesFolders_Load(
    +ByVal sender As System.Object,
    +ByVal e As System.EventArgs) _
    +      Handles MyBase.Load

    +        Try

    +            Dim Views() As EdmViewInfo = Nothing
    +            Dim vault5 As IEdmVault5 = New EdmVault5()
    +            vault = DirectCast(vault5, IEdmVault20)


    +            vault.GetVaultViews(Views, False)
    +           
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If

    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" +
    +ex.ErrorCode.ToString("X") + vbCrLf +
    +ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub TraverseFoldersButton_Click(
    +ByVal sender As System.Object,
    +ByVal e As System.EventArgs) _
    +      Handles TraverseFoldersButton.Click

    +        Try

    +            'Log into selected vault as the current user
    +            vault.LoginAuto(VaultsComboBox.Text,
    +Me.Handle.ToInt32())

    +            MessageBox.Show(vault.GetVaultType().ToString(), "Vault type")

    +            Dim log As String = Nothing
    +            vault.GetClientLog(log)
    +            TextBox1.Text = log

    +            TraverseFolder(vault.RootFolder)

    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" +
    +ex.ErrorCode.ToString("X") + vbCrLf +
    +ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Public Sub TraverseFolder(
    +ByVal CurFolder As IEdmFolder5)

    +        Try

    +            'Enumerate the files in the folder
    +            Dim FilePos As IEdmPos5
    +            FilePos = CurFolder.GetFirstFilePosition
    +            Dim file As IEdmFile5
    +            While Not FilePos.IsNull
    +                file = CurFolder.GetNextFile(FilePos)
    +                'Get its checked out status
    +                If file.IsLocked Then
    +                    ListBox2.Items.Add(file.LockPath)
    +                End If
    +            End While

    +            'Enumerate the subfolders in the folder
    +            Dim FolderPos As IEdmPos5
    +            FolderPos = CurFolder.GetFirstSubFolderPosition
    +            While Not FolderPos.IsNull
    +                Dim SubFolder As IEdmFolder5
    +                SubFolder = CurFolder.GetNextSubFolder _
    +                  (FolderPos)
    +                TraverseFolder(SubFolder)
    +            End While


    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" +
    +ex.ErrorCode.ToString("X") + vbCrLf +
    +ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +End Class

    + +
    +

    'Form1.Designer.vb

    +
    +

    + <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    + Partial Class TraverseFilesFolders
    +     Inherits System.Windows.Forms.Form

    +     'Form overrides dispose to clean up the component list.
    +     <System.Diagnostics.DebuggerNonUserCode()> _
    +     Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +         Try
    +             If disposing AndAlso components IsNot Nothing Then
    +                 components.Dispose()
    +             End If
    +         Finally
    +             MyBase.Dispose(disposing)
    +         End Try
    +     End Sub

    +     'Required by the Windows Form Designer
    +     Private components As System.ComponentModel.IContainer

    +     'NOTE: The following procedure is required by the Windows Form Designer
    +     'It can be modified using the Windows Form Designer.  
    +     'Do not modify it using the code editor.
    +     <System.Diagnostics.DebuggerStepThrough()> _
    +     Private Sub InitializeComponent()
    +         Me.Label1 = New System.Windows.Forms.Label()
    +         Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +         Me.TraverseFoldersButton = New System.Windows.Forms.Button()
    +         Me.Label2 = New System.Windows.Forms.Label()
    +         Me.Label3 = New System.Windows.Forms.Label()
    +         Me.ListBox2 = New System.Windows.Forms.ListBox()
    +         Me.TextBox1 = New System.Windows.Forms.TextBox()
    +         Me.SuspendLayout()
    +         '
    +         'Label1
    +         '
    +         Me.Label1.AutoSize = True
    +         Me.Label1.Location = New System.Drawing.Point(22, 34)
    +         Me.Label1.Name = "Label1"
    +         Me.Label1.Size = New System.Drawing.Size(91, 13)
    +         Me.Label1.TabIndex = 0
    +         Me.Label1.Text = "Select vault view:"
    +         '
    +         'VaultsComboBox
    +         '
    +         Me.VaultsComboBox.FormattingEnabled = True
    +         Me.VaultsComboBox.Location = New System.Drawing.Point(25, 50)
    +         Me.VaultsComboBox.Name = "VaultsComboBox"
    +         Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +         Me.VaultsComboBox.TabIndex = 1
    +         '
    +         'TraverseFoldersButton
    +         '
    +         Me.TraverseFoldersButton.Location = New System.Drawing.Point(25, 89)
    +         Me.TraverseFoldersButton.Name = "TraverseFoldersButton"
    +         Me.TraverseFoldersButton.Size = New System.Drawing.Size(212, 34)
    +         Me.TraverseFoldersButton.TabIndex = 2
    +         Me.TraverseFoldersButton.Text = "Log in, get client log, get checked-out files in vault"
    +         Me.TraverseFoldersButton.UseVisualStyleBackColor = True
    +         '
    +         'Label2
    +         '
    +         Me.Label2.AutoSize = True
    +         Me.Label2.Location = New System.Drawing.Point(22, 144)
    +         Me.Label2.Name = "Label2"
    +         Me.Label2.Size = New System.Drawing.Size(53, 13)
    +         Me.Label2.TabIndex = 4
    +         Me.Label2.Text = "Client log:"
    +         '
    +         'Label3
    +         '
    +         Me.Label3.AutoSize = True
    +         Me.Label3.Location = New System.Drawing.Point(24, 310)
    +         Me.Label3.Name = "Label3"
    +         Me.Label3.Size = New System.Drawing.Size(89, 13)
    +         Me.Label3.TabIndex = 5
    +         Me.Label3.Text = "Checked-out files:"
    +         '
    +         'ListBox2
    +         '
    +         Me.ListBox2.FormattingEnabled = True
    +         Me.ListBox2.HorizontalScrollbar = True
    +         Me.ListBox2.Location = New System.Drawing.Point(27, 326)
    +         Me.ListBox2.Name = "ListBox2"
    +         Me.ListBox2.ScrollAlwaysVisible = True
    +         Me.ListBox2.SelectionMode = System.Windows.Forms.SelectionMode.None
    +         Me.ListBox2.Size = New System.Drawing.Size(210, 160)
    +         Me.ListBox2.TabIndex = 6
    +         '
    +         'TextBox1
    +         '
    +         Me.TextBox1.Location = New System.Drawing.Point(25, 160)
    +         Me.TextBox1.Multiline = True
    +         Me.TextBox1.Name = "TextBox1"
    +         Me.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both
    +         Me.TextBox1.Size = New System.Drawing.Size(212, 147)
    +         Me.TextBox1.TabIndex = 7
    +         '
    +         'TraverseFilesFolders
    +         '
    +         Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +         Me.ClientSize = New System.Drawing.Size(258, 509)
    +         Me.Controls.Add(Me.TextBox1)
    +         Me.Controls.Add(Me.ListBox2)
    +         Me.Controls.Add(Me.Label3)
    +         Me.Controls.Add(Me.Label2)
    +         Me.Controls.Add(Me.TraverseFoldersButton)
    +         Me.Controls.Add(Me.VaultsComboBox)
    +         Me.Controls.Add(Me.Label1)
    +         Me.Name = "TraverseFilesFolders"
    +         Me.Text = "Traverse Folders and Files"
    +         Me.ResumeLayout(False)
    +         Me.PerformLayout()

    +     End Sub
    +     Friend WithEvents Label1 As System.Windows.Forms.Label
    +     Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +     Friend WithEvents TraverseFoldersButton As System.Windows.Forms.Button
    +     Friend WithEvents Label2 As Label
    +     Friend WithEvents Label3 As Label
    +     Friend WithEvents ListBox2 As ListBox
    +     Friend WithEvents TextBox1 As TextBox
    + End Class

    +

     

    + + + + + diff --git a/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_CSharp.htm b/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_CSharp.htm new file mode 100644 index 0000000..5233d83 --- /dev/null +++ b/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_CSharp.htm @@ -0,0 +1,355 @@ + + + +Traverse Users and Groups in Vault Example (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Traverse Users and Groups in Vault Example (C#)

    +

    This example shows how to traverse the users and groups in +a vault and send a message, also called a notification, to all logged-in users +of the +vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +

    //----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > C# > Windows Forms Application.
    +//    b. Type UsersAndGroupsCSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. Replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Referenceclick 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder 
    +//    of your SOLIDWORKS PDM Professional installation, locate and click 
    +//    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Ensure that the vault contains one or more users and one or more
    +//    workflows.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays a dialog.
    +//  2. Select a vault.
    +//  3. Click Traverse users.
    +//     Three message boxes report:
    +//     * users
    +in the vault,
    +//     * state permissions for a user in the vault,
    +//       - and -
    +//     * transition permissions for a user in the vault.

    +//  4. Click OK to close each message box.
    +//  5. Click Traverse groups.
    +//     A message box reports +the groups in the vault.
    +//  6. Click OK to close the message box.
    +//  7. Click Traverse group members.
    +//     A message box reports +the users of each group in the vault.
    +//  8. Click OK to close the message box.
    +//  9. Click Send consultation request.
    +//     After several minutes, a SOLIDWORKS PDM Professional notification 
    +//     appears only to logged-in users. 
    +// 10. To open the the message, click:

    +//     * the notification while it is displayed,
    +//     * the SOLIDWORKS PDM Professional tray icon,

    +//       - or -
    +//     * Tools > Inbox in the +vault view.
    +// 11. Close the dialog.

    +//----------------------------------------------------------------------------
    +//Form1.cs 
    +using System.IO;
    +using System.Xml.Serialization;
    +using EPDM.Interop.epdm;
    +using System.Windows.Forms;
    +using System.Runtime.InteropServices;

    + +namespace UsersAndGroupsCSharp
    +{
    +     public partial class Form1 : Form
    +     + {
    +         public Form1()
    +         + {
    +             + InitializeComponent();
    +         + }

    + +         void UsersAndGroupsCSharp_Load(System.Object sender, System.EventArgs e)
    +         + {

    + +             IEdmVault8 vault = (IEdmVault8)new EdmVault5();
    +             EdmViewInfo[] Views = { };

    +             + vault.GetVaultViews(out Views, false);
    +             + VaultsComboBox.Items.Clear();
    +             foreach (EdmViewInfo View in Views)
    +             + {
    +                 + VaultsComboBox.Items.Add(View.mbsVaultName);
    +             + }
    +             if (VaultsComboBox.Items.Count > 0)
    +             + {
    +                 + VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +             + }
    +         + }

    +

    +

    +        private void TraverseUsersButton_Click(System.Object sender, System.EventArgs e)
    +
            {
                    IEdmVault5 vault = new EdmVault5();
                    IEdmVault7 vault1 = null;
     
                    if (vault == null)
                    {
                        vault = new EdmVault5();
                    }
     
                    vault1 = (IEdmVault7)vault;
     
                    //Log into selected vault as the current user
                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
     
                    //Declare an IEdmUserMgr9 object
                    IEdmUserMgr9 UserMgr = default(IEdmUserMgr9);
                    UserMgr = vault1.CreateUtility(EdmUtility.EdmUtil_UserMgr);
     
                    EdmStatePermission[] ppoPermissions = {
     
        };
                    EdmTransitionPermission[] ppoTransitionPermissions = {
     
        };
     
                    string Users = null;
                    IEdmPos5 UserPos = default(IEdmPos5);
                    IEdmUser5 User = default(IEdmUser5);
                    UserPos = UserMgr.GetFirstUserPosition();
                    while (!UserPos.IsNull)
                    {
                        User = UserMgr.GetNextUser(UserPos);
                        Users = Users + User.Name + " ID: " + User.ID + "\n";
                    }
     
                    MessageBox.Show(Users, vault1.Name + " Vault Users"MessageBoxButtons.OK, MessageBoxIcon.Information);
     
                    //Get permissions for all states for a user 
                    UserMgr.GetStatePermissions(User.ID, EdmObjectType.EdmObject_User, 0, out ppoPermissions);
                    string str = null;
                    str = "EdmStatePermissions for a user in the vault" + "\n";
                    str = str + "\n";
                    foreach (EdmStatePermission item in ppoPermissions)
                    {
     
                       str = str + "mlOwnerID: " + item.mlOwnerID + "\n";
                        str = str + "meOwnerType (EdmObjectType.EdmObject_User (7) or EdmObjectType.EdmObject_UserGroup (8)): " + item.meOwnerType + "\n";
                        str = str + "mlStateID: " + item.mlStateID + "\n";
                        str = str + "mlEdmRightFlag as defined in EdmRightFlags: " + item.mlEdmRightFlag + "\n";
                        str = str + "\n";
     
                    }
                    MessageBox.Show(str);
     
                    //Get permissions for all transitions for a user 
                    UserMgr.GetTransitionPermissions(User.IDEdmObjectType.EdmObject_User, 0, out ppoTransitionPermissions);
                    str = "EdmTransitionPermissions for a user in the vault" + "\n";
                    str = str + "\n";
                    foreach (EdmTransitionPermission item in ppoTransitionPermissions)
                    {
     
                        str = str + "mlOwnerID: " + item.mlOwnerID + "\n";
                        str = str + "meOwnerType (EdmObjectType.EdmObject_User (7) or EdmObjectType.EdmObject_UserGroup (8)): " + item.meOwnerType + "\n";
                        str = str + "mlTransitionID: " + item.mlTransitionID + "\n";
                        str = str + "mlEdmRightFlag as defined in EdmTransitionRightFlags: " + item.mlEdmRightFlag + "\n";
                        str = str + "\n";
     
                    }
                    MessageBox.Show(str);
    +        }
            
     
    +        private void TraverseGroupsButton_Click(System.Object sender, System.EventArgs e)
            + {
     
                //Declare and create an instance of IEdmVault5 object
    +            IEdmVault5 vault = new EdmVault5();
    +            //Log into selected vault as the current user
                + vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
     
    +            //Declare an IEdmUserMgr5 object
    +            IEdmUserMgr5 UserMgr = default(IEdmUserMgr5);
    +            //The IEdmUserMgr5 interface is implemented by the
    +            //same class as the IEdmVault5 interface,
    +            //so assign the value of the IEdmVault5 object
                + UserMgr = (IEdmUserMgr5)vault;
     
    +            string Groups = "";
    +            IEdmPos5 UserGroupPos = default(IEdmPos5);
                + UserGroupPos = UserMgr.GetFirstUserGroupPosition();
    +            while (!UserGroupPos.IsNull)
                + {
                    IEdmUserGroup5 UserGroup = default(IEdmUserGroup5);
                    + UserGroup = UserMgr.GetNextUserGroup(UserGroupPos);
                    + Groups = Groups + UserGroup.Name + "\n";
                + }
                MessageBox.Show(Groups, vault.Name + " Vault Groups"MessageBoxButtons.OK, MessageBoxIcon.Information);
            + }
     
            private void TraverseGroupMembersButton_Click(System.Object sender, System.EventArgs e)
            + {
     
                //Declare and create an instance of IEdmVault5 object
    +            IEdmVault5 vault = new EdmVault5();
    +            //Log into selected vault as the current user
                + vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
     
    +            //Declare an IEdmUserMgr5 object
    +            IEdmUserMgr5 UserMgr = default(IEdmUserMgr5);
    +            //The IEdmUserMgr5 interface is implemented by the 
    +            //same class as the IEdmVault5 interface, 
    +            //so assign the value of the IEdmVault5 object
                + UserMgr = (IEdmUserMgr5)vault;
     
    +            string Groups = "";
    +            IEdmPos5 UserGroupPos = default(IEdmPos5);
                + UserGroupPos = UserMgr.GetFirstUserGroupPosition();
    +            while (!UserGroupPos.IsNull) {
    +                IEdmUserGroup5 UserGroup = default(IEdmUserGroup5);
                    + UserGroup = UserMgr.GetNextUserGroup(UserGroupPos);
                    + Groups = Groups + UserGroup.Name + ":\n";
                    + Groups = Groups + GetMembers(UserGroup);
                + }
                MessageBox.Show(Groups, vault.Name + " Vault Group and Users"MessageBoxButtons.OK, MessageBoxIcon.Information);
                + }
     
            private string GetMembers(IEdmUserGroup5 UserGroup)
            + {
                string functionReturnValue = null;
     
                + functionReturnValue = "";
    +            string Users = "";
    +            IEdmPos5 UserPos = default(IEdmPos5);
                + UserPos = UserGroup.GetFirstUserPosition();
    +            while (!UserPos.IsNull)
                + {
                    IEdmUser5 User = default(IEdmUser5);
                    + User = UserGroup.GetNextUser(UserPos);
                    + Users = Users + " " + User.Name + "\n";
                + }
                + functionReturnValue = Users;
                return functionReturnValue;
            + }
     
            private void SendConsultationRequestButton_Click(System.Object sender, System.EventArgs e)
            + {
     
                //Declare and create an instance of IEdmVault5 object
    +            IEdmVault5 vault = new EdmVault5();
    +            //Log into selected vault as the current user
                + vault.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
     
    +            //Declare an IEdmUserMgr5 object
    +            IEdmUserMgr5 UserMgr = default(IEdmUserMgr5);
    +            //The IEdmUserMgr5 interface is implemented by the
    +            //same class as the IEdmVault5 interface,
    +            //so assign the value of the IEdmVault5 object
                + UserMgr = (IEdmUserMgr5)vault;
     
    +            IEdmUserGroup5 UserGroup = default(IEdmUserGroup5);
                + UserGroup = UserMgr.GetUserGroup("All Users");
    +            if ((UserGroup != null))
                + {
                    IEdmPos5 UserPos = default(IEdmPos5);
                    + UserPos = UserGroup.GetFirstUserPosition();
    +                while (!UserPos.IsNull)
                    + {
                        IEdmUser5 User = default(IEdmUser5);
                        + User = UserGroup.GetNextUser(UserPos);
    +                    if (User.IsLoggedIn)
                        + {
                            + User.SendMsg("Informal review request""Please stop by my office sometime " + "this morning for a quick informal " + "review of my design changes before " + "I submit them for approval.");
                        + }
                    + }
                + }
            + }
        + }
    }

    + +
    +
    \\Form1.Designer.cs
    +
    +
    +
    namespace UsersAndGroupsCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">True if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.TraverseUsersButton = new System.Windows.Forms.Button();
    +            this.TraverseGroupsButton = new System.Windows.Forms.Button();
    +            this.TraverseGroupMembersButton = new System.Windows.Forms.Button();
    +            this.SendConsultationRequestButton = new System.Windows.Forms.Button();
    +            this.SuspendLayout();
    +            // 
    +            // VaultsLabel
    +            // 
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(26, 24);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(91, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(29, 51);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(168, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // TraverseUsersButton
    +            // 
    +            this.TraverseUsersButton.Location = new System.Drawing.Point(29, 92);
    +            this.TraverseUsersButton.Name = "TraverseUsersButton";
    +            this.TraverseUsersButton.Size = new System.Drawing.Size(168, 36);
    +            this.TraverseUsersButton.TabIndex = 2;
    +            this.TraverseUsersButton.Text = "Traverse users";
    +            this.TraverseUsersButton.UseVisualStyleBackColor = true;
    +            this.TraverseUsersButton.Click += new System.EventHandler(this.TraverseUsersButton_Click);
    +            // 
    +            // TraverseGroupsButton
    +            // 
    +            this.TraverseGroupsButton.Location = new System.Drawing.Point(29, 151);
    +            this.TraverseGroupsButton.Name = "TraverseGroupsButton";
    +            this.TraverseGroupsButton.Size = new System.Drawing.Size(168, 39);
    +            this.TraverseGroupsButton.TabIndex = 3;
    +            this.TraverseGroupsButton.Text = "Traverse groups";
    +            this.TraverseGroupsButton.UseVisualStyleBackColor = true;
    +            this.TraverseGroupsButton.Click += new System.EventHandler(this.TraverseGroupsButton_Click);
    +            // 
    +            // TraverseGroupMembersButton
    +            // 
    +            this.TraverseGroupMembersButton.Location = new System.Drawing.Point(29, 210);
    +            this.TraverseGroupMembersButton.Name = "TraverseGroupMembersButton";
    +            this.TraverseGroupMembersButton.Size = new System.Drawing.Size(168, 41);
    +            this.TraverseGroupMembersButton.TabIndex = 4;
    +            this.TraverseGroupMembersButton.Text = "Traverse group members";
    +            this.TraverseGroupMembersButton.UseVisualStyleBackColor = true;
    +            this.TraverseGroupMembersButton.Click += new System.EventHandler(this.TraverseGroupMembersButton_Click);
    +            // 
    +            // SendConsultationRequestButton
    +            // 
    +            this.SendConsultationRequestButton.Location = new System.Drawing.Point(29, 279);
    +            this.SendConsultationRequestButton.Name = "SendConsultationRequestButton";
    +            this.SendConsultationRequestButton.Size = new System.Drawing.Size(168, 35);
    +            this.SendConsultationRequestButton.TabIndex = 5;
    +            this.SendConsultationRequestButton.Text = "Send consultation request";
    +            this.SendConsultationRequestButton.UseVisualStyleBackColor = true;
    +            this.SendConsultationRequestButton.Click += new System.EventHandler(this.SendConsultationRequestButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 342);
    +            this.Controls.Add(this.SendConsultationRequestButton);
    +            this.Controls.Add(this.TraverseGroupMembersButton);
    +            this.Controls.Add(this.TraverseGroupsButton);
    +            this.Controls.Add(this.TraverseUsersButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Traverse users and groups";
    +            this.Load += new System.EventHandler(this.UsersAndGroupsCSharp_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label VaultsLabel;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button TraverseUsersButton;
    +        private System.Windows.Forms.Button TraverseGroupsButton;
    +        private System.Windows.Forms.Button TraverseGroupMembersButton;
    +        private System.Windows.Forms.Button SendConsultationRequestButton;
    +    }
    +}
    +
    +
    +
     
    +
    + + + + + diff --git a/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_VBNET.htm b/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_VBNET.htm new file mode 100644 index 0000000..742d95f --- /dev/null +++ b/documentation/api_extracted/Traverse_Users_and_Groups_in_Vault_Example_VBNET.htm @@ -0,0 +1,429 @@ + + + +Traverse Users and Groups in Vault Example (VB.NET) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Traverse Users and Groups in Vault Example (VB.NET)

    +

    This example shows how to traverse the users and groups in +a vault and send a message, also called a notification, to all logged-in users +of the +vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +
    +

    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type UsersAndGroups in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. Replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Referenceclick 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder 
    +'    of your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that the vault contains one or more users and one or more
    +'    workflows.
    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays a dialog.
    +'  2. Select a vault.
    +'  3. Click Traverse users.
    +'     Three message boxes report:
    +'     * users in the vault,
    +'     * state permissions for a user in the vault,
    +'       - and -
    +'     * transition permissions for a user in the vault.
    +'  4. Click OK to close each message box.
    +'  5. Click Traverse groups.
    +'     A message box reports the groups in the vault.
    +'  6. Click OK to close the message box.
    +'  7. Click Traverse group members.
    +'     A message box reports the users of each group in the vault.
    +'  8. Click OK to close the message box.
    +'  9. Click Send consultation request.
    +'     After several minutes, a SOLIDWORKS PDM Professional notification 
    +'     appears only to logged-in users. 
    +' 10. To open the message, click:
    +'     * the notification while it is displayed,
    +'     * the SOLIDWORKS PDM Professional tray icon,
    +'       - or -
    +'     * Tools > Inbox in the vault view.
    +' 11. Close the dialog.
    +'----------------------------------------------------------------------------
    +'Form1.vb 
    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports EPDM.Interop.epdm
    + 
    +Public Class UsersAndGroups
    + 
    +   Private Sub UsersAndGroups_Load(ByVal sender As _
    +         System.ObjectByVal e As System.EventArgs) _
    +         Handles MyBase.Load
    + 
    +      Dim vault As IEdmVault8 = New EdmVault5
    +      Dim Views() As EdmViewInfo = {}
    + 
    +      vault.GetVaultViews(Views, False)
    +      VaultsComboBox.Items.Clear()
    +      For Each View As EdmViewInfo In Views
    +         VaultsComboBox.Items.Add(View.mbsVaultName)
    +      Next
    +      If VaultsComboBox.Items.Count > 0 Then
    +         VaultsComboBox.Text = VaultsComboBox.Items(0)
    +      End If
    +   End Sub
    + 
    +   
    +

    +    Private Sub TraverseUsersButton_Click(ByVal sender As _
    +             System.ObjectByVal e As System.EventArgs) _
    +             Handles TraverseUsersButton.Click

    +        Dim vault As IEdmVault5 = New EdmVault5()
    +        Dim vault1 As IEdmVault7 = Nothing

    +        If vault Is Nothing Then
    +            vault = New EdmVault5()
    +        End If

    +        vault1 = DirectCast(vault, IEdmVault7)

    +        'Log into selected vault as the current user
    +        vault1.LoginAuto(VaultsComboBox.Text,
    +  Me.Handle.ToInt32())

    +        'Declare an IEdmUserMgr9 object
    +        Dim UserMgr As IEdmUserMgr9
    +        UserMgr = vault1.CreateUtility(EdmUtility.EdmUtil_UserMgr)

    +        Dim ppoPermissions() As EdmStatePermission = {}
    +        Dim ppoTransitionPermissions() As EdmTransitionPermission = {}

    +        Dim Users As String = vbNullString
    +        Dim UserPos As IEdmPos5
    +        Dim User As IEdmUser5
    +        UserPos = UserMgr.GetFirstUserPosition()
    +        While Not UserPos.IsNull

    +            User = UserMgr.GetNextUser(UserPos)
    +            Users = Users & User.Name & " ID: " & User.ID & vbCrLf
    +        End While

    +        MessageBox.Show(Users, vault1.Name +
    +        " Vault Users"MessageBoxButtons.OK,
    +        MessageBoxIcon.Information)

    +        'Get permissions for all states for a user 
    +        UserMgr.GetStatePermissions(User.ID, EdmObjectType.EdmObject_User, 0, ppoPermissions)
    +        Dim str As String
    +        str = "EdmStatePermissions for a user in the vault" & vbLf
    +        str = str & vbLf
    +        For Each item As EdmStatePermission In ppoPermissions


    +            str = str & "mlOwnerID: " & item.mlOwnerID & vbLf
    +            str = str & "meOwnerType (EdmObjectType.EdmObject_User (7) or EdmObjectType.EdmObject_UserGroup (8)): " & item.meOwnerType & vbLf
    +            str = str & "mlStateID: " & item.mlStateID & vbLf
    +            str = str & "mlEdmRightFlag as defined in EdmRightFlags: " & item.mlEdmRightFlag & vbLf
    +            str = str & vbLf


    +        Next
    +        MessageBox.Show(str)

    +        'Get permissions for all transitions for a user 
    +        UserMgr.GetTransitionPermissions(User.ID, EdmObjectType.EdmObject_User, 0, ppoTransitionPermissions)
    +        str = "EdmTransitionPermissions for a user in the vault" & vbLf
    +        str = str & vbLf
    +        For Each item As EdmTransitionPermission In ppoTransitionPermissions


    +            str = str & "mlOwnerID: " & item.mlOwnerID & vbLf
    +            str = str & "meOwnerType (EdmObjectType.EdmObject_User (7) or EdmObjectType.EdmObject_UserGroup (8)): " & item.meOwnerType & vbLf
    +            str = str & "mlTransitionID: " & item.mlTransitionID & vbLf
    +            str = str & "mlEdmRightFlag as defined in EdmTransitionRightFlags: " & item.mlEdmRightFlag & vbLf
    +            str = str & vbLf


    +        Next
    +        MessageBox.Show(str)

    +    End Sub

    +
    + 
    +   Private Sub TraverseGroupsButton_Click(ByVal sender _
    +         As System.ObjectByVal e As System.EventArgs) _
    +         Handles TraverseGroupsButton.Click
    + 
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +         Me.Handle.ToInt32())
    + 
    +      'Declare an IEdmUserMgr5 object
    +      Dim UserMgr As IEdmUserMgr5
    +      'The IEdmUserMgr5 interface is implemented by the
    +      'same class as the IEdmVault5 interface,
    +      'so assign the value of the IEdmVault5 object
    +      UserMgr = vault
    + 
    +      Dim Groups As String = vbNullString
    +      Dim UserGroupPos As IEdmPos5
    +      UserGroupPos = UserMgr.GetFirstUserGroupPosition()
    +      While Not UserGroupPos.IsNull
    +         Dim UserGroup As IEdmUserGroup5
    +         UserGroup = UserMgr.GetNextUserGroup _
    +            (UserGroupPos)
    +         Groups = Groups + UserGroup.Name + vbCrLf
    +      End While
    +      MessageBox.Show(Groups, vault.Name + _
    +         " Vault Groups"MessageBoxButtons.OK, _
    +         MessageBoxIcon.Information)
    +   End Sub
    + 
    +   Private Sub TraverseGroupMembersButton_Click( _
    +         ByVal sender As System.Object, _
    +         ByVal e As System.EventArgs) _
    +         Handles TraverseGroupMembersButton.Click
    + 
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +         Me.Handle.ToInt32())
    + 
    +      'Declare an IEdmUserMgr5 object
    +      Dim UserMgr As IEdmUserMgr5
    +        'The IEdmUserMgr5 interface is implemented by the 
    +        'same class as the IEdmVault5 interface, 
    +        'so assign the value of the IEdmVault5 object
    +      UserMgr = vault
    + 
    +      Dim Groups As String = vbNullString
    +      Dim UserGroupPos As IEdmPos5
    +      UserGroupPos = UserMgr.GetFirstUserGroupPosition()
    +      While Not UserGroupPos.IsNull
    +         Dim UserGroup As IEdmUserGroup5
    +         UserGroup = UserMgr.GetNextUserGroup _
    +            (UserGroupPos)
    +         Groups = Groups + UserGroup.Name + " Members:" _
    +            + vbCrLf
    +         Groups = Groups + GetMembers(UserGroup)
    +      End While
    +      MessageBox.Show(Groups, vault.Name + _
    +         " Vault Group Users", _
    +      MessageBoxButtons.OK, MessageBoxIcon.Information)
    +   End Sub
    + 
    +   Private Function GetMembers(ByVal UserGroup _
    +         As IEdmUserGroup5As String
    + 
    +      GetMembers = vbNullString
    +      Dim Users As String = vbNullString
    +      Dim UserPos As IEdmPos5
    +      UserPos = UserGroup.GetFirstUserPosition()
    +      While Not UserPos.IsNull
    +         Dim User As IEdmUser5
    +         User = UserGroup.GetNextUser(UserPos)
    +         Users = Users + " " + User.Name + vbCrLf
    +      End While
    +      GetMembers = Users
    +   End Function
    + 
    +   Private Sub SendConsultationRequestButton_Click( _
    +         ByVal sender As System.Object, _
    +         ByVal e As System.EventArgs) _
    +         Handles SendConsultationRequestButton.Click
    + 
    +      'Declare and create an instance of IEdmVault5 object
    +      Dim vault As IEdmVault5 = New EdmVault5()
    +      'Log into selected vault as the current user
    +      vault.LoginAuto(VaultsComboBox.Text, _
    +         Me.Handle.ToInt32())
    + 
    +      'Declare an IEdmUserMgr5 object
    +      Dim UserMgr As IEdmUserMgr5
    +        'The IEdmUserMgr5 interface is implemented by the
    +        'same class as the IEdmVault5 interface,
    +        'so assign the value of the IEdmVault5 object
    +      UserMgr = vault
    + 
    +      Dim UserGroup As IEdmUserGroup5
    +        UserGroup = UserMgr.GetUserGroup("All Users")
    +      If Not UserGroup Is Nothing Then
    +         Dim UserPos As IEdmPos5
    +         UserPos = UserGroup.GetFirstUserPosition()
    +         While Not UserPos.IsNull
    +            Dim User As IEdmUser5
    +            User = UserGroup.GetNextUser(UserPos)
    +            If User.IsLoggedIn Then
    +                    User.SendMsg("Informal review request", _
    +                    "Please stop by my office sometime " + _
    +                    "this morning for a quick informal " + _
    +                    "review of my design changes before " + _
    +                    "I submit them for approval.")
    +            End If
    +         End While
    +      End If
    +   End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class UsersAndGroups
    +   Inherits System.Windows.Forms.Form
    + 
    +   'Form overrides dispose to clean up the component list.
    +   <System.Diagnostics.DebuggerNonUserCode()> _
    +   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +      Try
    +         If disposing AndAlso components IsNot Nothing Then
    +            components.Dispose()
    +         End If
    +      Finally
    +         MyBase.Dispose(disposing)
    +      End Try
    +   End Sub
    + 
    +   'Required by the Windows Form Designer
    +   Private components As System.ComponentModel.IContainer
    + 
    +   'NOTE: The following procedure is required by the Windows Form Designer
    +   'It can be modified using the Windows Form Designer.  
    +   'Do not modify it using the code editor.
    +   <System.Diagnostics.DebuggerStepThrough()> _
    +   Private Sub InitializeComponent()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.TraverseUsersButton = New System.Windows.Forms.Button()
    +        Me.TraverseGroupsButton = New System.Windows.Forms.Button()
    +        Me.TraverseGroupMembersButton = New System.Windows.Forms.Button()
    +        Me.SendConsultationRequestButton = New System.Windows.Forms.Button()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(49, 34)
    +        Me.VaultsComboBox.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(146, 21)
    +        Me.VaultsComboBox.TabIndex = 10
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(46, 9)
    +        Me.VaultsLabel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(91, 13)
    +        Me.VaultsLabel.TabIndex = 11
    +        Me.VaultsLabel.Text = "Select vault view:"
    +        '
    +        'TraverseUsersButton
    +        '
    +        Me.TraverseUsersButton.Location = New System.Drawing.Point(49, 69)
    +        Me.TraverseUsersButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.TraverseUsersButton.Name = "TraverseUsersButton"
    +        Me.TraverseUsersButton.Size = New System.Drawing.Size(146, 41)
    +        Me.TraverseUsersButton.TabIndex = 15
    +        Me.TraverseUsersButton.Text = "Traverse users"
    +        Me.TraverseUsersButton.UseVisualStyleBackColor = True
    +        '
    +        'TraverseGroupsButton
    +        '
    +        Me.TraverseGroupsButton.Location = New System.Drawing.Point(49, 126)
    +        Me.TraverseGroupsButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.TraverseGroupsButton.Name = "TraverseGroupsButton"
    +        Me.TraverseGroupsButton.Size = New System.Drawing.Size(146, 41)
    +        Me.TraverseGroupsButton.TabIndex = 16
    +        Me.TraverseGroupsButton.Text = "Traverse groups"
    +        Me.TraverseGroupsButton.UseVisualStyleBackColor = True
    +        '
    +        'TraverseGroupMembersButton
    +        '
    +        Me.TraverseGroupMembersButton.Location = New System.Drawing.Point(49, 183)
    +        Me.TraverseGroupMembersButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.TraverseGroupMembersButton.Name = "TraverseGroupMembersButton"
    +        Me.TraverseGroupMembersButton.Size = New System.Drawing.Size(146, 41)
    +        Me.TraverseGroupMembersButton.TabIndex = 17
    +        Me.TraverseGroupMembersButton.Text = "Traverse group members"
    +        Me.TraverseGroupMembersButton.UseVisualStyleBackColor = True
    +        '
    +        'SendConsultationRequestButton
    +        '
    +        Me.SendConsultationRequestButton.Location = New System.Drawing.Point(49, 240)
    +        Me.SendConsultationRequestButton.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.SendConsultationRequestButton.Name = "SendConsultationRequestButton"
    +        Me.SendConsultationRequestButton.Size = New System.Drawing.Size(146, 41)
    +        Me.SendConsultationRequestButton.TabIndex = 18
    +        Me.SendConsultationRequestButton.Text = "Send consultation request"
    +        Me.SendConsultationRequestButton.UseVisualStyleBackColor = True
    +        '
    +        'UsersAndGroups
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(291, 317)
    +        Me.Controls.Add(Me.SendConsultationRequestButton)
    +        Me.Controls.Add(Me.TraverseGroupMembersButton)
    +        Me.Controls.Add(Me.TraverseGroupsButton)
    +        Me.Controls.Add(Me.TraverseUsersButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Margin = New System.Windows.Forms.Padding(2, 2, 2, 2)
    +        Me.Name = "UsersAndGroups"
    +        Me.Text = "Traverse users and groups"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +   Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +   Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +   Friend WithEvents TraverseUsersButton As System.Windows.Forms.Button
    +   Friend WithEvents TraverseGroupsButton As System.Windows.Forms.Button
    +   Friend WithEvents TraverseGroupMembersButton As System.Windows.Forms.Button
    +   Friend WithEvents SendConsultationRequestButton As System.Windows.Forms.Button
    + 
    +End Class
    +
    +
    + + + + + diff --git a/documentation/api_extracted/Troubleshooting_Guide.htm b/documentation/api_extracted/Troubleshooting_Guide.htm new file mode 100644 index 0000000..7cc4867 --- /dev/null +++ b/documentation/api_extracted/Troubleshooting_Guide.htm @@ -0,0 +1,249 @@ + + + +PDM Professional API Troubleshooting Guide + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    PDM Professional API Troubleshooting Guide

    +

    The examples provided with the PDM APIs are thorough and +extensive. You should use them carefully when you develop your own PDM +applications and add-ins. This topic discusses several important steps in the +PDM API examples that are often overlooked by PDM developers. It also answers +some questions that have been frequently asked of API Support.

    +

    Why am I getting "The parameter is incorrect. (Exception +from HRESULT: 0x80070057 (E_INVALIDARG)" when my PDM API application
    +calls a method that passes an array of structures?

    +

    Why does adding my add-in to the Admin tool fail with the +message "Please select at least one DLL implementing the IEdmAddin5
    +interface."?

    +

    When I add an add-in to the Admin tool, why does it throw +"An older version of the add-in is already loaded in memory..."?

    +

    Why aren't I hitting breakpoints when I debug my PDM API +application?

    +

    Why are my add-in's commands not working?

    +

    How do you debug a task add-in?

    +

    Why doesn't my PDM add-in appear in the Debug Add-ins +window after I've selected to debug the add-in in the Admin tool?

    +

    How do I specify the lParentWnd parameter in methods?

    +

    Why am I seeing Failed to extract add-in and +Error loading add-ins messages while my add-in is running?

    +

    My add-in works when compiled for .NET Framework 2.0, +3.0, and 3.5. But with .NET Framework 4.0, I get a runtime error,
    +"Call to method 'OnCmd' in add-in failed. Error code = 0x080131522 (Unknown +error 0x080131522)."

    +

     

    +

    +======================================================================================
    +
    +Why am I getting "The parameter is incorrect. (Exception +from HRESULT: 0x80070057 (E_INVALIDARG)" when my PDM API application
    +calls a method that passes an array of structures?

    +

    If you are using .NET 4.0, you must right-click +EPDM.Interop.epdm in References, click Properties, and set Embed Interop Types +
    +to False.
    +
    +The reason is that all of the structures defined in the PDM Pro API (nothing but +COM API’s) are not embedded by the .Net
    +Framework if this property is set to true. This is a Microsoft issue with COM, +and there is no solution for it at the moment. See
    + +http://social.msdn.microsoft.com/Forums/vstudio/en-US/1325d24c-db0f-43a1-9780-b68a843d816b/passing-an-array-of-structs-to-a-com- +
    +interface?forum=csharpgeneral
    .
    +
    +*KEEP IN MIND THAT YOU SHOULD ONLY SET THIS PROPERTY TO FALSE FOR +EPDM.Interop.epdm.dll. FOR ALL OTHER EXTERNAL REFERENCES IN
    +YOUR PROJECT THIS PROPERTY SHOULD BE SET TO TRUE.

    +

    Back

    +Why does adding my add-in to the Admin tool fail with the +message "Please select at least one DLL implementing the IEdmAddin5
    +interface."?

    +

    The Admin tool did not find the ISwAddin interface for +some reason, usually because multiple classes were made COM-visible in
    +your add-in, and the Admin tool randomly chose the wrong class with which to start the add-in. To +correct this problem:
    +
    +1. In project properties deselect Application > Assembly Information> Make +Assembly COM-visible.
    +2. Make only the class that implements IEdmAddin5 COM-Visible as follows:
    +
    +   'VB.NET
    +   Imports EPDM.Interop.epdm
    +   Imports System.Runtime.InteropServices
    +
    +   <Guid("07a33492-234f-4e8a-8c4f-6b66d8cf16c2")> _
    +   <ComVisible(True)> _
    +   Public Class SWEPDMAddin
    +   Implements IEdmAddIn5
    +      Public Sub GetAddInInfo
    +      Public Sub OnCmd
    +       …
    +  
    +The Guid above is created in Visual Studio's Tools > Create GUID. Copy +and paste the GUID to one class that implements the
    +IEDMAddin5 interface.
    +
    +3. If you are on Windows 8 or above, make sure that .Net CLR 2.0 is enabled on +your machine, because your add-in is using .Net Framework 3.5. Also, ensure that +the UAC is off on this machine.
    +4. In project properties select Build > Register for COM interop.
    +5. Re-compile the add-in.
    +6. Open the task manager and kill edmserver.exe, viewserver.exe +and explorer.exe.
    +7. Restart the Admin tool as administrator.
    +8. Add the add-in dlls in the Admin tool.

    +

    Back

    +


    +When I add an add-in to the Admin tool, why does it throw +"An older version of the add-in is already loaded in memory..."?

    +

    There is already an add-in with the same version in the +vault.
    +To add the add-in you must create your own GUID using Visual Studio’s Tools > +Create GUID. Copy the new GUID to the class
    +implementing the IEdmAddin5 interface, setting the COMVisible attribute to true. +This uniquely identifies each add-in and
    +also prevents the loading of duplicate add-ins in your vault.
    +
    +
    +     //C#
    +     using System.Runtime.InteropServices;
    +
    +     namespace test
    +     {
    +     [Guid("E9B24B05-A4CA-401B-A644-AB59175D758E"),ComVisible(true)]
    +     public class Class1 : IEdmAddIn5
    +     ...
    +     }
    +
    +    

    +

    Back
    +
    +
    +Why aren't I hitting breakpoints when I debug my PDM API +application?

    +

    If your project targets a .NET Framework older than 4.0, +you must add an application configuration file to the debug
    +application in order for breakpoints to work. If you are using Notepad for +debugging, then add the notepad config file to the
    +notepad exe’s location i.e. C:\Windows\Notepad.exe. Add +notepad.exe.config for .Net CLR 2 or CLR 4, depending on your .NET
    +framework.
    +
    +     <!-- sample notepad.exe.config -->
    +     <?xml version ="1.0"?>
    +     <configuration>
    +          <startup>
    +               +<supportedRuntime version="v2.0.[version on your machine]" />
    +          </startup>
    +     </configuration>
    +
    +To determine the correct [version on your machine] look in the “C:\Windows\Microsoft.NET\Framework” +directory for the most recent
    +“v2.0.xxxxx” folder.
    +
    +

    +

     

    +

    Back
    +
    +Why are my add-in's commands not working?

    +

    Are you passing arguments to OnCmd() by value or by reference? PDM Pro add-ins +require that you implement IEdmAddIn5::OnCmd, passing arguments using ByRef:
    +
    +C#:

    +

    public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData) {}

    +

    VB.NET:

    +

    Public Sub OnCmd(ByRef poCmd As EdmCmd, +ByRef ppoData As EdmCmdData[]) +Implements IEdmAddIn5.OnCmd

    +

    Back
    +
    +
    +How do you debug a task add-in?

    +

    The task add-in needs to be fully installed in the vault +before you can install it as a task or debug it. Therefore in order to debug a task
    +add-in, you must attach the add-in’s running process to the debugger.
    +
    +Since add-ins are loaded and unloaded at unpredictable times, you can pop up a +message box to force the add-in to pause
    +while you attach the debugger to the add-in's process.

    +

    Back
    +
    +
    +Why doesn't my PDM add-in appear in the Debug Add-ins +window after I've configured the Admin tool to debug the add-in?

    +

    1. In the project's properties, select Application > +Register for COM interop.
    +2. Compile the add-in.
    +3. Kill edmserver.exe, viewserver.exe, and explorer.exe from the task manager. +
    +4. Restart +the Admin tool as an administrator.
    +5. Add the add-in for +debugging in the Admin tool.
    +6. Debug the add-in.

    +

    Back

    +

    How do I specify the lParentWnd parameter in method +calls?

    +


    +The lParentWnd parameter ensures that your application’s dialog remains visible. +When your application displays a dialog box, you need to make sure that it is +not possible to switch between the dialog box and the Explorer window behind it +(or whatever application it is launched from). Failure to ensure this may cause your application's dialog box +to be hidden behind an inactive Explorer window or application, +leaving the impression that your program has hung.
    +
    +For methods called in Windows Forms, you can specify lParentWnd as follows:

    +

    VB.NET:

    +

    Me.Handle.ToInt32()

    +

    C#:

    +

    this.Handle.ToInt32()

    +

    For non-windows-forms applications, you can specify lParentWnd with 0 (zero).

    +

    Back

    +

    Why am I seeing Failed to extract add-in and +Error loading add-ins messages when my add-in is running?

    +


    +1. In Visual Studio, select Compile or Build tab > Register for COM interop. +
    +2. If you are on Windows 10, verify that the UAC is OFF.
    +3. The host application needs an elevation (i.e. it must be run with +administrator privileges).
    +4. Start the Admin Tool as Administrator and then add the add-in.
    +
    +Back

    +

    My add-in works when compiled for .NET Framework 2.0, +3.0, and 3.5. But with .NET Framework 4.0, I get a runtime error,
    +"Call to method 'OnCmd' in add-in failed. Error code = 0x080131522 (Unknown +error 0x080131522)."

    +

    As of PDM Pro 2013 we distribute the primary interop assembly, +EPDM.Interop.epdm.dll.
    +Add this interop assembly to your add-in's references when compiling for .NET +Framework 4.0 and later.

    +

    Back

    + + + + \ No newline at end of file diff --git a/documentation/api_extracted/UpdateAtts.gif b/documentation/api_extracted/UpdateAtts.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8017088744a94385b81029e2ce5ddae7634c332 GIT binary patch literal 7637 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/UpdateFileRefs.gif b/documentation/api_extracted/UpdateFileRefs.gif new file mode 100644 index 0000000000000000000000000000000000000000..97b9aa04158883d794b68956e0c4d95bde9509c0 GIT binary patch literal 9160 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 S%e~~wzVu7BjL4x32mm{m{!kzQ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/UpdateRefs.gif b/documentation/api_extracted/UpdateRefs.gif new file mode 100644 index 0000000000000000000000000000000000000000..46f7514b29186b111e15a9a2682943ebf25b2d29 GIT binary patch literal 5125 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 z + + +Update File Raw References Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Update File Raw References Example (C#)

    +

    This example shows how to +get file references directly from a file and update +file references directly in that file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type RawReferencesCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Check out a SOLIDWORKS assembly or drawing document whose file 
    +//     references you want to update and check out all of the document's 
    +//     referenced files.
    +//  5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays the Update Raw References in File dialog box.
    +//  2. Select the vault view where the SOLIDWORKS assembly or 
    +//     drawing document that you checked out in 
    +//     Preconditions step 4 resides.
    +//  3. Click Open file.
    +//  4. Displays the Open a file dialog box.
    +//     a. Click the assembly or drawing document you checked out
    +//        in Preconditions step 4.
    +//     b. Click Open.
    +//     The opened file's path and file name appear 
    +//     in the Update Raw References in File dialog box.
    +//  5. Click Get references.
    +//     a. Displays a message box for each referenced file. 
    +//        The referenced file's ID, path and file name, file name, 
    +//        type, and number of times referenced appear in the 
    +//        message box.
    +//     b. Click OK to close each message box.
    +//  6. Rename one of the referenced files in the selected vault
    +//     in File Explorer.
    +//  7. Click Update references.
    +//     a. Displays a message box confirming that references were updated.
    +//     b. Click OK to close the message box.
    +//  8. Click Get references.
    +//     a. Displays a message box for each referenced file. 
    +//        The referenced file's ID, path and file name, file name, 
    +//        type, and number of times referenced appear in the 
    +//        message box. Note that the renamed file is now a referenced 
    +//        file of the open document.
    +//     b. Click OK to close each message box.
    +//  9. Click Close file.
    +// 10. Click OK to close the message box confirming that the open
    +//     document was closed.
    +// 11. Close the Update Raw References in File dialog box.
    +// 12. Check in the SOLIDWORKS assembly or drawing document and 
    +//     its file references.
    +//----------------------------------------------------------------------------
    + 
    +//Form1.cs
    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    +namespace RawReferencesCSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        IEdmVault5 vault1 = null;
    +        IEdmFile5 aFile;
    +        string fileName;
    +        IEdmRawReferenceMgr rawRefs;
    +        EdmRawReference[] refs = null;
    + 
    + 
    +        private void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;
    + 
    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void UpdateButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Update the file references directly in the file
    +                rawRefs.UpdateReferences(refs);
    +                MessageBox.Show("File references updated.");
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        public void OpenButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //If one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +                //Set the initial directory in the Open a file dialog
    +                OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +                //Show the Open a file dialog
    +                System.Windows.Forms.DialogResult DialogResult;
    +                DialogResult = OpenFileDialog1.ShowDialog();
    + 
    +                if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +                {
    +                    //Do nothing
    +                }
    +                else
    +                {
    +                    //Click a file
    +                    IEdmFolder5 retPath = default(IEdmFolder5);
    +                    fileName = OpenFileDialog1.FileName;
    +                    FileListBox.Items.Add(fileName);
    +                    aFile = vault1.GetFileFromPath(fileName, out retPath);
    + 
    +                }
    + 
    +                //Get IEdmRawReferences interface 
    +                IEdmVault7 vault2 = null;
    +                vault2 = (IEdmVault7)vault1;
    +                rawRefs = (IEdmRawReferenceMgr)vault2.CreateUtility(EdmUtility.EdmUtil_RawReferenceMgr);
    +                bool fileRefsSupported = false;
    +                fileRefsSupported = rawRefs.Open(fileName);
    +                if (!fileRefsSupported)
    +                {
    +                    MessageBox.Show("File's format does not support file references.");
    +                    return;
    +                }
    + 
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void GetButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                int arrSize = 0;
    +                int i = 0;
    +                string message = null;
    +                //Get the file references directly from the file
    +                rawRefs.GetReferences(ref refs);
    +                arrSize = refs.Length;
    +                if (arrSize == 0)
    +                {
    +                    MessageBox.Show("No file references for opened file.");
    +                    return;
    +                }
    +                while (i < arrSize)
    +                {
    +                    message = "File reference information: " + "\n" + "\n";
    +                    message = message + "  Internal ID: " + refs[i].mbsRefID + "\n";
    +                    message = message + "  Referenced how: " + refs[i].mbsIncludePath + "\n";
    +                    message = message + "  Reference name: " + refs[i].mbsRefName + "\n";
    +                    message = message + "  Number of times file referenced = " + refs[i].mlCount.ToString() + "\n";
    +                    switch (refs[i].mlFlags)
    +                    {
    +                        case (int)EdmRawRefFlags.Edmrrf_Ghost:
    +                            message = message + "  Type = DWG files can store grandchildren as references" + "\n";
    +                            break;
    +                        case (int)EdmRawRefFlags.Edmrrf_InternalComponent:
    +                            message = message + "  Type = Not used" + "\n";
    +                            break;
    +                        case (int)EdmRawRefFlags.Edmrrf_Nothing:
    +                            message = message + "  Type = Normal file reference" + "\n";
    +                            break;
    +                    }
    +                    i = i + 1;
    +                    MessageBox.Show(message);
    +                }
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +        private void CloseButton_Click(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                //Only create a new vault object
    +                //if one hasn't been created yet
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    + 
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    //Log into selected vault as the current user
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    + 
    +                //Close the file
    +                rawRefs.Close();
    +                MessageBox.Show("File closed.");
    + 
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    + 
    +    }
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace RawReferencesCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.label1 = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.OpenButton = new System.Windows.Forms.Button();
    +            this.FileListBox = new System.Windows.Forms.ListBox();
    +            this.UpdateButton = new System.Windows.Forms.Button();
    +            this.GetButton = new System.Windows.Forms.Button();
    +            this.CloseButton = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // label1
    +            // 
    +            this.label1.AutoSize = true;
    +            this.label1.Location = new System.Drawing.Point(82, 24);
    +            this.label1.Name = "label1";
    +            this.label1.Size = new System.Drawing.Size(91, 13);
    +            this.label1.TabIndex = 0;
    +            this.label1.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(41, 40);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(196, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // OpenButton
    +            // 
    +            this.OpenButton.Location = new System.Drawing.Point(74, 67);
    +            this.OpenButton.Name = "OpenButton";
    +            this.OpenButton.Size = new System.Drawing.Size(108, 23);
    +            this.OpenButton.TabIndex = 2;
    +            this.OpenButton.Text = "Open file";
    +            this.OpenButton.UseVisualStyleBackColor = true;
    +            this.OpenButton.Click += new System.EventHandler(OpenButton_Click);
    +            // 
    +            // FileListBox
    +            // 
    +            this.FileListBox.FormattingEnabled = true;
    +            this.FileListBox.Location = new System.Drawing.Point(12, 96);
    +            this.FileListBox.Name = "FileListBox";
    +            this.FileListBox.Size = new System.Drawing.Size(235, 30);
    +            this.FileListBox.TabIndex = 3;
    +            // 
    +            // OpenFileDialog1
    +            // 
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = true;
    +            this.OpenFileDialog1.Title = "Open a file";
    +            // 
    +            // UpdateButton
    +            // 
    +            this.UpdateButton.Location = new System.Drawing.Point(139, 144);
    +            this.UpdateButton.Name = "UpdateButton";
    +            this.UpdateButton.Size = new System.Drawing.Size(108, 23);
    +            this.UpdateButton.TabIndex = 4;
    +            this.UpdateButton.Text = "Update references";
    +            this.UpdateButton.UseVisualStyleBackColor = true;
    +            this.UpdateButton.Click += new System.EventHandler(UpdateButton_Click);
    +            // 
    +            // GetButton
    +            // 
    +            this.GetButton.Location = new System.Drawing.Point(12, 144);
    +            this.GetButton.Name = "GetButton";
    +            this.GetButton.Size = new System.Drawing.Size(108, 23);
    +            this.GetButton.TabIndex = 5;
    +            this.GetButton.Text = "Get references";
    +            this.GetButton.UseVisualStyleBackColor = true;
    +            this.GetButton.Click += new System.EventHandler(GetButton_Click);
    +            // 
    +            // CloseButton
    +            // 
    +            this.CloseButton.Location = new System.Drawing.Point(74, 192);
    +            this.CloseButton.Name = "CloseButton";
    +            this.CloseButton.Size = new System.Drawing.Size(99, 23);
    +            this.CloseButton.TabIndex = 6;
    +            this.CloseButton.Text = "Close file";
    +            this.CloseButton.UseVisualStyleBackColor = true;
    +            this.CloseButton.Click += new System.EventHandler(CloseButton_Click);
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(266, 233);
    +            this.Controls.Add(this.CloseButton);
    +            this.Controls.Add(this.GetButton);
    +            this.Controls.Add(this.UpdateButton);
    +            this.Controls.Add(this.FileListBox);
    +            this.Controls.Add(this.OpenButton);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.label1);
    +            this.Name = "Form1";
    +            this.Text = "Update Raw References in File";
    +            this.Load += new System.EventHandler(Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label label1;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.Button OpenButton;
    +        private System.Windows.Forms.ListBox FileListBox;
    +        private System.Windows.Forms.Button UpdateButton;
    +        private System.Windows.Forms.Button GetButton;
    +        private System.Windows.Forms.Button CloseButton;
    +        private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    + 
    +    }
    +}
    +
    + +
    +
    +
    +
    + + + + diff --git a/documentation/api_extracted/Update_File_Raw_References_Example_VBNET.htm b/documentation/api_extracted/Update_File_Raw_References_Example_VBNET.htm new file mode 100644 index 0000000..49776f9 --- /dev/null +++ b/documentation/api_extracted/Update_File_Raw_References_Example_VBNET.htm @@ -0,0 +1,418 @@ + + + +Update File Raw References Example (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Update File Raw References Example (VB.NET)

    +

    This example shows how to get file references directly +from a file and update file references directly in that file.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type RawReferencesVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Check out a SOLIDWORKS assembly or drawing document whose file 
    +'     references you want to update and check out all of the document's
    +'     referenced files.
    +'  5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays the Update Raw References in File dialog box.
    +'  2. Select the vault view where the SOLIDWORKS assembly or
    +'     drawing document that you checked out in
    +'     Preconditions step 4 resides.
    +'  3. Click Open file.
    +'  4. Displays the Open a file dialog box.
    +'     a. Click the assembly or drawing document you checked
    +'        out in Preconditions step 4.
    +'     b. Click Open.
    +'     The opened file's path and file name appear 
    +'     in the Update Raw References in File dialog box.
    +'  5. Click Get references.
    +'     a. Displays a message box for each referenced file. 
    +'        The referenced file's ID, path and file name, file name, 
    +'        type, and number of times referenced appear in the 
    +'        message box.
    +'     b. Click OK to close each message box.
    +'  6. Rename one of the referenced files in the selected vault
    +'     in File Explorer.
    +'  7. Click Update references.
    +'     a. Displays a message box confirming that references were updated.
    +'     b. Click OK to close the message box.
    +'  8. Click Get references.
    +'     a. Displays a message box for each referenced file. 
    +'        The referenced file's ID, path and file name, file name, 
    +'        type, and number of times referenced appear in the 
    +'        message box. Note that the renamed file is now a referenced 
    +'        file of the open document.
    +'     b. Click OK to close each message box.
    +'  9. Click Close file.
    +' 10. Click OK to close the message box confirming that the
    +'     open document was closed.
    +' 11. Close the Update Raw References in File dialog box.
    +' 12. Check in the SOLIDWORKS assembly or drawing and its 
    +'     file references.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm
    + 
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim fileName As String
    +    Dim rawRefs As IEdmRawReferenceMgr
    +    Dim refs() As EdmRawReference = Nothing
    + 
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub UpdateButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles UpdateButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Update the file references directly in the file
    +            rawRefs.UpdateReferences(refs)
    +            MessageBox.Show("File references updated.")
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub OpenButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles OpenButton.Click
    +        Try
    +            'If one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +            'Set the initial directory in the Open a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Open a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                'Do nothing
    +            Else
    +                'Open a file
    +                fileName = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(fileName)
    +                aFile = vault1.GetFileFromPath(fileName)
    + 
    +            End If
    + 
    +            'Get IEdmRawReferences interface 
    +            rawRefs = vault1.CreateUtility(EdmUtility.EdmUtil_RawReferenceMgr)
    +            Dim fileRefsSupported As Boolean
    +            fileRefsSupported = rawRefs.Open(fileName)
    +            If Not fileRefsSupported Then
    +                MessageBox.Show("File's format does not support file references.")
    +                Exit Sub
    +            End If
    + 
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub GetButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GetButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            Dim arrSize As Integer
    +            Dim i As Integer = 0
    +            Dim message As String
    +            'Get the file references directly from the file
    +            rawRefs.GetReferences(refs)
    +            arrSize = refs.Length
    +            If arrSize = 0 Then
    +                MessageBox.Show("No file references for opened file.")
    +                Exit Sub
    +            End If
    +            While i < arrSize
    +                message = "File reference information: " + vbLf + vbLf
    +                message = message + "  Internal ID: " + refs(i).mbsRefID + vbLf
    +                message = message + "  Referenced how: " + refs(i).mbsIncludePath + vbLf
    +                message = message + "  Reference name: " + refs(i).mbsRefName + vbLf
    +                message = message + "  Number of times file referenced = " + refs(i).mlCount.ToString + vbLf
    +                Select Case refs(i).mlFlags
    +                    Case EdmRawRefFlags.Edmrrf_Ghost
    +                        message = message + "  Type = DWG files can store grandchildren as references" + vbLf
    +                    Case EdmRawRefFlags.Edmrrf_InternalComponent
    +                        message = message + "  Type = Not used" + vbLf
    +                    Case EdmRawRefFlags.Edmrrf_Nothing
    +                        message = message + "  Type = Normal file reference" + vbLf
    +                End Select
    +                i = i + 1
    +                MessageBox.Show(message)
    +            End While
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Private Sub CloseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CloseButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Close the file
    +            rawRefs.Close()
    +            MessageBox.Show("File closed.")
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    +End Class
    + +
    +
    'Form.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.Label1 = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.OpenButton = New System.Windows.Forms.Button()
    +        Me.GetButton = New System.Windows.Forms.Button()
    +        Me.UpdateButton = New System.Windows.Forms.Button()
    +        Me.CloseButton = New System.Windows.Forms.Button()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'Label1
    +        '
    +        Me.Label1.AutoSize = True
    +        Me.Label1.Location = New System.Drawing.Point(88, 26)
    +        Me.Label1.Name = "Label1"
    +        Me.Label1.Size = New System.Drawing.Size(91, 13)
    +        Me.Label1.TabIndex = 0
    +        Me.Label1.Text = "Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(55, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(154, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'OpenButton
    +        '
    +        Me.OpenButton.Location = New System.Drawing.Point(55, 88)
    +        Me.OpenButton.Name = "OpenButton"
    +        Me.OpenButton.Size = New System.Drawing.Size(154, 23)
    +        Me.OpenButton.TabIndex = 2
    +        Me.OpenButton.Text = "Open file"
    +        Me.OpenButton.UseVisualStyleBackColor = True
    +        '
    +        'GetButton
    +        '
    +        Me.GetButton.Location = New System.Drawing.Point(12, 165)
    +        Me.GetButton.Name = "GetButton"
    +        Me.GetButton.Size = New System.Drawing.Size(108, 23)
    +        Me.GetButton.TabIndex = 3
    +        Me.GetButton.Text = "Get references"
    +        Me.GetButton.UseVisualStyleBackColor = True
    +        '
    +        'UpdateButton
    +        '
    +        Me.UpdateButton.Location = New System.Drawing.Point(164, 165)
    +        Me.UpdateButton.Name = "UpdateButton"
    +        Me.UpdateButton.Size = New System.Drawing.Size(108, 23)
    +        Me.UpdateButton.TabIndex = 4
    +        Me.UpdateButton.Text = "Update references"
    +        Me.UpdateButton.UseVisualStyleBackColor = True
    +        '
    +        'CloseButton
    +        '
    +        Me.CloseButton.Location = New System.Drawing.Point(55, 222)
    +        Me.CloseButton.Name = "CloseButton"
    +        Me.CloseButton.Size = New System.Drawing.Size(154, 23)
    +        Me.CloseButton.TabIndex = 5
    +        Me.CloseButton.Text = "Close file"
    +        Me.CloseButton.UseVisualStyleBackColor = True
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(12, 118)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(260, 30)
    +        Me.FileListBox.TabIndex = 6
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Open a file"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(284, 264)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.CloseButton)
    +        Me.Controls.Add(Me.UpdateButton)
    +        Me.Controls.Add(Me.GetButton)
    +        Me.Controls.Add(Me.OpenButton)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.Label1)
    +        Me.Name = "Form1"
    +        Me.Text = "Update References in File"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents Label1 As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents OpenButton As System.Windows.Forms.Button
    +    Friend WithEvents GetButton As System.Windows.Forms.Button
    +    Friend WithEvents UpdateButton As System.Windows.Forms.Button
    +    Friend WithEvents CloseButton As System.Windows.Forms.Button
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    + 
    +End Class
    + +
     
    +
    +
    +
     
    +
    +
    +
    +
    +
    + + + + diff --git a/documentation/api_extracted/Update_References_Example_CSharp.htm b/documentation/api_extracted/Update_References_Example_CSharp.htm new file mode 100644 index 0000000..7fa0b8e --- /dev/null +++ b/documentation/api_extracted/Update_References_Example_CSharp.htm @@ -0,0 +1,332 @@ + + + +Update References Example (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Update References Example (C#)

    +

    This example shows how to update the references of a file +in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +
    //----------------------------------------------------------------------------
    +// Preconditions:
    +//  1. Start Microsoft Visual Studio.
    +//     a. Click File > New > Project > Visual C# > Windows Forms Application.
    +//     b. Type UpdateReferencesCSharp in Name.
    +//     c. Click Browse and navigate to the folder where to create the project.
    +//     d. Click OK
    +//     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//        Form1.cs in the Solution Explorer.
    +//     f. Replace the code in Form1.cs with this code.
    +//     g. To create the form, replace the code in Form1.Designer.cs with 
    +//        this code.
    +//  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//     name in the Solution Explorer, click Add Reference, click 
    +//     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//     your SOLIDWORKS PDM Professional installation, locate and click 
    +//     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +//  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//     Embed Interop Types to False to handle methods that pass arrays of 
    +//     structures.
    +//  4. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +//  1. Displays your Update References dialog box.
    +//  2. Select a vault view.
    +//  3. Click Browse.
    +//  4. Displays the Select a file dialog box.
    +//     a. Click a file in the selected vault.
    +//     b. Click Open.
    +//     The selected file's path and file name appear 
    +//     in the Select a file dialog box.
    +//  5. Click Update references.
    +//  6. Initializes and displays SOLIDWORKS PDM Professional's Update References  
    +//     dialog box, which shows the name of the selected file whose file references 
    +//     to update and the names of the file references, if any.
    +//  7. Click Close.
    +//  8. Close your Update References dialog box.
    +//----------------------------------------------------------------------------
    +
    +
    //Form1.cs
    + 
    +using System;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    + 
    + 
    +namespace UpdateReferencesCSharp
    +{
    +	public partial class Form1 : Form
    +	{
    +		public Form1()
    +		{
    +			InitializeComponent();
    +		}
    + 
    +		IEdmVault5 vault1 = null;
    +		IEdmFile5 aFile;
    +		string fileName;
    + 
    + 
    +		private void Form1_Load(System.Object sender, System.EventArgs e)
    +		{
    + 
    +			try
    +			{
    +				IEdmVault5 vault1 = new EdmVault5();
    +				IEdmVault8 vault = (IEdmVault8)vault1;
    +				EdmViewInfo[] Views = null;
    + 
    +				vault.GetVaultViews(out Views, false);
    +				VaultsComboBox.Items.Clear();
    +				foreach (EdmViewInfo View in Views)
    +				{
    +					VaultsComboBox.Items.Add(View.mbsVaultName);
    +				}
    +				if (VaultsComboBox.Items.Count > 0)
    +				{
    +					VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +				}
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + "\n" + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    +		}
    + 
    +		public void UpdateReferencesButton_Click(System.Object sender, System.EventArgs e)
    +		{
    +			try
    +			{
    +				//Only create a new vault object
    +				//if one hasn't been created yet
    +				if (vault1 == null)
    +				{
    +					vault1 = new EdmVault5();
    +				}
    + 
    +				if (!vault1.IsLoggedIn)
    +				{
    +					//Log into selected vault as the current user
    +					vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +				}
    + 
    +				//Update the references for the selected document
    +				//and show SOLIDWORKS PDM Professional Update References dialog
    +				IEdmUpdateReferences updateRefs = default(IEdmUpdateReferences);
    +				IEdmVault7 vault2 = (IEdmVault7)vault1;
    +				updateRefs = (IEdmUpdateReferences)vault2.CreateUtility(EdmUtility.EdmUtil_UpdateReferences);
    +				updateRefs.AddFile(fileName);
    +				updateRefs.ShowDlg(this.Handle.ToInt32(), 0, 0);
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    +		}
    + 
    +		public void BrowseButton_Click(System.Object sender, System.EventArgs e)
    +		{
    +			try
    +			{
    +				//If one hasn't been created yet
    +				if (vault1 == null)
    +				{
    +					vault1 = new EdmVault5();
    +				}
    + 
    +				if (!vault1.IsLoggedIn)
    +				{
    +					//Log into selected vault as the current user
    +					vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +				}
    +				//Set the initial directory in the Select a file dialog
    +				OpenFileDialog1.InitialDirectory = vault1.RootFolderPath;
    +				//Show the Select a file dialog
    +				System.Windows.Forms.DialogResult DialogResult;
    +				DialogResult = OpenFileDialog1.ShowDialog();
    + 
    +				if (!(DialogResult == System.Windows.Forms.DialogResult.OK))
    +				{
    +					//Do nothing
    +				}
    +				else
    +				{
    +					//Browse for a file whose next possible state 
    +					//transitions to get
    +					fileName = OpenFileDialog1.FileName;
    +					FileListBox.Items.Add(fileName);
    +					IEdmFolder5 retFolder = default(IEdmFolder5);
    +					aFile = vault1.GetFileFromPath(fileName, out retFolder);
    + 
    +				}
    + 
    +			}
    +			catch (System.Runtime.InteropServices.COMException ex)
    +			{
    +				MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +			}
    +			catch (Exception ex)
    +			{
    +				MessageBox.Show(ex.Message);
    +			}
    + 
    +		}
    +	}
    +}
    + +
    +
    //Form1.Designer.cs
    +
    +
    +
    namespace UpdateReferencesCSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;
    + 
    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }
    + 
    +        #region Windows Form Designer generated code
    + 
    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.Label1 = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.FileListBox = new System.Windows.Forms.ListBox();
    +            this.BrowseButton = new System.Windows.Forms.Button();
    +            this.UpdateReferencesButton = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            // 
    +            // Label1
    +            // 
    +            this.Label1.AutoSize = true;
    +            this.Label1.Location = new System.Drawing.Point(13, 9);
    +            this.Label1.Name = "Label1";
    +            this.Label1.Size = new System.Drawing.Size(91, 13);
    +            this.Label1.TabIndex = 0;
    +            this.Label1.Text = "Select vault view:";
    +            // 
    +            // VaultsComboBox
    +            // 
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 26);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            // 
    +            // FileListBox
    +            // 
    +            this.FileListBox.FormattingEnabled = true;
    +            this.FileListBox.Location = new System.Drawing.Point(16, 66);
    +            this.FileListBox.Name = "FileListBox";
    +            this.FileListBox.Size = new System.Drawing.Size(165, 17);
    +            this.FileListBox.TabIndex = 2;
    +            // 
    +            // BrowseButton
    +            // 
    +            this.BrowseButton.Location = new System.Drawing.Point(206, 66);
    +            this.BrowseButton.Name = "BrowseButton";
    +            this.BrowseButton.Size = new System.Drawing.Size(66, 23);
    +            this.BrowseButton.TabIndex = 3;
    +            this.BrowseButton.Text = "Browse...";
    +            this.BrowseButton.UseVisualStyleBackColor = true;
    +            this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
    +            // 
    +            // UpdateReferencesButton
    +            // 
    +            this.UpdateReferencesButton.Location = new System.Drawing.Point(16, 113);
    +            this.UpdateReferencesButton.Name = "UpdateReferencesButton";
    +            this.UpdateReferencesButton.Size = new System.Drawing.Size(121, 23);
    +            this.UpdateReferencesButton.TabIndex = 4;
    +            this.UpdateReferencesButton.Text = "Update references";
    +            this.UpdateReferencesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
    +            this.UpdateReferencesButton.UseVisualStyleBackColor = true;
    +            this.UpdateReferencesButton.Click += new System.EventHandler(this.UpdateReferencesButton_Click);
    +            // 
    +            // OpenFileDialog1
    +            // 
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            this.OpenFileDialog1.Multiselect = true;
    +            this.OpenFileDialog1.Title = "Select a file";
    +            // 
    +            // Form1
    +            // 
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(284, 161);
    +            this.Controls.Add(this.UpdateReferencesButton);
    +            this.Controls.Add(this.BrowseButton);
    +            this.Controls.Add(this.FileListBox);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.Label1);
    +            this.Name = "Form1";
    +            this.Text = "Update References";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();
    + 
    +        }
    + 
    +        #endregion
    + 
    +        private System.Windows.Forms.Label Label1;
    +        private System.Windows.Forms.ComboBox VaultsComboBox;
    +        private System.Windows.Forms.ListBox FileListBox;
    +        private System.Windows.Forms.Button BrowseButton;
    +        private System.Windows.Forms.Button UpdateReferencesButton;
    +        private System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +    }
    +}
    +
    + + + + + diff --git a/documentation/api_extracted/Update_References_Example_VBNET.htm b/documentation/api_extracted/Update_References_Example_VBNET.htm new file mode 100644 index 0000000..6b40f70 --- /dev/null +++ b/documentation/api_extracted/Update_References_Example_VBNET.htm @@ -0,0 +1,285 @@ + + + +Update References Example (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Update References Example (VB.NET)

    +

    This example shows how to update the references of a file +in a vault.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +
    '----------------------------------------------------------------------------
    +' Preconditions:
    +'  1. Start Microsoft Visual Studio.
    +'     a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'     b. Type UpdateReferencesVBNET in Name.
    +'     c. Click Browse and navigate to the folder where to create the project.
    +'     d. Click OK
    +'     e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'        Form1.vb in the Solution Explorer.
    +'     f. Replace the code in Form1.vb with this code.
    +'     g. To create the form, replace the code in Form1.Designer.vb with 
    +'        this code.
    +'  2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'     name in the Solution Explorer, click Add Reference, click 
    +'     Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'     your SOLIDWORKS PDM Professional installation, locate and click 
    +'     EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +'  3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'     Embed Interop Types to False to handle methods that pass arrays of 
    +'     structures.
    +'  4. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +'  1. Displays your Update References dialog box.
    +'  2. Select a vault view.
    +'  3. Click Browse.
    +'  4. Displays the Select a file dialog box.
    +'     a. Click a file in the selected vault.
    +'     b. Click Open.
    +'     The selected file's path and file name appear 
    +'     in the Select a file dialog box.
    +'  5. Click Update references.
    +'  6. Initializes and displays SOLIDWORKS PDM Professional's Update References 
    +'     dialog box, which shows the name of the selected file whose file references 
    +'     to update and the names of the file references, if any.
    +'  7. Click Close.
    +'  8. Close your Update References dialog box.
    +'----------------------------------------------------------------------------
    +'Form1.vb
    +Imports EPDM.Interop.epdm
    + 
    + 
    +Public Class Form1
    + 
    +    Private vault1 As IEdmVault5 = Nothing
    +    Dim aFile As IEdmFile5
    +    Dim fileName As String
    + 
    + 
    +    Private Sub Form1_Load( _
    +      ByVal sender As System.Object, _
    +      ByVal e As System.EventArgs) _
    +      Handles MyBase.Load
    + 
    +        Try
    +            Dim vault As IEdmVault8 = New EdmVault5
    +            Dim Views() As EdmViewInfo = Nothing
    + 
    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = VaultsComboBox.Items(0)
    +            End If
    + 
    +        Catch ex As Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + _
    +              ex.ErrorCode.ToString("X") + vbCrLf + _
    +              ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub UpdateReferencesButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles UpdateReferencesButton.Click
    +        Try
    +            'Only create a new vault object
    +            'if one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    + 
    +            'Update the references for the selected document
    +            'and show SOLIDWORKS PDM Professional Update References dialog
    +            Dim updateRefs As IEdmUpdateReferences
    +            updateRefs = vault1.CreateUtility(EdmUtility.EdmUtil_UpdateReferences)
    +            updateRefs.AddFile(fileName)
    +            updateRefs.ShowDlg(Me.Handle.ToInt32(), 0, 0)
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +    Public Sub BrowseButton_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BrowseButton.Click
    +        Try
    +            'If one hasn't been created yet
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    + 
    +            If Not vault1.IsLoggedIn Then
    +                'Log into selected vault as the current user
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If
    +            'Set the initial directory in the Select a file dialog
    +            OpenFileDialog1.InitialDirectory = vault1.RootFolderPath
    +            'Show the Select a file dialog
    +            Dim DialogResult As System.Windows.Forms.DialogResult = Nothing
    +            DialogResult = OpenFileDialog1.ShowDialog()
    + 
    +            If Not (DialogResult = System.Windows.Forms.DialogResult.OK) Then
    +                'Do nothing
    +            Else
    +                'Browse for a file whose next possible state 
    +                'transitions to get
    +                fileName = OpenFileDialog1.FileName
    +                FileListBox.Items.Add(fileName)
    +                aFile = vault1.GetFileFromPath(fileName)
    + 
    +            End If
    + 
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub
    + 
    +End Class
    + +
    +
    'Form1.Designer.vb
    +
    +
    +
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    + 
    +    'Form overrides dispose to clean up the component list.
    +    <System.Diagnostics.DebuggerNonUserCode()> _
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        Try
    +            If disposing AndAlso components IsNot Nothing Then
    +                components.Dispose()
    +            End If
    +        Finally
    +            MyBase.Dispose(disposing)
    +        End Try
    +    End Sub
    + 
    +    'Required by the Windows Form Designer
    +    Private components As System.ComponentModel.IContainer
    + 
    +    'NOTE: The following procedure is required by the Windows Form Designer
    +    'It can be modified using the Windows Form Designer.  
    +    'Do not modify it using the code editor.
    +    <System.Diagnostics.DebuggerStepThrough()> _
    +    Private Sub InitializeComponent()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.FileListBox = New System.Windows.Forms.ListBox()
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.BrowseButton = New System.Windows.Forms.Button()
    +        Me.UpdateReferencesButton = New System.Windows.Forms.Button()
    +        Me.Label1 = New System.Windows.Forms.Label()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(28, 44)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(190, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'FileListBox
    +        '
    +        Me.FileListBox.FormattingEnabled = True
    +        Me.FileListBox.Location = New System.Drawing.Point(28, 97)
    +        Me.FileListBox.Name = "FileListBox"
    +        Me.FileListBox.Size = New System.Drawing.Size(190, 17)
    +        Me.FileListBox.TabIndex = 3
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        Me.OpenFileDialog1.Multiselect = True
    +        Me.OpenFileDialog1.Title = "Select a file"
    +        '
    +        'BrowseButton
    +        '
    +        Me.BrowseButton.Location = New System.Drawing.Point(236, 97)
    +        Me.BrowseButton.Name = "BrowseButton"
    +        Me.BrowseButton.Size = New System.Drawing.Size(56, 23)
    +        Me.BrowseButton.TabIndex = 4
    +        Me.BrowseButton.Text = "Browse..."
    +        Me.BrowseButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.BrowseButton.UseVisualStyleBackColor = True
    +        '
    +        'UpdateReferencesButton
    +        '
    +        Me.UpdateReferencesButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.UpdateReferencesButton.Location = New System.Drawing.Point(28, 152)
    +        Me.UpdateReferencesButton.Name = "UpdateReferencesButton"
    +        Me.UpdateReferencesButton.Size = New System.Drawing.Size(109, 23)
    +        Me.UpdateReferencesButton.TabIndex = 5
    +        Me.UpdateReferencesButton.Text = "Update references"
    +        Me.UpdateReferencesButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
    +        Me.UpdateReferencesButton.UseVisualStyleBackColor = True
    +        '
    +        'Label1
    +        '
    +        Me.Label1.AutoSize = True
    +        Me.Label1.Location = New System.Drawing.Point(28, 25)
    +        Me.Label1.Name = "Label1"
    +        Me.Label1.Size = New System.Drawing.Size(91, 13)
    +        Me.Label1.TabIndex = 6
    +        Me.Label1.Text = "Select vault view:"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(323, 184)
    +        Me.Controls.Add(Me.Label1)
    +        Me.Controls.Add(Me.UpdateReferencesButton)
    +        Me.Controls.Add(Me.BrowseButton)
    +        Me.Controls.Add(Me.FileListBox)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Name = "Form1"
    +        Me.Text = "Update File References"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()
    + 
    +    End Sub
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents FileListBox As System.Windows.Forms.ListBox
    +    Friend WithEvents BrowseButton As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    +    Friend WithEvents UpdateReferencesButton As System.Windows.Forms.Button
    +    Friend WithEvents Label1 As System.Windows.Forms.Label
    + 
    +End Class
    +
    + + + + + diff --git a/documentation/api_extracted/UserPopup.png b/documentation/api_extracted/UserPopup.png new file mode 100644 index 0000000000000000000000000000000000000000..60e4350321ce65b52974828c0491193e93fb4143 GIT binary patch literal 71575 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 z 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/Using_Basic_Search_Syntax_Example_CSharp.htm b/documentation/api_extracted/Using_Basic_Search_Syntax_Example_CSharp.htm new file mode 100644 index 0000000..213160b --- /dev/null +++ b/documentation/api_extracted/Using_Basic_Search_Syntax_Example_CSharp.htm @@ -0,0 +1,1244 @@ + + + +Using Basic Search Syntax Example (C#) + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Using Basic Search Syntax Example (C#)

    +

    This example shows how to search the vault for file and +folder card variables using CreateSearch2 search syntax.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual C# > +Console Application.
    +//    b. Type Search in Name.
    +//    c. Click Browse and navigate to the folder where to +create the project.
    +//    d. Click OK.
    +//    e. Click Show All Files in the Solution Explorer +toolbar and expand
    +//       Program.cs in the Solution Explorer.
    +//    f. Replace the code in Program.cs +with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-
    click +the project
    +//    name in the Solution Explorer, click Add Reference, +click
    +//    Assemblies > Framework in the left-side panel, browse to +the top folder of
    +//    your SOLIDWORKS PDM Professional installation, locate and +select
    +//    EPDM.Interop.epdm.dll, click Open, click Add, +and click Close).
    // 3. Change the vault name and the vault view path +in the code.
    // 4. + Make sure +your vault contains a text file data card with a Document Number data card variable,
    //    and checked-in files with data card values exactly as described in the code.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: Press a key when prompted in the console.
    +//----------------------------------------------------------------------------

    +

    + +//Program.cs

    +

    +using +System;

    +

    +using +System.Collections.Generic;

    +

    +using +System.Linq;

    +

    +using +System.Text;

    +

    +using +System.Threading.Tasks;

    +

    +using +EPDM.Interop.epdm;

    +

    + 

    +

    +namespace +ConsoleApp1

    +

    +{

    +

    + +    +class +Program

    +

    + +    {

    +

    + +        + +static +void Main(string[] +args)

    +

    + +        +{

    +

    + +            +Console.WriteLine("Press +a key...");

    +

    + +            +Console.ReadKey();

    +

    + 

    +

    + +            +IEdmVault21 CurrentVault = + +new +EdmVault5() +as +IEdmVault21;

    +

    + +            +CurrentVault.LoginAuto("JEB5", +0);

    +

    + 

    +

    + +            + +// The vault contains these +files:          +   The file data cards contain these variables and values:

    +

    + +            + +// DocNum=five-six-seven +Comnt=ijk.txt         +@Document Number=567 & @Comment=ijk

    +

    + +            + +// DocNum=five-six-seven +Comnt=xyz.txt         +@Document Number=567 & @Comment=xyz

    +

    + +            // +DocNum=one-two-three Comnt=abc.txt          +@Document Number=123 & @Comment=abc

    +

    + 

    +

    + +            +IEdmSearchResult5 _searchResult;

    +

    + +            +IEdmSearch9 _search = (IEdmSearch9)CurrentVault.CreateSearch2();

    +

    + 

    +

    + +            + +// Let's see whether the +IEdmSearch9 object _search works - just as an example; not needed in common +practice

    +

    + +            + +string[] VarNames0 = { }; +

    +

    + +            +_search.AddMultiVariableCondition(VarNames0, + +"@:"); + + +// poVariableNames can be null

    +

    + +            +_search.GetFirstResult();

    +

    + +            + +bool OriginatedFromCreateSearch2 = +_search.GetSyntaxErrors() != +null;

    +

    + 

    +

    + +            +Console.WriteLine("OriginatedFromCreateSearch2 += " + OriginatedFromCreateSearch2);

    +

    + +            +Console.WriteLine("Press +a key...");

    +

    + +            +Console.ReadKey();

    +

    + 

    +

    + +            + +for (int i = 0; i < 7; i++)

    +

    + +            +{

    +

    + +                + +bool ExceptionEncountered = + + +false;

    +

    + +                +_search.Clear();

    +

    + +                +_search.StartFolderID = CurrentVault.GetFolderFromPath("C:\\Users\\J4M\\Desktop\\JEB5").ID;

    +

    + +                switch (i)

    +

    + +                +{

    +

    + +                    + + +case +0:     +// Single variable search +conditions

    +

    + +                                + + +// Expressions for special criteria and variables

    +

    + +                                + + +// Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                        +Console.WriteLine("");

    +

    + +                        +Console.WriteLine("Expressions +for special criteria and variables:");

    +

    + +                          +_search.FileName = + +"(limit | cam) !wheel OR DocNum";

    +

    + +                          +_search.AddVariable2("Document +Number", +"56 & 7");

    +

    + +                          +_search.AddVariable2("Comment", + + +"xy | z NOT a");

    +

    + +                        +

    +

    + +                        + + +break;

    +

    + 

    +

    + +                    + + +case +1:     +// Multi-variable condition +with extended possibilities for variable names

    +

    + +                        +Console.WriteLine("");

    +

    + +                        +Console.WriteLine("A +multi-variable condition with extended possibilities for names:");

    +

    + +                        +{

    +

    + +                            + + +string[] +VarNames = { + +"\"Document Number\"",  + +// Variable name contains a space so it must be quoted; quotes must be escaped +with backslashes

    +

    + +                                                  + +"Comment",              + +// Extra quotes are not +required for simple names

    +

    + +                                                  + +"51",                   + +// Database ID of Project name is a numeric constant

    +

    + +                                                  + +"_Name"                 + +// _Name represents +file/folder name

    +

    + +                                                +};

    +

    + +                            + + +// xy and z should be in one and the same variable value - owing to {}

    +

    + +                            + + +// Text 567 can be present in a different variable of a searched document

    +

    + +                            + + +// Because 567 and {z xy} can be in different variable values of the same +document (and here we want to find such cases),

    +

    + +                            + + +//   apply : at the beginning of +the condition to turn on multi-value search logic

    +

    + +                            + + +// Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                            +_search.AddMultiVariableCondition(VarNames, + +":567 {z xy}");

    +

    + +                            +

    +

    + +                        +}

    +

    + +                   +     break;

    +

    + 

    +

    + +                    + + +case +2:     +// Multi-variable condition for +all vault variables plus file/folder name

    +

    + +                        +Console.WriteLine("");

    +

    + +                        +Console.WriteLine("A +multi-variable condition for all vault variables:");

    +

    + +                        +{

    +

    + +                            + + +string[] +VarNames = { + +"\"\"",   + +// "" represents any vault +variable (and so does numeric constant 0)

    +

    + +                                             +     "_Name"   + +// Unquoted _Name represents +file/folder name

    +

    + +                                                +};

    +

    + +                            + + +// Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                            +_search.AddMultiVariableCondition(VarNames, + +":567 xyz | five xy");

    +

    + +                            +

    +

    + +                        +}

    +

    + +                        + + +break;

    +

    + 

    +

    + +                    + + +case +3:     +// Multi-variable condition +with mistakenly unquoted names

    +

    + +                        +Console.WriteLine("");

    +

    + +       +                 Console.WriteLine("A +multi-variable condition with mistakenly unquoted names:");

    +

    + +                        + + +try

    +

    + +                        +{

    +

    + +                            + + +string[] +VarNames = { + +"Document Number", +"Comment", +"Project Name" +};

    +

    + +      +                      // +Causes an exception because there are unquoted names with spaces

    +

    + +                            +_search.AddMultiVariableCondition(VarNames, + +":567 xyz | five xy");

    +

    + +                           +

    +

    + +                        +}

    +

    + +                 +       catch (System.ArgumentException ex)

    +

    + +                        +{

    +

    + +                            +Console.WriteLine("Wrong +variable name syntax... HRESULT = 0x" + ex.HResult.ToString("X") ++ ex.Message);

    +

    + +                            +ExceptionEncountered = +true;

    +

    + +                        +}

    +

    + +                        + + +break;

    +

    + 

    +

    + +                    + + +case +4:     +// Syntax errors are not +displayed and no documents are returned

    +

    + +                        +Console.WriteLine("");

    +

    + +                        +Console.WriteLine("Non-displayed +syntax errors:");

    +

    + +                        +_search.FileName = + +"(limit = | cam) !wheel OR AND DocNum";

    +

    + +                        +_search.AddVariable2("Document +Number", +"56 && 7");

    +

    + +                        +_search.AddVariable2("Comment", + + +"xy | z() NOT a");

    +

    + +                        +

    +

    + +                        + + +break;

    +

    + 

    +

    + +                    + + +case +5:     +// Syntax errors are displayed +(because @: is at the beginning of the conditions) and no documents are returned

    +

    + +                        +Console.WriteLine("");

    +

    + +                        +Console.WriteLine("Messages +about syntax errors:");

    +

    + +                        +_search.FileName = + +"@:(limit = | cam) !wheel OR AND DocNum";

    +

    + +                        +_search.AddVariable2("Document +Number", +"56 && 7");

    +

    + +                   +     _search.AddVariable2("Comment", + + +"@:xy | z() NOT a");

    +

    + +                        +

    +

    + +                        + + +break;

    +

    + 

    +

    + +                    + + +case +6:     +// Multi-value syntax with +error reporting (because @: is at the beginning of the condition)

    +

    + +                +        Console.WriteLine("");

    +

    + +                        +Console.WriteLine("Advanced +syntax features:");

    +

    + +                        + + +// The first argument, VarNames0, can be null because all the variables used are +defined directly inside the second argument (condition)

    +

    + +                        + + +// The second argument specifies to look for files that have (Comment = abc and +any card variable containing xyz) OR (file name or "Document Number" containing +123 or ab, but not five)

    +

    + +                        + + +// @: turns on multi-value logic at the top level of a condition (as does just a +colon)

    +

    + +                        + + +// @: allows variable bindings

    +

    + +                        + + +// Finds DocNum=one-two-three Comnt=abc.txt

    +

    + +                        +_search.AddMultiVariableCondition(VarNames0, + +"@: @Comment=abc & @\"\"(xyz) | @(\"Document Number\" | _Name)(123 | ab & +!five)");

    +

    + +                        +

    +

    + +                        + + +break;

    +

    + +                +}

    +

    + 

    +

    + +                + +if (ExceptionEncountered)

    +

    + +                    +_searchResult = + +null;

    +

    + +                else

    +

    + +                    +_searchResult = _search.GetFirstResult();

    +

    + 

    +

    + +                + +if (_searchResult == + + +null)

    +

    + +                    +Console.WriteLine("Returned +null...");

    +

    + +                + +else

    +

    + +                    +Console.WriteLine("Returned +a file list...");

    +

    + +                +Console.WriteLine("Press +a key...");

    +

    + +                +Console.ReadKey();

    +

    + 

    +

    + +                + +if (_searchResult != + + +null)

    +

    + +                +{

    +

    + +                    + + +while +(_searchResult != + +null)

    +

    + +                    +{

    +

    + +                        Console.WriteLine("NAME += " + _searchResult.Name + +", PATH = " ++ _searchResult.Path);

    +

    + +                        +Console.WriteLine("Press +a key...");

    +

    + +                        +Console.ReadKey();

    +

    + +                        +_searchResult = _search.GetNextResult();

    +

    + +                    +}

    +

    + +                +}

    +

    + +                + +else

    +

    + +                +{

    +

    + +                    + + +string[] +SyntaxErrors = _search.GetSyntaxErrors();

    +

    + +                    + +if +(SyntaxErrors != + +null)

    +

    + +                        + + +foreach +(string +s +in +SyntaxErrors)

    +

    + +                        +{

    +

    + +                            +Console.WriteLine(s);

    +

    + +                            +Console.WriteLine("Press +a key...");

    +

    + +                            +Console.ReadKey();

    +

    + +                        +}

    +

    + +                +}

    +

    + +            }

    +

    + +        +}

    +

    + +    }

    +

    +}

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Using_Basic_Search_Syntax_Example_VBNET.htm b/documentation/api_extracted/Using_Basic_Search_Syntax_Example_VBNET.htm new file mode 100644 index 0000000..745a439 --- /dev/null +++ b/documentation/api_extracted/Using_Basic_Search_Syntax_Example_VBNET.htm @@ -0,0 +1,1180 @@ + + + +Using Basic Search Syntax Example (VB.NET) + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Using Basic Search Syntax Example (VB.NET)

    +

    This example shows how to search the +vault for file and folder card variables using CreateSearch2 search syntax.

    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    + +

    '----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > +Console Application.
    +'    b. Type Search_VBNET in Name.
    +'    c. Click Browse and navigate to the folder where to create the project.
    +'    d. Click OK. +
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand +
    +'       +Module1.vb in the Solution Explorer.
    +'    f. Replace all the code for +Module1.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click +
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of +
    +'    your SOLIDWORKS PDM Professional +installation, locate and select +
    +'    EPDM.Interop.epdm.dll, click Open, click Add, and click Close).
    +' 3. Change the vault name and the +vault view path in the code.
    ' 4. Make sure your vault contains a text file +data card with a Document Number data card variable,
    '    +and checked-in files with data card values exactly as described in the code.

    +' 5. Click Debug > Start Debugging or press F5.

    +'
    +' Postconditions: Press a key when prompted in the +console.
    +'---------------------------------------------------------------------------

    +

    +'Module1.vb

    +

    +Imports +System

    +

    +Imports +System.Collections.Generic

    +

    +Imports +System.Linq

    +

    +Imports +System.Text

    +

    +Imports +System.Threading.Tasks

    +

    +Imports +EPDM.Interop.epdm

    +

    +Module + + +Module1

    +

    + 

    +

    + +    +Sub Main(ByVal +args +As + + +String())

    +

    + +        +Console.WriteLine("Press +a key...")

    +

    + +        +Console.ReadKey()

    +

    + +        + +Dim CurrentVault +As +IEdmVault21 = + +TryCast(New +EdmVault5(), IEdmVault21)

    +

    + +        +CurrentVault.LoginAuto("JEB5", +0)

    +

    + 

    +

    + +        + +' The vault contains these +files       +The file data cards contain these variables And values: +

    +

    + +        + +' DocNum=five-six-seven +Comnt=ijk.txt   @Document +Number=567 & @Comment=ijk

    +

    + +        + +' DocNum=five-six-seven +Comnt=xyz.txt   @Document +Number=567 & @Comment=xyz

    +

    + +        + +' DocNum=one-two-three +Comnt=abc.txt    @Document +Number=123 & @Comment=abc

    +

    + 

    +

    + +        + +Dim _searchResult +As +IEdmSearchResult5

    +

    + +        + +Dim _search +As IEdmSearch9 = + +CType(CurrentVault.CreateSearch2(), +IEdmSearch9)

    +

    + +        + +Dim VarNames0 +As + + +String() += {}

    +

    + +        +_search.AddMultiVariableCondition(VarNames0, + +"@:") + +' +poVariableNames can be Nothing

    +

    + +        +_search.GetFirstResult()

    +

    + +        + +Dim OriginatedFromCreateSearch2 + +As + + +Boolean += _search.GetSyntaxErrors() +IsNot +Nothing

    +

    + +        +Console.WriteLine("OriginatedFromCreateSearch2  += " & OriginatedFromCreateSearch2)

    +

    + +        +Console.WriteLine("Press +a key...")

    +

    + +        +Console.ReadKey()

    +

    + 

    +

    + +        + +For i +As +Integer = 0 +To +7 - 1

    +

    + +            + +Dim ExceptionEncountered +As + + +Boolean += + +False

    +

    + +            +_search.Clear()

    +

    + +            +_search.StartFolderID = CurrentVault.GetFolderFromPath("C:\Users\J4M\Desktop\JEB5").ID

    +

    + 

    +

    + +            + +Select +Case i

    +

    + +                + +Case 0 +' Single variable search +conditions with special criteria and variables

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Single +variable search conditions with special criteria and variables:")

    +

    + +                    +_search.FileName = + +"(limit | cam) !wheel OR DocNum"

    +

    + +                    +_search.AddVariable2("Document +Number", +"56 & 7")

    +

    + +                    +_search.AddVariable2("Comment", + + +"xy | z NOT a")

    +

    + +                    + +' +Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                + +Case 1 +' Multi-variable +condition with extended search name syntax

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Multi-variable +condition with extended search name syntax:")

    +

    + +                    + +' +VarNames array declares that all elements are strings

    +

    + +                    + + +Dim +VarNames +As + + +String() += {"""Document +Number""", +"Comment", +"51", + + +"_Name"}

    +

    + +                    + +' +Both xy And z must be in the same card variable - owing to {}

    +

    + +                    + +' +Text 567 can be in a different card variable

    +

    + +                    + +' +: turns on multi-value search logic

    +

    + +                    +_search.AddMultiVariableCondition(VarNames, + +":567 {z xy}")

    +

    + +                    + +' +Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                + +Case 2 +' Multi-variable +condition searches all the card variables in file/folder name

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Multi-variable +condition for all the vault variables:")

    +

    + +                    + +' +Unquoted _Name represents file/folder name

    +

    + +                    + +' +"" or 0 represents any card variable

    +

    + +                    + + +Dim +VarNames +As + + +String() += {"""""", + + +"_Name"}

    +

    + +                    +_search.AddMultiVariableCondition(VarNames, + +":567 xyz | five xy")

    +

    + +                    + +' +Finds DocNum=five-six-seven Comnt=xyz.txt

    +

    + +                + +Case 3 +' Extended +multi-variable condition with erroneously unquoted card variable names

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Multi-variable +condition with erroneously unquoted names:")

    +

    + +                    + + +Try

    +

    + +                        + + +Dim +VarNames +As + + +String() += {"Document +Number", +"Comment", +"Project Name"}

    +

    + +                        +_search.AddMultiVariableCondition(VarNames, + +":567 xyz | five xy")

    +

    + +                        + +' +Causes an exception because there are card variable names with spaces that need +extra quotation marks

    +

    + +                    + + +Catch +ex +As +System.ArgumentException

    +

    + +                        +Console.WriteLine("Wrong +variable syntax... HRESULT = 0x" & ex.HResult.ToString("X") +& ex.Message)

    +

    + +                        +ExceptionEncountered = + +True

    +

    + +                +    End +Try

    +

    + +                + +Case 4  + +' Syntax errors are not +displayed; no documents returned

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Syntax +errors, but not displayed:")

    +

    + +                    +_search.FileName = + +"(limit = | cam) !wheel OR AND DocNum"

    +

    + +                    +_search.AddVariable2("Document +Number", +"56 && 7")

    +

    + +                    +_search.AddVariable2("Comment", + + +"xy | z() NOT a")

    +

    + +                + +Case 5 +' Syntax errors +displayed (because @: is at the beginning of a condition); no documents returned

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Syntax +errors:")

    +

    + +                    +_search.FileName = + +"@:(limit = | cam) !wheel OR AND DocNum"

    +

    + +                    +_search.AddVariable2("Document +Number", +"56 && 7")

    +

    + +                    +_search.AddVariable2("Comment", + + +"@:xy | z() NOT a")

    +

    + +                + +Case 6  + +' Multi-value syntax with error +reporting (because @: is at the beginning of a condition)

    +

    + +                    +Console.WriteLine("")

    +

    + +                    +Console.WriteLine("Advanced +search syntax:")

    +

    + +                    + +' +The first argument can be Nothing because all the card variables are defined +with variable binding specifiers (@) inside the second argument which is the +condition

    +

    + +                    + +' +The second argument uses the advanced specifier which allows variable bindings

    +

    + +                    + +' +The second argument specifies to look for files that have (Comment = abc and any +card variables with xyz) OR (a file name or "Document Number" that contains 123 +or ab, but not five)

    +

    + +                    + +' + + +

    +

    + +                    + +' +Finds DocNum=one-two-three Comnt=abc.txt

    +

    + +                    +_search.AddMultiVariableCondition(VarNames0, + +"@: @Comment=abc & @""""(xyz) | @(""Document Number"" | _Name)(123 ab & !five)")

    +

    + 

    +

    + +            + +End +Select

    +

    + 

    +

    + +            + +If ExceptionEncountered + +Then

    +

    + +                +_searchResult = + +Nothing

    +

    + +            + +Else

    +

    + +                +_searchResult = _search.GetFirstResult()

    +

    + +            + +End +If

    +

    + 

    +

    + +            + +If _searchResult +Is + + +Nothing + + +Then

    +

    + +                +Console.WriteLine("Returned +null...")

    +

    + +            + +Else

    +

    + +                +Console.WriteLine("Returned +a file list...")

    +

    + +            + +End +If

    +

    + 

    +

    + +            +Console.WriteLine("Press +a key...")

    +

    + +            +Console.ReadKey()

    +

    + 

    +

    + +            + +If _searchResult + +IsNot + + +Nothing + + +Then

    +

    + 

    +

    + +                + +While +_searchResult + +IsNot + + +Nothing

    +

    + +                    +Console.WriteLine("NAME += " & _searchResult.Name & +", PATH = " ++ _searchResult.Path)

    +

    + +                    +Console.WriteLine("Press +a key...")

    +

    + +                    +Console.ReadKey()

    +

    + +                    +_searchResult = _search.GetNextResult()

    +

    + +                + +End +While

    +

    + +            + +Else

    +

    + +                + +Dim SyntaxErrors +As + + +String() += _search.GetSyntaxErrors()

    +

    + 

    +

    + +                + +If SyntaxErrors + +IsNot + + +Nothing + + +Then

    +

    + 

    +

    + +                    + + +For + + +Each +s +As + + +String + +In +SyntaxErrors

    +

    + +                        +Console.WriteLine(s)

    +

    + +                        +Console.WriteLine("Press +a key...")

    +

    + +                        +Console.ReadKey()

    +

    + +                    + + +Next

    +

    + +            +    End +If

    +

    + +            + +End +If

    +

    + +        + +Next

    +

    + +    +End +Sub

    +

    + 

    +

    +End +Module

    +

    + 

    +

    + +
    +
    + 
    +
    + +
    + + + + diff --git a/documentation/api_extracted/Using_NET_Framework_in_Addins.htm b/documentation/api_extracted/Using_NET_Framework_in_Addins.htm new file mode 100644 index 0000000..c0f6fa5 --- /dev/null +++ b/documentation/api_extracted/Using_NET_Framework_in_Addins.htm @@ -0,0 +1,151 @@ + + + +Using .NET Framework in Add-in Applications + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Using .NET Framework in Add-in Applications

    +

    Many versions of .NET Framework may be installed with your Windows operating +system or Visual Studio. See + +https://msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx.

    +

    SOLIDWORKS +PDM Professional supports one or more versions of .NET Framework.

    + + + + + + + + + + + + + + + + + +
    + SOLIDWORKS + PDM Professional versions... + Support + .NET Framework...
    2013 and + later4.0 and later
    2009 - 20123.5, 3.0, and 2.0
    2008 and + earlier2.0
    + + 

    If using .NET Framework 4.0 +or later, prevent failures when calling methods that pass arrays of structures by:

    +
    +
      +
    1. Opening the project in Visual Studio.
    2. +
    3. Right-clicking References > EPDM.Interop.epdm + in the Solution Explorer + and selecting Properties.
    4. +
    5. Setting Embed Interop Types to False in + Properties.
    6. +
    7. Right-clicking References > EPDM.Interop.EPDMResultCode + in the Solution Explorer + and selecting Properties.
    8. +
    9. Setting Embed Interop Types to False in + Properties.
    10. +
    11. Initializing arrays of structures in your code to:
        +
      • VB.NET: Nothing
      • +
      • C#: null
      • +
      +
    12. +
    +
    +

    If your SOLIDWORKS PDM Professional 2012 or earlier version add-in application +is compiled using Microsoft Visual Studio and a .NET Framework version +other than version 2.0, then SOLIDWORKS PDM Professional may show the following message when you +try to load the +add-in:

         +“The Archive Server could not open the Windows Registry.”

    +
      +
    • C# or VB.NET

      To + solve this problem, try changing your add-in project’s target framework to .NET + Framework 2.0:

    • +
    +
    +
      +
    1. Right-click the project in the Solution Explorer.
    2. +
    3. Select Properties.
    4. +
    5. Click Compile > Advanced Compile Options.
    6. +
    7. Select .NET Framework 2.0.
    8. +
    9. Click OK.
    10. +
    +

    After changing your project’s target framework to .NET Framework 2.0, you might + no longer be able to reference the SOLIDWORKS PDM Professional + nnnn +Type Library (EdmInterface.dll), because Visual Studio created the DLL using the latest version of .NET Framework, + but you just changed the +project to target an earlier version of .NET Framework (2.0). If you encounter this +problem, you can generate a compatible SOLIDWORKS PDM Professional primary interop +assembly by using the Microsoft's Type Library Importer (TlbImp.exe) that is +included in an earlier +version of the Microsoft .NET Framework SDK.

    +
      +
    1. Download and install a version of .NET Framework SDK that is + compatible with your add-in project's version.
    2. +
    3. Open a Windows Command Prompt.
    4. +
    5. Navigate to C:\Program Files\Microsoft SDKs\Windows\vx.x\Bin + in which the earlier .NET Framework version of TlbImp.exe is + installed.
    6. +
    7. Type TlbImp.exe install_dir\EdmInterface.dll /sysarray /out:Interop.EdmLib.dll /namespace:EdmLib.
    8. +
    9. Modify all add-in examples in this help file to use + the new interop ssembly.
    10. +
    +
    +
      +
    • C++
      +
      + This problem can occur at runtime if the add-in failed to register its DLL + during the build process. To solve this problem, ensure that your add-in + registers the DLL:
        +
      1. Open your C++ add-in project.
      2. +
      3. Right-click the project in the Solution Explorer.
      4. +
      5. Select Properties.
      6. +
      7. Click Linker > Input.
      8. +
      9. Configure Module Definition File to point to the add-in's + project_name.def.
      10. +
      11. Save the project.
      12. +
      13. Click Build > Clean Solution.
      14. +
      15. Click Build > Build Solution.
      16. +
      +
    • +
    +

    See Also

    +

    Using .NET Framework in +Stand-alone Applications

    + + + + diff --git a/documentation/api_extracted/Using_NET_Framework_in_Applications.htm b/documentation/api_extracted/Using_NET_Framework_in_Applications.htm new file mode 100644 index 0000000..652d1b4 --- /dev/null +++ b/documentation/api_extracted/Using_NET_Framework_in_Applications.htm @@ -0,0 +1,159 @@ + + + +Using .NET Framework in Stand-alone Applications + + + + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Using .NET Framework in Stand-alone Applications

    +

    If your Visual Studio project uses the +primary interop assembly +provided with SOLIDWORKS PDM Professional:

    +
      +
    • Reference + EPDM.Interop.epdm.dll and EPDM.Interop.EPDMResultCode.dll by:
        +
      1. Right-clicking the + project name in the Solution Explorer.
      2. +
      3. Selecting Add +Reference.
      4. +
      5. Selecting Framework + in the left-side panel.
      6. +
      7. Clicking Browse and navigating + to the top folder of your SOLIDWORKS PDM Professional installation.
      8. +
      9. Locating and selecting + EPDM.Interop.epdm.dll.
      10. +
      11. Clicking Open.
      12. +
      13. Clicking Add.
      14. +
      15. Repeat step 4.
      16. +
      17. Locating and selecting EPDM.Interop.EPDMResultCode.dll.
      18. +
      19. Repeat steps 6 and 7.
      20. +
      21. Click Close.
         
      22. +
      +
    • +
    • Include the following + statements in your code:
        +
      • VB.NET: +

        Imports + EPDM.Interop.epdm
        + Imports EPDM.Interop.EPDM.Interop.EPDMResultCode
         

      • +
      • C#:
        + using + EPDM.Interop.epdm
        + using EPDM.Interop.EPDMResultCode

         
      • +
      +
    • +
    +
      +
    • Change the version of .NET + Framework, select the platform target Any CPU, and for .NET + Frameworks 4.5 de-select Prefer 32-bit:
        +
      •  VB.NET:
          +
        • In Project > your_project_name + Properties... > Application, set Target framework to + .NET Framework 4.0 or later (or keep your Visual Studio's default + setting)
          +
        • +
        • In Project > your_project_name + Properties... > Compile > Compile Options:
            +
          • Set Target CPU to AnyCPU
          • +
          • If the .NET Framework + version is 4.5 or later, de-select Prefer 32-bit
             
          • +
          +
        • +
        +
      • +
      • C#:
          +
        • In Project > your_project_name + Properties... > Application, set Target framework to + .NET Framework 4.0 or later (or keep your Visual Studio's default + setting)
        • +
        • In Project > your_project_name + Properties... > Build:
          +
            +
          • Set General > Platform target + to Any CPU
          • +
          • If the .NET Framework version is 4.5 or + later, de-select + Prefer 32-bit
             
          • +
          +
        • +
        +
      • +
      +
    • +
    • Prevent failures when + calling methods that pass arrays of structures by:
      +
        +
      1. Opening the project in Visual Studio.
      2. +
      3. Right-clicking References > EPDM.Interop.epdm + in the Solution Explorer + and selecting Properties.
      4. +
      5. Setting Embed Interop Types to False in + Properties.
      6. +
      7. Right-clicking References > EPDM.Interop.EPDMResultCode + in the Solution Explorer + and selecting Properties.
      8. +
      9. Setting Embed Interop Types to False in + Properties.
      10. +
      11. Initializing arrays of structures in your code to:
          +
        • VB.NET: Nothing
        • +
        • C#: null
        • +
        +
      12. +
      +
    • +
    +

    See Also

    +

    Using .NET Framework in Add-in +Applications

    + + + + diff --git a/documentation/api_extracted/VaultUtilities.gif b/documentation/api_extracted/VaultUtilities.gif new file mode 100644 index 0000000000000000000000000000000000000000..be832ff3ecba06af2c7c9ec38eca574f4691f8b9 GIT binary patch literal 11069 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 + + +Vault Utilities Example (C#) + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Vault Utilities Example (C#)

    +

    This example shows how to:

    +
      +
    • Verify installed SOLIDWORKS PDM Professional version is at + least 5.3.
    • +
    • Get installed SOLIDWORKS PDM Professional licenses.
    • +
    • Add a group.
    • +
    • Remove a group.
    • +
    • Add a user.
    • +
    • Remove a user.
    • +
    • Copy a file.
    • +
    • Delete a file.
    • +
    • Get check-out permission for a file.
    • +
    • Delete a folder.
    • +
    • Restore deleted items to the vault view.
    • +
    +
    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +//----------------------------------------------------------------------------
    +// Preconditions:
    +// 1. Start Microsoft Visual Studio.
    +//    a. Click File > New > Project > Visual +C# > Windows Forms Application.
    +//    b. Type VaultUtilities_CSharp in Name.
    +//    c. Click Browse and navigate to the folder where to create 
    +//       the project.
    +//    d. Click OK
    +//    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +//       Form1.cs in the Solution Explorer.
    +//    f. Replace the code in Form1.cs with this code.
    +//    g. To create the form, +replace the code in Form1.Designer.cs with this code.
    +// 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +//    name in the Solution Explorer, click Add Reference, click 
    +//    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +//    your SOLIDWORKS PDM Professional installation, locate and select 
    +//    EPDM.Interop.epdm.dll, and click OK).
    +// 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +//    Embed Interop Types to False to handle methods that pass arrays of 
    +//    structures.
    +// 4. Ensure that an empty folder exists in the vault.

    +// 5. Click Debug > Start Debugging or press F5.
    +//
    +// Postconditions: 
    +// 1. Displays the Vault +utilities dialog box.
    +//    a. Select a vault view.
    +//    b. Click Verify +SOLIDWORKS PDM Professional 5.3
    +//       +1. Displays message about the installed version.
    +//       2. Click OK.

    +//    c. Click Get +SOLIDWORKS PDM Professional licenses.
    +//       1. Displays a +message with the installed licenses.
    +//       +2. Click OK.
    +//    d. Click Add group.
    +//       1. Displays a message that group, My +Group, is created.
    +//       2. Click OK.
    +//    e. Click Add user.
    +//       1. Displays a message that user, Temp, is +created.
    +//       2. Click OK.
    +//    f. Click Remove group.
    +//       1. Displays a message with the removal +status.
    +//       2. Click OK.
    +//    g. Click Remove user.
    +//       1. Displays a message with the removal +status.
    +//       2. Click OK.
    +
    //    h. Click Copy file.
    +//       1. In the Open dialog, click a vault +file.
    +//       2. Click Open.
    +//       3. In the Select Folder dialog, click a +folder to which to copy
    +//          the selected file.
    +//       4. Click OK.
    +//       5. Displays a message with the file copy +status.
    +//       6. Click OK.
    +//    i. Click Delete file.
    +//       1. In the Select Files to Delete dialog +box, click a vault file
    +//          to delete.
    +//       2. Click Open.
    +//       3. Displays a message with the file +deletion status.
    +//       4. Click OK.
    +//    j. Click Check-out permission.
    +//       1. In the Open dialog, click a file for +which to get the check-out
    +//          permission.
    +//       2. Click Open.
    +//       3. Displays a message with the user's +permission.
    +//       4. Click OK.
    +//    k. Click Delete folder.
    +//       1. In the Select Folder dialog, click an +empty vault folder to delete.
    +//       2. Click OK.
    +//       3. Displays a message with the status of +the folder deletion.
    +//       4. Click OK.
    +
    //    +l. Click Restore deleted items.
    +//       1. In the Select Folder dialog, click the +folder from which you deleted
    +//          a file in step 1i.
    +//       2. Click OK.
    +//       3. Displays a message with the status of +the folder restoration.
    +//       4. Click OK.

    +// 2. Close the Vault +utilities dialog box.         

    + +//----------------------------------------------------------------------------

    +//Form1.cs

    +

    +using System;
    +using System.Collections.Generic;
    +using System.ComponentModel;
    +using System.Data;
    +using System.Drawing;
    +using System.Linq;
    +using System.Text;
    +using System.Windows.Forms;
    +using EPDM.Interop.epdm;
    +

    +namespace VaultUtilities_CSharp
    +{
    +    public partial class Form1 : Form
    +    {
    +        public Form1()
    +        {
    +            InitializeComponent();
    +        }
    +        private IEdmVault5 vault1 = null;

    +        public void Form1_Load(System.Object sender, System.EventArgs e)
    +        {
    +            try
    +            {
    +                IEdmVault5 vault1 = new EdmVault5();
    +                IEdmVault8 vault = (IEdmVault8)vault1;
    +                EdmViewInfo[] Views = null;

    +                vault.GetVaultViews(out Views, false);
    +                VaultsComboBox.Items.Clear();
    +                foreach (EdmViewInfo View in Views)
    +                {
    +                    VaultsComboBox.Items.Add(View.mbsVaultName);
    +                }
    +                if (VaultsComboBox.Items.Count > 0)
    +                {
    +                    VaultsComboBox.Text = (string)VaultsComboBox.Items[0];
    +                }
    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }


    +        private void Button5_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Verify SOLIDWORKS PDM Professional version is 5.3 or higher
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                vault2.VerifyVersion(5, 3);

    +                MessageBox.Show("SOLIDWORKS PDM Professional version is at least 5.3");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button6_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Get licenses
    +            try
    +            {
    +                IEdmVault11 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault11)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                string msg = null;
    +                msg = "Installed licenses:" + "\n";
    +                EdmLicense[] lics = null;
    +                lics = null;
    +                vault2.GetLicense(out lics);
    +                int idx = 0;
    +                idx = Information.LBound(lics);
    +                while ((idx <= Information.UBound(lics)))
    +                {
    +                    msg = msg + "Type=";
    +                    switch (lics[idx].meType)
    +                    {
    +                        case EdmLicenseType.EdmLic_Editor:
    +                            msg = msg + "Editor";
    +                            break;
    +                        case EdmLicenseType.EdmLic_Contributor:
    +                            msg = msg + "Contributor";
    +                            break;
    +                        case EdmLicenseType.EdmLic_Viewer:
    +                            msg = msg + "Viewer";
    +                            break;
    +                        case EdmLicenseType.EdmLic_Processor:
    +                            msg = msg + "Processor";
    +                            break;
    +                        default:
    +                            msg = msg + Convert.ToString(lics[idx].meType);
    +                            break;
    +                    }

    +                    msg = msg + " Users=" + Convert.ToString(lics[idx].mlUserCount) + "\n";
    +                    idx = idx + 1;
    +                }

    +                vault2.MsgBox(this.Handle.ToInt32(), msg);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button7_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Add group, My Group
    +            try
    +            {
    +                IEdmVault11 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault11)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmUserMgr7 userMgr = default(IEdmUserMgr7);
    +                userMgr = (IEdmUserMgr7)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);

    +                IEdmUser7 admin = default(IEdmUser7);
    +                admin = (IEdmUser7)userMgr.GetUser("Admin");

    +                EdmGroupData2[] groups = new EdmGroupData2[1];
    +                groups[0].mbAutoAdd = 0;
    +                groups[0].mbsDescription = "A group created by the API";
    +                groups[0].mbsName = "My Group";
    +                groups[0].mlFlags = (int)EdmGroupDataFlags.Edmgdf_GetInterface;
    +                int[] members = new int[1];
    +                members[0] = admin.ID;
    +                groups[0].moMembers = members;
    +                EdmSysPerm[] perms = new EdmSysPerm[1];
    +                perms[0] = EdmSysPerm.EdmSysPerm_ModifyToolbox;
    +                groups[0].moSysPerms = perms;

    +                userMgr.AddGroups2(ref groups);

    +                string msg = null;
    +                msg = "";
    +                int idx = 0;
    +                idx = Information.LBound(groups);
    +                while ((idx <= Information.UBound(groups)))
    +                {
    +                    if (groups[idx].mhStatus != 0)
    +                    {
    +                        msg = msg + "Error creating group, '" + groups[idx].mbsName + "' - " + vault2.GetErrorMessage(groups[idx].mhStatus) + "\n";
    +                    }
    +                    else
    +                    {
    +                        msg = msg + "Created group, '" + groups[idx].mbsName + "', successfully with ID, " + groups[idx].mlGroupID.ToString() + "\n";
    +                    }
    +                    idx = idx + 1;
    +                }

    +                vault2.MsgBox(this.Handle.ToInt32(), msg);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button8_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Remove group, My Group
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmUserMgr7 userMgr = default(IEdmUserMgr7);
    +                userMgr = (IEdmUserMgr7)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);
    +                IEdmUserGroup6 @group = default(IEdmUserGroup6);
    +                @group = (IEdmUserGroup6)userMgr.GetUserGroup("My Group");
    +                if (@group == null)
    +                    return;

    +                int[] groups = new int[1];
    +                groups[0] = @group.ID;
    +                userMgr.RemoveGroups(groups);

    +                MessageBox.Show("Group, My Group, removed");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button9_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Add user, Temp
    +            try
    +            {
    +                IEdmVault11 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault11)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }
    +
    +                IEdmUserMgr7 UsrMgr = (IEdmUserMgr7)vault2;
    +                EdmUserData2[] UserData = new EdmUserData2[1];

    +                UserData[0].mbsCompleteName = "Temp";
    +                UserData[0].mbsEmail = "Temp";
    +                UserData[0].mbsInitials = "TJ";
    +                UserData[0].mbsUserName = "Temp";
    +                UserData[0].mlFlags = (int)EdmUserDataFlags.Edmudf_GetInterface;
    +                UserData[0].mlFlags += (int)EdmUserDataFlags.Edmudf_ForceAdd;
    +
    +                EdmSysPerm[] perms = new EdmSysPerm[3];
    +                perms[0] = EdmSysPerm.EdmSysPerm_EditUserMgr;
    +                perms[1] = EdmSysPerm.EdmSysPerm_EditReportQuery;
    +                perms[2] = EdmSysPerm.EdmSysPerm_MandatoryVersionComments;
    +                UserData[0].moSysPerms = perms;

    +                UsrMgr.AddUsers2(UserData);

    +                string msg = "";
    +                foreach (EdmUserData2 usr in UserData)
    +                {
    +                    if (usr.mhStatus == 0)
    +                    {
    +                        msg += "Created user, \"" + usr.mbsUserName + "\", successfully with ID, " + usr.mlUserID.ToString() + "\n";
    +                    }
    +                    else
    +                    {
    +                        msg += "Error creating user, \"" + usr.mbsUserName + "\" - " + vault2.GetErrorMessage(usr.mhStatus) + "\n";
    +                    }
    +                }
    +                MessageBox.Show(msg);


    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button10_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Remove user, Temp
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmUserMgr7 userMgr = default(IEdmUserMgr7);
    +                userMgr = (IEdmUserMgr7)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr);
    +                IEdmUser7 user = default(IEdmUser7);
    +                user = (IEdmUser7)userMgr.GetUser("Temp");
    +                if (user == null)
    +                    return;

    +                int[] users = new int[1];
    +                users[0] = user.ID;
    +                userMgr.RemoveUsers(users);

    +                MessageBox.Show("User, Temp, removed");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button4_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Get user's check-out permission for a file
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                EdmStrLst5 pathList = default(EdmStrLst5);
    +                pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles);
    +                if (pathList == null)
    +                    return;

    +                IEdmFile5 file = default(IEdmFile5);
    +                IEdmFolder5 srcFolder = null;
    +                file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out srcFolder);

    +                if (srcFolder.HasRightsEx((int)EdmRightFlags.EdmRight_Lock, file.ID))
    +                {
    +                    MessageBox.Show("User can check out this file");
    +                }
    +                else
    +                {
    +                    MessageBox.Show("User does not have check-out permission");
    +                }

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button1_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Copy file
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                EdmStrLst5 pathList = default(EdmStrLst5);
    +                pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles);
    +                if (pathList == null)
    +                    return;

    +                IEdmFile5 file = default(IEdmFile5);
    +                IEdmFolder5 srcFolder = null;
    +                file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out srcFolder);

    +                IEdmFolder5 destFolder = default(IEdmFolder5);
    +                destFolder = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select destination folder:");
    +                if (destFolder == null)
    +                    return;

    +                int fileID = 0;
    +                fileID = destFolder.CopyFile(file.ID, srcFolder.IDthis.Handle.ToInt32(), "", (int)EdmCopyFlag.EdmCpy_Simple);
    +                MessageBox.Show("Copied file successfully to new file with ID, " + fileID);

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button2_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Delete file
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                EdmStrLst5 pathList = default(EdmStrLst5);
    +                pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel, """""""""Select Files to Delete");
    +                if (pathList == null)
    +                    return;

    +                IEdmPos5 pos = default(IEdmPos5);
    +                pos = pathList.GetHeadPosition();
    +                while (!pos.IsNull)
    +                {
    +                    IEdmFile5 file = default(IEdmFile5);
    +                    IEdmFolder5 folder = null;
    +                    file = vault2.GetFileFromPath(pathList.GetNext(pos), out folder);
    +                    folder.DeleteFile(this.Handle.ToInt32(), file.ID);
    +                }

    +                string strCount = null;
    +                strCount = pathList.Count.ToString();
    +                MessageBox.Show("Deleted " + strCount + " file");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }

    +        private void Button3_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Delete folder
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmFolder5 folder = default(IEdmFolder5);
    +                folder = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select folder to delete:");
    +                if (folder == null)
    +                    return;

    +                IEdmFolder5 parentFolder = default(IEdmFolder5);
    +                parentFolder = folder.ParentFolder;

    +                if (parentFolder == null)
    +                {
    +                    MessageBox.Show("You cannot delete the vault root folder");
    +                    return;
    +                }

    +                parentFolder.DeleteFolder(this.Handle.ToInt32(), folder.ID);

    +                MessageBox.Show(folder.Name + " deleted");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    private void Button11_Click(System.Object sender, System.EventArgs e)
    +        {
    +            //Restore +folder
    +            try
    +            {
    +                IEdmVault7 vault2 = null;
    +                if (vault1 == null)
    +                {
    +                    vault1 = new EdmVault5();
    +                }
    +                vault2 = (IEdmVault7)vault1;
    +                if (!vault1.IsLoggedIn)
    +                {
    +                    vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32());
    +                }

    +                IEdmFolder11 folder = default(IEdmFolder11);
    +                folder = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select folder to delete:");
    +                if (folder == null)
    +                    return;

    +                +EdmDeletedItems[] arrayEdmDeletedItems;

    +                folder.GetDeletedItems(out +arrayEdmDeletedItems, true);
    +                folder.RecoverDeletedItems(arrayEdmDeletedItems);



    +                MessageBox.Show(folder.Name + " restored");

    +            }
    +            catch (System.Runtime.InteropServices.COMException ex)
    +            {
    +                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
    +            }
    +            catch (Exception ex)
    +            {
    +                MessageBox.Show(ex.Message);
    +            }
    +        }
    +    }
    +}

    +

    +

    +Back to top

    +

    +//Form1.Designer.cs

    +

    +namespace VaultUtilities_CSharp
    +{
    +    partial class Form1
    +    {
    +        /// <summary>
    +        /// Required designer variable.
    +        /// </summary>
    +        private System.ComponentModel.IContainer components = null;

    +        /// <summary>
    +        /// Clean up any resources being used.
    +        /// </summary>
    +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +        protected override void Dispose(bool disposing)
    +        {
    +            if (disposing && (components != null))
    +            {
    +                components.Dispose();
    +            }
    +            base.Dispose(disposing);
    +        }

    +        #region Windows Form Designer generated code

    +        /// <summary>
    +        /// Required method for Designer support - do not modify
    +        /// the contents of this method with the code editor.
    +        /// </summary>
    +        private void InitializeComponent()
    +        {
    +            this.VaultsLabel = new System.Windows.Forms.Label();
    +            this.VaultsComboBox = new System.Windows.Forms.ComboBox();
    +            this.Button1 = new System.Windows.Forms.Button();
    +            this.Button2 = new System.Windows.Forms.Button();
    +            this.Button3 = new System.Windows.Forms.Button();
    +            this.Button4 = new System.Windows.Forms.Button();
    +            this.Button5 = new System.Windows.Forms.Button();
    +            this.Button6 = new System.Windows.Forms.Button();
    +            this.Button7 = new System.Windows.Forms.Button();
    +            this.Button8 = new System.Windows.Forms.Button();
    +            this.Button9 = new System.Windows.Forms.Button();
    +            this.Button10 = new System.Windows.Forms.Button();
    +            this.Button11 = new System.Windows.Forms.Button();
    +            this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    +            this.SuspendLayout();
    +            //
    +            //VaultsLabel
    +            //
    +            this.VaultsLabel.AutoSize = true;
    +            this.VaultsLabel.Location = new System.Drawing.Point(13, 26);
    +            this.VaultsLabel.Name = "VaultsLabel";
    +            this.VaultsLabel.Size = new System.Drawing.Size(94, 13);
    +            this.VaultsLabel.TabIndex = 0;
    +            this.VaultsLabel.Text = " Select vault view:";
    +            //
    +            //VaultsComboBox
    +            //
    +            this.VaultsComboBox.FormattingEnabled = true;
    +            this.VaultsComboBox.Location = new System.Drawing.Point(16, 42);
    +            this.VaultsComboBox.Name = "VaultsComboBox";
    +            this.VaultsComboBox.Size = new System.Drawing.Size(121, 21);
    +            this.VaultsComboBox.TabIndex = 1;
    +            //
    +            //Button1
    +            //
    +            this.Button1.Location = new System.Drawing.Point(16, 223);
    +            this.Button1.Name = "Button1";
    +            this.Button1.Size = new System.Drawing.Size(91, 23);
    +            this.Button1.TabIndex = 6;
    +            this.Button1.Text = "Copy file...";
    +            this.Button1.UseVisualStyleBackColor = true;
    +            this.Button1.Click +=new System.EventHandler(Button1_Click);
    +            //
    +            //Button2
    +            //
    +            this.Button2.Location = new System.Drawing.Point(113, 223);
    +            this.Button2.Name = "Button2";
    +            this.Button2.Size = new System.Drawing.Size(96, 23);
    +            this.Button2.TabIndex = 7;
    +            this.Button2.Text = "Delete file...";
    +            this.Button2.UseVisualStyleBackColor = true;
    +            this.Button2.Click +=new System.EventHandler(Button2_Click);
    +            //
    +            //Button3
    +            //
    +            this.Button3.Location = new System.Drawing.Point(69, 281);
    +            this.Button3.Name = "Button3";
    +            this.Button3.Size = new System.Drawing.Size(96, 23);
    +            this.Button3.TabIndex = 8;
    +            this.Button3.Text = "Delete folder...";
    +            this.Button3.UseVisualStyleBackColor = true;
    +            this.Button3.Click +=new System.EventHandler(Button3_Click);
    +            //
    +            //Button4
    +            //
    +            this.Button4.Location = new System.Drawing.Point(43, 252);
    +            this.Button4.Name = "Button4";
    +            this.Button4.Size = new System.Drawing.Size(156, 23);
    +            this.Button4.TabIndex = 9;
    +            this.Button4.Text = "Check-out permission...";
    +            this.Button4.UseVisualStyleBackColor = true;
    +            this.Button4.Click +=new System.EventHandler(Button4_Click);
    +            //
    +            //Button5
    +            //
    +            this.Button5.Location = new System.Drawing.Point(16, 83);
    +            this.Button5.Name = "Button5";
    +            this.Button5.Size = new System.Drawing.Size(233, 23);
    +            this.Button5.TabIndex = 10;
    +            this.Button5.Text = "Verify SOLIDWORKS PDM Professional 5.3";
    +            this.Button5.UseVisualStyleBackColor = true;
    +            this.Button5.Click +=new System.EventHandler(Button5_Click);
    +            //
    +            //Button6
    +            //
    +            this.Button6.Location = new System.Drawing.Point(16, 121);
    +            this.Button6.Name = "Button6";
    +            this.Button6.Size = new System.Drawing.Size(233, 23);
    +            this.Button6.TabIndex = 11;
    +            this.Button6.Text = "Get SOLIDWORKS PDM Professional licenses";
    +            this.Button6.UseVisualStyleBackColor = true;
    +            this.Button6.Click +=new System.EventHandler(Button6_Click);
    +            //
    +            //Button7
    +            //
    +            this.Button7.Location = new System.Drawing.Point(16, 165);
    +            this.Button7.Name = "Button7";
    +            this.Button7.Size = new System.Drawing.Size(91, 23);
    +            this.Button7.TabIndex = 12;
    +            this.Button7.Text = "Add group";
    +            this.Button7.UseVisualStyleBackColor = true;
    +            this.Button7.Click +=new System.EventHandler(Button7_Click);
    +            //
    +            //Button8
    +            //
    +            this.Button8.Location = new System.Drawing.Point(16, 194);
    +            this.Button8.Name = "Button8";
    +            this.Button8.Size = new System.Drawing.Size(91, 23);
    +            this.Button8.TabIndex = 13;
    +            this.Button8.Text = "Remove group";
    +            this.Button8.UseVisualStyleBackColor = true;
    +            this.Button8.Click +=new System.EventHandler(Button8_Click);
    +            //
    +            //Button9
    +            //
    +            this.Button9.Location = new System.Drawing.Point(113, 165);
    +            this.Button9.Name = "Button9";
    +            this.Button9.Size = new System.Drawing.Size(96, 23);
    +            this.Button9.TabIndex = 14;
    +            this.Button9.Text = "Add user";
    +            this.Button9.UseVisualStyleBackColor = true;
    +            this.Button9.Click +=new System.EventHandler(Button9_Click);
    +            //
    +            //Button10
    +            //
    +            this.Button10.Location = new System.Drawing.Point(113, 194);
    +            this.Button10.Name = "Button10";
    +            this.Button10.Size = new System.Drawing.Size(96, 23);
    +            this.Button10.TabIndex = 15;
    +            this.Button10.Text = "Remove user";
    +            this.Button10.UseVisualStyleBackColor = true;
    +            this.Button10.Click +=new System.EventHandler(Button10_Click);
    +            //
    +            //Button11
    +            //
    +            this.Button11.Location = new System.Drawing.Point(43, 310);
    +            this.Button11.Name = "Button11";
    +            this.Button11.Size = new System.Drawing.Size(156, 29);
    +            this.Button11.TabIndex = 16;
    +            this.Button11.Text = "Restore +deleted items";
    +            this.Button11.UseVisualStyleBackColor = true;
    +            this.Button11.Click +=new System.EventHandler(Button11_Click);
    +            //
    +            //OpenFileDialog1
    +            //
    +            this.OpenFileDialog1.FileName = "OpenFileDialog1";
    +            //
    +            //Form1
    +            //
    +            this.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
    +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    +            this.ClientSize = new System.Drawing.Size(276, 330);
    +            this.Controls.Add(this.Button11);
    +            this.Controls.Add(this.Button10);
    +            this.Controls.Add(this.Button9);
    +            this.Controls.Add(this.Button8);
    +            this.Controls.Add(this.Button7);
    +            this.Controls.Add(this.Button6);
    +            this.Controls.Add(this.Button5);
    +            this.Controls.Add(this.Button4);
    +            this.Controls.Add(this.Button3);
    +            this.Controls.Add(this.Button2);
    +            this.Controls.Add(this.Button1);
    +            this.Controls.Add(this.VaultsComboBox);
    +            this.Controls.Add(this.VaultsLabel);
    +            this.Name = "Form1";
    +            this.Text = "Vault utilities";
    +            this.Load += new System.EventHandler(this.Form1_Load);
    +            this.ResumeLayout(false);
    +            this.PerformLayout();

    +        }

    +        #endregion

    +        internal System.Windows.Forms.Label VaultsLabel;
    +        internal System.Windows.Forms.ComboBox VaultsComboBox;
    +        internal System.Windows.Forms.Button Button1;
    +        internal System.Windows.Forms.Button Button2;
    +        internal System.Windows.Forms.Button Button3;
    +        internal System.Windows.Forms.Button Button4;
    +        internal System.Windows.Forms.Button Button5;
    +        internal System.Windows.Forms.Button Button6;
    +        internal System.Windows.Forms.Button Button7;
    +        internal System.Windows.Forms.Button Button8;
    +        internal System.Windows.Forms.Button Button9;
    +        internal System.Windows.Forms.Button Button10;
    +        internal System.Windows.Forms.Button Button11;
    +        internal System.Windows.Forms.OpenFileDialog OpenFileDialog1;
    +    }
    +}

    +

    +

    +

    +Back to top

    + + + + diff --git a/documentation/api_extracted/Vault_Utilities_Example_VBNET.htm b/documentation/api_extracted/Vault_Utilities_Example_VBNET.htm new file mode 100644 index 0000000..06bcf21 --- /dev/null +++ b/documentation/api_extracted/Vault_Utilities_Example_VBNET.htm @@ -0,0 +1,839 @@ + + + +Vault Utilities Example (VB.NET) + + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Vault Utilities Example (VB.NET)

    +

    This example shows how to:

    +
      +
    • Verify installed SOLIDWORKS PDM Professional version is at + least 5.3.
    • +
    • Get installed SOLIDWORKS PDM Professional licenses.
    • +
    • Add a group.
    • +
    • Remove a group.
    • +
    • Add a user.
    • +
    • Remove a user.
    • +
    • Copy a file.
    • +
    • Delete a file.
    • +
    • Get check-out permission for a file.
    • +
    • Delete a folder.
    • +
    • Restore deleted items to the vault view.
    • +
    +

    NOTE: If using the primary interop assembly +provided with SOLIDWORKS PDM Professional, see +Using .NET Framework 4.0 in +Stand-alone Applications.

    +

    + +

    + +'----------------------------------------------------------------------------
    +' Preconditions:
    +' 1. Start Microsoft Visual Studio.
    +'    a. Click File > New > Project > Visual Basic > Windows Forms Application.
    +'    b. Type VaultUtilities in Name.
    +'    c. Click Browse and navigate to the folder where to create 
    +'       the project.
    +'    d. Click OK
    +'    e. Click Show All Files in the Solution Explorer toolbar and expand 
    +'       Form1.vb in the Solution Explorer.
    +'    f. Replace the code in Form1.vb with this code.
    +'    g. To create the form, +replace the code in Form1.Designer.vb with this code.
    +' 2. Add EPDM.Interop.epdm.dll as a reference (right-click the project
    +'    name in the Solution Explorer, click Add Reference, click 
    +'    Assemblies > Framework in the left-side panel, browse to the top folder of 
    +'    your SOLIDWORKS PDM Professional installation, locate and click 
    +'    EPDM.Interop.epdm.dll, and click OK).
    +' 3. Right-click EPDM.Interop.epdm in References, click Properties, and set 
    +'    Embed Interop Types to False to handle methods that pass arrays of 
    +'    structures.
    +' 4. Ensure that an empty folder exists in the vault.

    +' 5. Click Debug > Start Debugging or press F5.
    +'
    +' Postconditions: 
    +' 1. Displays the Vault utilities dialog box.
    +'    a. Select a vault view.
    +'    b. Click Verify +SOLIDWORKS PDM Professional 5.3
    + +'       1. Displays message about the installed version.
    +'       2. Click OK.

    +'    c. Click Get SOLIDWORKS +Professional PDM licenses.
    +'       1. Displays a +message with the installed licenses.
    + +'       2. Click OK.
    +'    d. Click Add group.
    +'       1. Displays a message that group, My +Group, is created.
    +'       2. Click OK.
    +'    e. Click Add user.
    +'       1. Displays a message that user, Temp, is +created.
    +'       2. Click OK.
    +'    f. Click Remove group.
    +'       1. Displays a message with the removal +status.
    +'       2. Click OK.
    +'    g. Click Remove user.
    +'       1. Displays a message with the removal +status.
    +'       2. Click OK.
    +'    h. Click Copy file.
    +'       1. In the Open dialog, click a vault +file.
    +'       2. Click Open.
    +'       3. In the Select Folder dialog, click a +folder to which to copy
    +'          the selected file.
    +'       4. Click OK.
    +'       5. Displays a message with the file copy +status.
    +'       6. Click OK.
    +'    i. Click Delete file.
    +'       1. In the Select Files to Delete dialog +box, click a vault file
    +'          to delete.
    +'       2. Click Open.
    +'       3. Displays a message with the file +deletion status.
    +'       4. Click OK.
    +'    j. Click Check-out permission.
    +'       1. In the Open dialog, click a file for +which to get the check-out
    +'          permission.
    +'       2. Click Open.
    +'       3. Displays a message with the user's +permission.
    +'       4. Click OK.
    +'    k. Click Delete folder.
    +'       1. In the Select Folder dialog, click an +empty vault folder to delete.
    +'       2. Click OK.
    +'       3. Displays a message with the status of +the folder deletion.
    +'       4. Click OK.
    +'    l. Click Restore deleted items.
    +'       1. In the Select Folder dialog, click the +folder from which you deleted
    +'          a file in step 1i.
    +'       2. Click OK.
    +'       3. Displays a message with the status of +the folder restoration.
    +'       4. Click OK.

    + +' 2. Close the Vault utilities dialog box.         
    + +'----------------------------------------------------------------------------

    +'Form1.vb

    +

    +Imports System.IO
    +Imports System.Xml.Serialization
    +Imports System.Collections
    +Imports System.Collections.Generic
    +Imports System.Data
    +Imports System.Diagnostics
    +Imports System.Windows.Forms
    +Imports System.ComponentModel
    +Imports EPDM.Interop.epdm


    +Public Class Form1

    +    Private vault1 As IEdmVault5 = Nothing

    +    Public Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

    +        Try
    +            Dim vault1 As IEdmVault5 = New EdmVault5()
    +            Dim vault As IEdmVault8 = DirectCast(vault1, IEdmVault8)
    +            Dim Views As EdmViewInfo() = Nothing

    +            vault.GetVaultViews(Views, False)
    +            VaultsComboBox.Items.Clear()
    +            For Each View As EdmViewInfo In Views
    +                VaultsComboBox.Items.Add(View.mbsVaultName)
    +            Next
    +            If VaultsComboBox.Items.Count > 0 Then
    +                VaultsComboBox.Text = DirectCast(VaultsComboBox.Items(0), String)
    +            End If
    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub


    +    Private Sub Button5_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button5.Click
    +        'Verify SOLIDWORKS PDM Professional version is 5.3 or higher
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            vault2.VerifyVersion(5, 3)

    +            MessageBox.Show("SOLIDWORKS PDM Professional version is at least 5.3")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button6_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button6.Click
    +        'Get licenses
    +        Try

    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault11)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim msg As String
    +            msg = "Installed licenses:" + vbLf
    +            Dim lics() As EdmLicense
    +            lics = Nothing
    +            vault2.GetLicense(lics)
    +            Dim idx As Integer
    +            idx = LBound(lics)
    +            While (idx <= UBound(lics))
    +                msg = msg + "Type="
    +                Select Case lics(idx).meType
    +                    Case EdmLicenseType.EdmLic_Editor
    +                        msg = msg + "Editor"
    +                    Case EdmLicenseType.EdmLic_Contributor
    +                        msg = msg + "Contributor"
    +                    Case EdmLicenseType.EdmLic_Viewer
    +                        msg = msg + "Viewer"
    +                    Case EdmLicenseType.EdmLic_Processor
    +                        msg = msg + "Processor"
    +                    Case Else
    +                        msg = msg + CStr(lics(idx).meType)
    +                End Select

    +                msg = msg + " Users=" + CStr(lics(idx).mlUserCount) + vbLf
    +                idx = idx + 1
    +            End While

    +            vault2.MsgBox(Me.Handle.ToInt32, msg)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button7_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button7.Click
    +        'Add group, My Group
    +        Try

    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault11)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim userMgr As IEdmUserMgr7
    +            userMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)

    +            Dim admin As IEdmUser7
    +            admin = userMgr.GetUser("Admin")

    +            Dim groups(0) As EdmGroupData2
    +            groups(0).mbAutoAdd = 0
    +            groups(0).mbsDescription = "A group created by the API"
    +            groups(0).mbsName = "My Group"
    +            groups(0).mlFlags = EdmGroupDataFlags.Edmgdf_GetInterface
    +            Dim members(0) As Integer
    +            members(0) = admin.ID
    +            groups(0).moMembers = members
    +            Dim perms(0) As EdmSysPerm
    +            perms(0) = EdmSysPerm.EdmSysPerm_ModifyToolbox
    +            groups(0).moSysPerms = perms

    +            userMgr.AddGroups2(groups)

    +            Dim msg As String
    +            msg = ""
    +            Dim idx As Integer
    +            idx = LBound(groups)
    +            While (idx <= UBound(groups))
    +                If groups(idx).mhStatus <> 0 Then
    +                    msg = msg & "Error creating group, '" & groups(idx).mbsName & "' - " & vault2.GetErrorMessage(groups(idx).mhStatus) & vbLf
    +                Else
    +                    msg = msg & "Created group, '" & groups(idx).mpoGroup.Name & "', successfully with ID, " & CStr(groups(idx).mpoGroup.ID) & vbLf
    +                End If
    +                idx = idx + 1
    +            End While

    +            vault2.MsgBox(Me.Handle.ToInt32, msg)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button8_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button8.Click
    +        'Remove group, My Group
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim userMgr As IEdmUserMgr7
    +            userMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)
    +            Dim group As IEdmUserGroup6
    +            group = userMgr.GetUserGroup("My Group")
    +            If group Is Nothing Then Exit Sub

    +            Dim groups(0) As Integer
    +            groups(0) = group.ID
    +            userMgr.RemoveGroups(groups)

    +            MessageBox.Show("Group, My Group, removed")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button9_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button9.Click
    +        'Add user, Temp
    +        Try

    +            Dim vault2 As IEdmVault11 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault11)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim UsrMgr As IEdmUserMgr7 = vault2
    +            Dim UserData(0) As EdmUserData2

    +            UserData(0).mbsCompleteName = "Temp"
    +            UserData(0).mbsEmail = "Temp"
    +            UserData(0).mbsInitials = "TJ"
    +            UserData(0).mbsUserName = "Temp"
    +            UserData(0).mlFlags = _
    +                EdmUserDataFlags.Edmudf_GetInterface
    +            UserData(0).mlFlags += _
    +                EdmUserDataFlags.Edmudf_ForceAdd
    +            Dim perms(2) As EdmSysPerm
    +            perms(0) = EdmSysPerm.EdmSysPerm_EditUserMgr
    +            perms(1) = EdmSysPerm.EdmSysPerm_EditReportQuery
    +            perms(2) = EdmSysPerm.EdmSysPerm_MandatoryVersionComments
    +            UserData(0).moSysPerms = perms
    +
    +            UsrMgr.AddUsers2(UserData)

    +            Dim msg As String = ""
    +            For Each usr As EdmUserData2 In UserData
    +                If usr.mhStatus = 0 Then
    +                    msg += "Created user, """ + usr.mpoUser.Name _
    +                        + """, successfully with ID, " _
    +                        + usr.mpoUser.ID.ToString() + vbCrLf
    +                Else
    +                    msg &= "Error creating user, """ _
    +                        & usr.mbsUserName & """ - " _
    +                        & vault2.GetErrorMessage(usr.mhStatus) & vbCrLf
    +                End If
    +            Next
    +            MessageBox.Show(msg)


    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button10_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button10.Click
    +        'Remove user, Temp
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim userMgr As IEdmUserMgr7
    +            userMgr = vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr)
    +            Dim user As IEdmUser7
    +            user = userMgr.GetUser("Temp")
    +            If user Is Nothing Then Exit Sub

    +            Dim users(0) As Integer
    +            users(0) = user.ID
    +            userMgr.RemoveUsers(users)

    +            MessageBox.Show("User, Temp, removed")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button4_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button4.Click
    +        'Get user's check-out permission for a file
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim pathList As EdmStrLst5
    +            pathList = vault2.BrowseForFile(Me.Handle.ToInt32(), EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles)
    +            If pathList Is Nothing Then Exit Sub

    +            Dim file As IEdmFile5
    +            Dim srcFolder As IEdmFolder5 = Nothing
    +            file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition), srcFolder)

    +            If srcFolder.HasRightsEx(EdmRightFlags.EdmRight_Lock, file.IDThen
    +                MsgBox("User can check out this file")
    +            Else
    +                MsgBox("User does not have check-out permission")
    +            End If

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        'Copy file
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim pathList As EdmStrLst5
    +            pathList = vault2.BrowseForFile(Me.Handle.ToInt32(), EdmBrowseFlag.EdmBws_ForOpen + EdmBrowseFlag.EdmBws_PermitVaultFiles)
    +            If pathList Is Nothing Then Exit Sub

    +            Dim file As IEdmFile5
    +            Dim srcFolder As IEdmFolder5 = Nothing
    +            file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition), srcFolder)

    +            Dim destFolder As IEdmFolder5
    +            destFolder = vault2.BrowseForFolder(Me.Handle.ToInt32(), "Select destination folder:")
    +            If destFolder Is Nothing Then Exit Sub
    +
    +            Dim fileID As Integer
    +            fileID = destFolder.CopyFile(file.ID, srcFolder.IDMe.Handle.ToInt32(), ""EdmCopyFlag.EdmCpy_Simple)
    +            MsgBox("Copied file successfully to new file with ID, " & fileID)

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
    +        'Delete file
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim pathList As EdmStrLst5
    +            pathList = vault2.BrowseForFile(Me.Handle.ToInt32(), _ 
    +                                     EdmBrowseFlag.EdmBws_ForOpen + _ 
    +                                     EdmBrowseFlag.EdmBws_PermitVaultFiles + _ 
    +                                     EdmBrowseFlag.EdmBws_PermitMultipleSel, _ 
    +                                     """""""", _
    +                                     "Select Files to Delete")
    +            If pathList Is Nothing Then Exit Sub

    +            Dim pos As IEdmPos5
    +            pos = pathList.GetHeadPosition
    +            While Not pos.IsNull
    +                Dim file As IEdmFile5
    +                Dim folder As IEdmFolder5 = Nothing
    +                file = vault2.GetFileFromPath(pathList.GetNext(pos), folder)
    +                folder.DeleteFile(Me.Handle.ToInt32(), file.ID)
    +            End While

    +            Dim strCount As String
    +            strCount = pathList.Count.ToString
    +            MessageBox.Show("Deleted " + strCount + " file")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +    Private Sub Button3_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button3.Click
    +        'Delete folder
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim folder As IEdmFolder5
    +            folder = vault2.BrowseForFolder(Me.Handle.ToInt32(), "Select folder to delete:")
    +            If folder Is Nothing Then Exit Sub

    +            Dim parentFolder As IEdmFolder5
    +            parentFolder = folder.ParentFolder

    +            If parentFolder Is Nothing Then
    +                MsgBox("You cannot delete the vault root folder")
    +                Exit Sub
    +            End If

    +            parentFolder.DeleteFolder(Me.Handle.ToInt32(), folder.ID)

    +            MessageBox.Show(folder.Name & " deleted")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +

    +    Private Sub Button11_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button11.Click
    +        'Restore folder
    +        Try

    +            Dim vault2 As IEdmVault7 = Nothing
    +            If vault1 Is Nothing Then
    +                vault1 = New EdmVault5()
    +            End If
    +            vault2 = DirectCast(vault1, IEdmVault7)
    +            If Not vault1.IsLoggedIn Then
    +                vault1.LoginAuto(VaultsComboBox.Text, Me.Handle.ToInt32())
    +            End If

    +            Dim folder As IEdmFolder11
    +            folder = vault2.BrowseForFolder(Me.Handle.ToInt32(), "Select folder to restore:")
    +            If folder Is Nothing Then Exit Sub

    +            Dim arrayEdmDeletedItems() As EdmDeletedItems = Nothing

    +            folder.GetDeletedItems(arrayEdmDeletedItems, True)
    +            folder.RecoverDeletedItems(arrayEdmDeletedItems)

    +            MessageBox.Show(folder.Name & " restored")

    +        Catch ex As System.Runtime.InteropServices.COMException
    +            MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message)
    +        Catch ex As Exception
    +            MessageBox.Show(ex.Message)
    +        End Try
    +    End Sub

    +

    +
    +End Class

    +

    +Back to top

    +

    +'Form1.Designer.vb

    +

    +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    +Partial Class Form1
    +    Inherits System.Windows.Forms.Form
    +    ''' <summary>
    +    ''' Required designer variable.
    +    ''' </summary>
    +    Private components As System.ComponentModel.IContainer = Nothing

    +    ''' <summary>
    +    ''' Clean up any resources being used.
    +    ''' </summary>
    +    ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    +    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    +        If disposing AndAlso (components IsNot NothingThen
    +            components.Dispose()
    +        End If
    +        MyBase.Dispose(disposing)
    +    End Sub

    +#Region "Windows Form Designer generated code"

    +    ''' <summary>
    +    ''' Required method for Designer support - do not modify
    +    ''' the contents of this method with the code editor.
    +    ''' </summary>
    +    Private Sub InitializeComponent()
    +        Me.VaultsLabel = New System.Windows.Forms.Label()
    +        Me.VaultsComboBox = New System.Windows.Forms.ComboBox()
    +        Me.Button1 = New System.Windows.Forms.Button()
    +        Me.Button2 = New System.Windows.Forms.Button()
    +        Me.Button3 = New System.Windows.Forms.Button()
    +        Me.Button4 = New System.Windows.Forms.Button()
    +        Me.Button5 = New System.Windows.Forms.Button()
    +        Me.Button6 = New System.Windows.Forms.Button()
    +        Me.Button7 = New System.Windows.Forms.Button()
    +        Me.Button8 = New System.Windows.Forms.Button()
    +        Me.Button9 = New System.Windows.Forms.Button()
    +        Me.Button10 = New System.Windows.Forms.Button()

    +

    +        Me.Button11 = New System.Windows.Forms.Button()

    +

    +
    +        Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
    +        Me.SuspendLayout()
    +        '
    +        'VaultsLabel
    +        '
    +        Me.VaultsLabel.AutoSize = True
    +        Me.VaultsLabel.Location = New System.Drawing.Point(13, 26)
    +        Me.VaultsLabel.Name = "VaultsLabel"
    +        Me.VaultsLabel.Size = New System.Drawing.Size(94, 13)
    +        Me.VaultsLabel.TabIndex = 0
    +        Me.VaultsLabel.Text = " Select vault view:"
    +        '
    +        'VaultsComboBox
    +        '
    +        Me.VaultsComboBox.FormattingEnabled = True
    +        Me.VaultsComboBox.Location = New System.Drawing.Point(16, 42)
    +        Me.VaultsComboBox.Name = "VaultsComboBox"
    +        Me.VaultsComboBox.Size = New System.Drawing.Size(121, 21)
    +        Me.VaultsComboBox.TabIndex = 1
    +        '
    +        'Button1
    +        '
    +        Me.Button1.Location = New System.Drawing.Point(16, 223)
    +        Me.Button1.Name = "Button1"
    +        Me.Button1.Size = New System.Drawing.Size(91, 23)
    +        Me.Button1.TabIndex = 6
    +        Me.Button1.Text = "Copy file..."
    +        Me.Button1.UseVisualStyleBackColor = True
    +        '
    +        'Button2
    +        '
    +        Me.Button2.Location = New System.Drawing.Point(113, 223)
    +        Me.Button2.Name = "Button2"
    +        Me.Button2.Size = New System.Drawing.Size(96, 23)
    +        Me.Button2.TabIndex = 7
    +        Me.Button2.Text = "Delete file..."
    +        Me.Button2.UseVisualStyleBackColor = True
    +        '
    +        'Button3
    +        '
    +        Me.Button3.Location = New System.Drawing.Point(69, 281)
    +        Me.Button3.Name = "Button3"
    +        Me.Button3.Size = New System.Drawing.Size(96, 23)
    +        Me.Button3.TabIndex = 8
    +        Me.Button3.Text = "Delete folder..."
    +        Me.Button3.UseVisualStyleBackColor = True
    +        '
    +        'Button4
    +        '
    +        Me.Button4.Location = New System.Drawing.Point(43, 252)
    +        Me.Button4.Name = "Button4"
    +        Me.Button4.Size = New System.Drawing.Size(156, 23)
    +        Me.Button4.TabIndex = 9
    +        Me.Button4.Text = "Check-out permission..."
    +        Me.Button4.UseVisualStyleBackColor = True
    +        '
    +        'Button5
    +        '
    +        Me.Button5.Location = New System.Drawing.Point(16, 83)
    +        Me.Button5.Name = "Button5"
    +        Me.Button5.Size = New System.Drawing.Size(233, 23)
    +        Me.Button5.TabIndex = 10
    +        Me.Button5.Text = "Verify SOLIDWORKS PDM Professional 5.3"
    +        Me.Button5.UseVisualStyleBackColor = True
    +        '
    +        'Button6
    +        '
    +        Me.Button6.Location = New System.Drawing.Point(16, 121)
    +        Me.Button6.Name = "Button6"
    +        Me.Button6.Size = New System.Drawing.Size(233, 23)
    +        Me.Button6.TabIndex = 11
    +        Me.Button6.Text = "Get SOLIDWORKS PDM Professional licenses"
    +        Me.Button6.UseVisualStyleBackColor = True
    +        '
    +        'Button7
    +        '
    +        Me.Button7.Location = New System.Drawing.Point(16, 165)
    +        Me.Button7.Name = "Button7"
    +        Me.Button7.Size = New System.Drawing.Size(91, 23)
    +        Me.Button7.TabIndex = 12
    +        Me.Button7.Text = "Add group"
    +        Me.Button7.UseVisualStyleBackColor = True
    +        '
    +        'Button8
    +        '
    +        Me.Button8.Location = New System.Drawing.Point(16, 194)
    +        Me.Button8.Name = "Button8"
    +        Me.Button8.Size = New System.Drawing.Size(91, 23)
    +        Me.Button8.TabIndex = 13
    +        Me.Button8.Text = "Remove group"
    +        Me.Button8.UseVisualStyleBackColor = True
    +        '
    +        'Button9
    +        '
    +        Me.Button9.Location = New System.Drawing.Point(113, 165)
    +        Me.Button9.Name = "Button9"
    +        Me.Button9.Size = New System.Drawing.Size(96, 23)
    +        Me.Button9.TabIndex = 14
    +        Me.Button9.Text = "Add user"
    +        Me.Button9.UseVisualStyleBackColor = True
    +        '
    +        'Button10
    +        '
    +        Me.Button10.Location = New System.Drawing.Point(113, 194)
    +        Me.Button10.Name = "Button10"
    +        Me.Button10.Size = New System.Drawing.Size(96, 23)
    +        Me.Button10.TabIndex = 15
    +        Me.Button10.Text = "Remove user"
    +        Me.Button10.UseVisualStyleBackColor = True
    +

    +

    +        'Button11
    +        '
    +        Me.Button11.Location = New System.Drawing.Point(43, 310)
    +        Me.Button11.Name = "Button11"
    +        Me.Button11.Size = New System.Drawing.Size(156, 29)
    +        Me.Button11.TabIndex = 16
    +        Me.Button11.Text = "Restore deleted items"
    +        Me.Button11.UseVisualStyleBackColor = True

    +

    +
    +        '
    +        'OpenFileDialog1
    +        '
    +        Me.OpenFileDialog1.FileName = "OpenFileDialog1"
    +        '
    +        'Form1
    +        '
    +        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    +        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    +        Me.ClientSize = New System.Drawing.Size(276, 330)

    +

    +        Me.Controls.Add(Me.Button11)
    +        Me.Controls.Add(Me.Button10)
    +        Me.Controls.Add(Me.Button9)
    +        Me.Controls.Add(Me.Button8)
    +        Me.Controls.Add(Me.Button7)
    +        Me.Controls.Add(Me.Button6)
    +        Me.Controls.Add(Me.Button5)
    +        Me.Controls.Add(Me.Button4)
    +        Me.Controls.Add(Me.Button3)
    +        Me.Controls.Add(Me.Button2)
    +        Me.Controls.Add(Me.Button1)
    +        Me.Controls.Add(Me.VaultsComboBox)
    +        Me.Controls.Add(Me.VaultsLabel)
    +        Me.Name = "Form1"
    +        Me.Text = "Vault utilities"
    +        Me.ResumeLayout(False)
    +        Me.PerformLayout()

    +    End Sub

    +#End Region

    +    Friend WithEvents VaultsLabel As System.Windows.Forms.Label
    +    Friend WithEvents VaultsComboBox As System.Windows.Forms.ComboBox
    +    Friend WithEvents Button1 As System.Windows.Forms.Button
    +    Friend WithEvents Button2 As System.Windows.Forms.Button
    +    Friend WithEvents Button3 As System.Windows.Forms.Button
    +    Friend WithEvents Button4 As System.Windows.Forms.Button
    +    Friend WithEvents Button5 As System.Windows.Forms.Button
    +    Friend WithEvents Button6 As System.Windows.Forms.Button
    +    Friend WithEvents Button7 As System.Windows.Forms.Button
    +    Friend WithEvents Button8 As System.Windows.Forms.Button
    +    Friend WithEvents Button9 As System.Windows.Forms.Button
    +    Friend WithEvents Button10 As System.Windows.Forms.Button

    +

    +    Friend WithEvents Button11 As System.Windows.Forms.Button
    +    Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
    +End Class

    +

    +

    +
    +

    Back to top

    + + + + diff --git a/documentation/api_extracted/Vista.htm b/documentation/api_extracted/Vista.htm new file mode 100644 index 0000000..15b94db --- /dev/null +++ b/documentation/api_extracted/Vista.htm @@ -0,0 +1,64 @@ + + + +C++ Add-ins and Windows Vista + + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    C++ Add-ins and Windows Vista

    + + + +

    Add-ins written in .NET should work in Windows Vista. However, native +add-ins written in C++ that register type libraries might encounter problems. +The Windows Vista operating system has a limitation that prevents registration +of such add-ins.

    +


    If you do not need the type library, the +best solution is to remove its registration from the code. Do this in C++ by setting the bRegTypeLib + argument to FALSE in CAtlDllModuleT::DllRegisterServer() +and CAtlDllModuleT::DLLUnregisterServer():

    +
    +


    + // DllRegisterServer - Adds entries to the system registry
    +
    STDAPI DllRegisterServer(void)
    {
      +AFX_MANAGE_STATE(AfxGetStaticModuleState());
      + // registers object
      +HRESULT hr = _AtlModule.DllRegisterServer( + FALSE );
      +return hr;
    }


    // DllUnregisterServer - Removes entries from the system registry
    +
    STDAPI DllUnregisterServer(void)
    {
      +AFX_MANAGE_STATE(AfxGetStaticModuleState());
      +HRESULT hr = _AtlModule.DllUnregisterServer( + FALSE );
      +return hr;
    }

    +
    + + + + + + + + + + diff --git a/documentation/api_extracted/Welcome-epdmapi.html b/documentation/api_extracted/Welcome-epdmapi.html new file mode 100644 index 0000000..a40b1fb --- /dev/null +++ b/documentation/api_extracted/Welcome-epdmapi.html @@ -0,0 +1,98 @@ + + + + + + + Welcome + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + +
    + + + + + +
    + + + + + + + + + + + +
    + + SOLIDWORKS PDM Professional API Help + + + +
    + + Welcome + +
    + + Send Feedback +
    + + +
    +
    +

    Glossary Item Box

    +
    +
    +
    +

    SOLIDWORKS PDM Professional is a product data management application designed to run both natively inside of the SOLIDWORKS environment and as a standalone application.

    +

    The SOLIDWORKS PDM Professional Application Programming Interface (API) is an OLE programming interface to SOLIDWORKS PDM Professional, which allows you to automate and customize SOLIDWORKS PDM Professional. The API contains functions that you can call from VB.NET, C#, and C++/CLI. These functions provide direct access to the SOLIDWORKS PDM Professional environment. It is assumed that you are familiar with at least one of these programming languages.

    +

    This online reference manual documents the interfaces available in the SOLIDWORKS PDM Professional API, including their structures, methods, properties, and enumerations.

    +

    All of the sample code supplied is provided on an as-is basis and is only intended to demonstrate ways of using the SOLIDWORKS PDM Professional API. SOLIDWORKS makes no representations or warranties regarding these samples. Any licensed user of SOLIDWORKS PDM Professional is free to use any or all of these samples in connection with building applications related to SOLIDWORKS PDM Professional and is granted a royalty-free, non-exclusive license for these samples or parts thereof. Intellectual property rights of the samples remain with SOLIDWORKS. Any confidentiality provisions of the SOLIDWORKS PDM Professional license apply to the samples. Some sample code might contain obsolete APIs.

    + + +
    + + + +
    + + + \ No newline at end of file diff --git a/documentation/api_extracted/WorkflowStates.gif b/documentation/api_extracted/WorkflowStates.gif new file mode 100644 index 0000000000000000000000000000000000000000..806652c421d36bedc7eac381126efd03fbbbc798 GIT binary patch literal 4562 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 E01pRJXaE2J literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/assydlg.gif b/documentation/api_extracted/assydlg.gif new file mode 100644 index 0000000000000000000000000000000000000000..598e3741fcfeafaf1e00fd23d07ab7c1c80afcae GIT binary patch literal 52384 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

    jwZfMm~;kx67R_Q<2=X(7O?PZ?`*lft4I+ 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

    xG_G(7Dkjq9}*{#1;(2O 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/assyview.gif b/documentation/api_extracted/assyview.gif new file mode 100644 index 0000000000000000000000000000000000000000..12329ea2664ef68c2212b916e9c91d2be79dbb3f GIT binary patch literal 69833 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

    Xp!J`QkfepLK0!d*o2j3AArEhtQDy zCt_j;npGIR!IXLXDfrTmC7?!+D2s=ZCR{^;U@Zgj-a_W` zGAbgW0Vm{m)&zVob6Dz@uR@W4>n`;o#C;vaF~dn}P-lgM_2AWl5a35Q@OpMV4yzF5SlHQ84}>y9;iz4#ffz+5()5HjNGv~VMF%roYI5h zqG0U*Z(Txhk+?)$jE0~a#5wzmON#SL(XHZ=vfYK~=F+lUaWOqN??7JBfzZ72Jm+u> aTOEQ$hF}qBFv`W&hDWXqUkw1jy1xMg;+EY2 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/collapse.gif b/documentation/api_extracted/collapse.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c0fafca490c30e2a34edb2776ea14fabab5cfa GIT binary patch literal 872 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 TR?)zaXs1s>*Eu-=0JZ-DnNz~2 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/copycode.gif b/documentation/api_extracted/copycode.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7a8307bafbc4ca9a573ff7defa5c0826bccdef4 GIT binary patch literal 978 zcmZ?wbhEHbsNN4r0g+G)oX^T&umrSx#|In z)B~1ihOE*IS)(1kQ7e42Y3kAFqJH`N zS+Mi{vb}HSAN{rI(2ZS3uk1g4ch$l7s}H?jfB5aXBOlgX_`m7ohkfTh?7H>;^!Y27 zuH8Lw>cOFNPmW)Dc;@<>^EaOzz5MC={a4rSy}5MzVp7YZnc{+TLOc?mwev_Q)ZF;f@WfGADD^FwdCb_>o&oQ%9uZgOTbfVMWz5Egu>l9%>ckaABBXJ-u1dC}y3CX49dD ogFI=scI_=_YH;LAirEs-_^5@GkxktsV}ruMMkZz^78V9;0N{8X@Bjb+ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/copycodeHighlight.gif b/documentation/api_extracted/copycodeHighlight.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f8bbcc0494387e314769359dcf6d7d7a98a0fe5 GIT binary patch literal 978 zcmZ?wbhEHb(9f`ko zWqdxI`s-N2uM;_6PnP~VQ2Fb0;mOUD&up7^X8ZJOyQf^*GyCS=DYy1dy|aJn^@H>8 z8~~CF?;c%x=h(7)XSY8%IOV~?X%CM~|8=VG=cVRfmzsWEYWa0z!mpc?f8Cn;>-OAV zx8^@Ox$@EJ)lbi?d46Tr%UiqN-QE4``qE!_mj1d6L~DNC-S+Fj%3lvx{Cc+i*Ngo( zE}wpJ^YELyrykzC@ax`zcMmUpd3yBwlT$xlpZxXu%*Uq}zr4En>+RJq?;d{p`1ISS zSHHeI{q^lqk1WIQ%3IM~co`{TjE!>ruu9JM_&E! + + +Creating Add-ins (C++) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help +

    +

    Creating Add-ins (C++)

    + + + +
    + +

    This topic shows how to create +an add-in using Visual C++ in Microsoft Visual Studio +that adds a menu item to the context-sensitive and Tools menus of vaults in File Explorer. You must be familiar +with the process of creating a C++ COM DLL in the development environment that +you use.

    + +
      +
    1. + Create the C++ project.
        +
      1. + Start Microsoft Visual + Studio.
         
      2. +
      3. Select File > + New > Project > Visual C++ > MFC/ATL > ATL Project.
         
      4. +
      5. + Type the name of your + project in Name.
         
      6. +
      7. Click Browse and navigate to the folder where to create your project.
         
      8. +
      9. Click OK.
         
      10. +
      11. +

        If you intend on using MFC, select Application + Settings > Support MFC in the ATL Project Wizard dialogMyAdd.
         

        +
      12. +
      13. +

        Click +Finish to generate the +project. 
         

      14. +
      + +
    2. +
    3. +

      Modify the project's settings.

      + +
        +
      1. +

        Right-click the project in Solution Explorer, and select + Add > Class.
         

      2. +
      3. +

        In the Add Class dialog, select ATL > ATL Simple + Object.
         

      4. +
      5. +

        Click Add.
         

      6. +
      7. +

        Type MyAddIn in Short name.
         

        +
      8. +
      9. +

        Click Next and Next.
         

      10. +
      11. +

        Select +Custom in the Interface and Both in the Threading + Model.
         

      12. +
      13. +

        Click Finish
         

      14. +
      15. +

        Select View > Class View and expand your project in the Class View window.
         

        +
      16. +
      17. +

        Right-click CMyAddIn and select Add > + Implement Interface.  +
         

      18. +
      19. +

        Select Project and select the most recent SOLIDWORKS PDM Professional type library, + Edm.tlb, from + the Available type libraries list.  +

        NOTE: If the type library is not in the list, you must +copy Edm.tlb from the API folder on the CD to  project_path\project_name\project_name. + Then select File, browse to project_path\project_name\project_name, + and select Edm.tlb.
         

      20. +
      21. +

        Select + IEdmAddIn5 + in Interfaces .
         

      22. +
      23. +

        Click the single right-arrow button to move IEdmAddIn5 to + Implement Interfaces, and click Finish.  +
        +
        + Two +new methods, + IEdmAddIn5::GetAddInInfo and + IEdmAddIn5::OnCmd, + are added to your class.

      24. +
      25. +

        Select File > Save All.
         

        +
      26. +
      + +
    4. +
    5. +

      Implement + IEdmAddIn5::GetAddInInfo by replacing + STDMETHOD(GetAddInInfo)in MyAddin.h with the following code.

      + STDMETHOD(GetAddInInfo)(EdmAddInInfo + * poInfo, IEdmVault5 * poVault, IEdmCmdMgr5 * poCmdMgr)
      {
      + //The AFX_MANAGE_STATE macro is needed + for MFC applications but should not
      //be used for applications that are MFC-free

         AFX_MANAGE_STATE(AfxGetStaticModuleState());
      +
         if (poInfo == NULL || poCmdMgr == NULL )
           return E_POINTER;
      +
         //Return some information + to the Properties dialog box
         poInfo->mbsAddInName= SysAllocString( L"My first + add-in" );
         poInfo->mbsCompany = SysAllocString( L"The name of my + company" );
         poInfo->mbsDescription= SysAllocString( L"This is a very + nice add-in." );
         poInfo->mlAddInVersion = 1;

         + //SOLIDWORKS PDM Professional 5.2 is + required by this add-in
         poInfo->mlRequiredVersionMajor = 5;
         poInfo->mlRequiredVersionMinor= 2;
      +
         //Add hooks and menu commands to + SOLIDWORKS PDM Professional
         //Below is a menu command that + appears in the Tools
         //and context-sensitive menus of a + vault in File Explorer

         poCmdMgr->AddCmd( 1, bstr_t("My first menu + command"), EdmMenu_Nothing, bstr_t(""), bstr_t(""), + 0, 0 );

         return S_OK;
      }

    6. +
    7. +

      Implement IEdmAddIn5::OnCmd by replacing + STDMETHOD(OnCmd)in MyAddin.h + with the following code.

      + STDMETHOD(OnCmd)(EdmCmd * + poCmd, SAFEARRAY * * ppoData)
      {
      //The AFX_MANAGE_STATE macro is needed + for MFC applications, but should not
      //be used for applications that are MFC-free

         AFX_MANAGE_STATE(AfxGetStaticModuleState());
      +
         if (poCmd == NULL ||ppoData == NULL)
           return E_POINTER;
      +
         MessageBox((HWND)poCmd->mlParentWnd, L"Hello + World!", L"SOLIDWORKS PDM Professional", MB_OK );

         return S_OK;
      }
      +
      +
      NOTE: + If you copy the code from this topic and paste it into the IDE, delete any characters or spaces that offend the + compiler. On a 64-bit computer, you must replace L + with bstr_t() for the strings in the MessageBox.
       

    8. +
    9. +

      Specify the project configuration properties:

      + +
        +
      1. +

        Right-click the project name in Solution Explorer and + select Properties.

      2. +
      3. +

        Select Configuration Properties > General.
        +
        + Ensure that the properties are configured as:

        +
          +
        • +

          Output Directory: + $(SolutionDir)$(Platform)\$(Configuration)\

        • +
        • +

          Configuration Type: Dynamic Library (.dll)

        • +
        • +

          Use of MFC: Use MFC in a Shared DLL

        • +
        • +

          Use of ATL: Dynamic Link to ATL

        • +
        • +

          Character Set: Use Unicode Character Set

        • +
        +
      4. +
      5. +

        Select Linker > General.
        +
        + Ensure Output File is:

        +
          +
        • +

           $(SolutionDir)$(Platform)\$(Configuration)\$(TargetName)$(TargetExt)

          +
        • +
        +
      6. +
      7. +

        Select Linker > Input.

        Ensure that Module Definition File is + .\project_name.def.

      8. +
      9. +

        Select Linker > Embedded IDL.

        Ensure the properties are configured as follows:

        +
          +
        • +

          Type Library: + $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName).tlb

          +
        • +
        • +

          TypeLib Resource ID should be empty. Delete any + characters appearing in this row.

        • +
      10. +
      11. +

        Select MIDL > General.

        Select the environment in the Target Environment + dropdown that + most closely matches your environment.

      12. +
      13. +

        Select MIDL > Output.

        Ensure the properties are configured as follows:

        +
          +
        • +

          Output Directory: + $(SolutionDir)$(Platform)\$(Configuration)\

        • +
        • +

          Type Library: $(IntDir)project_name.tlb

        • +
      14. +
    10. +
    11. +

      Click OK.

    12. +
    13. +

      To change the project's type of configuration to + Release:

      + +
        +
      1. +

        In the Solution Explorer, right-click Solution 'project_name' + and select Configuration Manager.

      2. +
      3. +

        Click the down-arrow key in the project's Configuration + column and select Release.

      4. +
      5. +

        Click Close.

      6. +
    14. +
    15. +

      Save and compile +the project for either x32 or x64 to create an add-in DLL that is compatible + with your system.

      + NOTE: See Using .NET Framework in Add-in Applications + if a problem occurs at runtime.
       

    16. +
    17. +

      Add the new add-in, project_name.dll, to + the file vault:
       

      +
        +
      1. Start up the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in. Log in, if prompted.
         
      4. +
      5. Right-click Add-ins and select New + Add-in.
         
      6. +
      7. Select:
          +
        • x32: + + project_path\project_name\Release\project_name.dll, and click + Open.
        • +
        • x64: + + project_path\project_name\x64\Release\project_name.dll, and click + Open.

          The add-in Properties dialog displays the add-in's name, + company, add-in version, required version of SOLIDWORKS PDM Professional, + package, and description.
           
        • +
        +
      8. +
      9. Click OK.
      10. +
      +

       

    18. +
    19. +

      Right-click the list of vaults in File Explorer to + show the context menu:

      +
      The new menu item appears in the context menu.
       

    20. +
    21. +

      Select My first menu command on the context-sensitive + menu.

    22. +
    23. +

      A message box is displayed.

    24. +
    + +

    Use +your new add-in to +create more advanced menu commands or +add-in hooks that allow you to check files in and out of the vault.

    + +

     

    + +
    + + + + diff --git a/documentation/api_extracted/cppaddin_newobj.gif b/documentation/api_extracted/cppaddin_newobj.gif new file mode 100644 index 0000000000000000000000000000000000000000..63d41bcce3f46abdace363712e734e393e89ca1f GIT binary patch literal 11325 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 Y4Zj4mUn15oiQGT=#Z4qR2mp}yKc?EHxBvhE literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/cppaddin_newobj2.gif b/documentation/api_extracted/cppaddin_newobj2.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6c0429bfc9580e8833adce736b8fe7f512b6fcf GIT binary patch literal 9799 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/cppaddin_newobj3.gif b/documentation/api_extracted/cppaddin_newobj3.gif new file mode 100644 index 0000000000000000000000000000000000000000..cadafa42f41d928b96b58ee985617fc15e179b62 GIT binary patch literal 9294 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

    2lc2IPl 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/cppaddin_newobj6.gif b/documentation/api_extracted/cppaddin_newobj6.gif new file mode 100644 index 0000000000000000000000000000000000000000..39ef982c90440833faf506841dc963d5087f598d GIT binary patch literal 10340 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 + + +Creating Menu Commands (C++) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Menu Commands (C++)

    + +
    + +

    +This topic shows how to create a +C++ add-in in Microsoft Visual Studio that adds menu commands to the +context-sensitive and Tools menus of vaults in File +Explorer.

    + +
      +
    1. +

      Create + an add-in as described in the basic framework sample.

    2. +
    +
      +
    1. +

      + + Replace your add-in's implementation of + IEdmAddIn5::GetAddInInfo + with the following code:

    2. +
    +
    +

    + STDMETHOD(GetAddInInfo)(EdmAddInInfo + * poInfo, IEdmVault5 * poVault, IEdmCmdMgr5 * poCmdMgr)
    {
    +   //The AFX_MANAGE_STATE macro is needed for MFC + applications but should not
      //be used for applications that are MFC-free.

      AFX_MANAGE_STATE(AfxGetStaticModuleState());
    +
      if (poInfo == NULL || poCmdMgr == NULL )
        return E_POINTER;
    +
      //Return some information for the + Administrate Add-ins dialog box
     poInfo->mbsAddInName = SysAllocString( L"Menu command + sample" );
     poInfo->mbsCompany = SysAllocString( L"SOLIDWORKS Corporation" + );
      poInfo->mbsDescription= SysAllocString( L"Adds menu items" );
     poInfo->mlAddInVersion = 1;

    +   //SOLIDWORKS PDM Professional + 5.2 or later is required to + install this add-in
     poInfo->mlRequiredVersionMajor = 5;
     poInfo->mlRequiredVersionMinor = 2;

    +   //Add a command for each of the buttons + (the command ID numbers 1000 and 1001 are
      //arbitrary; SOLIDWORKS PDM Professional + does not use them; instead, it only passes them to + your
      //implementation of OnCmd so that it knows which command was selected)
    +
      poCmdMgr->AddCmd( 1000, bstr_t("First command"), + EdmMenu_Nothing,

    +

    +                     bstr_t("This + is the first command"),

    +

    +                     + bstr_t("First command"), -1, 0 );

      poCmdMgr->AddCmd( 1001, bstr_t("Second command"), + EdmMenu_MustHaveSelection,

    +

    +                     bstr_t("This + is the second command"),

    +

    +                     + bstr_t("Second command"), -1, 0 );

      return S_OK;
    }

    +

    + The flag + EdmMenuFlags.EdmMenu_MustHaveSelection + indicates that only the second command is available to the user if the user + selects one or more files or folders.

    +
    +
      +
    1. +

      Replace your add-in's implementation of + + + IEdmAdd5::OnCmd + with the following code:

      +
      +

      + STDMETHOD(OnCmd)(EdmCmd * + poCmd, SAFEARRAY * * ppoData)
      {
        //The AFX_MANAGE_STATE macro is needed for MFC + applications but should not
        //be used for applications that are MFC-free
      +
        AFX_MANAGE_STATE(AfxGetStaticModuleState());

        if (poCmd == NULL ||ppoData == NULL)
          return E_POINTER;
      +
        //Check the command ID to see which + command was selected
        //(this only affects the caption of the message box below)
      +
        CString oName;
        if( poCmd->mlCmdID = = 1000 )
          oName = "The first command";
        else
          oName = "The second command";
      +
        if( SafeArrayGetDim( *ppoData ) != 1 )
          return E_INVALIDARG;
      +
        //Get a pointer to the actual array + elements
        EdmCmdData *poElements = NULL;
        HRESULT hRes = SafeArrayAccessData( *ppoData, (void**)&poElements + );
        if( FAILED(hRes) )
          return hRes;

      +   //Create a message showing the names and + IDs of all selected files and folders
        CString oRow;
        CString oMessage = "You have selected the following files and + folders:\n";
        int iCount=(*ppoData)->rgsabound->cElements;
        for( int i = 0; i < iCount; ++i )
        { +
          if(poElements->mlObjectID1 == 0 )
          {
            oRow.Format( "Folder: (ID= %d) + ",poElements->mlObjectID2 );
          }
          else
          {
            oRow.Format( "File: (ID= %d) + ",poElements->mlObjectID1 );
          }
          oMessage += oRow + (LPCTSTR)bstr_t(poElements->mbsStrData1 + );
          oMessage += "\n";
          ++poElements;
        }
      +
        //Release the array data and display the + message
        SafeArrayUnaccessData( *ppoData );
        MessageBox((HWND)poCmd->mlParentWnd, oMessage, oName, MB_OK ); +
        return S_OK;
      }

      +
      +
    2. +
    3. +

      Save and compile the project.

      +
    4. +
    5. +

      + Add the add-in DLL to the + file vault using the + + + Administration tool.

    6. +
    7. +

      The first menu command appears in + the +context-sensitive and Tools menus of vaults in File Explorer. The second menu command appears in the context-sensitive menus +only when one or +more files or folders are selected. +Right-click a file in the vault + and select Second command. A dialog + similar to the following is displayed:

      +

      + +

      +
    8. +
    + +
    + + + + diff --git a/documentation/api_extracted/cppreactor.htm b/documentation/api_extracted/cppreactor.htm new file mode 100644 index 0000000..8943873 --- /dev/null +++ b/documentation/api_extracted/cppreactor.htm @@ -0,0 +1,155 @@ + + + +Creating Add-in Hooks (C++) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Add-in Hooks (C++)

    +
    + +

    This +topic shows how to implement + IEdmAddIn5::GetAddInInfo +and IEdmAddIn5::OnCmd +in your add-in to have SOLIDWORKS PDM Professional notify your add-in +whenever a file is added, checked out, or checked in. + + +

    +
      +
    1. Call + IEdmCmdMgr5::AddHook from + your add-in's GetAddInInfo method + for each activity you want your add-in to know about. Implement + IEdmAddIn5::GetAddInInfo in your add-in as follows:
    2. + +
      +

      + STDMETHOD(GetAddInInfo)(EdmAddInInfo * poInfo, IEdmVault5 * poVault, IEdmCmdMgr5 * poCmdMgr)
      {
         + //The AFX_MANAGE_STATE macro is needed for MFC applications but should not +
         //be used for applications that are MFC-free

         AFX_MANAGE_STATE(AfxGetStaticModuleState());
      +
         if (poInfo == NULL || poCmdMgr == NULL )
           return E_POINTER;
      +
         //Return information to the Administrate Add-ins dialog box
         poInfo->mbsAddInName= SysAllocString( L"My first add-in" );
         poInfo->mbsCompany = SysAllocString( L"The name of my company" );
         poInfo->mbsDescription= SysAllocString( L"This is a very nice add-in." );
         poInfo->mlAddInVersion = 1;
      +
         //SOLIDWORKS PDM Professional 5.2 is + required to install this add-in
         poInfo->mlRequiredVersionMajor = 5;
         poInfo->mlRequiredVersionMinor= 2;
      +
         //Notify when a file has been added
         poCmdMgr->AddHook( EdmCmd_PostAdd, NULL );
         + //Notify when a file has been checked out
         poCmdMgr->AddHook( EdmCmd_PostLock, NULL );
         + //Notify when a file is about to be checked in
         poCmdMgr->AddHook( EdmCmd_PreUnlock, NULL );
         + //Notify when a file has been checked in
         poCmdMgr->AddHook( EdmCmd_PostUnlock, NULL );
      +
         return S_OK;
      }

      +
      + +
    3. +

      Implement + IEdmAddIn5::OnCmd in + your add-in as follows:

    4. + +
      +

      + + + STDMETHOD(OnCmd)(EdmCmd * poCmd, SAFEARRAY * * ppoData)
      {
         + //The AFX_MANAGE_STATE macro is needed for MFC applications but should not +
         //be used for applications that are MFC-free

         AFX_MANAGE_STATE(AfxGetStaticModuleState());
      +
         if (poCmd == NULL ||ppoData == NULL)
           return E_POINTER;
      +
         //Check the type of hook that triggered + this call
         CString oName;
         switch(poCmd->meCmdType )
         {
           case EdmCmd_PostAdd: oName = + "PostAdd"; break;
           case EdmCmd_PostLock: oName = "PostLock"; break;
           case EdmCmd_PreUnlock: oName = "PreUnlock"; break;
           case EdmCmd_PostUnlock: oName = "PostUnlock"; break;
           default: oName = "?"; break;
         }
      +
         //Obtain a pointer to the array data
         if( SafeArrayGetDim( *ppoData ) != 1 )
           return E_INVALIDARG;
      +
         EdmCmdData *poElements = NULL;
         HRESULT hRes = + SafeArrayAccessData( *ppoData, (void**)&poElements );
         if( FAILED(hRes) )
           return hRes;
      +
         //Append the paths of all files to a string
         CString oMessage = + "The following files were affected by a " + oName + " hook:\n";
         int iCount=(*ppoData)->rgsabound->cElements;
         for( int i = + 0; i < iCount; ++i )
         {
           oMessage += (LPCTSTR)bstr_t(poElements->mbsStrData1 );
           oMessage += "\n";
           ++poElements;
         }
      +
         //Release the array data and display a message to the user
         SafeArrayUnaccessData( *ppoData );
      +
         MessageBox((HWND)poCmd->mlParentWnd, oMessage, "SOLIDWORKS PDM Professional", MB_OK ); +
         return S_OK;
      }

      + +

      OnCmd +is called for each of the +hooks registered in GetAddInInfo. You can tell which hook triggered the call by +inspecting the meCmdType +member of the EdmCmd structure +that is passed as poCmd in OnCmd. meCmdType contains an EdmCmdType constant that +indicates the triggering hook.

      + +

      The second argument to OnCmd +is an array of EdmCmdData structures. There is +one element in the array for each file that is affected by the call. The +contents of the structure members vary depending on the type of hook that +triggers the call. See EdmCmdData for a complete list +of members and their descriptions.

      + + +
      +

      + +

       

      + +
    5. +

      + Build + the add-in DLL and + add it to the file vault + using the + + + Administration tool.

      +
    6. +
    7. +

      + Try adding, checking out, and checking in + vault files.

    8. +
    +

    NOTE: +OnCmd is not called during check-in if the +file is not modified before it is checked in. During check-in of unmodified +files, SOLIDWORKS PDM Professional triggers an "undo check-out" event. To handle +this "undo check-out" event, add hooks for EdmCmdType.EdmCmd_PreUndoLock and +EdmCmdType.EdmCmd_PostUndoLock +to your add-in's GetAddInInfo.

    + +
    +

    +See Also

    +

    + + + +Creating Add-ins (C++) + + +

    +

    + + + +Creating Add-in Hooks (VB.NET) + + +

    + + + diff --git a/documentation/api_extracted/csharpcardbutton.htm b/documentation/api_extracted/csharpcardbutton.htm new file mode 100644 index 0000000..5d6aa8f --- /dev/null +++ b/documentation/api_extracted/csharpcardbutton.htm @@ -0,0 +1,253 @@ + + + +Calling Add-ins (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Calling Add-ins (C#)

    + +
    + +

    This +sample shows how to implement + IEdmAddIn5::GetAddInInfo and + IEdmAddIn5::OnCmd +to create a Visual C# add-in +that is called when the user clicks a button in a file data card. The add-in +opens a dialog box in which the user browses for the file whose data card is +displayed. The add-in copies the path of the selected file to a text field in the +file's data card.
    +
    +
    NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used. 

    + +
      +
    1. +

      Follow + Creating Menu Commands (C#) to + create a basic add-in.

      +
    2. +
    3. +

      Register a hook + to notify your add-in when a user clicks a button in a file data card. + Implement IEdmAddIn5::GetAddInInfo as follows:

      +
    4. + +
      +

      + public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
      + {
      +        //Specify information to display in the add-in's Properties dialog box
      +        poInfo.mbsAddInName = "My serial number generator";
      +        poInfo.mbsCompany = "The name of my company";
      +        poInfo.mbsDescription = "Implements serial numbers";
      +        poInfo.mlAddInVersion = 1;
      +        poInfo.mlRequiredVersionMajor = 5;
      +        poInfo.mlRequiredVersionMinor = 2;

      +        //Notify the add-in when a file data card button is clicked
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardButton);
      + }

      +
      + +
    5. +

      + Implement IEdmAddIn5::OnCmd as follows:

      +

      +      public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
      +      {
      +             //Respond only to a specific button command
      +             //The button command to respond to begins with "MyButton:" and ends with the name of the 
      +             //variable to update in the card 
      +             if (Strings.Left(poCmd.mbsComment, 9) == "MyButton:")
      +             {
      +                 //Get the name of the variable to update. 
      +                 string VarName = null;
      +                 VarName = Strings.Right(poCmd.mbsComment, Strings.Len(poCmd.mbsComment) - 9);

      +                 //Let the user select the file whose path will be copied to the card variable
      +                 EdmVault5 vault = default(EdmVault5);
      +                 vault = (EdmVault5)poCmd.mpoVault;
      +                 IEdmStrLst5 PathList = default(IEdmStrLst5);
      +                 PathList = vault.BrowseForFile(poCmd.mlParentWnd, (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles, """""""""Select File for " + VarName);

      +                 if ((PathList != null))
      +                 {
      +                     string path = null;
      +                     path = PathList.GetNext(PathList.GetHeadPosition());

      +                     //Store the path in the card variable 
      +                     IEdmEnumeratorVariable5 vars = default(IEdmEnumeratorVariable5);
      +                     vars = (IEdmEnumeratorVariable5)poCmd.mpoExtra;
      +                     object VariantPath = null;
      +                     VariantPath = path;
      +                     vars.SetVar(VarName, "", VariantPath);
      +                 }
      +             }

      +             return;
      +      }

    6. + +
      +

      + The second argument to + OnCmd, ppoData, +is an array of + EdmCmdData structures. There is one element in the array when +it is called from the file data card. +See EdmCmdData for information.

      +
      + +
    7. +

      + Click Build > Build + Solution to build the add-in.

    8. +
    9. Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
    10. + +
        +
      1. Open the SOLIDWORKS + Professional PDM Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
         
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
         
      10. +
      11. Click OK.
         
      12. +
      13. Click OK.
      14. +
      +
    11. +

      + Click Cards > File Cards.

      +
    12. +
    13. +

      + Double-click Text Card.

      +
    14. +
    15. +

      + Add + a button to the card.

    16. +
    17. +

      + Click the button.

    18. +
    19. +

      + In Caption, type Browse....

      +
    20. +
    21. +

      + In + Command + type, select Run Add-in.

    22. +
    23. +

      + In Name of add-in, type + MyButton:Title.

      +

    24. +
    25. +

      + Save the card and exit the Card Editor.

      +
    26. +
    27. +

      + Open + File Explorer on the vault and select a checked-out text +file.

    28. +
    29. +

      + Click + Browse + in the file's data card.

    30. +
    31. +

      + The + Select File for Title dialog box pops up.

    32. +
    33. +

      + Browse to and select the + checked-out text file.

    34. +
    35. +

      + Click Open + to copy the path of the selected file to the Title field of the + file's data card.

    36. +
    + +

    Remarks

    + +

    +In this example, the value of a variable +is set using +IEdmEnumeratorVariable5::SetVar. You +can also read values using +IEdmEnumeratorVariable5::GetVar.

    + +

    +Using a button handler like this +add-in, you can also:

    +
      +
    • +

      + Retrieve +the number of configurations, layouts, or both, in the file by inspecting the + EdmCmdData::mpoExtra + variable, which contains + IEdmStrLst5 + of file interfaces.

    • +
    • +

      + Switch the active configuration.

      +
    • +
    • +

      + Set focus to a certain +control using the members of + EdmCmdData. +

    • +
    • +

      + Close the card automatically after + the button handler +returns by setting the + EdmCmdData::mlLongData1 +variable to one of the + EdmCardFlag constants. 

      +
    • +
    + +
    + + + + diff --git a/documentation/api_extracted/csharpmenuitem.htm b/documentation/api_extracted/csharpmenuitem.htm new file mode 100644 index 0000000..bccb82a --- /dev/null +++ b/documentation/api_extracted/csharpmenuitem.htm @@ -0,0 +1,402 @@ + + + +Creating Menu Commands (C#) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Menu Commands (C#)

    + +
    + +

    +This topic shows how to create a C# +add-in that adds menu commands to the context-sensitive menus of +File Explorer vault views.
    +
    +
    NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

    + +

     

    +
      +
    1. +

      + Start Microsoft Visual Studio.

    2. +
    3. +

      + Click File > New > + + + Project > Visual C# > Windows + Desktop > Class Library (.NET Framework). +

      +
    4. +
    5. +

      + In the .NET Framework dropdown at the top of the + New Project dialog, keep the default version (recommended) or select another + version. See Using .NET + Framework for Add-in Applications for more information.

      +
    6. +
    7. +

      + Type a project name in Name.

    8. +
    9. +

      + Click Browse and navigate to the folder where to + create the project.

    10. +
    11. +

      + Click OK.

    12. +
    13. +

      + Right-click the project name in the Solution Explorer + and click Add Reference.

      +
        +
      1. +

        + + Click Browse in + the left-side panel, navigate to and select + EPDM.Interop.epdm.dll, and click + OK.

        +
      2. +
      3. +

        + Right-click Epdm.Interop.epdm in the Solution Explorer, + select Properties, and set Embed Interop Types to False + to handle methods that pass arrays of structures.

      4. +
      5. +

        + Click Assemblies > Framework in the left-hand panel, + select + System.Windows.Forms, and click OK.

      6. +
      7. +

        + Click Close.

      8. +
    14. +
    15. +

      + Right-click the project name in the Solution Explorer + and click Properties.

      +
        +
      1. +

        + On the Application tab, click Assembly Information. +

      2. +
      3. +

        + De-select + Make assembly COM-Visible.

      4. +
      5. +

        + On the + + Build tab, + + select Any CPU for + Platform target, de-select Prefer 32-bit, and + + select + Register for COM interop.

      6. +
      +
    16. +

      Save the project.

    17. + +

       

      + + + +
    18. +

      + Double-click Class1.cs in the Solution Explorer + to open the code window.
       

    19. +
    20. +

      + At the top of the code window, type:
       

      +

      + using EPDM.Interop.epdm;
      + using System.Runtime.InteropServices;
      + using System.Windows.Forms;


       

    21. +
    22. +

      + Replace:

      +
      public class Class1
      +

      +  with:
       

      +

      + [Guid(""), + ComVisible(true)]

      + public class Class1 : IEdmAddIn5
       

    23. +
    24. +

      To populate the GUID + attribute above, click Tools > Create GUID in the IDE, select GUID + Format 5, click Copy, and click Exit. Populate [Guid(""), + ...] with the copied string.
       

      +
    25. +
    26. +

      Implement + IEdmAddIn5::GetAddInInfo + by adding the following code to Class1:

    27. + + +
      +

      + public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
      {
             //Specify + information to + display in the add-in's Properties dialog box 
             poInfo.mbsAddInName = "Menu command sample";
             poInfo.mbsCompany = "SOLIDWORKS Corporation";
             poInfo.mbsDescription = "Adds menu command items";
             poInfo.mlAddInVersion = 1;
      +
      +       + //Specify the + minimum required version of SOLIDWORKS PDM + Professional
             poInfo.mlRequiredVersionMajor = 5;
             poInfo.mlRequiredVersionMinor = 2;
       
             //Register + menu commands; SOLIDWORKS PDM Professional passes command IDs, 1000 and 1001, 
             //to IEdmAddIn5::OnCmd to indicate which command the + user selects
             poCmdMgr.AddCmd(1000, "First command", (int)EdmMenuFlags.EdmMenu_Nothing, "This is the first command""First command", 0, 99);
             poCmdMgr.AddCmd(1001, "Second command", (int)EdmMenuFlags.EdmMenu_MustHaveSelection, "This is the second command""Second command", 1, 99);
      }

      +

      + The flag + + + EdmMenuFlags.EdmMenu_MustHaveSelection + means that +the second command is only available if the user has selected one or more +files or folders.

      +
      +
    28. +

      + + IEdmAddIn5::OnCmd + is called when a menu command is selected by the user. + + Implement + + IEdmAddIn5::OnCmd + + by adding + the following code to Class1: +
       

    29. + +

      +       + public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
            {
              //Handle + the menu command
              {
                      string CommandName = null;
                      if (poCmd.mlCmdID == 1000)
                      {
                          CommandName = "The first command.";
                      }
                      else
                      {
                          CommandName = "The second command.";
                      }
                      //Retrieve the bounds of the array containing the selected files and folders 
                      int index = 0;
                      int last = 0;
                      index = ppoData.GetLowerBound(0);
                      last = ppoData.GetUpperBound(0);
                      string StrID = null;
       
                      //Create a message showing the names and IDs of all selected files and folders 
                      string message = null;
                      message = "You have selected the following files and folders: " + "\r\n";
                      while (index <= last)
                      {
                          if (((EdmCmdData)ppoData.GetValue(index)).mlObjectID1 == 0)
                          {
                              message = message + "Folder: (ID=";
                              StrID = ((EdmCmdData)ppoData.GetValue(index)).mlObjectID2.ToString();
                              message = message + StrID + ") ";
                          }
                          else
                          {
                              message = message + "File: (ID=";
                              StrID = ((EdmCmdData)ppoData.GetValue(index)).mlObjectID1.ToString();
                              message = message + StrID + ") ";
                          }
       
                          message = message + ((EdmCmdData)ppoData.GetValue(index)).mbsStrData1 + "\r\n";
                          index = index + 1;
                      }
       
                      //Display the message
                      EdmVault5 v = default(EdmVault5);
                      v = (EdmVault5)poCmd.mpoVault;
                      v.MsgBox(poCmd.mlParentWnd, message, EdmMBoxType.EdmMbt_OKOnly, CommandName);
              }
            }

      +
      +

      +
      +
    30. +

      + Click Build > Build + Solution to build the add-in.

    31. +
    32. Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
      10. +
      11. Click OK.
      12. +
      13. Click OK.
      14. +
      +

      +
      +  

    33. +
    34. +

      + Right-click inside a vault view in + File Explorer. First command appears in the context-sensitive + menu.

      +
    35. +
    36. +

      + Right-click a file in + the vault view and click Second + command. The add-in displays a dialog similar to the following:

      +
    37. +
    +
    +

    +  
    +

    +

    + + Complete +Source Code

    +
    +

    + // Class1.cs

    +

    + using System;
    + using System.Collections.Generic;
    + using System.Text;
    + using EPDM.Interop.epdm;
    + + using System.Runtime.InteropServices;


    + namespace CreateMenuCommand_CSharp
    + {

    +

    +     [Guid(""), + ComVisible(true)]    + // See step 13 above to create the GUID
    +     public class Class1 : IEdmAddIn5
    +     {
    +         #region IEdmAddIn5 Members

    +         public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
    +         {
    +              
    +             poInfo.mbsAddInName = "Menu command sample";
    +             poInfo.mbsCompany = "SOLIDWORKS Corporation";
    +             poInfo.mbsDescription = "Adds menu command items";
    +             poInfo.mlAddInVersion = 1;
    +             poInfo.mlRequiredVersionMajor = 5;
    +             poInfo.mlRequiredVersionMinor = 2;

    +             
    +             poCmdMgr.AddCmd(1000, "First command", (int)EdmMenuFlags.EdmMenu_Nothing, "This is the first command""First command", 0, 99);
    +             poCmdMgr.AddCmd(1001, "Second command", (int)EdmMenuFlags.EdmMenu_MustHaveSelection, "This is the second command""Second command", 1, 99);
    +         }

    +         public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
    +         {
    +             
    +             {
    +                 string CommandName = null;
    +                 if (poCmd.mlCmdID == 1000)
    +                 {
    +                     CommandName = "The first command.";
    +                 }
    +                 else
    +                 {
    +                     CommandName = "The second command.";
    +                 }
    +                  
    +                 int index = 0;
    +                 int last = 0;
    +                 index = ppoData.GetLowerBound(0);
                    last = ppoData.GetUpperBound(0);

    +                 string StrID = null;

    +                  
    +                 string message = null;
    +                 message = "You have selected the following files and folders: " + "\r\n";
    +                 while (index <= last)
    +                 {
    +                     if (((EdmCmdData)ppoData.GetValue(index)).mlObjectID1 == 0)
    +                     {
    +                         message = message + "Folder: (ID=";
    +                         StrID = ((EdmCmdData)ppoData.GetValue(index)).mlObjectID2.ToString();
    +                         message = message + StrID + ") ";
    +                     }
    +                     else
    +                     {
    +                         message = message + "File: (ID=";
    +                         StrID = ((EdmCmdData)ppoData.GetValue(index)).mlObjectID1.ToString();
    +                         message = message + StrID + ") ";
    +                     }

    +                     message = message + ((EdmCmdData)ppoData.GetValue(index)).mbsStrData1 + "\r\n";
    +                     index = index + 1;
    +                 }

    +                 
    +                 EdmVault5 v = default(EdmVault5);
    +                 v = (EdmVault5)poCmd.mpoVault;
    +                 v.MsgBox(poCmd.mlParentWnd, message, EdmMBoxType.EdmMbt_OKOnly, CommandName);
    +             }
    +         }

    +         #endregion
    +     }
    + }

    +

     

    +
    +
    + + +
    + + + + diff --git a/documentation/api_extracted/csharpreactor.htm b/documentation/api_extracted/csharpreactor.htm new file mode 100644 index 0000000..b3ca801 --- /dev/null +++ b/documentation/api_extracted/csharpreactor.htm @@ -0,0 +1,200 @@ + + + +Creating Add-in Hooks (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Add-in Hooks (C#)

    +
    + +

    This topic shows how to program +an add-in to have SOLIDWORKS PDM Professional notify your add-in +whenever a file is added, checked out, or checked in to a vault.
    +
    +
    NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

    +
      +
    1. Follow + + Creating Menu Commands (C#) to create a basic add-in.
    2. In your add-in's + IEdmAddIn5::GetAddInInfo implementation, call + IEdmCmdMgr5::AddHook + for each SOLIDWORKS PDM Professional activity that you want your add-in to be + notified about. Implement IEdmAddIn5::GetAddInInfo as follows:
    3. + +
      +

      + public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
      + {
      +        //Specify information to display + in the add-in's Properties dialog box
      +        poInfo.mbsAddInName = "My first add-in";
      +        poInfo.mbsCompany = "The name of my company";
      +        poInfo.mbsDescription = "This is a very nice add-in.";
      +        poInfo.mlAddInVersion = 1;

      +        //Specify the + minimum required version of SolidWorks PDM + Professional
      +        poInfo.mlRequiredVersionMajor = 5;
      +        poInfo.mlRequiredVersionMinor = 2;

      +        //Register hooks
      +

      +        //Notify the add-in when a file has been added
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAdd);

      +        //Notify the add-in when a file has been checked out
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostLock);

      +        //Notify the add-in when a file is about to be checked in
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreUnlock);

      +        //Notify the add-in when a file has been checked in
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostUnlock);
      + }

      +
      + + +
    4. +

      Implement + IEdmAddIn5::OnCmd as follows:

    5. + +
      +

      + public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
      + {
      +        //Handle the hook
      +        string name = null;
      +        switch (poCmd.meCmdType)
      +        {
      +            case EdmCmdType.EdmCmd_PostAdd:
      +                name = "PostAdd";
      +                break;
      +            case EdmCmdType.EdmCmd_PostLock:
      +                name = "PostLock";
      +                break;
      +            case EdmCmdType.EdmCmd_PreUnlock:
      +                name = "PreUnlock";
      +                break;
      +            case EdmCmdType.EdmCmd_PostUnlock:
      +                name = "PostUnlock";
      +                break;
      +            default:
      +                name = "?";
      +                break;
      +        }

      +        //Check the upper and lower bounds of the array
      +        string message = null;
      +        message = "";
      +        int index = 0;
      +        index = ppoData.GetLowerBound();
      +        int last = 0;
      +        last = ppoData.GetUpperBound();

      +        //Append the paths of all files to a message + string
      +        while (index <= last)
      +        {
      +            message = message + ((EdmCmdData)(ppoData.GetValue(index))).mbsStrData1 + "\r\n";
      +            index = index + 1;
      +        }

      +        //Display a message to the user
      +        message = "The following files were affected by a " + name + " hook:" + "\r\n" + message;

      +        EdmVault5 vault = default(EdmVault5);
      +        vault = (EdmVault5)poCmd.mpoVault;
      +        vault.MsgBox(poCmd.mlParentWnd, message);
      + }

      +
      + +

      +SOLIDWORKS PDM Professional calls OnCmd whenever one of the +hooks registered in GetAddInInfo triggers an event. You can tell which hook +triggered the call by inspecting +EdmCmd.meCmdType +that is returned in OnCmd's poCmd argument. meCmdType contains an +EdmCmdType constant +that indicates which hook triggered the call.

      + +

      The second argument to OnCmd, +ppoData, contains an array of +EdmCmdData structures. +The array contains one structure for each file that is affected by the hook. The +contents of the structure members vary, depending on the hook. See EdmCmdData for a complete list +of members and their descriptions.

      + + +
    6. +

      + Click Build > Build + Solution to build the add-in.

    7. +
    8. + Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
      10. +
      11. Click OK.
      12. +
      13. Click OK.
      14. +
    9. +
    10. +

      + Add, check out, or check in + one or more vault files. A message box displays with the files + added, checked out, or checked in.

    11. +
    + +

    +NOTE: +OnCmd is not called during check-in if the +file is not modified. During check-in of unmodified +files, SOLIDWORKS PDM Professional triggers an "undo check-out" event. To handle +this "undo check-out" event, register EdmCmdType.EdmCmd_PreUndoLock and +EdmCmdType.EdmCmd_PostUndoLock +hooks in your add-in's implementation of IEdmAddIn5::GetAddInInfo.

    + +
    + + + + diff --git a/documentation/api_extracted/csharpserno.htm b/documentation/api_extracted/csharpserno.htm new file mode 100644 index 0000000..b0ebd21 --- /dev/null +++ b/documentation/api_extracted/csharpserno.htm @@ -0,0 +1,235 @@ + + + +Creating Serial Numbers (C#) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Serial Numbers (C#)

    + +

    This +sample shows how to generate serial numbers for file data cards using +an add-in written in Visual C#.

    +

    NOTES:

    +
      +
    • +

      + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

      +
    • +
    • +

      SOLIDWORKS +PDM Professional recommends that serial numbers be generated using the built-in format strings or lists. + They provide better performance than serial numbers generated by add-ins + or serial numbers from files. Write an add-in to generate the serial + number only if built-in format strings or lists are insufficient.  

      +
    • +
    • +

      The +differences between serial number generation and other types of hooks + are:

      + +
    • +
    + +
      +
    1. +

      Follow + Creating Menu Commands (C#) to +create a basic add-in.

      +
    2. +
    3. +

      Register a hook to + notify + your add-in when a serial +number needs to be generated. Implement IEdmAddIn5::GetAddInInfo as follows:

      +
      +

      + public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
      + {
      +        //Return information about this add-in to the Administrate Add-ins dialog
      +        poInfo.mbsAddInName = "My serial number generator";
      +        poInfo.mbsCompany = "The name of my company";
      +        poInfo.mbsDescription = "Implements serial numbers";
      +        poInfo.mlAddInVersion = 1;
      +        poInfo.mlRequiredVersionMajor = 5;
      +        poInfo.mlRequiredVersionMinor = 2;

      +        //Notify that a serial number needs to be generated
      +        poCmdMgr.AddHook(EdmCmdType.EdmCmd_SerialNo);
      + }

      +
      + +
    4. +

      + Implement IEdmAddIn5::OnCmd as follows:

    5. + +
      +

      + public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
      + {
      +        //Check the upper and lower bounds of the array 
      +        int Index = ppoData.GetLowerBound(0);
      +        int last = ppoData.GetUpperBound(0);

      +        if (Index <= last) {
      +            int cnt; 
      +            cnt = last - Index + 1 ;

      +            //Create a temporary array to which you have full access
      +            EdmCmdData[] tmpArr; 
      +            tmpArr = (EdmCmdData[])ppoData; 

      +            //Generate serial numbers for all of the affected files 
      +            String CounterVal; 

      +            while (Index <= last) {
      +                CounterVal = tmpArr[Index].mlLongData1.ToString() ;
      +                String s;
      +                s = "My serno(" + CounterVal + ")" ;
      +                     tmpArr[Index].mbsStrData1 = s ;
      +                     Index = Index + 1 ;
      +            }

      +            //Return the updated data 
      +             ppoData = tmpArr;
      +        }
      + }

      +

      + +
      +
      + The second argument to + OnCmd +is an array of EdmCmdData structures. There is +one element in the array for each file that is affected by the call. + See EdmCmdData for a complete list +of members and their descriptions.

      +
      + + +
    6. +

      + Click Build > Build + Solution to build the add-in.

    7. +
    8. + Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
      10. +
      11. Click OK.
      12. +
      13. Click OK.
      14. +
      +
    9. +
    10. +

      + Right-click the Serial Numbers node in the + tree and click + New Serial + Number. +

    11. +
    12. +

      + Create a new serial number + in the Name field and select + + Serial number from add-in + in the Type dropdown.
      +
      +

      +

      + The name of your add-in is displayed in Name of add-in.

      +
    13. +

      + After ensuring that your add-in is selected, click + + OK.

      +

      + Now you can connect the add-in serial number to controls in + your file data cards.

      + +
    14. +

      + Click + Cards > File Cards, double-click Text Card, and click the + + Title + control.

    15. + + + +
    16. +

      + In + the Default value group box on the Edit-box properties panel, + click Serial number and + select the serial number that you created in step 7.

    17. + +

      +     +

      + +
    18. +

      + Save the card and exit the Card Editor.

    19. +
    20. +

      + Create a new text file + by right-clicking in a File Explorer vault view and + clicking New > + Text File. +

      The file data card displays a serial number in Title of the newly added + file.

    21. +
    +
    +

    +

    +
    + + + + diff --git a/documentation/api_extracted/custombutton_cold.gif b/documentation/api_extracted/custombutton_cold.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad2404e33093644ee8e2bd8a77243c5b0ea9d89a GIT binary patch literal 5276 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/defvalserno.gif b/documentation/api_extracted/defvalserno.gif new file mode 100644 index 0000000000000000000000000000000000000000..b66555c7f2e03f29ee93fd86e90070ee912c780f GIT binary patch literal 40640 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 LUUQ=q6d0@l>1}BT literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/InternalConstructor.gif b/documentation/api_extracted/dotnetimages/InternalConstructor.gif new file mode 100644 index 0000000000000000000000000000000000000000..3837479cec1fa5dd4f7364211cdf3f1f2995300c GIT binary patch literal 942 zcmeH`ze@sP9LC@DEXCir2nl%^Ng#!rmO~nt9S(AnI2ldl61W7nC|w$MOK?QP4I;hc z7ith{I4Cf=A*AWrj+)-_g$ShS?ffI!eE4k70}nj#>>m^}*~1VDp)NvAzA0@;Qd$ZX za8$s24WzV;7!oiMZGhB(NZ3-+ikelmtfmwcRZvw?#R6avg9v&<*PHs}Xks=@MFR~3 z3_%8KXt5z-x(#I$WnyU-(Fj#3)hN>#0YWjQwg+rH2GayeU^<1d9iB4NhB1pV!Wf!s zzQDgN!2fbigqBch)-d}7a$ljKJ65{yznr`My;8Np^)7tD%gV!m8@0D;r|4voml0W8jh%fBT;9NPplnpWWshgUy&0|YdmV2go->}ryq`-4f8OGsdFQ};Vxa3* svV#JB^ERB2yN;Y6MIT#5Uub397th?(9ns^DV)?nXJ8IVxiyYed0|i>0lmGw# literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/InternalEvent.gif b/documentation/api_extracted/dotnetimages/InternalEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be4b18426baf1cea4476a3fea0b9bd83b464f0a GIT binary patch literal 919 zcmeH`y-UMD9EPtSk*g@AL#5R^v|3Pbs0d;aq{dQfaFCAKRGiMCU1X>#xb@}PUwGg-KB@0j&UK_C8zIZsCg!HqG|8n& ziJ==JYl?#9B0#2)%?YlwTuDXfkSr$!PEF1%hcyK^T!#c6Re~y)Dv!#*ihKg&8<3Q_ zp%;QDVK6~~KX4>tN-#BWLZ5{JmjPEkmt!6U4oJ^e5JWJZ01yH|6iNUz+swc}8z}rH z69{3nHT{`3fp8n8alX-i9^PT?>8v}dY4fR_{%3DA!m;$#^;`L(T3cEv^G;7coXaiO zPd6UB2|H72aMbB_lkxN}$DP)YCyVWam&%WZwY9u{|5apmB9(h@#lDa1cq#MRfAH4h O+Tz0PD*hl)q4+5gK z&!g5puU>ku8c1#hqW3Lp@3m}w-?R69&#~`Qj(wkV4v7BGx%PkQwf}3c{oi`;|JLXK z_X5%T|Ht0{KllCrH6Z%`|K9)q&;S1i+BphFLtv1EfZ|UUW(Ech1|5)lKzV|JqliI} zL&jsnf`iQ*!dfm2i4PC3i%99UBrrO&c5*0&9B6Pn%*rgOopjrQ8VeO1TX@+Mj>+6u(89sbE%f4!=7#4T0`e9D7cw_6b_&Q@d2lcYKV%XJVpdSd RDrjV8>m^}*~1VDp)NvAzA0@;Qd$ZX za8$s24WzV;7!oiMZGhB(NZ3-+ikelmtfmwcRZvw?#R6avg9v&<*PHs}Xks=@MFR~3 z3_%8KXt5z-x(#I$WnyU-(Fj#3)hN>#0YWjQwg+rH2GayeU^<1d9iB4NhB1pV!Wf!s zzQDgN!2fbigqBch)-d}7a$ljKJ65{yznr`My;8Np^)7tD%gV!m8@0D;r|4voml0W8jh%fBT;9NPplnpWWshgUy&0|YdmV2go->}ryq`-4f8OGsdFQ};Vxa3* svV#JB^ERB2yN;Y6MIT#5Uub397th?(9ns^DV)?nXJ8IVxiyYed0|i>0lmGw# literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/InternalProperty.gif b/documentation/api_extracted/dotnetimages/InternalProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..51937a12c36613d1800219ad4445afa457462d38 GIT binary patch literal 1012 zcmeH`&r20i6vwYmUp>iiqKHWieJ@ZaTsV-_Ll-%czJ?OJ1mzHqauzKfku|HBN8ocv zseuZnu$rJBTqtOu&4U&Wq{byd1}m85rG&iF=DM3&oyI>S=*#EuJ(~kxzHr7)kDe%A zk&uMu5XvD*mU2oSsd-5;Wxc54qNeM*rei$?V;+mSsyC zk#&+c0@am^o`L{rzKR1)Cmg2)+z7bsGn+8il$;87EW@?1>tWBqu3zyS%XjU-HwZDP zCq=#-2MVjJB9KI=LYQYEhFE6Q6jT#bPa>Se29N9{HWO9>Q2}lNw_T5TKJi1Jcuqjv zI&p%aPQug}31|>9Cvpf42!$}>^(d(`sB;KY1n}5NxD!Q`(wIhZ6tRdw%s3SgB@lCn z1uy||x&tr(&Y2LLr-un}0Fi(IND@e3N9e!)sRr_Yni>&mLw!4`cYXrpzMz3zN9p~G z;hC|!2PR*>a&{HQTgHD6?&C~F(#Gz4ohPeXpNC&(=cL{za&v8Ctf6yodhNlD zsge1f3HQ>&k4KhU8`bg$d8un;zIXIpNh0;<|B=&E&&r1CLV6*mDW*9d9Z-_ z1h0gUfQF+J3kR1lhfYU8Q8ODWqkvh5z{7*AEbK+=WCRyE`7l{4b65m8tnlMt8vc|DmxjpW!=whYx&Lb1P}7C;|~20iecIZA#Np zT2|hYOYNfP6@9CX3QHZ3q9Nb{$(0lxsXEr60aFl32um1dA(9cwBSR)e-XM8G6-rgg zO3YF$hzY_bHYhQPNr^#P#AGIAv}G~KY-~H&;fQn0UF z76u3W&$Zya_c5H@Xf)5nYR^!7^Xj^J(1K$Va;;E4f5?TWXME!Rxc@kqj&6TG6}`Q^ zp}pCrCw>?R^$iPO(L&Z|q?g}rPNJ2j5b0W5f1Nwpj7;3h2~emXN4y^wOUcGpWtB!j2Eirycd%oN^}_Xl9{7gi0Zu>b%7 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PrivateEvent.gif b/documentation/api_extracted/dotnetimages/PrivateEvent.gif new file mode 100644 index 0000000000000000000000000000000000000000..01dd803eb4302e7520e03955d430ace078c88e2e GIT binary patch literal 937 zcmZ?wbhEHb6krfwXlG!Eax%>J(sc5QiVE`bO0LdM_6o{wi2|bHo@5Z3l3hK8;Xgxm z%ar1lIn_N&r({d?WGnVmdoAs8T015C+}7&%ORL|nt$x3?`uVx2@5i$LUn~Cqyn4!< zt#g*{UAp$z+O6ld?mf5n*tO>^E$^4Myx%+J-m#W@=X#!>>v?~y=li)S|DSI?cJAIe zAi8$%+O_BRp1=S9{T{<87!3isgn;5t7G?$p9tItdZJ<2Cz|qDa$syyhVZp&>4%T@V zjfY%Vxj2p2JeY9kPzR%6a?TEeMGi+qr44!}Oqk%(10alX%&MahlDQ6mJGo| b42SsjB035@{00Gu4XWtBjL4HGia@5)KQ9xAOlMF&rva6>s z{AaNIZ<*aPrMP8IbXl*9AkfSyq~MXpF+qT-nU#}ogR6u9gEat6=yaF> literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PrivateMethod.gif b/documentation/api_extracted/dotnetimages/PrivateMethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..a27c0d908aebf22b88c4324415244675c2d1765b GIT binary patch literal 963 zcmeH`ze~eF0EMq@z>CyL68cH?IMj`w1dVVQaXrK2em3nmO|XJw3;H~2?{sf z&?TV5i9&;m2NtB09O95kf(0Q?-l$Ho{tu2mzUd8b_~6Yi%%$axD2Re10DRwfJ?=Oj zb6m#UCUZYO3HONO5XOj4d`>yH+J)z1pJUDu_ps+;mqA9Gj!hY{nMIm5CB!D!q6pg% z6GwAckx`vejgmaE@|L9%lt)NKFblDak&Ivp8qm^BteHsmWz9fEy$vk1(agMN8YxpP z8d#Me`0wiPCxBQ3t71&Kt~CzD?j>cVls&9QRu@-l zKzOKhMz>z$Hx(h=Gd|iMI0z`=UbUVqt%GXUU;)18o*Tiwbf`yMZykUEX?p)F-gr31 z6QNzDToFzNXEQJ9bK$bw9qha>OGz^vOPqZ~W|l$6Rc`NXSdq%7w>#UBwail%2vcJ8 aA{lH|109LGdTylEH8i>Tn1IPR$ov2Sd8dj1 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PrivateProperty.gif b/documentation/api_extracted/dotnetimages/PrivateProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..63b6445b0a4fc1c69f0206197dfafc12d6efc1e6 GIT binary patch literal 1018 zcmeIx!AlfT90%~%?#7NGI6~l{!n!8Xgh5jsT=cL`nCp~bk05$jsY6oC#hMPmcu8Nn z;7~?GZ7@Mv)2V?v40st3gNKKBM2FXHNFk=68ahov@EZS&pf8`x_xSt4cVzT*e`QJp zB3J@I0HP!cav3OPQPw4`qQHu(YEadXra`1ZsH@0Anr`V((-AU}s_W3yHOoNIz$jzd z`X0xy9L1I@jtn?ZT?P88fgKaOmhD+?Wa}a}AU2V0Lfe53hPG=s*mP~ncai5I;)v9h zm@h|xlK5g0Dm*MlA>>Soh@KENAzDgd%1}(Ll<8??@WkM;$z#iQJjcxhZs@vR=sDQ; z?7+jmA7st*i62lujDnD2iap|ogn5LAG!AGQGn~elQbGtLG!xMbi)h3di&+#$al&HG z5*{Ty&ZIm^d7APp;D7${50rNcc>p>=-`*X2n*hQmP!T$7Z=Mg`9lhUqX?3lz)P27B z-0z{*+Jp99Se0u##pP0U?(5dji+jb^!_T^!=66Q+l?G=9*RuxyJFL zFta<|GuAGbKDd=ry+5l*uhwsWyS1Hr^ltjkfx(VfzuM%st@`NMaZM^TN*DXT4=YQ( pQ|n!yH@`IPKcSO5Gas)lAN0rCdm2BU=IhN;-}v>}@yRL}_zQ)g4T%5% literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/Property.gif b/documentation/api_extracted/dotnetimages/Property.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb3940891178b4ef95f9b8c8f6911e2fce115c77 GIT binary patch literal 990 zcmeH`!E4h{0LEY2twh`~qPW1yW|+t#q69Cig05k%HHR`Di1<#rFcd2)1Uwi8J0sH) z5hb8P4x{i+8W5!@j9{ni(Tk6I3Bn+(g1nOkQFwZKwtt6y{66@u-v?j$)cj2GybNTp z0)PZ$MV2%b=&Gz)idocQ(J)QZFrnE8Le#fqAO~5{v=Fk9VOh|&Os9ry+tEFx=xaa# zBhX=JI6>lBvRi|$jXWEAKJ;Da1vTHb1J4NqgfSw%OamnjwWOt|p`1p#h}0y4B32S& zrNl^y$tmP9V$|WW#gm#yYl7K=Ii8RG00&WkeK*8j3%g<1!V$(H38TcNE+!!+BBHEC zIg4G+TuKQcF`+S~2~9+tu$YNB6-g=>OVX6Fe&8bQBLwGyi-Ev@{TmCYe}-}ZjDdrL zx`R&uX$>5f3YC|urTU2*zZA9kVR+)?NcC-LXZgXN2}9O8z5M<0naiDf>&?0R==93( zPUg#eX8g#x7Yjc!ck)x^o70bGr{0g|wCdB(?e=nh-|@$luG-tkj^%)Kt-EUMI&}Kz zLhsdFwgGlrmqv`O15aLGsL$SB9L|*XU;K1weR-*|SwC}E>NVe7_1Cf=n;VNurvGl} m=l5^V`L?a?)$WyN!Pmxa?V(nvw9nSFG?<($+*0>~V}AjyRP!hR literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/Protected InternalConstructor.gif b/documentation/api_extracted/dotnetimages/Protected InternalConstructor.gif new file mode 100644 index 0000000000000000000000000000000000000000..22f667add7e23b79a6296740f285ff854919bb97 GIT binary patch literal 942 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_aNrJ=uyqhCNd(r_8aO)8o`L#cRrx zpeake)-DZNx;AL--t4`5i}#*OK6fqq+R_%yr7f1{)<)gi8+C4N@wL6x?~iHzKWF&< zT-5)2**$aC&RM#4?bfyDdd}UObMN__=kKSye?RB_|2hAkuYLZ0>HGJ4-~V6x|Jt>+ z@9#}{|9tKD_dvAu`}ei~zprH&1*0KAmk?0=$->OQz`~#dvJI3c7&y8aI5}iIHY_;U z%)#5{5n*tovz3Rl#baR;%aKNdu!au`A6vMD)pXQK7#LYSgq6hv8ZIg^vvJFFn9K;c zJ(u@l7%1-uT_|MRjEiolqVotS0Pqt!Dwb#-X&9yCx zOIs{^TB4TrIIW$MeQs^ky}eQA))t@JT77MA_4}pO@7Gqp-&+0tnCAa;hR@GMy+0TA z{aE(@d)fc575{%;{k)~+{nD2Ad#Btx)^hJ$&+~IV?~nC7zt;2q-jwg>rhI?D_WS#- z|DSLD|9$QM@Anu+!DtB3Hv|-avM@6+urTO=tOex>2962_P7WE54GRu7bFfab2uwQC z!p>>B;YY$ECJsiy*oqAdNe(Vza(WFO6DBmUiOV=xcz8H6weV}Yv@kFpP-qpEwKB+f z!05s-TPsSWV}c_i2MfFAf)@gcOl+)dLQW?xJbc+WiAAX-U;{(;wN+eu+-@{n(Qe$N J%FM)I4FKX&f@S~! literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/Protected InternalField.gif b/documentation/api_extracted/dotnetimages/Protected InternalField.gif new file mode 100644 index 0000000000000000000000000000000000000000..9809a8ae6513689c477f950cb4eb4649f5c8edd4 GIT binary patch literal 920 zcmZ?wbhEHb6krfwXlGzxFq|XdwN^7|t!C6#!{n_D{~4m@T#K4>uX^qC>aEXvvL$-5 z6_>VXE^VIkD-l%hHi?8jiet%5!|2f0==c4}K%kJ6xzUSEYDaXFgIR`}l=Un^0 z^xFTm*Zyz4_y7I9Dc|3({r-OI|L<#oR*izu5EyJBp!k!8nSp_oK?me8P@Z7mC}rU0 zknz~C;9xU{u$In*goh3+Vp4iO4UUIdJ2`}7E-YwtZewIqb|?r4Jj}+=$RN@qu*j*E zP0pf1fWhJE0S*NhjS7QCM|LLDT&|uE3lBB33rVnuT3tBU!sW@&;`(C&Q!^7=mfD(G UTNr|y`89M3Gz#7vYGAMi08))?m;e9( literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/Protected InternalMethod.gif b/documentation/api_extracted/dotnetimages/Protected InternalMethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..22f667add7e23b79a6296740f285ff854919bb97 GIT binary patch literal 942 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_aNrJ=uyqhCNd(r_8aO)8o`L#cRrx zpeake)-DZNx;AL--t4`5i}#*OK6fqq+R_%yr7f1{)<)gi8+C4N@wL6x?~iHzKWF&< zT-5)2**$aC&RM#4?bfyDdd}UObMN__=kKSye?RB_|2hAkuYLZ0>HGJ4-~V6x|Jt>+ z@9#}{|9tKD_dvAu`}ei~zprH&1*0KAmk?0=$->OQz`~#dvJI3c7&y8aI5}iIHY_;U z%)#5{5n*tovz3Rl#baR;%aKNdu!au`A6vMD)pXQK7#LYSgq6hv8ZIg^vvJFFn9K;c z@X}NlY}}%aRBb@PMJXC=T~iSpp@+eP+aM_MP>Hu(Y&*3@ zqgWg09)cESK!kyU?9IToEAb+O9t=GN5g{JLsUQr3Fm8W_;K%oVz1Gt*bx< z3jioU)l|jMfvKy8quEsxRxR7MEgRY$Aw-=x7V?n;Z3iI_S&joe$M#+1dA=EF)zAPE zSdj^-RB6e-G?FH%QjuI$KNnR_z#gOG#~iQ-jsqemLx1?EMu8WvpmgZ%4No7 z-cd;2QA#1CklTR&{NoGgzq?8R^nu~+9^0P)%13ZaDc9Ck&(2Id8LZa7w7Ul{_g>Ph zB}MHYu+JFZ>dJln-0ZK-LS?LH*U+;e! zn(aAkzp9NK(BBpJm4Gt+VYRq&{KSp7wbx_C2VnOj<(74K;^DA`7i;aVjTKW-($@3& zc5hi{p;0;bqqTPuzi-^G;N|wUKRdtfDJ?wSxSlK)mK&cx^;^CBN57B#oIiSVq;K50 dcd;?@)F?OBU(6M|cT64HI=$9jpDh%?slTsy4ru@Y literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/ProtectedConstructor.gif b/documentation/api_extracted/dotnetimages/ProtectedConstructor.gif new file mode 100644 index 0000000000000000000000000000000000000000..22f667add7e23b79a6296740f285ff854919bb97 GIT binary patch literal 942 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_aNrJ=uyqhCNd(r_8aO)8o`L#cRrx zpeake)-DZNx;AL--t4`5i}#*OK6fqq+R_%yr7f1{)<)gi8+C4N@wL6x?~iHzKWF&< zT-5)2**$aC&RM#4?bfyDdd}UObMN__=kKSye?RB_|2hAkuYLZ0>HGJ4-~V6x|Jt>+ z@9#}{|9tKD_dvAu`}ei~zprH&1*0KAmk?0=$->OQz`~#dvJI3c7&y8aI5}iIHY_;U z%)#5{5n*tovz3Rl#baR;%aKNdu!au`A6vMD)pXQK7#LYSgq6hv8ZIg^vvJFFn9K;c zJ(u@l7%1-uT_|MRjEiolqVotS0Pqt!Dwb#-X&9yCx zOIs{^TB4TrIIW$MeQs^ky}eQA))t@JT77MA_4}pO@7Gqp-&+0tnCAa;hR@GMy+0TA z{aE(@d)fc575{%;{k)~+{nD2Ad#Btx)^hJ$&+~IV?~nC7zt;2q-jwg>rhI?D_WS#- z|DSLD|9$QM@Anu+!DtB3Hv|-avM@6+urTO=tOex>2962_P7WE54GRu7bFfab2uwQC z!p>>B;YY$ECJsiy*oqAdNe(Vza(WFO6DBmUiOV=xcz8H6weV}Yv@kFpP-qpEwKB+f z!05s-TPsSWV}c_i2MfFAf)@gcOl+)dLQW?xJbc+WiAAX-U;{(;wN+eu+-@{n(Qe$N J%FM)I4FKX&f@S~! literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/ProtectedField.gif b/documentation/api_extracted/dotnetimages/ProtectedField.gif new file mode 100644 index 0000000000000000000000000000000000000000..9809a8ae6513689c477f950cb4eb4649f5c8edd4 GIT binary patch literal 920 zcmZ?wbhEHb6krfwXlGzxFq|XdwN^7|t!C6#!{n_D{~4m@T#K4>uX^qC>aEXvvL$-5 z6_>VXE^VIkD-l%hHi?8jiet%5!|2f0==c4}K%kJ6xzUSEYDaXFgIR`}l=Un^0 z^xFTm*Zyz4_y7I9Dc|3({r-OI|L<#oR*izu5EyJBp!k!8nSp_oK?me8P@Z7mC}rU0 zknz~C;9xU{u$In*goh3+Vp4iO4UUIdJ2`}7E-YwtZewIqb|?r4Jj}+=$RN@qu*j*E zP0pf1fWhJE0S*NhjS7QCM|LLDT&|uE3lBB33rVnuT3tBU!sW@&;`(C&Q!^7=mfD(G UTNr|y`89M3Gz#7vYGAMi08))?m;e9( literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/ProtectedMethod.gif b/documentation/api_extracted/dotnetimages/ProtectedMethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..22f667add7e23b79a6296740f285ff854919bb97 GIT binary patch literal 942 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_aNrJ=uyqhCNd(r_8aO)8o`L#cRrx zpeake)-DZNx;AL--t4`5i}#*OK6fqq+R_%yr7f1{)<)gi8+C4N@wL6x?~iHzKWF&< zT-5)2**$aC&RM#4?bfyDdd}UObMN__=kKSye?RB_|2hAkuYLZ0>HGJ4-~V6x|Jt>+ z@9#}{|9tKD_dvAu`}ei~zprH&1*0KAmk?0=$->OQz`~#dvJI3c7&y8aI5}iIHY_;U z%)#5{5n*tovz3Rl#baR;%aKNdu!au`A6vMD)pXQK7#LYSgq6hv8ZIg^vvJFFn9K;c z@X}NlY}}%aRBb@PMJXC=T~iSpp@+eP+aM_MP>Hu(Y&*3@ zqgWg09)cESK!kyU?9IToEAb+O9t=GN5g{JLsUQr3Fm8W_;K%oVz1Gt*bx< z3jioU)l|jMfvKy8quEsxRxR7MEgRY$Aw-=x7V?n;Z3iI_S&joe$M#+1dA=EF)zAPE zSdj^-RB6e-G?FH%QjuI$KNnR_z#gOG#~iQ-jsqemLx1?EMu8WvpmgZ%4No7 z-cd;2QA#1CklTR&{NoGgzq?8R^nu~+9^0P)%13ZaDc9Ck&(2Id8LZa7w7Ul{_g>Ph zB}MHYu+JFZ>dJln-0ZK-LS?LH*U+;e! zn(aAkzp9NK(BBpJm4Gt+VYRq&{KSp7wbx_C2VnOj<(74K;^DA`7i;aVjTKW-($@3& zc5hi{p;0;bqqTPuzi-^G;N|wUKRdtfDJ?wSxSlK)mK&cx^;^CBN57B#oIiSVq;K50 dcd;?@)F?OBU(6M|cT64HI=$9jpDh%?slTsy4ru@Y literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PublicConstructor.gif b/documentation/api_extracted/dotnetimages/PublicConstructor.gif new file mode 100644 index 0000000000000000000000000000000000000000..75e638a795c74e814400dde944aa685b08773c99 GIT binary patch literal 910 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_XTDQ!J;0;<|B=&E&&r1CLV6*mDW*9d9Z-_ z1h0gUfQF+J3kR1lhfYU8Q8ODWqkvh5z{7*AEbK+=WCRyE`7l{4b65m8tnlMtJ(u@l7%1-vG&URw>&oCuhVotS0Pqt!Dwb$Af#h#X^ zDJ?-udz_X|NnQ&=+2^)azh7GYer@&pt<}%ZMSVY({r_6=|L4`m_D(ssch0fBOP{y2 zykFY#e(#if$6D^4>v?{z=l!vs=hu3^ADi<1+?4;%xBmZrk6{#yhQJ^Q0mYvz%nS^y z3_2jUfbs+bM~Gvh#_gNv}ZMuEqK z4GyisViqPEk&Mi3LUL9G3=JO`nVGot3OE8bIk3&;sLHyKxgecUNQO`1?gPihz(&4# LUUQ=q6d0@l>1}BT literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PublicField.gif b/documentation/api_extracted/dotnetimages/PublicField.gif new file mode 100644 index 0000000000000000000000000000000000000000..9809e29eb7efc9336639c7fdb3e956ac98313966 GIT binary patch literal 888 zcmZ?wbhEHb6krfwXlGzxFq|XdwN^7|t!C6#!{n_D{~4m@T#K4>uX^qC>a9TZzGdtC zp1tpTj(wkU?E9Q^K=gmkwf{@6{a<_S|JHl|fd-6%(GVEAA)xq^g_(hYl|cvO1yG(~ z;0R^l=8*B&u;5@bhp?8;goK9dDNYCCl}C^9g#u!{vu saByU3n9R;E6JXGIzdQ)TyxQP!evyYT8w-Oq0HDW4t^fc4 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PublicMethod.gif b/documentation/api_extracted/dotnetimages/PublicMethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..75e638a795c74e814400dde944aa685b08773c99 GIT binary patch literal 910 zcmZ?wbhEHb6krfwXlGz3RxGa8tgbc$q85h#3_XTDQ!J;0;<|B=&E&&r1CLV6*mDW*9d9Z-_ z1h0gUfQF+J3kR1lhfYU8Q8ODWqkvh5z{7*AEbK+=WCRyE`7l{4b65m8tnlMtiYoSss`g5*HjG+o7`4_id8=je-k|K3sO+BP;-2K{DcRLi zoU+e36<_nJzQ^#NA!?~*@>;L#wL!&OqpJ5NSMSX(ZkZF*@;<2NdsNT=*;( z!2wn_VY>|h8=4QXb8%Ev{9rhEfS<`Um ud~SYRd_aIna?%n5gM-e3qG~P;A09Xy>osNflF(>KVQFMc5#r%sum%7s5LdSV literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/PublicProperty.gif b/documentation/api_extracted/dotnetimages/PublicProperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb3940891178b4ef95f9b8c8f6911e2fce115c77 GIT binary patch literal 990 zcmeH`!E4h{0LEY2twh`~qPW1yW|+t#q69Cig05k%HHR`Di1<#rFcd2)1Uwi8J0sH) z5hb8P4x{i+8W5!@j9{ni(Tk6I3Bn+(g1nOkQFwZKwtt6y{66@u-v?j$)cj2GybNTp z0)PZ$MV2%b=&Gz)idocQ(J)QZFrnE8Le#fqAO~5{v=Fk9VOh|&Os9ry+tEFx=xaa# zBhX=JI6>lBvRi|$jXWEAKJ;Da1vTHb1J4NqgfSw%OamnjwWOt|p`1p#h}0y4B32S& zrNl^y$tmP9V$|WW#gm#yYl7K=Ii8RG00&WkeK*8j3%g<1!V$(H38TcNE+!!+BBHEC zIg4G+TuKQcF`+S~2~9+tu$YNB6-g=>OVX6Fe&8bQBLwGyi-Ev@{TmCYe}-}ZjDdrL zx`R&uX$>5f3YC|urTU2*zZA9kVR+)?NcC-LXZgXN2}9O8z5M<0naiDf>&?0R==93( zPUg#eX8g#x7Yjc!ck)x^o70bGr{0g|wCdB(?e=nh-|@$luG-tkj^%)Kt-EUMI&}Kz zLhsdFwgGlrmqv`O15aLGsL$SB9L|*XU;K1weR-*|SwC}E>NVe7_1Cf=n;VNurvGl} m=l5^V`L?a?)$WyN!Pmxa?V(nvw9nSFG?<($+*0>~V}AjyRP!hR literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/collapse.gif b/documentation/api_extracted/dotnetimages/collapse.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c0fafca490c30e2a34edb2776ea14fabab5cfa GIT binary patch literal 872 zcmZ?wbhEHbJ`@?fDeJD<23&lQFR$?hD?#t9n&8l70!nN@8v4kR=( Xu`mnEXgD++U|?qB77`HsNN4r0g+G)oX^T&umrSx#|In z)B~1ihOE*IS)(1kQ7e42Y3kAFqJH`N zS+Mi{vb}HSAN{rI(2ZS3uk1g4ch$l7s}H?jfB5aXBOlgX_`m7ohkfTh?7H>;^!Y27 zuH8Lw>cOFNPmW)Dc;@<>^EaOzz5MC={a4rSy}5MzVp7YZnc{+TLOc?mwev_Q)ZF;f@WfGADD^FwdCb_>o&oQ%9uZgOTbfVMWz5Egu>l9%>ckaABBXJ-u1dC}y3CX49dD ogFI=scI_=_YH;LAirEs-_^5@GkxktsV}ruMMkZz^78V9;0N{8X@Bjb+ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/copycodeHighlight.gif b/documentation/api_extracted/dotnetimages/copycodeHighlight.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f8bbcc0494387e314769359dcf6d7d7a98a0fe5 GIT binary patch literal 978 zcmZ?wbhEHb(9f`ko zWqdxI`s-N2uM;_6PnP~VQ2Fb0;mOUD&up7^X8ZJOyQf^*GyCS=DYy1dy|aJn^@H>8 z8~~CF?;c%x=h(7)XSY8%IOV~?X%CM~|8=VG=cVRfmzsWEYWa0z!mpc?f8Cn;>-OAV zx8^@Ox$@EJ)lbi?d46Tr%UiqN-QE4``qE!_mj1d6L~DNC-S+Fj%3lvx{Cc+i*Ngo( zE}wpJ^YELyrykzC@ax`zcMmUpd3yBwlT$xlpZxXu%*Uq}zr4En>+RJq?;d{p`1ISS zSHHeI{q^lqk1WIQ%3IM~co`{TjE!>ruu9JM_&E!pafT7=2bKfD%lsD@F|uf6eNppeG~t&yD!Fy}P3XY8;LRv8^0uD5A3MhN^ya-@w=@3$JX%I+kYT@Kl?2z#+T5_0O zBY2h1%L|RCryImu@8GCminLeZ8UK=H`s^(|k{FYj9>Nczmi?TcM$0cg5#NyaECY)&K^1 BYlHv* literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/expand.gif b/documentation/api_extracted/dotnetimages/expand.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e2f8f901aa517ed68a2810f222a061559d2060 GIT binary patch literal 873 zcmZ?wbhEHbakmEpkf`P-0ft5wV!=S-I zfJ3-R;>E+m>&H R14APt8;_WZhJpfvH2@fUXkY*U literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/dotnetimages/gradient.png b/documentation/api_extracted/dotnetimages/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..66f8e738c9739f389ea29e50e628d3af3eb8ce16 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA!3HEtFPV4&DVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jLm@>7nB(v6F?j*qvhOqZ<6l&;E_ug+JmDblGaF{~{!uPw8vtF(1=baZxh zc5`#{@p16?_YVjNh>i})&v&k`_htCcFtby8cAxpmnP$6IIqqKPwR=P0-W|#NcIO;l zXLNj{`PCf;PmUTtJ!$#*lG&GQwxz#G7X|KVKyMdXxM6W97S7?SHL?%{_2}&+87A=8Cxu&XX1;}JJ88$gfh1;y#kf6*s zc@kgtk|jwjjR%+*84?OKlAgK9@W@zAS$O2Ji-upGkAT((NB&Ncxh9gA8dmm-%T~Ck zYPvLqN{bu4n9x@RO?$5CP+q}(|}bGk+c<3e4*&CID%cN<%BCNLMQRq@>P^*GZ) WHmwi=2L_fdVJVK9xi$t04AubiprpqD literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/drpdown.gif b/documentation/api_extracted/drpdown.gif new file mode 100644 index 0000000000000000000000000000000000000000..3163858f65d5d257c28c02d48b6a769b9ac19a50 GIT binary patch literal 118 zcmZ?wbhEHbi?uHpdc2Y_>%=J ysskcHW-zcQ7c_V_@*GUCsk|A>z`?>^z@#}ZNlWJ8iepSkRSK&cgG_k^8LR rGB7K6Y?R?LXi`;PYy7}wm%M8Lhe~F^;+c+%8DkG5YMymcVXy`OhdUuf literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/epdmapi.hhc b/documentation/api_extracted/epdmapi.hhc new file mode 100644 index 0000000..13bd440 --- /dev/null +++ b/documentation/api_extracted/epdmapi.hhc @@ -0,0 +1,8773 @@ + + + + + + + + + +
      +
    • + + + +
    • + + + +
    • + + + +
    • + + + +
    • + + + + +
        +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      +
    • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      +
    • + + +
        +
      • + + + +
      • + + +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            • + + + +
            +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        • + + + +
            +
          • + + + +
          • + + + +
          • + + + +
              +
            • + + + +
            • + + + +
            +
          +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      +
    • + + +
        +
      • + + + +
      • + + +
          +
        • + + + +
        • + + + +
        +
      • + + +
          +
        +
      + +
    + \ No newline at end of file diff --git a/documentation/api_extracted/epdmapi.hhk b/documentation/api_extracted/epdmapi.hhk new file mode 100644 index 0000000..1aa79a0 --- /dev/null +++ b/documentation/api_extracted/epdmapi.hhk @@ -0,0 +1,15429 @@ + + + + + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + +
      • + + + + + +
      • + + + + + +
      • + + + + + +
      +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + +
    • + + + + + + +
    + diff --git a/documentation/api_extracted/expand.gif b/documentation/api_extracted/expand.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e2f8f901aa517ed68a2810f222a061559d2060 GIT binary patch literal 873 zcmZ?wbhEHbakmEpkf`P-0ft5wV!=S-I zfJ3-R;>E+m>&H R14APt8;_WZhJpfvH2@fUXkY*U literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/flash/expressinstall.swf b/documentation/api_extracted/flash/expressinstall.swf new file mode 100644 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zskR+TGZ-2qzdtVV{WQb>`wahYGyH$d@c%V~qJ)5@&f52v4gWu9aB@uk{+!`G zP|I@;1`x13wo2mvXNLd38UFugIJZuqxOD6L!$9pE|KBq_zszuK8^izaKq-MB-=O#B z8UDZL_)v^e|NntDazy!hMTL6ZyUnn59m9K|OMou?FOi(+^!>BI|NolrUo%XZ z)&q9fC@~rWpb${}$-)StbwC6tPcU$7VPNEt*^$UHrIAB0FXPb@&(0RksXUQJO`I-G z+I@yMUq# zi)tW~6AP!XM#zQ&M(0*eNv3Rv2@VIFSb3x@5(+9Bo7wmoSOg3j7#f*ab)xkW9ymBK HFjxZs+|z#zz=1Ih}ZJi)+W&A{y<;jux% zk%?VSBF19@BLh1(x6lLwh67C<%$yDq1_}(!JuCtRUpR~$k9I4F+8mi-sCc@ODV~pq HgTWdA7`ynT literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-enlarge.gif b/documentation/api_extracted/hs-enlarge.gif new file mode 100644 index 0000000000000000000000000000000000000000..677685d0581746509ea82fa582778b30ea7ca711 GIT binary patch literal 948 zcmZ?wbhEHb6krfw_|Cu}5w+FQ$*VX!syI8jXU^81IeX`$T@w?*Y;Kt9Jl}g literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-expanded.gif b/documentation/api_extracted/hs-expanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..dbf5452c92f91048746b7e97fab63afb78f61553 GIT binary patch literal 861 zcmZ?wbhEHb+|z#zz=1Ih}ZJi)+W#h}a~u_-bq8V;VCZotdN H!e9*m;L82H literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-heading-collapsed.gif b/documentation/api_extracted/hs-heading-collapsed.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e2f8f901aa517ed68a2810f222a061559d2060 GIT binary patch literal 873 zcmZ?wbhEHbakmEpkf`P-0ft5wV!=S-I zfJ3-R;>E+m>&H R14APt8;_WZhJpfvH2@fUXkY*U literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-heading-expanded.gif b/documentation/api_extracted/hs-heading-expanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c0fafca490c30e2a34edb2776ea14fabab5cfa GIT binary patch literal 872 zcmZ?wbhEHbJ`@?fDeJD<23&lQFR$?hD?#t9n&8l70!nN@8v4kR=( Xu`mnEXgD++U|?qB77`HQ<&tJ&m@r{sW2cC?(2fWO jhhvPaOac-P2a;WxSe0hAtoWqt(!-c^s^_Jl0)sUG{6QzS literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-shrink.gif b/documentation/api_extracted/hs-shrink.gif new file mode 100644 index 0000000000000000000000000000000000000000..17ce54a6a683a6c80bda86de33f8ef16b3b06e92 GIT binary patch literal 944 zcmZ?wbhEHb6krfw_|CxapW*-3V#VU@m|J?Wg$L_uFnX`B6^Y_P|f8ToV{oeQA_rCwX^xF4h-~aD@{#_z!>zuXc zw%&Wb_xby!Td!@s_MBl9jE2DA4gtlVEQ}x*>VODPo?zhUWnkox(fGi?#3IX~CDL)= za9cYEpH9k-1gDm6K?9GFiUWsP_{5xo4m2bvHt{Mrx2@Trpy+a;@^cdlFPEUp zf(1rTT3J;&yequOBUy7GSUj05gkrmjD0& literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-simpletableft.png b/documentation/api_extracted/hs-simpletableft.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5855c3d6e5be1be19b8c0b916b7ac70053f58 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufG}g$wN6f;pm>REL`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i>0Z~xCxJ==JzX3_ zEc}yy^s~s>R(<*Z>FMeJk_kz>%isUwKjc5(u9ah+b@{vhudlCvSS8^Qr5CrSBj;2- z+XP7k-4hLrDSTEEqAuJMFEU8-3b;Izx}d|%;J~(9U2oeNJ)q$Xp00i_>zopr0OspL Ak^lez literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-simpletabright.png b/documentation/api_extracted/hs-simpletabright.png new file mode 100644 index 0000000000000000000000000000000000000000..cc48d3a74da4f7ef99ec370e15df7b5fd9df455c GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufiR<}hF1enP`t!7q9iy!t)x7$D3u`~F*C13&(AePq0Cs%bg%2;lRzZ_o-U3d z7XHaQYJPtD@7^!>*PV^Wf4<${{ng*|4B8mkBp!c#ef|IWxz_B@4zW7U=@!>->U9!i zk!0P(>?*KCD&^Y>g`f@nY#d%nGQNt;v#l8#w(M4SX$V#Un$6(p>gTe~DWM4ftbRY3 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/hs-tip.gif b/documentation/api_extracted/hs-tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..44401b910c8b0d2e5e8b88b4b5aa9cbc68bc3a40 GIT binary patch literal 934 zcmZ?wbhEHb6krfw_|CxapW%O2Vq#QK(Cmp5H?Lkjqpz%4w^TJrn*?B8E| z{{1`q_s!ZruNM6Mx%SWZdB4B*KRaCh_vgAF?J`@?fDeJD<23&lQFR$?hD?#t9n&8l70!nN@8v4kR=( Xu`mnEXgD++U|?qB77`HsNN4r0g+G)oX^T&umrSx#|In z)B~1ihOE*IS)(1kQ7e42Y3kAFqJH`N zS+Mi{vb}HSAN{rI(2ZS3uk1g4ch$l7s}H?jfB5aXBOlgX_`m7ohkfTh?7H>;^!Y27 zuH8Lw>cOFNPmW)Dc;@<>^EaOzz5MC={a4rSy}5MzVp7YZnc{+TLOc?mwev_Q)ZF;f@WfGADD^FwdCb_>o&oQ%9uZgOTbfVMWz5Egu>l9%>ckaABBXJ-u1dC}y3CX49dD ogFI=scI_=_YH;LAirEs-_^5@GkxktsV}ruMMkZz^78V9;0N{8X@Bjb+ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/copycodeHighlight.gif b/documentation/api_extracted/images/copycodeHighlight.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f8bbcc0494387e314769359dcf6d7d7a98a0fe5 GIT binary patch literal 978 zcmZ?wbhEHb(9f`ko zWqdxI`s-N2uM;_6PnP~VQ2Fb0;mOUD&up7^X8ZJOyQf^*GyCS=DYy1dy|aJn^@H>8 z8~~CF?;c%x=h(7)XSY8%IOV~?X%CM~|8=VG=cVRfmzsWEYWa0z!mpc?f8Cn;>-OAV zx8^@Ox$@EJ)lbi?d46Tr%UiqN-QE4``qE!_mj1d6L~DNC-S+Fj%3lvx{Cc+i*Ngo( zE}wpJ^YELyrykzC@ax`zcMmUpd3yBwlT$xlpZxXu%*Uq}zr4En>+RJq?;d{p`1ISS zSHHeI{q^lqk1WIQ%3IM~co`{TjE!>ruu9JM_&E!i?uHpdc2Y_>%=J ysskcHW-zcQ7c_V_@*GUCsk|A>z`?>^z@#}ZNlWJ8iepSkRSK&cgG_k^8LR rGB7K6Y?R?LXi`;PYy7}wm%M8Lhe~F^;+c+%8DkG5YMymcVXy`OhdUuf literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/expand.gif b/documentation/api_extracted/images/expand.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e2f8f901aa517ed68a2810f222a061559d2060 GIT binary patch literal 873 zcmZ?wbhEHbakmEpkf`P-0ft5wV!=S-I zfJ3-R;>E+m>&H R14APt8;_WZhJpfvH2@fUXkY*U literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/gradient.png b/documentation/api_extracted/images/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..513b3fb3439c189c49e2e9ce59ac599a9e48d51e GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA!3HEtFPV4&DVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jgCNYfV`BDOprAyFYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMp0U}==Z{o@YLq=) z9780+lM@=6@9r-DY{0CM@Si~k z`Ig@X)iA`&qj1rANEtb$?^1q_cII$1ds cHgp6kyE6-G*Og>^Ogc1)nRStjgaCsz0DWpBy8r+H literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-enlarge.gif b/documentation/api_extracted/images/hs-enlarge.gif new file mode 100644 index 0000000000000000000000000000000000000000..677685d0581746509ea82fa582778b30ea7ca711 GIT binary patch literal 948 zcmZ?wbhEHb6krfw_|Cu}5w+FQ$*VX!syI8jXU^81IeX`$T@w?*Y;Kt9Jl}g literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-expanded.gif b/documentation/api_extracted/images/hs-expanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bbf116b7cdc068c0ef6a60cc78bf392dc9b799f GIT binary patch literal 856 zcmZ?wbhEHb}F-t fu$XZm=@<(;tDJ(v1BVlh90GGakmEpkf`P-0ft5wV!=S-I zfJ3-R;>E+m>&H R14APt8;_WZhJpfvH2@fUXkY*U literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-heading-expanded.gif b/documentation/api_extracted/images/hs-heading-expanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7c0fafca490c30e2a34edb2776ea14fabab5cfa GIT binary patch literal 872 zcmZ?wbhEHbJ`@?fDeJD<23&lQFR$?hD?#t9n&8l70!nN@8v4kR=( Xu`mnEXgD++U|?qB77`HeTu3=clEmWoKtsRaK>=q%2yrC@CqaudlD5pkTs; z3B|?5GiJ=_?Ce~(Zr!X|v)bC)a&vQAT3Sj=OA`|l|APSo4xspxg^__loIwX953-Yi zHTr>S-;)_rG=BPI1nxbXs*xEIxx;ji`^!C++>3=YSmVsQ9TFP9xE&W~43BuAwIs!$ yLspe{%7z=4L^HQv*YWdlY&n@#vaZHciJ@W-%e$%PJ%j6Nl&wA5MAelP8LR=col-IY literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-shrink.gif b/documentation/api_extracted/images/hs-shrink.gif new file mode 100644 index 0000000000000000000000000000000000000000..17ce54a6a683a6c80bda86de33f8ef16b3b06e92 GIT binary patch literal 944 zcmZ?wbhEHb6krfw_|CxapW*-3V#VU@m|J?Wg$L_uFnX`B6^Y_P|f8ToV{oeQA_rCwX^xF4h-~aD@{#_z!>zuXc zw%&Wb_xby!Td!@s_MBl9jE2DA4gtlVEQ}x*>VODPo?zhUWnkox(fGi?#3IX~CDL)= za9cYEpH9k-1gDm6K?9GFiUWsP_{5xo4m2bvHt{Mrx2@Trpy+a;@^cdlFPEUp zf(1rTT3J;&yequOBUy7GSUj05gkrmjD0& literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-simpletableft.png b/documentation/api_extracted/images/hs-simpletableft.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5855c3d6e5be1be19b8c0b916b7ac70053f58 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufG}g$wN6f;pm>REL`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i>0Z~xCxJ==JzX3_ zEc}yy^s~s>R(<*Z>FMeJk_kz>%isUwKjc5(u9ah+b@{vhudlCvSS8^Qr5CrSBj;2- z+XP7k-4hLrDSTEEqAuJMFEU8-3b;Izx}d|%;J~(9U2oeNJ)q$Xp00i_>zopr0OspL Ak^lez literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-simpletabright.png b/documentation/api_extracted/images/hs-simpletabright.png new file mode 100644 index 0000000000000000000000000000000000000000..cc48d3a74da4f7ef99ec370e15df7b5fd9df455c GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufiR<}hF1enP`t!7q9iy!t)x7$D3u`~F*C13&(AePq0Cs%bg%2;lRzZ_o-U3d z7XHaQYJPtD@7^!>*PV^Wf4<${{ng*|4B8mkBp!c#ef|IWxz_B@4zW7U=@!>->U9!i zk!0P(>?*KCD&^Y>g`f@nY#d%nGQNt;v#l8#w(M4SX$V#Un$6(p>gTe~DWM4ftbRY3 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-tab-active-leftend.png b/documentation/api_extracted/images/hs-tab-active-leftend.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5855c3d6e5be1be19b8c0b916b7ac70053f58 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufG}g$wN6f;pm>REL`iUdT1k0gQ7S_~VrE{6o}X)oLYc9i>0Z~xCxJ==JzX3_ zEc}yy^s~s>R(<*Z>FMeJk_kz>%isUwKjc5(u9ah+b@{vhudlCvSS8^Qr5CrSBj;2- z+XP7k-4hLrDSTEEqAuJMFEU8-3b;Izx}d|%;J~(9U2oeNJ)q$Xp00i_>zopr0OspL Ak^lez literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-tab-active-rightend.png b/documentation/api_extracted/images/hs-tab-active-rightend.png new file mode 100644 index 0000000000000000000000000000000000000000..cc48d3a74da4f7ef99ec370e15df7b5fd9df455c GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBufiR<}hF1enP`t!7q9iy!t)x7$D3u`~F*C13&(AePq0Cs%bg%2;lRzZ_o-U3d z7XHaQYJPtD@7^!>*PV^Wf4<${{ng*|4B8mkBp!c#ef|IWxz_B@4zW7U=@!>->U9!i zk!0P(>?*KCD&^Y>g`f@nY#d%nGQNt;v#l8#w(M4SX$V#Un$6(p>gTe~DWM4ftbRY3 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/images/hs-tab-leftend.png b/documentation/api_extracted/images/hs-tab-leftend.png new file mode 100644 index 0000000000000000000000000000000000000000..31ffb232b9fc899940e80f9e01874958a5f875e8 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^tUzqU!3HF!2nc=vQY`6?zK#qG8~eHcB!VP43p^r= z85sBuf-vKbiP>*~g5o8v5hcO-X(i=}MX3w{iJ5sNdVa1U3T4K6rh8o%p9Cri@pN$v zvG7m+(a$1hTlMAtr>Cd?OC}`kE`R@z|IqgL_N^TAtjpj1Z$7^M|Nj5K*~g5o8v5hcO-X(i=}MX3w{iJ5sNdVa1U3T4K6rh8o%p9Cri^K@|x zvG7mcQS4t`gi`zVRgP)>Tuz5eOdQ;VnJtPBemL-)kD62&9p1pA4 z0@&bqFZ_WMO1r_|KpNawRBFFmR+X{O6Q8k + + +Welcome + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Welcome

    +
    +
    + SOLIDWORKS PDM Professional is + a project-data management application designed to run both natively + inside of the SOLIDWORKS environment and as a standalone application.

    + The SOLIDWORKS PDM Professional Application Programming Interface (API) is + an OLE programming interface to SOLIDWORKS PDM Professional, which allows + you to automate and customize SOLIDWORKS PDM Professional. The API + contains functions that you can call from VB.NET, C#, and C++/CLI. These + functions provide direct access to the SOLIDWORKS PDM Professional + environment. It is assumed that you are familiar with at least one of + these programming languages.

    +

    This online reference manual documents the interfaces available in + the SOLIDWORKS PDM Professional API, including their structures, methods, + properties, and enumerations.

    +

    All of the sample code supplied is provided on an as-is basis and is + only intended to demonstrate ways of using the SOLIDWORKS PDM Professional + API. SOLIDWORKS makes no representations or warranties regarding these + samples. Any licensed user of SOLIDWORKS PDM Professional is free to use + any or all of these samples in connection with building applications + related to SOLIDWORKS PDM Professional and is granted a royalty-free, + non-exclusive license for these samples or parts thereof. Intellectual + property rights of the samples remain with SOLIDWORKS. Any + confidentiality provisions of the SOLIDWORKS PDM Professional license + apply to the samples. Some sample code might contain obsolete APIs.

    +
    + + + + diff --git a/documentation/api_extracted/mybutton.gif b/documentation/api_extracted/mybutton.gif new file mode 100644 index 0000000000000000000000000000000000000000..c81e0fedb639ff723375f79ec5f01128ad13004f GIT binary patch literal 31771 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/popupmenu.gif b/documentation/api_extracted/popupmenu.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fef52775ecdf151a79999e35aa3086b3f8221b3 GIT binary patch literal 2483 zcmeH`i9ZvH1Hk7IMQ%l5(sNXJ_90@(*>jATnA>JEn{BR% ziP)G*<{r7$CfBf`nqU1Hzt87=Ki|LL`}urt+S!A#&B;a;-0$2i{?}|*lfTfJ3hLowgLu5Iz`HHFzcN6eGv>ss z+A8V*2L!HiV|Tb4>oy6mNrC%0b3xfT!*3S$cnbB#o-w+uW3!3pB2v#i8F68i#*8bc z%{{9*dxVxvm2D!1^VacNBZ6&9k?z7P>hjycgt3 z9E=Olz*0y&=E_PqLE|5khpTc)1F}tzwt^2ks{|10HZ}-FICIir#QKm7-R3!*`UL{z zxeohLFA#;q-A2>Cw%1&dU+c(l@>(V21-7p>eeZUYL7z=-yZ4-#n%{; zbT@}A3J16Y<2>Cbjb+fw%_AU)+X|6uWb$}=|)eY-?--f$nY;S^YVkxxn)rHt|LCJ?VEFsYdU_8~!6#^n5vd;v)oPm88(GAH#WB4~H;c{B-(8~&LI zy@3hgee_T@B-tQsl?|j}c&${+wM>X!*$et$o;M)&*#U4R)vxZNv&%={< ztD7~iqpOD@A*!-1r{u6=uce;dn>yXmX>6K)bv+5O<#kww)p3lOnV@Gi&6-!Y5G6WC z{<|3ya{#?$%l<7$4QiM0*D&X=izi_>S?jiL?Ya~}q7E&P_}8*LKy0~>MU==^$m zOs721>4o&CISM?@QttN;5!TzvgU&5@b-HtS`jo;VPs7?6m}IeHEkP5SLvq{o)2D$)>+EzWAhSXmo`<>`rbn~B8FuUT<&Rd z=8=fB{!ji#9&7hc+8N$4{H`)r18%y&p+o;(R5k{;-~vzUry3N?$(!tw;**~PafT;L zDU~YuViMiYDSD+BjacI3-j2%^xzTFP56lr`zgP5L%60Ep?AJnC6#ze$jEdCyP+1>+ znvCF=K@*^$;#;MZe25`h5(ME;%d(HxS}T^jB-s}tG-O}L<+G}?tw)ibJ4pAX4}a0{ z0MS!-0m9-a_jmRTT=7mrFbL&2Mr9D&cF^D-uD4x~ieg%GfI~_NzI^If=l)J(f>guZ z!w%yVAP<`+`xWI6wQdWn6_RuY2x~Y@P(69LqM?RB6WRnlmWMBwdK6^7qwS){ayjar z5ORk$$!OyduvxFsp+OE)laoAROEtRE{=Dn51&7ong$Yk}n4SmnTlztm$U@rmGM7lY zkd6t@)|ufjplysHz1vvS%$f$YohjAm+;yJGT~4WA2I)KXqnJEuGI=dazhKe9ue^)Y zx%)IUp8w5vo6CQbB#KR7na>H|?0qA~3=`E*N)$8S?LLu>P1bb$EaA0Fk)vZ%Oa?z6 QgY5Pwb#90X3j@sm2k2OMC;$Ke literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/refmsg.gif b/documentation/api_extracted/refmsg.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9327cbe1ba2a6bc8e8ccbcaa9fb4fde3fcdbca1 GIT binary patch literal 4095 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 EAIEnHn*aa+ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/script/dotnet2005.js b/documentation/api_extracted/script/dotnet2005.js new file mode 100644 index 0000000..369a795 --- /dev/null +++ b/documentation/api_extracted/script/dotnet2005.js @@ -0,0 +1,1927 @@ +/* Wire up the bodyload handler (set here rather than in the body element + in order to avoid a HTML Help viewer bug with printing multiple topics */ +window.onload = bodyLoad; + +/* Set body initially hidden unless we are printing */ +document.write(""); + +/* Begin Common utility functions */ + +/* This is required for user data support in .chms */ +var curURL = document.location + "."; +var pos = curURL.indexOf("mk:@MSITStore"); +var scrollPos=null; +if( pos == 0 ) +{ + curURL = "ms-its:" + curURL.substring(14,curURL.length-1); + document.location.replace(curURL); +} + +/* Returns a document element using the Firefox friendly getElementById */ +function documentElement(id) +{ + return document.getElementById(id); +} + +/* Returns the source element of an event */ +function sourceElement(e) +{ + if (window.event) + { + e = window.event; + } + + return e.srcElement? e.srcElement : e.target; +} + +/* Cancels an event, preventing further bubbling and returning false to cancel default behavior */ +function cancelEvent(e) +{ + e.returnValue = false; + e.cancelBubble = true; + + if (e.stopPropagation) + { + e.stopPropagation(); + e.preventDefault(); + } +} + +/* Returns an elements absolute position, allowing for the non-scrolling header */ +function getElementPosition(e) +{ + var offsetLeft = 0; + var offsetTop = 0; + + while (e) + { + // Allow for the scrolling body region in IE + if (msieversion() > 4) + { + offsetLeft += (e.offsetLeft - e.scrollLeft); + offsetTop += (e.offsetTop - e.scrollTop); + } + else + { + offsetLeft += e.offsetLeft ; + offsetTop += e.offsetTop; + } + + e = e.offsetParent; + } + + if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined') + { + offsetLeft += document.body.leftMargin; + offsetTop += document.body.topMargin; + } + + return {left:offsetLeft,top:offsetTop}; +} + +/* Return Microsoft Internet Explorer (major) version number, or 0 for others. */ +function msieversion() +{ + var ua = window.navigator.userAgent; + var msie = ua.indexOf ( "MSIE " ); + + if ( msie > 0 ) // is Microsoft Internet Explorer; return version number + { + return parseInt ( ua.substring ( msie+5, ua.indexOf ( ".", msie ) ) ); + } + else + { + return 0; // is other browser + } +} + +/* To hide all popup boxes */ +function hideBoxes() +{ + var divs = document.getElementsByTagName("DIV"); + var div; + + if (divs) + { + for (var idiv = 0; idiv < divs.length; idiv++) + { + div = divs[idiv]; + + if (div.className) + { + if (div.className == "dxpopupbubble" || div.className == "hspopupbubble" || div.className == "hsglossaryreference") + { + div.style.visibility = "hidden"; + } + } + } + } +} + +/* Show a popup box */ +function showBox(Name,e,button) +{ + if (window.event) + { + e = window.event; + } + + hideBoxes(); + + if(!button) + { + button = sourceElement(e); + } + cancelEvent(e); + var div = documentElement(Name); + + if (div && button) + { + div.style.height = ""; + div.style.left = (getElementPosition(button).left) + "px"; + div.style.top = (getElementPosition(button).top + button.offsetHeight) + "px"; + div.style.visibility = "visible"; + } +} + +/* End Common utility functions */ + + +/* Shows a popup parameter box */ +function showParamBox(e) +{ + if (window.event) + { + e = window.event; + } + + var button = sourceElement(e); + var documentWidth; + var documentHeight; + var boxWidth; + var pixelLeft; + var pixelTop; + var boxHeight; + var div = documentElement(button.id + "_box"); + + cancelEvent(e); + hideBoxes(); + + if (div && button) + { + // Have the browser size the box + div.style.height = ""; + div.style.width = ""; + + // Clear any tooltip so it doesn't appear above the popup + button.title = ""; + + pixelTop = getElementPosition(button).top + 14; + + // Check if the box would go off the bottom of the visible area + documentHeight = document.body.clientHeight; + boxHeight = div.clientHeight; + if (pixelTop + boxHeight > documentHeight) + { + // If the box won't fit both above and below the link + // using the default width then make the box wider + if (boxHeight >= pixelTop) + { + div.style.width = "80%"; + } + else + { + pixelTop = pixelTop - 14 - boxHeight; + } + } + div.style.top = pixelTop + "px"; + documentWidth = document.body.clientWidth; + boxWidth = div.clientWidth; + pixelLeft = button.offsetLeft; + + // Check if the box would go off the edge of the visible area + if (pixelLeft + boxWidth > documentWidth) + { + pixelLeft = documentWidth - boxWidth - 5; + } + div.style.left = pixelLeft + "px"; + + // Show the box + div.style.visibility = "visible"; + } +} + + +/* Begin non-scrolling region support */ + +function bodyResize() +{ + resizeBan(); +} + +function bodyClick(e) +{ + if (window.event) + { + e = window.event; + } + if(sourceElement(e)) + { + if(sourceElement(e).tagName != "INPUT") + { + if (sourceElement(e).className != "languageFilter" && sourceElement(e).className != "membersFilter") + { + hideBoxes(); + resizeBan(); + }; + } + } +} + +function resizeBan() +{ + if (msieversion() > 4) + { + try + { + if (document.body.clientWidth==0) + { + return; + } + + hideBoxes(); + + var oBanner= documentElement("pagetop"); + var oText= documentElement("pagebody"); + var oFooter = documentElement("nonscrollingpagefooter"); + var footerHeight = 0; + if (oFooter != null) + { + footerHeight = oFooter.offsetHeight; + } + + if (oText == null) + { + return; + } + + var oBannerrow1 = documentElement("projectnamebanner"); + var oTitleRow = documentElement("pagetitlebanner"); + + if (oBannerrow1 != null) + { + var iScrollWidth = document.body.scrollWidth; + oBannerrow1.style.marginRight = 0 - iScrollWidth; + } + + if (oTitleRow != null) + { + oTitleRow.style.padding = "0px 10px 0px 22px; "; + } + + if (oBanner != null) + { + document.body.scroll = "no"; + oText.style.overflow= "auto"; + oBanner.style.width= document.body.offsetWidth-2; + oText.style.top=0; + + if (document.body.offsetHeight > oBanner.offsetHeight) + { + oText.style.height= document.body.offsetHeight - (oBanner.offsetHeight+4) - footerHeight; + } + else + { + oText.style.height=0; + } + + if(scrollPos!=null) + { + oText.scrollTop = scrollPos; + scrollPos = null; + } + } + + try + { + documentElement("nstext").setActive(); + } + catch(e) + { + } + } + catch(e) + { + } + } +} + +/* End non-scrolling region support */ + + +/* Begin Document load/unload/print support */ + +/* Called before custom body load script */ +function bodyLoadCommonBefore() +{ + if (scrollPos == null && curURL.indexOf("#") != -1) + { + var oBanner= documentElement("pagetop"); + scrollPos = document.body.scrollTop - oBanner.offsetHeight; + } + + resizeBan(); + + document.body.onclick = bodyClick; + document.body.onresize = bodyResize; + window.onbeforeprint = beforePrint; + window.onafterprint = afterPrint; + window.onunload = windowUnload; +} + +/* Called after custom body load script */ +function bodyLoadCommonAfter() +{ + wireUpEventHandlers(); + loadSettings(); + + // make body visible, now that we're ready to render + document.body.style.visibility = "visible"; +} + +/* Saves the scroll position */ +function windowUnload() +{ + saveSettings(); +} + +/* Common settings load script */ +function loadSettingsCommon() +{ + // load the expand / collapse states + loadSections(); +} + +/* Common settings save script */ +function saveSettingsCommon() +{ + // save the expand / collapse states + saveSections(); +} + +/* Removes the non-scrolling region and ensures everything is visible for print */ +function beforePrint() +{ + var i; + var allElements; + + if (window.text) + { + document.all.text.style.height = "auto"; + } + + allElements = document.getElementsByTagName("*"); + + for (i=0; i < allElements.length; i++) + { + if (allElements[i].tagName == "BODY") + { + allElements[i].scroll = "yes"; + } + if (allElements[i].id == "pagetop") + { + allElements[i].style.margin = "0px 0px 0px 0px"; + allElements[i].style.width = "100%"; + } + if (allElements[i].id == "pagebody") + { + allElements[i].style.overflow = "visible"; + allElements[i].style.top = "5px"; + allElements[i].style.width = "100%"; + allElements[i].style.padding = "0px 10px 0px 30px"; + } + if (allElements[i].id == "pagetoptable1row2" || allElements[i].id == "pagetoptable2row1" || allElements[i].id == "feedbacklink") + { + allElements[i].style.display = "none"; + } + if (allElements[i].className == "LanguageSpecific") + { + allElements[i].style.display = "block"; + } + } +} + +/* Refresh the page after a print */ +function afterPrint() +{ + document.location.reload(); +} + +/* End Document load/unload/print support */ + + +/* Begin User Data support */ + +function getDataCache() +{ + if (getWindowExternal()) + { + if (window.external.IsInnovasysDesigner) + { + return window.external; + } + } + + return documentElement("userDataCache"); +} + +function getWindowExternal() +{ + try + { + return window.external; + } + catch(e) + { + } +} + +function load(key) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.load("innSettings"); + var value = dataCacheObject.getAttribute(key); + return value; + } + catch(e) + { + } +} + +function save(key, value) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.setAttribute(key, value); + dataCacheObject.save("innSettings"); + } + catch(e) + { + } +} + +function removeAttribute(key) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.removeAttribute(key); + dataCacheObject.save("innSettings"); + } + catch(e) + { + } +} + +/* End User Data support */ + + +/* Begin Expanding sections support */ + +var collapsedSections = new Array(); + +/* Wires up the expand / collapse functionality */ +function wireUpEventHandlers() +{ + var elements=document.getElementsByTagName("SPAN"); + var span; + + for(var i=0;i 0) + { + fix(e, "cb"); + } + } + + // if this element is an inline cdata, and contains more than a single + // line, turn it into a block cdata. + if (e.className == "di") + { + if (e.children(0).innerText.indexOf("\n") > 0) + { + fix(e, "db"); + } + } + + // remove the id since we only used it for cleanup + e.id = ""; +} + +// Fix up the element as a "block" display and enable expand/collapse on it +function fix(e, cl) +{ + var j; + var k; + + // change the class name and display value + e.className = cl; + e.style.display = "block"; + + // mark the comment or cdata display as a expandable container + j = e.parentElement.children(0); + j.className = "c"; + + // find the +/- symbol and make it visible - the dummy link enables tabbing + k = j.children(0); + k.style.visibility = "visible"; + k.href = "#"; +} + +// Change the +/- symbol and hide the children. This function works on "element" +// displays +function ch(e) +{ + var i; + + // find the +/- symbol + var mark = e.children(0).children(0); + + // if it is already collapsed, expand it by showing the children + if (mark.innerText == "+") + { + mark.innerText = "-"; + for (i = 1; i < e.children.length; i++) + { + e.children(i).style.display = "block"; + } + } + + // if it is expanded, collapse it by hiding the children + else if (mark.innerText == "-") + { + mark.innerText = "+"; + for (i = 1; i < e.children.length; i++) + { + e.children(i).style.display="none"; + } + } +} + +// Change the +/- symbol and hide the children. This function work on "comment" +// and "cdata" displays +function ch2(e) +{ + var contents; + + // find the +/- symbol, and the "PRE" element that contains the content + var mark = e.children(0).children(0); + contents = e.children(1); + + // if it is already collapsed, expand it by showing the children + if (mark.innerText == "+") + { + mark.innerText = "-"; + + // restore the correct "block"/"inline" display type to the PRE + if (contents.className == "db" || contents.className == "cb") + { + contents.style.display = "block"; + } + else + { + contents.style.display = "inline"; + } + } + // if it is expanded, collapse it by hiding the children + else + { + if (mark.innerText == "-") + { + mark.innerText = "+"; + contents.style.display = "none"; + } + } +} + +// Handle a mouse click +function cl() +{ + var e = window.event.srcElement; + + // make sure we are handling clicks upon expandable container elements + if (e.className != "c") + { + e = e.parentElement; + if (e.className != "c") + { + return; + } + } + e = e.parentElement; + + // call the correct funtion to change the collapse/expand state and display + if (e.className == "e") + { + ch(e); + } + + if (e.className == "k") + { + ch2(e); + } +} + +// Dummy function for expand/collapse link navigation - trap onclick events instead +function ex() +{ +} + +// Erase bogus link info from the status window +function h() +{ + window.status=" "; +} + +/* End XML Expand / Collapse */ + + +/* .NET specific script */ + +// Current language +var curLang = ""; + +// To prevent 'access denied' errors in the authoring environment +function dxErrorHandler(msg,url,line) { + if(url=="about:blank") + { + return true; + } +} +if (window.location.href == 'about:blank') +{ + window.onerror = dxErrorHandler; +} + +function bodyLoad() +{ + var i; + var b; + var l; + + bodyLoadCommonBefore(); + + // Check the context window for current language. + try + { + for (i=1; i< window.external.ContextAttributes.Count; i++) + { + if(window.external.ContextAttributes(i).Name.toUpperCase()=="DEVLANG") + { + b = window.external.ContextAttributes(i).Values.toArray(); + curLang = b[0].toUpperCase(); + } + } + } + catch(e) + { + } + + if (curLang != null) + { + if (curLang.indexOf("VB") != -1) + { + curLang = "VB"; + } + if (curLang.indexOf("VC") != -1) + { + curLang = "CPP"; + } + if (curLang.indexOf("C++") != -1) + { + curLang = "CPP"; + } + if (curLang.indexOf("CSHARP") != -1) + { + curLang = "CS"; + } + if (curLang.indexOf("JSCRIPT") != -1) + { + curLang = "JScript"; + } + } + + if (curLang == null) + { + l = ""; + var multipleLang = false; + var cLang = ""; + + try + { + l = window.external.Help.FilterQuery.toUpperCase(); + } + catch(e) + { + } + + if (l.indexOf("VB") != -1) + { + cLang = "VB"; + } + + if (l.indexOf("VC") != -1) + { + if (cLang != null) + { + multipleLang = true; + } + cLang = "CPP"; + } + + if (l.indexOf("C#") != -1) + { + if (cLang != null) + { + multipleLang = true; + } + cLang = "CS"; + } + + if (l.indexOf("CSHARP") != -1) + { + if (cLang != null) + { + multipleLang = true; + } + cLang = "CS"; + } + + if (l.indexOf("JSCRIPT") != -1) + { + if (cLang != null) + { + multipleLang = true; + } + cLang = "JScript"; + } + + if (l.indexOf("JSHARP") != -1) + { + if (cLang != null) + { + multipleLang = true; + } + cLang = "JSHARP"; + } + + if (multipleLang == false) + { + curLang = cLang; + } + } + + bodyLoadCommonAfter(); +} + +function loadSettings() +{ + // load the languages + loadLanguages(); + configureLanguageCheckboxes(); + displayLanguages(); + + // load the member options + loadMembersFilter(); + configureMembersFilterCheckboxes(); + changeMembersFilterLabel(); + loadSettingsCommon(); +} + +function saveSettings() +{ + saveLanguages(); + saveMembersFilter(); + saveSettingsCommon(); +} + +/* Begin Member Filtering */ + +var inheritedMembers; +var protectedMembers; + +function configureMembersFilterCheckboxes() +{ + var checkbox; + + checkbox = document.getElementById("inheritedCheckbox"); + if(checkbox != null) + { + if(inheritedMembers == "on") + { + checkbox.checked = true; + } + else + { + checkbox.checked = false; + } + } + + checkbox = document.getElementById("protectedCheckbox"); + if(checkbox != null) + { + if(protectedMembers == "on") + { + checkbox.checked = true; + } + else + { + checkbox.checked = false; + } + } +} + +function setMembersFilter(key) +{ + if(key.id == "inheritedCheckbox") + { + if(key.checked == true) + { + inheritedMembers = "on"; + } + else + { + inheritedMembers = "off"; + } + + updateInheritedMembers(); + } + + if(key.id == "protectedCheckbox") + { + if(key.checked == true) + { + protectedMembers = "on"; + } + else + { + protectedMembers = "off"; + } + + updateProtectedMembers(); + } + + changeMembersFilterLabel(); +} + +function updateInheritedMembers() +{ + var tablerows = document.getElementsByTagName("tr"); + var i; + + if(inheritedMembers == "off") + { + for(i = 0; i < tablerows.length; ++i) + { + if (tablerows[i].id == "inheritedMember") + tablerows[i].style.display = "none"; + } + } + else + { + for(i = 0; i < tablerows.length; ++i) + { + if (tablerows[i].id == "inheritedMember") + tablerows[i].style.display = ""; + } + } +} + +function updateProtectedMembers() +{ + var toggleImages = document.getElementsByName("toggleSwitch"); + var i; + + if(protectedMembers == "off") + { + for(i = 0; i < toggleImages.length; ++i) + { + if(toggleImages[i].id.indexOf("protected", 0) == 0) + { + if(isSectionCollapsed(toggleImages[i].id) == false) + { + toggleExpanded(toggleImages[i]); + } + } + } + } + else + { + for(i = 0; i < toggleImages.length; ++i) + { + if(toggleImages[i].id.indexOf("protected", 0) == 0) + { + if(isSectionCollapsed(toggleImages[i].id) == true) + { + toggleExpanded(toggleImages[i]); + } + } + } + } +} + +function changeMembersFilterLabel() +{ + var filtered = false; + + if((inheritedMembers=="off") || (protectedMembers=="off")) + { + filtered = true; + } + + var labelElement = document.getElementById("showAllMembersLabel"); + if(labelElement == null) + { + return; + } + labelElement.style.display = "none"; + + labelElement = document.getElementById("filteredMembersLabel"); + labelElement.style.display = "none"; + + if(filtered) + { + labelElement = document.getElementById("filteredMembersLabel"); + labelElement.style.display = "inline"; + } + else + { + labelElement = document.getElementById("showAllMembersLabel"); + labelElement.style.display = "inline"; + } +} + +function loadMembersFilter() +{ + var value = load("inheritedMembers"); + + if(value == null) + { + inheritedMembers = "on"; + } + else + { + inheritedMembers = value; + } + + value = load("protectedMembers"); + + if(value == null) + { + protectedMembers = "on"; + } + else + { + protectedMembers = value; + } + + if(inheritedMembers=="off") + { + updateInheritedMembers(); + } + + if(protectedMembers=="off") + { + updateProtectedMembers(); + } +} + +function saveMembersFilter() +{ + save("inheritedMembers", inheritedMembers); + save("protectedMembers", protectedMembers); +} + +/* End Member Filtering */ + +/* Language Filtering */ + +var languageNames; +var languageStates; + +function configureLanguageCheckboxes() +{ + var checkbox; + var i; + + for(i=0;i 1) && (tickedCount < languageNames.length)) + { + if((tickedCount == 2) && (getLanguageState("VB") == "on") && (getLanguageState("vbUsage") == "on")) + { + document.getElementById("VBLabel").style.display = "inline"; + } + else + { + document.getElementById("multipleLabel").style.display = "inline"; + } + } + else if (tickedCount == 1) + { + for(i=0;i 0) + { + for(i=0;i 0) + { + for (n=1;n<=Namespaces.Count;n++) + { + Namespace = Namespaces.Item(n); + NamespaceName = Namespace.Name; + if (NamespaceName.substring(0,7) == "MS.VSCC") + { + switch(NamespaceName) + { + case "MS.VSCC.v80": + break; + case "MS.VSCC.2003": + break; + case "MS.VSCC": + break; + default: + URL = findHelp2Keyword(NamespaceName); + if (URL != "") + { + return Topics(1).URL; + } + } + } + } + } + } + } + catch(e) {} + + // No match found in any applicable namespace + return "http://msdn2.microsoft.com/en-us/library(d=ide)/" + OnlineKeyword + ".aspx" +} + +function findHelp2Keyword(NamespaceName,Keyword) +{ + var Session,Topics; + + if (NamespaceName.length > 0) + { + try + { + Session = new ActiveXObject("HxDs.HxSession"); + Session.Initialize("ms-help://" + NamespaceName, 0); + Topics = Session.Query(Keyword, "!DefaultAssociativeIndex", 0, ""); + if (Topics.Count > 0) + { + return Topics(1).URL; + } + } + catch(e) {} + } + return ""; +} + +function navigateToHelp2Keyword(Keyword,OnlineKeyword,ReplacePage) +{ + window.status = "Resolving link. Please wait a moment..."; + var URL = resolveHelp2Keyword(Keyword,OnlineKeyword); + window.status=""; + if (ReplacePage == true) + { + location.replace(URL); + } + else + { + location.href = URL; + } +} + +function getCurrentHelp2Namespace() +{ + var namespace = ""; + var location = window.location; + + if (location.protocol == "ms-help:") + { + namespace = location.hostname; + if (namespace.substring(0, 2) == "//") + namespace = namespace.substring(2); + } + + return namespace; +} + +/* End .NET Framework Help Topic Resolution */ \ No newline at end of file diff --git a/documentation/api_extracted/script/helpstudio.js b/documentation/api_extracted/script/helpstudio.js new file mode 100644 index 0000000..0e433a5 --- /dev/null +++ b/documentation/api_extracted/script/helpstudio.js @@ -0,0 +1,1698 @@ +/* Wire up the bodyload handler (set here rather than in the body element +in order to avoid a HTML Help viewer bug with printing multiple topics */ +window.onload = bodyLoad; + +/* Set body initially hidden unless we are printing */ +document.write(""); + +/* Begin Common utility functions */ + +/* This is required for user data support in .chms */ +var curURL = document.location + "."; +var pos = curURL.indexOf("mk:@MSITStore"); +var scrollPos = null; +if (pos == 0) +{ + curURL = "ms-its:" + curURL.substring(14, curURL.length - 1); + document.location.replace(curURL); +} + +/* Returns a document element using the Firefox friendly getElementById */ +function documentElement(id) +{ + return document.getElementById(id); +} + +/* Returns the source element of an event */ +function sourceElement(e) +{ + if (window.event) + { + e = window.event; + } + + return e.srcElement ? e.srcElement : e.target; +} + +/* Cancels an event, preventing further bubbling and returning false to cancel default behavior */ +function cancelEvent(e) +{ + e.returnValue = false; + e.cancelBubble = true; + + if (e.stopPropagation) + { + e.stopPropagation(); + e.preventDefault(); + } +} + +/* Returns an elements absolute position, allowing for the non-scrolling header */ +function getElementPosition(e) +{ + var offsetLeft = 0; + var offsetTop = 0; + + while (e) + { + // Allow for the scrolling body region in IE + if (msieversion() > 4) + { + offsetLeft += (e.offsetLeft - e.scrollLeft); + offsetTop += (e.offsetTop - e.scrollTop); + } + else + { + offsetLeft += e.offsetLeft; + offsetTop += e.offsetTop; + } + + e = e.offsetParent; + } + + if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined') + { + offsetLeft += document.body.leftMargin; + offsetTop += document.body.topMargin; + } + + return { left: offsetLeft, top: offsetTop }; +} + +/* Return Microsoft Internet Explorer (major) version number, or 0 for others. */ +function msieversion() +{ + var ua = window.navigator.userAgent; + var msie = ua.indexOf("MSIE "); + + if (msie > 0) // is Microsoft Internet Explorer; return version number + { + return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))); + } + else + { + return 0; // is other browser + } +} + +/* To hide all popup boxes */ +function hideBoxes() +{ + var divs = document.getElementsByTagName("DIV"); + + if (divs) + { + for (var idiv = 0; idiv < divs.length; idiv++) + { + var div = divs[idiv]; + + if (div.className) + { + if (div.className == "dxpopupbubble" || div.className == "hspopupbubble" || div.className == "hsglossaryreference") + { + div.style.visibility = "hidden"; + } + } + } + } +} + +/* Show a popup box */ +function showBox(Name, e, button) +{ + if (window.event) + { + e = window.event; + } + + hideBoxes(); + + if (!button) + { + button = sourceElement(e); + } + cancelEvent(e); + var div = documentElement(Name); + + if (div && button) + { + div.style.height = ""; + div.style.left = (getElementPosition(button).left) + "px"; + div.style.top = (getElementPosition(button).top + button.offsetHeight) + "px"; + div.style.visibility = "visible"; + } +} + +/* End Common utility functions */ + +/* Begin non-scrolling region support */ + +var isDesignTime = false; + +function bodyResize() +{ + resizeBan(); +} + +function bodyClick(e) +{ + if (window.event) + { + e = window.event; + } + if (sourceElement(e)) + { + try + { + if (sourceElement(e).tagName != "INPUT") + { + if (sourceElement(e).className != "languageFilter" && sourceElement(e).className != "membersFilter" && sourceElement(e).className != "communityFilter") + { + hideBoxes(); + resizeBan(); + }; + } + } + catch (e) + { } + } +} + +function resizeBan() +{ + if (msieversion() > 4) + { + try + { + if (document.body.clientWidth == 0) + { + return; + } + + hideBoxes(); + + var oBanner = documentElement("pagetop"); + var oText = documentElement("pagebody"); + var oFooter = documentElement("nonscrollingpagefooter"); + var footerHeight = 0; + if (oFooter != null) + { + footerHeight = oFooter.offsetHeight; + } + + if (oText == null) + { + return; + } + + var oBannerrow1 = documentElement("projectnamebanner"); + var oTitleRow = documentElement("pagetitlebanner"); + + if (oBannerrow1 != null) + { + var iScrollWidth = document.body.scrollWidth; + oBannerrow1.style.marginRight = 0 - iScrollWidth; + } + + if (oTitleRow != null) + { + oTitleRow.style.padding = "0px 10px 0px 22px; "; + } + + if (oBanner != null) + { + document.body.scroll = "no"; + oText.style.overflow = "auto"; + oBanner.style.width = document.body.offsetWidth - 2; + oText.style.top = 0; + + if (document.body.offsetHeight > oBanner.offsetHeight) + { + oText.style.height = document.body.offsetHeight - (oBanner.offsetHeight + 4) - footerHeight; + } + else + { + oText.style.height = 0; + } + + if (scrollPos != null) + { + oText.scrollTop = scrollPos; + scrollPos = null; + } + } + + try + { + documentElement("nstext").setActive(); + } + catch (e) + { + } + } + catch (e) + { + } + } +} + +/* End non-scrolling region support */ + + +/* Begin Document load/unload/print support */ + +/* Called before custom body load script */ +function bodyLoadCommonBefore() +{ + if (scrollPos == null && curURL.indexOf("#") != -1) + { + var oBanner = documentElement("pagetop"); + if (oBanner) + { + scrollPos = document.body.scrollTop - oBanner.offsetHeight; + } + } + + resizeBan(); + + document.body.onclick = bodyClick; + document.body.onresize = bodyResize; + window.onbeforeprint = beforePrint; + window.onafterprint = afterPrint; + window.onunload = windowUnload; +} + +function findFrame(Name) +{ + var frameObject = parent.frames[Name]; + try + { + if ((!frameObject) && parent.parent) + { + frameObject = parent.parent.frames[Name]; + } + } + catch (e) { } + return frameObject; +} + +function tocDocument() +{ + try + { + return findFrame("webnavbar").document.getElementById("cntNavtoc"); + } catch (e) { } +} + +/* Called after custom body load script */ +function bodyLoadCommonAfter() +{ + wireUpEventHandlers(); + loadSettings(); + + // make body visible, now that we're ready to render + document.body.style.visibility = "visible"; + + // if this is web output, sync the TOC + syncToc(); +} + +/* Synchronize the web Table of Contents */ +function syncToc() { + if (isPostMessageEnabled()) { + /* Upate the parent frames page with the new content page title */ + if (top) { + top.postMessage("pagetitle|" + document.title, "*"); + } + /* Synchronize the toc */ + var navbar = findFrame("webnavbar"); + if (navbar) { + navbar.postMessage("synctoc|" + location.href, "*"); + } + } + else { + try { + var tocDoc = tocDocument(); + } catch (e) { } + + if (tocDoc) { + try { + tocDoc.contentWindow.pageLoaded(location.href); + } catch (e) { setTimeout('syncToc();', 500); } + } + try { + if (top) { + if (top.notifyPageTitle) { + /* Upate the parent frames page with the new content page title */ + top.notifyPageTitle(document.title); + } + if (top.notifyPageLoaded) { + /* Upate the parent frames page with the new content page url */ + top.notifyPageLoaded(location.href); + } + } + } catch (e) { } + } +} + +/* Saves the scroll position */ +function windowUnload() +{ + saveSettings(); +} + +/* Common settings load script */ +function loadSettingsCommon() +{ + // load the expand / collapse states + loadSections(); +} + +/* Common settings save script */ +function saveSettingsCommon() +{ + // save the expand / collapse states + saveSections(); +} + +/* Removes the non-scrolling region and ensures everything is visible for print */ +function beforePrint() +{ + var allElements; + + if (window.text) + { + document.all.text.style.height = "auto"; + } + + allElements = document.getElementsByTagName("*"); + + for (var i = 0; i < allElements.length; i++) + { + if (allElements[i].tagName == "BODY") + { + allElements[i].scroll = "yes"; + } + if (allElements[i].id == "pagetop") + { + allElements[i].style.margin = "0px 0px 0px 0px"; + allElements[i].style.width = "100%"; + } + if (allElements[i].id == "pagebody") + { + allElements[i].style.overflow = "visible"; + allElements[i].style.top = "5px"; + allElements[i].style.width = "100%"; + allElements[i].style.padding = "0px 10px 0px 30px"; + } + if (allElements[i].id == "pagetoptable2row1" || allElements[i].id == "feedbacklink") + { + allElements[i].style.display = "none"; + } + if (allElements[i].className == "LanguageSpecific") + { + allElements[i].style.display = "block"; + } + } +} + +/* Refresh the page after a print */ +function afterPrint() +{ + document.location.reload(); +} + +/* End Document load/unload/print support */ + + +/* Begin User Data support */ + +function getDataCache() +{ + if (isDesignTime) + { + if (getWindowExternal()) + { + if (window.external.IsInnovasysDesigner) + { + return window.external; + } + } + } + + return documentElement("userDataCache"); +} + +function getWindowExternal() +{ + try + { + return window.external; + } + catch (e) + { + } +} + +function load(key) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.load("innSettings"); + var value = dataCacheObject.getAttribute(key); + return value; + } + catch (e) + { + } +} + +function save(key, value) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.setAttribute(key, value); + dataCacheObject.save("innSettings"); + } + catch (e) + { + } +} + +function removeAttribute(key) +{ + var dataCacheObject; + + try + { + dataCacheObject = getDataCache(); + dataCacheObject.removeAttribute(key); + dataCacheObject.save("innSettings"); + } + catch (e) + { + } +} + +/* End User Data support */ + + +/* Begin Expanding sections support */ + +var collapsedSections = new Array(); + +/* Wires up the expand / collapse functionality */ +function wireUpEventHandlers() +{ + var elements = document.getElementsByTagName("SPAN"); + + for (var i = 0; i < elements.length; i++) + { + var span = elements[i]; + if (span.className == "expandcollapse") + { + span.onclick = toggleExpanded; + span.onkeypress = toggleExpandedOnKey; + } + } + + if (documentElement("toggleExpandedAll")) + { + documentElement("toggleExpandedAll").onclick = toggleExpandedAll; + documentElement("toggleExpandedAll").onkeypress = toggleExpandedAllOnKey; + } +} + +function toggleExpanded(img) +{ + // Firefox passes in the event object from the event handler, so + // we check for that and set to null + if (img) + { + if (img.tagName == null) + { + e = img; + img = null; + } + } + + // Find the expand & collapse image + if (!img) + { + if (window.event) + e = window.event; + + var img = sourceElement(e) + if (img) + { + while (img) + { + if (img.className == "expandcollapse" && img.tagName == "SPAN") + break; + else + img = img.parentNode; + } + if (img) + img = findExpandCollapseImage(img); + } + } + + + if (img) + { + if (isSectionCollapsed(img.id) == true) + { + img.src = documentElement("collapseImage").src; + expandSection(img); + removeCollapsedItem(img.id); + if (img.id.indexOf("Family", 0) == 0) + { + protectedMembers = "on"; + configureMembersFilterCheckboxes(); + changeMembersFilterLabel(); + } + } + else + { + img.src = documentElement("expandImage").src; + collapseSection(img); + addCollapsedSection(img.id); + } + + setCollapseAll(); + } +} + +function findExpandCollapseImage(sourceElement) +{ + var e; + var elements; + + if (sourceElement.tagName == "IMG" && sourceElement.className == "toggle") + { + return (sourceElement); + } + else + { + if (sourceElement) + { + elements = sourceElement.getElementsByTagName("IMG"); + + for (var i = 0; i < elements.length; i++) + { + e = elements[i]; + if (e.className == "toggle") + { + return (e); + } + } + } + } +} + +function toggleExpandedAll() +{ + var elements = document.getElementsByName("toggleSwitch"); + var toggleExpandedAllImage = documentElement("toggleExpandedAllImage"); + + // All currently collapsed + if (isSectionCollapsed(toggleExpandedAllImage.id) == true) + { + toggleExpandedAllImage.src = documentElement("collapseImage").src; + removeCollapsedItem(toggleExpandedAllImage.id); + + for (var i = 0; i < elements.length; i++) + { + expandSection(elements[i]); + elements[i].src = documentElement("collapseImage").src; + removeCollapsedItem(elements[i].id); + + if (elements[i].id.indexOf("Protected", 0) == 0) + { + protectedMembers = "on"; + } + } + + setToggleExpandedAllLabel(false); + } + // All currently expanded + else + { + toggleExpandedAllImage.src = documentElement("expandImage").src; + addCollapsedSection(toggleExpandedAllImage.id); + + for (var i = 0; i < elements.length; i++) + { + collapseSection(elements[i]); + elements[i].src = documentElement("expandImage").src; + addCollapsedSection(elements[i].id); + } + + setToggleExpandedAllLabel(true); + } +} + +function toggleExpandedAllOnKey(e) +{ + if (window.event) + { + e = window.event; + } + + if (e.keyCode == 13) + { + toggleExpandedAll(); + } +} + +function toggleExpandedOnKey(e) +{ + if (window.event) + { + e = window.event; + } + + if (e.keyCode == 13) + { + toggleExpanded(findExpandCollapseImage(e.srcElement)); + } +} + +function getNextSibling(n) +{ + n = n.nextSibling; + while (n) + { + if (n.nodeType == 1) + return n; + else + n = n.nextSibling; + } +} + +function expandSection(imageItem) +{ + if (imageItem.id != "toggleExpandedAllImage") + { + getNextSibling(imageItem.parentNode.parentNode).style.display = ""; + } +} + +function collapseSection(imageItem) +{ + if (imageItem.id != "toggleExpandedAllImage") + { + getNextSibling(imageItem.parentNode.parentNode).style.display = "none"; + } +} + +function setCollapseAll() +{ + var toggleElements = document.getElementsByName("toggleSwitch"); + var allCollapsed = true; + + if (document.getElementById("expandAllLabel")) + { + for (var i = 0; i < toggleElements.length; i++) + { + allCollapsed = allCollapsed && isSectionCollapsed(toggleElements[i].id); + } + + if (allCollapsed) + { + this.src = documentElement("expandAllImage").src; + addCollapsedSection("toggleExpandedAllImage"); + } + else + { + this.src = documentElement("collapseAllImage").src; + removeCollapsedItem("toggleExpandedAllImage"); + } + + setToggleExpandedAllLabel(allCollapsed); + } +} + +function setToggleExpandedAllLabel(allCollapsed) +{ + var labelElement; + + labelElement = document.getElementById("collapseAllLabel"); + + if (labelElement == null) + { + return; + } + + labelElement.style.display = "none"; + labelElement = document.getElementById("expandAllLabel"); + labelElement.style.display = "none"; + + if (allCollapsed) + { + labelElement = document.getElementById("expandAllLabel"); + labelElement.style.display = "inline"; + } + else + { + labelElement = document.getElementById("collapseAllLabel"); + labelElement.style.display = "inline"; + } +} + +function isSectionCollapsed(imageId) +{ + for (var i = 0; i < collapsedSections.length; ++i) + { + if (imageId == collapsedSections[i]) + { + return true; + } + } + + return false; +} + +function addCollapsedSection(imageId) +{ + if (isSectionCollapsed(imageId) == false) + { + collapsedSections[collapsedSections.length] = imageId; + } +} + +function removeCollapsedItem(imageId) +{ + for (var i = 0; i < collapsedSections.length; ++i) + { + if (imageId == collapsedSections[i]) + { + collapsedSections.splice(i, 1); + } + } +} + +function saveSections() +{ + var x = 0; + + cleanUserDataStore(); + for (var i = 0; i < collapsedSections.length; ++i) + { + if (shouldSave(collapsedSections[i]) == true) + { + save("imageValue" + x, collapsedSections[i]); + x++; + } + } +} + +function loadSections() +{ + var i = 0; + var imageId = load("imageValue" + i); + + while (imageId != null) + { + var imageItem = document.getElementById(imageId); + + if (imageItem != null) + { + if (imageItem.id.indexOf("Family", 0) == 0) + { + if (protectedMembers == "on") + { + toggleExpanded(imageItem); + } + } + else + { + toggleExpanded(imageItem); + } + } + else + { + addCollapsedSection(imageId); + } + + i++; + imageId = load("imageValue" + i); + } + setCollapseAll(); +} + +function cleanUserDataStore() +{ + var i = 0; + var imageId = load("imageValue" + i); + + while (imageId != null) + { + removeAttribute("imageValue" + i); + i++; + imageId = load("imageValue" + i); + } +} + +function shouldSave(imageId) +{ + var toggleName; + + if (imageId == "toggleExpandedAllImage") + { + return false; + } + + toggleName = "procedureToggle"; + + if (imageId.indexOf(toggleName, 0) == 0) + { + return false; + } + + toggleName = "sectionToggle"; + + if (imageId.indexOf(toggleName, 0) == 0) + { + return false; + } + + return true; +} +function openSectionById(id) +{ + var e = documentElement(id); + + if (e) + { + if (isSectionCollapsed(e.id) == true) + { + toggleExpanded(e); + } + } +} + +/* End Expand / Collapse */ + + +/* Begin save / Restore Scroll Position */ + +var scrollPos = null; + +function loadAll() +{ + var historyObject = getHistoryObject(); + + if (historyObject) + { + var scrollValue = historyObject.getAttribute("Scroll"); + + if (scrollValue) + { + if (scrollValue != 0) + { + try + { + scrollPos = scrollValue; + documentElement("pagebody").scrollTop = scrollPos; + } + catch (e) + { + } + } + } + } +} +function saveAll() +{ + var historyObject = getHistoryObject(); + + if (historyObject) + { + try + { + historyObject.setAttribute("Scroll", documentElement("pagebody").scrollTop); + } + catch (e) + { + } + } +} +function getHistoryObject() +{ + if (isDesignTime) + { + try + { + var externalObject = window.external; + + if (externalObject) + { + if (externalObject.IsInnovasysDesigner) + { + return window.external; + } + else + { + externalObject = false; + } + } + } + catch (e) + { + } + } + + if (!externalObject) + { + return documentElement("allHistory"); + } +} + +/* End save / Restore Scroll Position */ + + +/* Begin Copy Code */ + +function copyCode(key) +{ + var trElements = getTABLE(key).getElementsByTagName("tr"); + for (var i = 0; i < trElements.length; ++i) + { + if (getTABLE(key) == getTABLE(trElements[i]) && getTR(key) != trElements[i]) + { + window.clipboardData.setData("Text", trElements[i].innerText); + break; + } + } +} + +function getTR(obj) +{ + while (obj) + { + if (obj.tagName == "TR") + return obj; + else + obj = obj.parentNode; + } +} + +function getTABLE(obj) +{ + while (obj) + { + if (obj.tagName == "TABLE") + return obj; + else + obj = obj.parentNode; + } +} + +function changeCopyCodeIcon(key, highlight) +{ + var imageElements = document.getElementsByName("ccImage"); + + for (var i = 0; i < imageElements.length; ++i) + { + try + { + if (imageElements[i].parentNode == key) + { + if (highlight) + { + imageElements[i].src = documentElement("copyHoverImage").src; + } + else + { + imageElements[i].src = documentElement("copyImage").src; + } + } + } + catch (e) + { + } + } +} + +function copyCode_CheckKey(key) +{ + var e; + + if (window.event) + { + e = window.event; + } + + if (e.keyCode == 13) + { + copyCode(key); + } +} + +/* End Copy Code */ + +/* Begin XML expand / collapse */ + +// Detect and switch the display of CDATA and comments from an inline view +// to a block view if the comment or CDATA is multi-line. +function f(e) +{ + // if this element is an inline comment, and contains more than a single + // line, turn it into a block comment. + if (e.className == "ci") + { + if (e.children(0).innerText.indexOf("\n") > 0) + { + fix(e, "cb"); + } + } + + // if this element is an inline cdata, and contains more than a single + // line, turn it into a block cdata. + if (e.className == "di") + { + if (e.children(0).innerText.indexOf("\n") > 0) + { + fix(e, "db"); + } + } + + // remove the id since we only used it for cleanup + e.id = ""; +} + +// Fix up the element as a "block" display and enable expand/collapse on it +function fix(e, cl) +{ + var j; + var k; + + // change the class name and display value + e.className = cl; + e.style.display = "block"; + + // mark the comment or cdata display as a expandable container + j = e.parentNode.children(0); + j.className = "c"; + + // find the +/- symbol and make it visible - the dummy link enables tabbing + k = j.children(0); + k.style.visibility = "visible"; + k.href = "#"; +} + +// Change the +/- symbol and hide the children. This function works on "element" +// displays +function ch(e) +{ + var i; + + // find the +/- symbol + var mark = e.children(0).children(0); + + // if it is already collapsed, expand it by showing the children + if (mark.innerText == "+") + { + mark.innerText = "-"; + for (i = 1; i < e.children.length; i++) + { + e.children(i).style.display = "block"; + } + } + + // if it is expanded, collapse it by hiding the children + else if (mark.innerText == "-") + { + mark.innerText = "+"; + for (i = 1; i < e.children.length; i++) + { + e.children(i).style.display = "none"; + } + } +} + +// Change the +/- symbol and hide the children. This function work on "comment" +// and "cdata" displays +function ch2(e) +{ + var contents; + + // find the +/- symbol, and the "PRE" element that contains the content + var mark = e.children(0).children(0); + contents = e.children(1); + + // if it is already collapsed, expand it by showing the children + if (mark.innerText == "+") + { + mark.innerText = "-"; + + // restore the correct "block"/"inline" display type to the PRE + if (contents.className == "db" || contents.className == "cb") + { + contents.style.display = "block"; + } + else + { + contents.style.display = "inline"; + } + } + // if it is expanded, collapse it by hiding the children + else + { + if (mark.innerText == "-") + { + mark.innerText = "+"; + contents.style.display = "none"; + } + } +} + +// Handle a mouse click +function cl() +{ + var e = window.event.srcElement; + + // make sure we are handling clicks upon expandable container elements + if (e.className != "c") + { + e = e.parentNode; + if (e.className != "c") + { + return; + } + } + e = e.parentNode; + + // call the correct funtion to change the collapse/expand state and display + if (e.className == "e") + { + ch(e); + } + + if (e.className == "k") + { + ch2(e); + } +} + +// Dummy function for expand/collapse link navigation - trap onclick events instead +function ex() +{ +} + +// Erase bogus link info from the status window +function h() +{ + window.status = " "; +} + +/* End XML Expand / Collapse */ + +function bodyLoad() +{ + bodyLoadCommonBefore(); + bodyLoadCommonAfter(); + + if (parent) + { + /* Running in a frame - listen for commands */ + if (isPostMessageEnabled()) + { + addMessageListener(receiveMessage); + parent.postMessage("loaded", "*"); + } + else + { + parent.loaded = true; + } + } +} + +function loadSettings() +{ + loadSettingsCommon(); + + // load the community feature states + try + { + ic_loadCommunityFeatureStates(); + } + catch (ex) { } +} + +function saveSettings() +{ + saveSettingsCommon(); + + // Community + try { ic_saveCommunityFeatureStates(); } catch (ex) { } +} + +/* Glossary boxes */ + +function hsShowGlossaryItemBox(term, definition, e) +{ + + if (window.event) + e = window.event; + + hideBoxes(e); + + var button = sourceElement(e); + var documentWidth; + var documentHeight; + var boxWidth; + var pixelLeft; + var pixelTop; + var boxHeigt; + var boxWidth; + + cancelEvent(e); + + var div = documentElement("hsglossaryitembox") + if (div && button) + { + + // Have the browser size the box + div.style.height = ""; + div.style.width = ""; + + // Clear the tooltip so it doesn't appear above the popup + button.title = ""; + + div.innerHTML = "

    " + term + "
    " + definition + "

    "; + + pixelTop = getElementPosition(button).top + 14; + + // Check if the box would go off the bottom of the visible area + documentHeight = document.body.clientHeight; + boxHeight = div.clientHeight; + if (pixelTop + boxHeight > documentHeight) + { + // If the box won't fit both above and below the link + // using the default width then make the box wider + if (boxHeight >= pixelTop) + div.style.width = "80%"; + else + pixelTop = pixelTop - 14 - boxHeight; + } + div.style.top = pixelTop + "px"; + + documentWidth = document.body.clientWidth; + boxWidth = div.clientWidth; + pixelLeft = button.offsetLeft; + + // Check if the box would go off the edge of the visible area + if (pixelLeft + boxWidth > documentWidth) + { + pixelLeft = documentWidth - boxWidth - 5; + } + div.style.left = pixelLeft + "px"; + + // Show the box + div.style.visibility = "visible"; + } + +} + +/* End Glossary boxes */ + +/* .NET Framework Help Topic Resolution */ + +// This function is Copyright 2006 Innovasys Limited. No reproduction or usage +// allowed other than in documentation generated by Innovasys Document! X v5 +function resolveHelp2Keyword(Keyword, OnlineKeyword) +{ + + var URL = ""; + + try + { + // Try the current namespace + URL = findHelp2Keyword(getCurrentHelp2Namespace(), Keyword); + if (URL == "") + { + // Try the likely namespaces first, most recent first + URL = findHelp2Keyword("MS.VSCC.v80", Keyword); + if (URL == "") + { + URL = findHelp2Keyword("MS.VSCC.2003", Keyword); + if (URL == "") + { + URL = findHelp2Keyword("MS.VSCC", Keyword); + } + } + } + + // URL found in one of the known VSCC namespaces + if (URL != "") + { + return URL; + } + // For future proofing, try other VSCC namespaces + else + { + var RegistryWalker = new ActiveXObject("HxDs.HxRegistryWalker"); + var Namespaces = RegistryWalker.RegisteredNamespaceList("MS.VSCC"); + var Namespace, NamespaceName, Session, Topics, Topic; + + if (Namespaces.Count > 0) + { + for (n = 1; n <= Namespaces.Count; n++) + { + Namespace = Namespaces.Item(n); + NamespaceName = Namespace.Name; + if (NamespaceName.substring(0, 7) == "MS.VSCC") + { + switch (NamespaceName) + { + case "MS.VSCC.v80": + break; + case "MS.VSCC.2003": + break; + case "MS.VSCC": + break; + default: + URL = findHelp2Keyword(NamespaceName); + if (URL != "") + { + return Topics(1).URL; + } + } + } + } + } + } + } + catch (e) { } + + // No match found in any applicable namespace + // Msdn doesn't support links to individual overloads, only to the master page + // so we trim off the brackets when directing to Msdn + var BracketPosition = OnlineKeyword.indexOf("("); + if (BracketPosition != -1) { + OnlineKeyword = OnlineKeyword.substring(0, BracketPosition); + } + return "http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(" + OnlineKeyword + ")&rd=true" +} + +function findHelp2Keyword(NamespaceName, Keyword) +{ + var Session, Topics; + + if (NamespaceName.length > 0) + { + try + { + Session = new ActiveXObject("HxDs.HxSession"); + Session.Initialize("ms-help://" + NamespaceName, 0); + Topics = Session.Query(Keyword, "!DefaultAssociativeIndex", 0, ""); + if (Topics.Count > 0) + { + return Topics(1).URL; + } + } + catch (e) { } + } + return ""; +} + +function navigateToHelp2Keyword(Keyword, OnlineKeyword, ReplacePage) +{ + window.status = "Resolving link. Please wait a moment..."; + var URL = resolveHelp2Keyword(Keyword, OnlineKeyword); + window.status = ""; + if (ReplacePage == true) + { + location.replace(URL); + } + else + { + location.href = URL; + } +} + +function getCurrentHelp2Namespace() +{ + var namespace = ""; + var location = window.location; + + if (location.protocol == "ms-help:") + { + namespace = location.hostname; + if (namespace.substring(0, 2) == "//") + namespace = namespace.substring(2); + } + + return namespace; +} + +/* End .NET Framework Help Topic Resolution */ + +/* Common Messaging Support */ +function isPostMessageEnabled() +{ + return (window['postMessage'] != null); +} + +function addMessageListener(receiver) +{ + if (isPostMessageEnabled()) + { + if (window['addEventListener']) + { + window.addEventListener("message", receiver, false); + } + else + { + window.attachEvent("onmessage", receiver); + } + } +} + +function Message(messageType, messageData) +{ + this.messageType = messageType; + this.messageData = messageData; +} + +function getMessage(data) +{ + var separator = data.indexOf("|"); + var messageType; + var messageData; + + if (separator != -1) + { + messageType = data.substring(0, separator); + messageData = data.substring(separator + 1); + } + else + { + messageType = data; + messageData = ""; + } + + return new Message(messageType, messageData); +} +/* Common Messaging Support */ + +function receiveMessage(event) +{ + var message = getMessage(event.data); + + switch (message.messageType) + { + case "print": + printDocument(); + break; + case "addtofavorites": + addToFavorites(); + break; + case "quicksearch": + highlightText(document, message.messageData, "black", "yellow", true); + break; + case "resetquicksearch": + removeAllHighlights(document); + break; + case "refresh": + document.location.reload(); + break; + } +} + +/* Print */ +function printDocument() +{ + window.print(); +} + +/* Add to favorites */ +function addToFavorites() +{ + var nav = findFrame("webnavbar"); + nav.postMessage("addtofavorites|" + location + "|" + document.title, "*"); +} + +/* Highlight text in a document */ +function highlightText(targetDocument, text, color, backColor, clearBefore) +{ + if (clearBefore) + { + firstMatch = null; + removeAllHighlights(targetDocument); + } + + if (text != "") + { + HighlightTextInElement(targetDocument, targetDocument.body, text, color, backColor, firstMatch); + // Scroll to the first hit if it's not already visible + if (firstMatch && clearBefore) + { + if (getElementPosition(firstMatch).top > targetDocument.documentElement.scrollTop + targetDocument.documentElement.clientHeight || getElementPosition(firstMatch).top < targetDocument.documentElement.scrollTop) + { + targetDocument.documentElement.scrollTop = firstMatch.offsetTop; + } + } + } +} + +/* Highlight text in a specific element */ +function HighlightTextInElement(targetDocument, element, text, color, backColor) +{ + var lowerCaseText = text.toLowerCase(); + var node = null; + var nodeText = null; + var lowerCaseNodeText = null; + var highlightSpan = null; + var remainingText = null; + var textNode = null; + var selection = null; + + // Traverse the document backwards otherwise the DOM returns stale objects as + // we make modifications + for (var x = element.childNodes.length - 1; x >= 0; x--) + { + node = element.childNodes[x]; + + // Text Node + if (node.nodeType == 3) + { + nodeText = node.nodeValue; + lowerCaseNodeText = nodeText.toLowerCase(); + for (pos = lowerCaseNodeText.indexOf(lowerCaseText); pos >= 0; pos = lowerCaseNodeText.indexOf(lowerCaseText)) + { + // Create a span to mark up the highlight + highlightSpan = targetDocument.createElement("SPAN"); + highlightSpan.style.backgroundColor = backColor; + highlightSpan.style.color = color; + highlightSpan.className = "InnovasysSearchHighlight"; + highlightSpan.appendChild(targetDocument.createTextNode(nodeText.substring(pos, pos + text.length))); + + // Insert the span containing the term + remainingText = targetDocument.createTextNode(nodeText.substring(pos + text.length, nodeText.length)); + node.nodeValue = nodeText.substring(0, pos); + highlightSpan = node.parentNode.insertBefore(highlightSpan, node.nextSibling); + remainingText = node.parentNode.insertBefore(remainingText, highlightSpan.nextSibling); + + // Store the first (last)hit so we can scroll to it + firstMatch = highlightSpan; + + // Skip past the new nodes we've added + node = node.nextSibling.nextSibling; + nodeText = node.nodeValue; + lowerCaseNodeText = nodeText.toLowerCase(); + } + } + // Element node + else if (node.nodeType == 1) + { + // To ensure we don't modify script or go over + // highlights we have already applied + if (node.nodeName != "SCRIPT" && !(node.nodeName == "SPAN" && node.className == "InnovasysSearchHighlight")) + { + HighlightTextInElement(targetDocument, node, text, color, backColor); + } + } + } +} + +/* Returns all highlight SPAN elements for a document */ +function getHighlightSpans(targetDocument) +{ + var spans = targetDocument.getElementsByTagName("SPAN"); + var highlightSpans = new Array(); + var span = null; + var highlightSpanCount = 0; + + for (x = spans.length - 1; x >= 0; x--) + { + span = spans[x]; + if (span.className == "InnovasysSearchHighlight") + { + highlightSpans[highlightSpanCount] = span; + highlightSpanCount++; + } + } + + return highlightSpans; +} + +/* Merges any adjacent text node.s The IE DOM in particular has a habit of +splitting up text nodes, and also after highlighting and removing split +adjacent nodes can be left */ +function cleanUpTextNodes(parentNode) +{ + var node = null; + var lastNode = null; + var mergeCount = null; + + do + { + mergeCount = 0; + for (var x = 1; x < parentNode.childNodes.length; x++) + { + node = parentNode.childNodes[x]; + lastNode = node.previousSibling; + + if (node.nodeType == 3 && lastNode.nodeType == 3) + { + node.nodeValue = lastNode.nodeValue + node.nodeValue; + parentNode.removeChild(lastNode); + mergeCount++; + } + } + } + while (mergeCount > 0) + + for (var x = 0; x < parentNode.childNodes.length; x++) + { + cleanUpTextNodes(parentNode.childNodes[x]); + } +} + +/* Removes any previously added highlight SPANs from the document */ +function removeAllHighlights(targetDocument) +{ + var spans = getHighlightSpans(targetDocument); + var text = null; + + for (x = spans.length - 1; x >= 0; x--) + { + span = spans[x]; + text = targetDocument.createTextNode(span.innerHTML); + span.parentNode.replaceChild(text, span); + } + + // This process may have resulted in multiple contiguous text nodes + // which could cause problems with subsequent search highlight operations + // So we join any continguous text nodes here + cleanUpTextNodes(targetDocument.body); +} \ No newline at end of file diff --git a/documentation/api_extracted/script/hs-common.js b/documentation/api_extracted/script/hs-common.js new file mode 100644 index 0000000..33338bd --- /dev/null +++ b/documentation/api_extracted/script/hs-common.js @@ -0,0 +1,97 @@ +var isDesignTime = false; + +/* Utility */ + +function getNextSibling(n) +{ + n=n.nextSibling; + while(n) + { + if(n.nodeType == 1) + return n; + else + n=n.nextSibling; + } +} + +/* End Utility */ + +/* Event wiring */ + +function hsAddLoadEvent(loadFunc) +{ + var oldFunc = window.onload; + if (typeof window.onload != 'function') + { + window.onload = loadFunc; + } + else { + window.onload = function() + { + if (oldFunc) { + oldFunc(); + } + loadFunc(); + } + } +} + +/* End Event wiring */ + +/* Returns true if this content is running under Microsoft Help Viewer */ +function hsIsMshv() { + return (location.href.indexOf("/ms.help?") != -1) +} + +/* Gets the MSHS base url for resources */ +function hsResourceBaseUrl() { + + if (isDesignTime) { + return ''; + } + else { + // Get the first script tag + var script = document.getElementById('mshs_support_script'); + + // Extract the src which is a full resource url to within our origin .mshc + var scriptSrc = script.src; + + // Get the portion up to the ; (the base url for resource references) + var startIndex = scriptSrc.indexOf(';') + 1; + var scriptUrl = scriptSrc.substring(0, startIndex); + + return scriptUrl; + } +} + +function hsFixUrl(url) { + if (hsIsMshv()) { + var originalUrl; + if (url.indexOf('127.0.0.1') != -1) { + // Chrome - rule returned as full url + originalUrl = url.substring(url.indexOf('/', url.indexOf('127.0.0.1')) + 5, url.length); + } + else { + // IE - rule returned as original, with a .. prefix + originalUrl = url.substring(url.indexOf('../') + 2, url.lastIndexOf(')')); + } + if (originalUrl.indexOf("/help/") == -1) { + originalUrl = originalUrl.substring(originalUrl.indexOf("/", originalUrl.indexOf("/help/") + 5), originalUrl.length); + } + originalUrl = originalUrl.replace("\"", ""); + var newUrl = hsResourceBaseUrl() + originalUrl; + return newUrl; + } + else { + return url + } +} + +function hsFixRelativeUrl(url) { + if (hsIsMshv()) { + return hsResourceBaseUrl() + url; + } + else { + return url + } +} \ No newline at end of file diff --git a/documentation/api_extracted/script/hs-enlargeimage.js b/documentation/api_extracted/script/hs-enlargeimage.js new file mode 100644 index 0000000..a7883e6 --- /dev/null +++ b/documentation/api_extracted/script/hs-enlargeimage.js @@ -0,0 +1,77 @@ +// This function retained for legacy and custom Dynamic Image Widgets - current standard Widget uses hsToggleImage below +// for localization support +function hsEnlargeImage(img, link, inplace) { + var newsrc; + var newlinktext; + + if (img) { + if (!img.src) + img = documentElement(img); + + if (img) { + if (img.src.substring(img.src.length - 9, img.src.length - 4).toLowerCase() == 'thumb') { + newsrc = img.src.substring(0, img.src.length - 10) + img.src.substring(img.src.length - 4); + newlinktext = link.innerHTML.replace(/enlarge/gi, "shrink"); + } + else { + newsrc = img.src.substring(0, img.src.length - 4) + '_thumb' + img.src.substring(img.src.length - 4); + newlinktext = link.innerHTML.replace(/shrink/gi, "enlarge"); + } + if (!inplace) { + var newimage = new Image(); + newimage.src = newsrc; + hsOpenWindow(newimage.src, newimage.width + 20, newimage.height + 25); + } + else { + img.src = newsrc; + link.innerHTML = newlinktext; + } + } + } +} + +function hsToggleImage(img, link, inplace) { + var newsrc; + var newlinktext; + var newlinkimgsrc; + + if (img) { + if (!img.src) + img = documentElement(img); + + if (img) { + var imgId = img.id; + var expandDiv = document.getElementById(imgId + "_expand"); + var shrinkDiv = document.getElementById(imgId + "_shrink"); + if (img.src.substring(img.src.length - 9, img.src.length - 4).toLowerCase() == 'thumb') { + // Currently collapsed - expand + expandDiv.style.display = "none"; + shrinkDiv.style.display = "block"; + // New img src + newsrc = img.src.substring(0, img.src.length - 10) + img.src.substring(img.src.length - 4); + } + else { + // Currently expanded - collapse + expandDiv.style.display = "block"; + shrinkDiv.style.display = "none"; + // New img src + newsrc = img.src.substring(0, img.src.length - 4) + '_thumb' + img.src.substring(img.src.length - 4); + } + // Update the img with the new src + if (!inplace) { + var newimage = new Image(); + newimage.src = newsrc; + hsOpenWindow(newimage.src, newimage.width + 20, newimage.height + 25); + } + else { + img.src = newsrc; + } + } + } +} + +function hsOpenWindow(strURL,strWidth,strHeight) +{ + /* open a new browser window based on info passed to the function */ + window.open(strURL,"","Width=" + strWidth + ",Height=" + strHeight,0); +} diff --git a/documentation/api_extracted/script/hs-expandcollapse.js b/documentation/api_extracted/script/hs-expandcollapse.js new file mode 100644 index 0000000..f9506eb --- /dev/null +++ b/documentation/api_extracted/script/hs-expandcollapse.js @@ -0,0 +1,87 @@ +function HSToggleSection(id) +{ + var element; + var img; + + // Find the element + element = documentElement(id); + img = documentElement(id+"_Image"); + if (element) + { + if (element.className=="hs-collapsed") + { + element.className="hs-expanded"; + if (img) + { + img.src = hsFixRelativeUrl("images/hs-expanded.gif"); + } + } + else + { + element.className="hs-collapsed"; + if (img) + { + img.src = hsFixRelativeUrl("images/hs-collapsed.gif"); + } + }; + } +} + +function HSHideOrShowAllCSections(show) +{ + var spans + var divs + + spans = document.getElementsByTagName("SPAN"); + if (spans) + { + for (var spanindex = 0 ; spanindex < spans.length ; spanindex++) + { + if ((spans[spanindex].className == "hs-collapsed" && show) || (spans[spanindex].className == "hs-expanded" && !show)) + { + HSToggleSection(spans[spanindex].id) + } + } + } + divs = document.getElementsByTagName("DIV") + if (divs) + { + for (var divindex = 0 ; divindex < divs.length ; divindex++) + { + if ((divs[divindex].className == "hs-collapsed" && show) || (divs[divindex].className == "hs-expanded" && !show)) + { + HSToggleSection(divs[divindex].id) + } + } + } +} +function HSHideAllCSections() +{ + var HSHideAll = documentElement("HSHideAll"); + var HSShowAll = documentElement("HSShowAll"); + + HSHideOrShowAllCSections(false) + if (HSHideAll) + { + HSHideAll.style.display="none"; + if (HSShowAll) + { + HSShowAll.style.display="block"; + } + } +} +function HSShowAllCSections() +{ + var HSHideAll = documentElement("HSHideAll"); + var HSShowAll = documentElement("HSShowAll"); + + HSHideOrShowAllCSections(true) + if (HSShowAll) + { + HSShowAll.style.display="none"; + if (HSHideAll) + { + HSHideAll.style.display="block"; + } + } +} \ No newline at end of file diff --git a/documentation/api_extracted/script/hs-heading-expandcollapse.js b/documentation/api_extracted/script/hs-heading-expandcollapse.js new file mode 100644 index 0000000..5ba640d --- /dev/null +++ b/documentation/api_extracted/script/hs-heading-expandcollapse.js @@ -0,0 +1,237 @@ +/* Expand / Collapse Section support */ + +var collapsedSections = new Array(); +var sectionsLoaded = false; + +if (!toggleExpanded) { + function toggleExpanded(img) { + // Firefox passes in the event object from the event handler, so + // we check for that and set to null + if (img) { + if (img.tagName == null) { + e = img; + img = null; + } + } + + // Find the expand & collapse image + if (!img) { + if (window.event) + e = window.event; + + var img = sourceElement(e) + if (img) { + while (img) { + if (img.className == "expandcollapse" && img.tagName == "SPAN") + break; + else + img = img.parentNode; + } + if (img) + img = findExpandCollapseImage(img); + } + } + + + if (img) { + if (isSectionCollapsed(img.id) == true) { + img.src = hsFixRelativeUrl("images/hs-heading-expanded.gif"); + expandSection(img); + removeCollapsedItem(img.id); + if (img.id.indexOf("Family", 0) == 0) { + protectedMembers = "on"; + configureMembersFilterCheckboxes(); + changeMembersFilterLabel(); + } + } + else { + img.src = hsFixRelativeUrl("images/hs-heading-collapsed.gif"); + collapseSection(img); + addCollapsedSection(img.id); + } + + saveSections(); + } + } +} + +function findExpandCollapseImage(sourceElement) +{ + var e; + var elements; + + if(sourceElement.tagName == "IMG" && sourceElement.className == "toggle") + { + return(sourceElement); + } + else + { + if(sourceElement) + { + elements = sourceElement.getElementsByTagName("IMG"); + + for(var i=0;i 1) && (tickedCount < languageNames.length)) + { + if((tickedCount == 2) && (getLanguageState("VB") == "on") && (getLanguageState("vbUsage") == "on")) + { + document.getElementById("VBLabel").style.display = "inline"; + } + else + { + document.getElementById("multipleLabel").style.display = "inline"; + } + } + else if (tickedCount == 1) + { + for(var i=0;i 0) + { + for(var i=0;i + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var 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

    I~_oW8~ot_d*@B#bBQC z)gBu!0hgsw-@&`d0>vb@8*&xsj5G-6&j?&DG_70f6SjVGY{g7_)Gbx<;oXIP6;-1v z+53AT`){^((+wjdxRDqHJa7GR^f`2ka8kH_eee0SRl<58BUVxdKN16=Z(nR^4q8gl zS$~goe)2bnPiyoXKYkLwPR<=)LY0C?kdqVmBNV0l8fAdBSOlc-P%XVVl__pTo~K*R z&Rsm_S~vOv+v*=hS7)`9Z102%!g>Ha9aHGkf<_wyj-C~z$pM-prL(e!C8DNg(I@{- z{5Ti%R)QFpGU@Hc@BNr!*)^3(SOg?PWht`sdzGlT`X?=&klu~5^;>{TRqeAEd6T z^4XtMM123Xw!Pg}`iILmcKD$3^8wbk(!H4YCein_`7vBn*`5!p73{?yK@OiN1aL2u z;2GZca}-h1EgakDViNm{o-`R@z;rfG2(`4y(-RcWmZ+ZZH%5D zxoX$jxL1p(J`11J%}wX+}e==)TbTWqfUH<=;}Yp z$xHZh>w3q9XsQu}ArQe~GRC}bz0`dsCkUdb4o^?Aqfx#QWR3>^DBbr!uQ75z>Z|q_ z5^ql%xwa)=27`a&zW90iu;MXEPonvEbM<0MuTeO=;v&Q z1Z#dJhN92Vfk=$VKk(K$|L|fMW&rm{j@O2P`!mr+IZE(9pM)>P=CJ5-VBN)>3$gU) zVSSH~Bl~xYt|k==P20ZbY=96}^Li88WkD3}P{)<-n6chItCtGJc4Cfa0iG-^jk(#3O_?}(!QO=^Am z_hS|Yx5bXP=CyL;Fw7UGFX)C)XQIf$cRB1nXmGK_3%J{d0dj^o{Z;a01C$H4 zR#@{QtzL6o6SChI*C%6nXD7<4Sem?B}TArXNce9sn2Hm(Q1-VAm1< zHlvJ@e{lE5V~T!J)A~uHQZL_V3|oXOl5@Nw2YZ_odH<9A@|a%DDps%cQY*BXI)3xo z(Xg26MUDAAN0(f4+jsK0I$qi8rhw~~fyjEIPc90|Nmz^86EXUZEj;$LkKComgp@qH z)OWJEi^i^h8kp2h?B0AFooh3+PAR>IexFPppnb-VaOQFu0hBrOPZX#pt7k98Epn=W%WzvoF+;VD;3FL{?h z>FRxQ+!B4={jP>c|;vF}fB1i=1$TbS`&OO)A)tAZIL z_Vru5-GMdff3CH1*Q|%V30TIh?d|b_dwPjJtw?9J2G>e?#1i;3U=8|r*7~0%S!{ro zCV|r_uGr}~{xjU7Voi4N6EzFS)^6$j=rXNC)!8iuLue~DY}^Zo1E(c_by+5#@0<_^ z`{9U0wum(d#;0Z$l9n0;jJ`OzHtK8pxrKi>{^B{)f&j8XL_a(~q~)8O*NKpM_i>qa z+=4E;=%7snGOgWnjVEDt;ld}ejrZg~?B&(}v>GO&;(FPhyG3fa&{67f`hh20`dUz{ zJ@2>X!}Q}D4Dg-Qc{su2B1!i?vtwXrt24TyfCZ7Pn{`?o|1{U=7NT!0QgI_(JYM`3i`0;8;S8#7;fr{ykLH3^-7j@Nq8-DU{N?fFhU?99aNPWTgC5K>3*wY=W)i z0K^^6B=2CP87!cgV5FVfr1_K&=qSKivZB%2r1;m?G2ayB>EnZeSZJ7-*b15Wn3zQh znWdRnlnR*!5#;(?K7mCf>P1-Zdt^y+XcICjPlXyg;Bpa2TEgJr#M8AT|J;vqAY4NZkQ!W~|#H^PI-( z019{Y;3dmG+ZBnpGK=~aiRQpX1By_UikdZSgw1WlN{b+0nZ>>`zf9d`%w`rYERvWj zl46sSSlSlrEvg+Z61Lu!LNA8k!(>jGU)9IHnl6&zW0ChPlBKgPW?`XZ04W+4E1I(? z*%vFhvMBr7DoL{_9L6XFu&912R{d@@Cpd?3cO_C TVGtC62#G<21^@l(CGmd%L3;s& literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/stylesheets/dotnet2005.css b/documentation/api_extracted/stylesheets/dotnet2005.css new file mode 100644 index 0000000..f5a5b30 --- /dev/null +++ b/documentation/api_extracted/stylesheets/dotnet2005.css @@ -0,0 +1,734 @@ +/* Provides support for Help 2.0 unbreakable links to .NET framework docs */ +@import url("ms-help://Hx/HxRuntime/HxLink.css"); + +/* Red triangle markup for 'New' items */ +td.newlinkcell, td.newmembernamecell, td.newmemberslinkcell, div.newTopic +{ + background-image:url('../dotnetimages/isnew.gif') +} + +/*********************************************************** + * Behaviors + ***********************************************************/ + +.userDataStyle +{ + behavior:url(#default#userData); +} + +div.saveHistory +{ + behavior:url(#default#saveHistory); + display: none; +} + +/*********************************************************** + * Content Presentation Styles + ***********************************************************/ + +body +{ + background: #FFFFFF; + color: #000000; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 1.1em; + font-style: normal; + font-weight: normal; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + width: 100%; +} + +/* Body is initially hidden, unless for print. Improves page rendering quality */ +@media print { + body {visibility: visible;} +} +@media screen { + body {visibility: hidden;} +} + +dl +{ + margin-top: 0; + padding-left: 1; /* Prevents italic-letter descenders from being cut off */ + margin-bottom: 0; +} + +dt +{ + font-style: italic; +} + +dd +{ + margin-bottom: 8; + margin-left: 0; +} + +ul +{ + margin-left: 17; + list-style-type: disc; +} + +ul ul +{ + margin-bottom: 4; + margin-left: 17; + margin-top: 3; + list-style-type: disc; +} + +ol +{ + margin-left: 24; + list-style-type: decimal; +} + +ol ol +{ + margin-bottom: 4; + margin-left: 24; + margin-top: 3; + list-style-type: lower-alpha; + +} + +li +{ + margin-bottom: 3; +} + +p.RootText +{ + margin-left: -18px; +} + +p, ol, ul, div +{ + margin-top: 0; + margin-bottom: 8; +} + +blockquote +{ + margin-top: 0; + margin-bottom: 0; +} + +A, MSHelp\:link, A:link, MSHelp\:link:link +{ + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} + +A:active, MSHelp\:link:active, A:visited, MSHelp\:link:visited +{ + color: #800080; + text-decoration: underline; + cursor: pointer; +} + +A:hover, MSHelp\:link:hover +{ + color: #FF0000; + text-decoration: underline; + cursor: pointer; +} + +code +{ + font-family: Monospace, Courier New, Courier; + color: #0000EE; +} + + +/*********************************************************** + * Structure Presentation Styles + ***********************************************************/ + +/* Applies to everything below the non-scrolling header region. */ +div#pagebody +{ + font-size: 70%; + width: 100%; + margin-bottom: 0; +} + +/* Applies to everything below the non-scrolling header region, minus the footer. */ +div#mainbody +{ + font-size: 90%; + padding-left: 19px; + margin-top: 10; + margin-bottom: 0; + padding-bottom: 20; + padding-right: 10px; +} + +/*------------------------------ Non-scrolling Header Region Styles -------------------------------*/ +/* Applies to the entire non-scrolling header region. */ +div#pagetop +{ + background-color: #ccccff; + padding: 0 0 0 0 ; + width: 100%; + margin-bottom: 0; +} + +/* Applies to both tables in the non-scrolling header region. */ +div#pagetop table +{ + width: 100%; + font-size: 90%; + margin: 0 0 0 0; +} + +/* Applies to cells in both tables in the non-scrolling header region. */ +div#pagetop table td +{ + color: #0000FF; + font-size: 70%; + margin: 0 0 0 0; + padding: 1 20 0 16; + border: medium none; + background-color: transparent; + background-color: transparent; + border: none; +} + +/* Applies to the page title row in the upper table of the non-scrolling header region. */ +div#pagetop table tr#pagetoptable1row2 td +{ + padding-bottom: 6; +} + +/* Applies to the last row in the upper table of the non-scrolling header region. */ +div#pagetop table tr#pagetoptable1row3 td +{ + padding-bottom: 2; + padding-top: 0; +} + +/* Applies to the lower table of the non-scrolling header region. */ +div#pagetop table#pagetoptable2 +{ + border-top-color: white; + border-top-style: solid; + border-top-width: 1; +} + +div#pagetop table#pagetoptable2, div#pagetop table#pagetoptable1, div#pagetop table#pagetopbreadcrumbs +{ + border-bottom-style: solid; + border-bottom-width: 1px; + border-bottom-color: #c0c0c0; +} + +div#pagetop table#pagetoptable2 td +{ + padding-top: 0; + padding-bottom: 0; +} + +div#pagetop table#pagetoptable2 td +{ + padding-top: 0; + padding-bottom: 0; +} + +/* Breadcrumbs section of the page header */ +div#pagetop table#pagetopbreadcrumbs td +{ + background-color: white; + padding: 3 3 3 19; + color: black; +} + +/* Applies to the running header text in the first row of the upper table in the + non-scrolling header region. */ +span#projecttitle +{ + color: #003399; + font-size: 90%; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#pagetitle +{ + color: #003399; + font-size: 110%; + font-weight: 600; +} + +/* The copy code prompt span */ +span.copyCode +{ + color: #0000ff; + font-size: 80%; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; +} + +/*------------------------------ Other Region Styles -------------------------------*/ + +/* Applies to the page footer */ +div#pagefooter +{ + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 2; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + font-size: .9em; +} + +/* Footer horizontal rule */ +hr#footerHR +{ + border-bottom-color: #EEEEFF; + border-bottom-style: solid; + border-bottom-width: 1; + border-top-color: #C8CDDE; + border-top-style: solid; + border-top-width: 1; + height: 3; + color: #D4DFFF; +} + +/* Non scrolling page footer */ +div#nonscrollingpagefooter, div.fullwidthfooter +{ + border-top: 1px solid #c0c0c0; + border-left: 0px; + border-right: 0px; + border-bottom: 0px; + padding-top: 2; + padding-bottom: 2; + padding-left: 5; + padding-right: 2; + width: 100%; + vertical-align: bottom; + font-size: 60%; +} + +/* Feedback section */ +div#feedback +{ + background-color: #f1f1f1; +} + +table.feedback +{ + width: 300px; +} + +table.feedback, table.feedback td +{ + border-style: none; + background-color: transparent; +} + +td.feedbackcaption +{ + vertical-align: bottom; + padding-bottom: 4px; +} + +td.feedbackprompt +{ + padding-bottom: 5px; +} + +/* Popup bubble */ +div.dxpopupbubble +{ + left: 4px; + position: absolute; + padding: 4px 8px 5px 4px; + z-index: 1; + width: 50%; + visibility: hidden; + border: 1px solid #999999; + background: #EFEFF7; + font-size: 60%; +} + +/*------------------------------ Heading Styles -------------------------------*/ + +.heading, h1, h2, h3, h4, h5, h6 +{ + font-weight: bold; + margin-top: 18; + margin-bottom: 8; +} + +h1, h2 +{ + color: #003399; + margin-left: -15px; +} + +h1 +{ + font-size: 110%; +} + +h2 +{ + font-size: 100%; +} + +h3 +{ + margin-left: -15px; +} + + +/* Applies to table titles and subsection titles. */ +.subHeading, h3, h4 +{ + font-weight: bold; + margin-bottom: 4; +} + +/* Formats the titles of all subsections. */ +h3, h4 +{ + font-size: 100%; + color: #000000; +} + + +/* 14-Apr-2010 CTO: Added formats for API Help Release Notes, */ +/* Getting Started, FAQs, and Welcome topics, as needed */ + +h5 +{ + color: #003399; + font-size: 120%; + font-weight: bold; + margin-top: 18; + margin-bottom: 8; + margin-left: 0px; +} + + +h6 +{ + color: #4682B4; + font-size: 110%; + font-weight: bold; + margin-bottom: 4; + margin-left: 0px; +} + + + +/*------------------------------ General Table Styles -------------------------------*/ + + +table +{ + border: 0; + width: 100%; + margin-top: 5px; + margin-bottom: 5px; +} + +tr +{ + vertical-align: top; +} + +th +{ + background-color: #EFEFF7; + border-bottom: 1px solid #C8CDDE; + color: #000066; + padding-left: 5px; + padding-right: 5px; + text-align: left; + font-size: .7em; +} + +td +{ + background-color: #F7F7FF; + border-bottom: 1px solid #D5D5D3; + padding-left: 5; + padding-right: 5; + margin: 1px; + font-size: .7em; +} + +div#pagebody table.syntaxtable th, div#pagebody table.xmlsource th +{ + padding-top: 1px; + padding-bottom: 1px; + vertical-align: middle; +} + +div#pagebody table.syntaxtable td, div#pagebody table.xmlsource td +{ + font-family: Monospace, Courier New, Courier; + color: #000066; + padding-top: 5px; + padding-bottom: 7px; + font-size: .9em; +} + +div#pagebody table.syntaxtable td pre +{ + margin-bottom: 0px; +} + +div.section +{ + width: 100%; +} + +/*------------------------------ Code Styles ----------------------------------------*/ + +div.code table th +{ + font-weight: bold; +} + +div.code table td +{ + border-top: 1px solid #FFFFFF; + padding-top: 5; +} + +div.code pre, .example, code, .sourcecode +{ + font-family: Monospace, Courier New, Courier; + font-size: 1em; + color: #000066; + white-space: nowrap; +} + +div#pagebody table.xmlsource +{ + width: 95%; +} + +div#pagebody table.xmlsource th +{ + vertical-align: middle; + padding-top: 1px; + padding-bottom: 1px; +} + +/*------------------------------ Specific Cell Styles -------------------------------*/ + +div#pagebody table.CodeContainerTable +{ + margin: 0; +} + +div#pagebody table.CodeContainerTable td +{ + border: none; +} + +div#pagebody table td.imageCell +{ + white-space: nowrap; +} + +/* Formats the first column--the one that displays icons. */ +div#mainbody table td.imageCell +{ + white-space: nowrap; + width: 20px; +} + +/* Make the link and description columns sensible sizes. */ +td.linkcell +{ + white-space: nowrap; +} + +td.memberslinkcell +{ + white-space: nowrap; + width: 30%; +} + +td.membersdescriptioncell +{ + width: 70%; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +td.newlinkcell, td.newmembernamecell, td.newmemberslinkcell, div.newTopic, td.newcentered +{ + background-repeat: no-repeat; + background-position: left top ; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +/*------------------------------ Expand Collapse -------------------------------*/ + +span.expandcollapse +{ + cursor:default; +} + +/*------------------------------ Image Styles -------------------------------*/ + +img#toggleExpandedAllImage +{ + margin-left: 4; + vertical-align: middle; +} + +img.toggle +{ + border: 0; + margin-right: 5; +} + +img.copyCodeImage +{ + border: 0; + margin: 1; + margin-right: 3; +} + +/* XML colorization */ + +/* Container spacing*/ +pre.plainxml, div.colorizedxml, div.dynamicxml +{ + word-wrap: break-word; + font-family: Monospace, Courier New, Courier; + font-size: 80%; +} + +/* Container format*/ +pre.plainxml { margin-left: 3px; margin-bottom: 5px; } +div.colorizedxml, div.dynamicxml { margin-left: -15px; } +div.colorizedxml div, div.dynamicxml div { margin-top: 0; margin-bottom: 0; } +div.dynamicxml a, div.dynamicxml a:hover, div.dynamicxml a:visited, div.dynamicxml a:active { text-decoration: none; } + +/* container for expanding/collapsing content */ +.c{cursor:hand} + +/* button - contains +/-/nbsp */ +.b{color:red;font-family:'Courier New';font-weight:bold;text-decoration:none} + +/* element container, comment or CDATA */ +.e,.k{margin-left: 30px;text-indent:-1em;margin-right:1em} + +/* tag */ +.t{color:#990000} + +/* tag in xsl namespace */ +.xt{color:#990099} + +/* attribute in xml or xmlns namespace */ +.ns{color:red} + +/* attribute in dt namespace */ +.dt{color:green} + +/* markup characters */ +.m {color:blue} + +/* text node */ +.tx {font-weight:bold} + +/* multi-line (block) cdata */ +.db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier} + +/* single-line (inline) cdata */ +.di {font:small Courier} + +/* DOCTYPE declaration, pi */ +.d, .pi {color:blue} + +/* multi-line (block) comment */ +.cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; font:small Courier; color:#888888} + +/* single-line (inline) comment */ +.ci {font:small Courier; color:#888888} + +/* CDATA text */ +PRE.x{margin:0px;display:inline;} + +/* End XML colorization */ + +/* VB source code colorization */ +code.VB +{ + white-space: nowrap; + color: #000000; +} +.keyword { + color: Navy; +} + +.comment { + color: Green; +} + +.string { + color: Gray; +} + + + +div#dxlanguagemenu, div#dxmemberfiltermenu +{ + width: auto; +} + +/* .NET Specific Image styles */ + +img#membersOptionsFilterImage +{ + border: 0; + margin-left: 10; + vertical-align: middle; +} + +img#languageFilterImage, img#membersFilterImage +{ + border: 0; + margin-left: 10; + vertical-align: middle; +} + +/* .NET Specific Header Styles */ + +.languageFilter, .membersFilter +{ + color: #0000FF; + cursor: hand; + text-decoration:underline; + padding-bottom: 4; + font-size: 8pt; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/dotnet2005.css_TEST_FONTS b/documentation/api_extracted/stylesheets/dotnet2005.css_TEST_FONTS new file mode 100644 index 0000000..804dd42 --- /dev/null +++ b/documentation/api_extracted/stylesheets/dotnet2005.css_TEST_FONTS @@ -0,0 +1,706 @@ +/* Provides support for Help 2.0 unbreakable links to .NET framework docs */ +@import url("ms-help://Hx/HxRuntime/HxLink.css"); + +/* Red triangle markup for 'New' items */ +td.newlinkcell, td.newmembernamecell, td.newmemberslinkcell, div.newTopic +{ + background-image:url('../dotnetimages/isnew.gif') +} + +/*********************************************************** + * Behaviors + ***********************************************************/ + +.userDataStyle +{ + behavior:url(#default#userData); +} + +div.saveHistory +{ + behavior:url(#default#saveHistory); + display: none; +} + +/*********************************************************** + * Content Presentation Styles + ***********************************************************/ + +body +{ + background: #FFFFFF; + color: #000000; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 2.0em; + font-style: normal; + font-weight: normal; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + width: 100%; +} + +/* Body is initially hidden, unless for print. Improves page rendering quality */ +@media print { + body {visibility: visible;} +} +@media screen { + body {visibility: hidden;} +} + +dl +{ + margin-top: 0; + padding-left: 1; /* Prevents italic-letter descenders from being cut off */ + margin-bottom: 0; +} + +dt +{ + font-style: italic; +} + +dd +{ + margin-bottom: 8; + margin-left: 0; +} + +ul +{ + margin-left: 17; + list-style-type: disc; +} + +ul ul +{ + margin-bottom: 4; + margin-left: 17; + margin-top: 3; + list-style-type: disc; +} + +ol +{ + margin-left: 24; + list-style-type: decimal; +} + +ol ol +{ + margin-bottom: 4; + margin-left: 24; + margin-top: 3; + list-style-type: lower-alpha; + +} + +li +{ + margin-bottom: 3; +} + +p.RootText +{ + margin-left: -18px; +} + +p, ol, ul, div +{ + margin-top: 0; + margin-bottom: 8; +} + +blockquote +{ + margin-top: 0; + margin-bottom: 0; +} + +A, MSHelp\:link, A:link, MSHelp\:link:link +{ + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} + +A:active, MSHelp\:link:active, A:visited, MSHelp\:link:visited +{ + color: #800080; + text-decoration: underline; + cursor: pointer; +} + +A:hover, MSHelp\:link:hover +{ + color: #FF0000; + text-decoration: underline; + cursor: pointer; +} + +code +{ + font-family: Monospace, Courier New, Courier; + color: #0000EE; +} + + +/*********************************************************** + * Structure Presentation Styles + ***********************************************************/ + +/* Applies to everything below the non-scrolling header region. */ +div#pagebody +{ + font-size: 70%; + width: 100%; + margin-bottom: 0; +} + +/* Applies to everything below the non-scrolling header region, minus the footer. */ +div#mainbody +{ + font-size: 90%; + padding-left: 19px; + margin-top: 10; + margin-bottom: 0; + padding-bottom: 20; + padding-right: 10px; +} + +/*------------------------------ Non-scrolling Header Region Styles -------------------------------*/ +/* Applies to the entire non-scrolling header region. */ +div#pagetop +{ + background-color: #ccccff; + padding: 0 0 0 0 ; + width: 100%; + margin-bottom: 0; +} + +/* Applies to both tables in the non-scrolling header region. */ +div#pagetop table +{ + width: 100%; + font-size: 90%; + margin: 0 0 0 0; +} + +/* Applies to cells in both tables in the non-scrolling header region. */ +div#pagetop table td +{ + color: #0000FF; + font-size: 70%; + margin: 0 0 0 0; + padding: 1 20 0 16; + border: medium none; + background-color: transparent; + background-color: transparent; + border: none; +} + +/* Applies to the page title row in the upper table of the non-scrolling header region. */ +div#pagetop table tr#pagetoptable1row2 td +{ + padding-bottom: 6; +} + +/* Applies to the last row in the upper table of the non-scrolling header region. */ +div#pagetop table tr#pagetoptable1row3 td +{ + padding-bottom: 2; + padding-top: 0; +} + +/* Applies to the lower table of the non-scrolling header region. */ +div#pagetop table#pagetoptable2 +{ + border-top-color: white; + border-top-style: solid; + border-top-width: 1; +} + +div#pagetop table#pagetoptable2, div#pagetop table#pagetoptable1, div#pagetop table#pagetopbreadcrumbs +{ + border-bottom-style: solid; + border-bottom-width: 1px; + border-bottom-color: #c0c0c0; +} + +div#pagetop table#pagetoptable2 td +{ + padding-top: 0; + padding-bottom: 0; +} + +div#pagetop table#pagetoptable2 td +{ + padding-top: 0; + padding-bottom: 0; +} + +/* Breadcrumbs section of the page header */ +div#pagetop table#pagetopbreadcrumbs td +{ + background-color: white; + padding: 3 3 3 19; + color: black; +} + +/* Applies to the running header text in the first row of the upper table in the + non-scrolling header region. */ +span#projecttitle +{ + color: #003399; + font-size: 90%; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#pagetitle +{ + color: #003399; + font-size: 110%; + font-weight: 600; +} + +/* The copy code prompt span */ +span.copyCode +{ + color: #0000ff; + font-size: 80%; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; +} + +/*------------------------------ Other Region Styles -------------------------------*/ + +/* Applies to the page footer */ +div#pagefooter +{ + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 2; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + font-size: 80%; +} + +/* Footer horizontal rule */ +hr#footerHR +{ + border-bottom-color: #EEEEFF; + border-bottom-style: solid; + border-bottom-width: 1; + border-top-color: #C8CDDE; + border-top-style: solid; + border-top-width: 1; + height: 3; + color: #D4DFFF; +} + +/* Non scrolling page footer */ +div#nonscrollingpagefooter, div.fullwidthfooter +{ + border-top: 1px solid #c0c0c0; + border-left: 0px; + border-right: 0px; + border-bottom: 0px; + padding-top: 2; + padding-bottom: 2; + padding-left: 5; + padding-right: 2; + width: 100%; + vertical-align: bottom; + font-size: 60%; +} + +/* Feedback section */ +div#feedback +{ + background-color: #f1f1f1; +} + +table.feedback +{ + width: 300px; +} + +table.feedback, table.feedback td +{ + border-style: none; + background-color: transparent; +} + +td.feedbackcaption +{ + vertical-align: bottom; + padding-bottom: 4px; +} + +td.feedbackprompt +{ + padding-bottom: 5px; +} + +/* Popup bubble */ +div.dxpopupbubble +{ + left: 4px; + position: absolute; + padding: 4px 8px 5px 4px; + z-index: 1; + width: 50%; + visibility: hidden; + border: 1px solid #999999; + background: #EFEFF7; + font-size: 60%; +} + +/*------------------------------ Heading Styles -------------------------------*/ + +.heading, h1, h2, h3, h4 +{ + font-weight: bold; + margin-top: 18; + margin-bottom: 8; +} + +h1, h2 +{ + color: #003399; + margin-left: -15px; +} + +h1 +{ + font-size: 110%; +} + +h2 +{ + font-size: 100%; +} + +h3 +{ + margin-left: -15px; +} + +/* Applies to table titles and subsection titles. */ +.subHeading, h3, h4 +{ + font-weight: bold; + margin-bottom: 4; +} + +/* Formats the titles of all subsections. */ +h3, h4 +{ + font-size: 100%; + color: #000000; +} + +/*------------------------------ General Table Styles -------------------------------*/ + +table +{ + border: 0; + width: 100%; + margin-top: 5px; + margin-bottom: 5px; +} + +tr +{ + vertical-align: top; +} + +th +{ + background-color: #EFEFF7; + border-bottom: 1px solid #C8CDDE; + color: #000066; + padding-left: 5px; + padding-right: 5px; + text-align: left; + font-size: 80%; +} + +td +{ + background-color: #F7F7FF; + border-bottom: 1px solid #D5D5D3; + padding-left: 5; + padding-right: 5; + margin: 1px; + font-size: 80%; +} + +div#pagebody table.syntaxtable th, div#pagebody table.xmlsource th +{ + padding-top: 1px; + padding-bottom: 1px; + vertical-align: middle; +} + +div#pagebody table.syntaxtable td, div#pagebody table.xmlsource td +{ + font-family: Monospace, Courier New, Courier; + color: #000066; + padding-top: 5px; + padding-bottom: 7px; + font-size: 80%; +} + +div#pagebody table.syntaxtable td pre +{ + margin-bottom: 0px; +} + +div.section +{ + width: 100%; +} + +/*------------------------------ Code Styles ----------------------------------------*/ + +div.code table th +{ + font-weight: bold; +} + +div.code table td +{ + border-top: 1px solid #FFFFFF; + padding-top: 5; +} + +div.code pre, .example, code, .sourcecode +{ + font-family: Monospace, Courier New, Courier; + font-size: 90%; + color: #000066; + white-space: nowrap; +} + +div#pagebody table.xmlsource +{ + width: 95%; +} + +div#pagebody table.xmlsource th +{ + vertical-align: middle; + padding-top: 1px; + padding-bottom: 1px; +} + +/*------------------------------ Specific Cell Styles -------------------------------*/ + +div#pagebody table.CodeContainerTable +{ + margin: 0; +} + +div#pagebody table.CodeContainerTable td +{ + border: none; +} + +div#pagebody table td.imageCell +{ + white-space: nowrap; +} + +/* Formats the first column--the one that displays icons. */ +div#mainbody table td.imageCell +{ + white-space: nowrap; + width: 20px; +} + +/* Make the link and description columns sensible sizes. */ +td.linkcell +{ + white-space: nowrap; +} + +td.memberslinkcell +{ + white-space: nowrap; + width: 30%; +} + +td.membersdescriptioncell +{ + width: 70%; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +td.newlinkcell, td.newmembernamecell, td.newmemberslinkcell, div.newTopic, td.newcentered +{ + background-repeat: no-repeat; + background-position: left top ; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +/*------------------------------ Expand Collapse -------------------------------*/ + +span.expandcollapse +{ + cursor:default; +} + +/*------------------------------ Image Styles -------------------------------*/ + +img#toggleExpandedAllImage +{ + margin-left: 4; + vertical-align: middle; +} + +img.toggle +{ + border: 0; + margin-right: 5; +} + +img.copyCodeImage +{ + border: 0; + margin: 1; + margin-right: 3; +} + +/* XML colorization */ + +/* Container spacing*/ +pre.plainxml, div.colorizedxml, div.dynamicxml +{ + word-wrap: break-word; + font-family: Monospace, Courier New, Courier; + font-size: 80%; +} + +/* Container format*/ +pre.plainxml { margin-left: 3px; margin-bottom: 5px; } +div.colorizedxml, div.dynamicxml { margin-left: -15px; } +div.colorizedxml div, div.dynamicxml div { margin-top: 0; margin-bottom: 0; } +div.dynamicxml a, div.dynamicxml a:hover, div.dynamicxml a:visited, div.dynamicxml a:active { text-decoration: none; } + +/* container for expanding/collapsing content */ +.c{cursor:hand} + +/* button - contains +/-/nbsp */ +.b{color:red;font-family:'Courier New';font-weight:bold;text-decoration:none} + +/* element container, comment or CDATA */ +.e,.k{margin-left: 30px;text-indent:-1em;margin-right:1em} + +/* tag */ +.t{color:#990000} + +/* tag in xsl namespace */ +.xt{color:#990099} + +/* attribute in xml or xmlns namespace */ +.ns{color:red} + +/* attribute in dt namespace */ +.dt{color:green} + +/* markup characters */ +.m {color:blue} + +/* text node */ +.tx {font-weight:bold} + +/* multi-line (block) cdata */ +.db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier} + +/* single-line (inline) cdata */ +.di {font:small Courier} + +/* DOCTYPE declaration, pi */ +.d, .pi {color:blue} + +/* multi-line (block) comment */ +.cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; font:small Courier; color:#888888} + +/* single-line (inline) comment */ +.ci {font:small Courier; color:#888888} + +/* CDATA text */ +PRE.x{margin:0px;display:inline;} + +/* End XML colorization */ + +/* VB source code colorization */ +code.VB +{ + white-space: nowrap; + color: #000000; +} +.keyword { + color: Navy; +} + +.comment { + color: Green; +} + +.string { + color: Gray; +} + + + +div#dxlanguagemenu, div#dxmemberfiltermenu +{ + width: auto; +} + +/* .NET Specific Image styles */ + +img#membersOptionsFilterImage +{ + border: 0; + margin-left: 10; + vertical-align: middle; +} + +img#languageFilterImage, img#membersFilterImage +{ + border: 0; + margin-left: 10; + vertical-align: middle; +} + +/* .NET Specific Header Styles */ + +.languageFilter, .membersFilter +{ + color: #0000FF; + cursor: hand; + text-decoration:underline; + padding-bottom: 4; + font-size: 8pt; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/helpstudio.css b/documentation/api_extracted/stylesheets/helpstudio.css new file mode 100644 index 0000000..4564516 --- /dev/null +++ b/documentation/api_extracted/stylesheets/helpstudio.css @@ -0,0 +1,793 @@ +/* Glossary links */ + +div.hspopupbubble, div.hsglossaryreference +{ + left: 4px; + position: absolute; + padding: 4px 8px 5px 4px; + z-index: 1; + width: 50%; + visibility: hidden; + border: 1px solid #999999; + background: #EFEFF7; + font-size: 60%; +} + +A.hsglossaryreference +{ + COLOR: #008000 ; + border-bottom: 1px dotted #008000 ; + text-decoration: none; + cursor: hand; + cursor: pointer; +} + +A.hsglossaryreference:link +{ + COLOR : #008000 +} + +A.hsglossaryreference:active +{ + COLOR : #008000 +} + +A.hsglossaryreference:visited +{ + COLOR : #008000 +} + +A.hsglossaryreference:hover +{ + COLOR : #008000 +} + +/* End Glossary Links */ + +/*********************************************************** + * Behaviors + ***********************************************************/ + +.userDataStyle +{ + behavior:url(#default#userData); +} + +div.saveHistory +{ + behavior:url(#default#saveHistory); + display: none; +} + +/*********************************************************** + * Content Presentation Styles + ***********************************************************/ + +body +{ + background: #FFFFFF; + color: #000000; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 1.1em; + font-style: normal; + font-weight: normal; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + width: 100%; +} + +div +{ + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Body is initially hidden, unless for print. Improves page rendering quality */ +@media print { + body {visibility: visible;} +} +@media screen { + body {visibility: hidden;} +} + +dl +{ + margin-top: 0; + padding-left: 1; /* Prevents italic-letter descenders from being cut off */ + margin-bottom: 0; +} + +dt +{ + font-style: italic; +} + +dd +{ + margin-bottom: 8; + margin-left: 0; +} + +ul +{ + margin-left: 17; + list-style-type: disc; +} + +ul ul +{ + margin-bottom: 4; + margin-left: 17; + margin-top: 3; + list-style-type: disc; +} + +ol +{ + list-style-type: decimal; +} + +ol ol +{ + margin-bottom: 4; + margin-top: 3; + list-style-type: lower-alpha; + +} + +li +{ + margin-bottom: 3; +} + +p.RootText +{ + margin-left: -18px; +} + +p, ol, ul, div +{ + margin-top: 0; + margin-bottom: 8; +} + +blockquote +{ + margin-top: 0; + margin-bottom: 0; +} + +A, MSHelp\:link, A:link, MSHelp\:link:link +{ + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} + +A:active, MSHelp\:link:active, A:visited, MSHelp\:link:visited +{ + color: #800080; + text-decoration: underline; + cursor: pointer; +} + +A:hover, MSHelp\:link:hover +{ + color: #FF0000; + text-decoration: underline; + cursor: pointer; +} + +code +{ + font-family: Monospace, Courier New, Courier; + color: #0000EE; +} + + +/*********************************************************** + * Structure Presentation Styles + ***********************************************************/ + +/* Applies to everything below the non-scrolling header region. */ +div#pagebody +{ + font-size: 70%; + width: 100%; + margin-bottom: 0; +} + +/* Applies to everything below the non-scrolling header region, minus the footer. */ +div#mainbody +{ + font-size: 90%; + padding-left: 13px; + margin-top: 10; + margin-bottom: 0; + padding-bottom: 20; + padding-right: 10px; + *width: 100%; +} + + +/*------------------------------ Non-scrolling Header Region Styles -------------------------------*/ +/* Applies to the entire non-scrolling header region. */ +div#pagetop +{ + background-color: #ffffff; + padding: 0 0 0 0 ; + width: 100%; + margin-bottom: 0; +} + +/* Applies to both tables in the non-scrolling header region. */ +div#pagetop table +{ + width: 100%; + font-size: 90%; + margin: 0 0 0 0; +} + +/* Applies to cells in both tables in the non-scrolling header region. */ +div#pagetop table td +{ + color: #0000FF; + font-size: 70%; + margin: 0 0 0 0; + padding: 0 20 0 13; + background-color: transparent; + border: none; +} + +table#pagetoptable1 +{ + border-collapse: collapse; +} + +div#pagetop table tr#pagetoptable1row2 td +{ + padding-top: 0; +} + +/* Applies to the last row in the upper table of the non-scrolling header region. */ +div#pagetop table tr#pagetoptable1row3 td +{ + background-image: url('../images/gradient.png'); + background-position: bottom left; + background-repeat: repeat-x; + padding-bottom: 12; + padding-top: 2; + height: 10; +} + +div#pagetop table#pagetoptable2 td +{ + padding-top: 7; + padding-bottom: 5; + padding-left: 13; +} + + +/* Breadcrumbs section of the page header */ +div#pagetop table#pagetopbreadcrumbs td +{ + background-color: white; + padding: 3 3 4 13; + color: black; + border-bottom: solid 1px #d0d0d0; +} + +/* Applies to the running header text in the first row of the upper table in the + non-scrolling header region. */ +span#projecttitle +{ + color: #8C8C8C; + font-size: 90%; +} + +/* Applies to the topic title in the second row of the upper table in the + non-scrolling header region. */ +span#pagetitle +{ + color: #000000; + font-family: arial; + font-size: 160%; + font-weight: 400; +} + +/* The copy code prompt span */ +span.copyCode +{ + color: #0000ff; + font-size: 80%; + font-weight: normal; + cursor: pointer; + float: right; + display: inline; + text-align: right; +} + +/*------------------------------ Other Region Styles -------------------------------*/ + +/* Applies to the page footer */ +div#pagefooter +{ + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: 0; + padding-top: 2; + padding-bottom: 6; + padding-left: 5; + padding-right: 2; + font-size: .9em; +} + +/* Footer horizontal rule */ +hr#footerHR +{ + border-bottom-color: #EEEEFF; + border-bottom-style: solid; + border-bottom-width: 1; + border-top-color: #C8CDDE; + border-top-style: solid; + border-top-width: 1; + height: 3; + color: #D4DFFF; +} + +/* Non scrolling page footer */ +div#nonscrollingpagefooter, div.fullwidthfooter +{ + border-top: 1px solid #c0c0c0; + border-left: 0px; + border-right: 0px; + border-bottom: 0px; + padding-top: 2; + padding-bottom: 2; + padding-left: 5; + padding-right: 2; + vertical-align: bottom; + font-size: 60%; +} + +/* Feedback section */ +div#feedback +{ + background-color: #f1f1f1; +} + +table.feedback +{ + width: 300px; +} + +table.feedback, table.feedback td +{ + border-style: none; + background-color: transparent; +} + +td.feedbackcaption +{ + vertical-align: bottom; + padding-bottom: 4px; +} + +td.feedbackprompt +{ + padding-bottom: 5px; +} + +/* Popup bubble */ +div.dxpopupbubble +{ + left: 4px; + position: absolute; + padding: 4px 8px 5px 4px; + z-index: 1; + width: 50%; + visibility: hidden; + border: 1px solid #999999; + background: #EFEFF7; + font-size: 60%; +} + +div#dxlanguagemenu, div#dxmemberfiltermenu, div#dxcommunitymenu +{ + background-color: #FCECE4; +} + +span#membersFilter +{ + margin-right: 8; +} + +/*------------------------------ Heading Styles -------------------------------*/ + +.heading, h1, h2, h3, h4 +{ + font-weight: bold; + margin-top: 18; + margin-bottom: 8; +} + +h1, h2 +{ + color: #000000; +} + +h1 +{ + font-size: 130%; +} + +h2 +{ + font-size: 100%; +} + +/* Applies to table titles and subsection titles. */ +.subHeading, h3, h4 +{ + font-weight: bold; + margin-bottom: 8; +} + +/* Formats the titles of all subsections. */ +h3, h4 +{ + font-size: 110%; + color: #000000; +} + +/*------------------------------ General Table Styles -------------------------------*/ + +table +{ + border: 0; + width: 100%; + margin-top: 5px; + margin-bottom: 5px; +} + +tr +{ + vertical-align: top; +} + +th +{ + background-color: #EFEFF7; + border-bottom: 1px solid #C8CDDE; + color: #000066; + padding-left: 5px; + padding-right: 5px; + padding-top: 3px; + padding-bottom: 3px; + text-align: left; + font-size: .7em; +} + +td +{ + padding-left: 5px; + padding-right: 5px; + padding-top: 3px; + padding-bottom: 3px; + margin: 1px; + font-size: .7em; + background-color: #F7F7FF; + border-bottom: 1px solid #D5D5D3; +} + +div#pagebody table.syntaxtable th, div#pagebody table.xmlsource th +{ + padding-top: 1px; + padding-bottom: 1px; + vertical-align: middle; +} + +div#pagebody table.syntaxtable td, div#pagebody table.xmlsource td +{ + font-family: Monospace, Courier New, Courier; + color: #000066; + padding-top: 5px; + padding-bottom: 7px; + font-size: .9em; + border-bottom: 1px solid #C8CDDE; +} + +div#pagebody table.syntaxtable td pre +{ + margin-bottom: 0px; +} + +div.section +{ + margin-left: 16px; + *padding-left: 16px; + *margin-left: 0; + *width: 100%; +} + +/*------------------------------ Code Styles ----------------------------------------*/ + +div.code table th +{ + font-weight: bold; +} + +div.code table td +{ + border-top: 1px solid #FFFFFF; + padding-top: 5; +} + +div.code pre, .example, code, .sourcecode +{ + font-family: Monospace, Courier New, Courier; + color: #000066; + white-space: nowrap; +} + +div#pagebody table.xmlsource +{ + width: 95%; +} + +div#pagebody table.xmlsource th +{ + vertical-align: middle; + padding-top: 1px; + padding-bottom: 1px; +} + +/*------------------------------ Specific Cell Styles -------------------------------*/ + +div#pagebody table.CodeContainerTable +{ + margin: 0; +} + +div#pagebody table.CodeContainerTable td +{ + border: none; +} + +div#pagebody table td.imageCell +{ + white-space: nowrap; +} + +/* Formats the first column--the one that displays icons. */ +div#mainbody table td.imageCell +{ + white-space: nowrap; + width: 18px; + padding-left: 1px; + padding-right: 1px; +} + +/* Make the link and description columns sensible sizes. */ +td.linkcell +{ + white-space: nowrap; +} + +td.memberslinkcell +{ + white-space: nowrap; + width: 30%; +} + +td.membersdescriptioncell, td.descriptioncell +{ + width: 70%; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +td.newlinkcell, td.newmembernamecell, td.newmemberslinkcell, div.newTopic, td.newcentered +{ + background-repeat: no-repeat; + background-position: left top ; +} + +div#objectmodelSection table td +{ + background-color: #FFFFFF; + border-style: none; +} + +/*------------------------------ Expand Collapse -------------------------------*/ + +span.expandcollapse +{ + cursor:default; +} + +/*------------------------------ Image Styles -------------------------------*/ + +img#toggleExpandedAllImage +{ + margin-left: 0; + vertical-align: middle; +} + +img.toggle +{ + border: 0; + margin-right: 5; +} + +img.copyCodeImage +{ + border: 0; + margin: 1; + margin-right: 3; +} + +/*------------------------------ Hidden form elements -------------------------------*/ +form +{ + display: none; +} + +/* XML colorization */ + +/* Container spacing*/ +pre.plainxml, div.colorizedxml, div.dynamicxml +{ + word-wrap: break-word; + font-family: Monospace, Courier New, Courier; + font-size: 80%; +} + +/* Container format*/ +pre.plainxml { margin-left: 3px; margin-bottom: 5px; } +div.colorizedxml, div.dynamicxml { margin-left: -15px; } +div.colorizedxml div, div.dynamicxml div { margin-top: 0; margin-bottom: 0; } +div.dynamicxml a, div.dynamicxml a:hover, div.dynamicxml a:visited, div.dynamicxml a:active { text-decoration: none; } + +/* container for expanding/collapsing content */ +.c{cursor:hand} + +/* button - contains +/-/nbsp */ +.b{color:red;font-family:'Courier New';font-weight:bold;text-decoration:none} + +/* element container, comment or CDATA */ +.e,.k{margin-left: 30px;text-indent:-1em;margin-right:1em} + +/* tag */ +.t{color:#990000} + +/* tag in xsl namespace */ +.xt{color:#990099} + +/* attribute in xml or xmlns namespace */ +.ns{color:red} + +/* attribute in dt namespace */ +.dt{color:green} + +/* markup characters */ +.m {color:blue} + +/* text node */ +.tx {font-weight:bold} + +/* multi-line (block) cdata */ +.db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier} + +/* single-line (inline) cdata */ +.di {font:small Courier} + +/* DOCTYPE declaration, pi */ +.d, .pi {color:blue} + +/* multi-line (block) comment */ +.cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px; padding-left:.3em; font:small Courier; color:#888888} + +/* single-line (inline) comment */ +.ci {font:small Courier; color:#888888} + +/* CDATA text */ +PRE.x{margin:0px;display:inline;} + +/* End XML colorization */ + +/* 2008 specific community elements */ + +div.communityratingcontainer +{ + margin-top: -3px; + margin-right: -10px; + margin-bottom: 0; +} + +/* End 2008 specific community elements */ + +/* VB source code colorization */ +code.VB +{ + white-space: nowrap; + color: #000000; +} + +/* VB Keywords*/ +.keyword { + color: Navy; +} + +/* Comments */ +.comment { + color: Green; +} + +/* Literals */ +.string { + color: Gray; +} + +/* Default color for code words without a specific highlight */ +div.colorizedvbcode, div.colorizedcode { + color: black; +} + +img#languageFilterImage +{ + border: 0; + margin-left: 10; + vertical-align: middle; +} + +.languageFilter, .membersFilter +{ + color: #0000FF; + cursor: hand; + text-decoration:underline; + padding-bottom: 4; + font-size: 8pt; +} + +body, html, div#pagebody +{ + height: 100%; +} + +.hs-inthistopic-container +{ + float: right; + margin: 8px 0 8px 8px; + width: 30%; + padding: 4px 8px 5px 8px; + border: solid 1px buttonshadow; +} + +.hs-inthistopic-prefix +{ + font-size: 130%; + font-weight: bold; +} + +.hs-inthistopic-list +{ + padding: 0; + margin: 0; +} + +.hs-inthistopic-item +{ + list-style-type: none; + font-size: 110%; + width: auto; + text-indent: -10px; + padding-left: 10px; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/hs-boxes.css b/documentation/api_extracted/stylesheets/hs-boxes.css new file mode 100644 index 0000000..8eb8fe2 --- /dev/null +++ b/documentation/api_extracted/stylesheets/hs-boxes.css @@ -0,0 +1,24 @@ +body#hsbody table.hs-box, body#dxBody table.hs-box, div#mainBody table.hs-box +{ + border: buttonshadow 1px solid; + margin-top: 4px; + margin-bottom: 4px; + border-collapse: collapse; + background-color: infobackground; +} +body#hsbody table.hs-box td, body#dxBody table.hs-box td, div#mainBody table.hs-box td +{ + padding: 4px 4px 6px 4px; + vertical-align: top; + background-color: infobackground; + background-style: solid; + border: 0px; +} +div#mainBody td.hs-box-icon +{ + padding-top: 6px; +} +body#hsbody td.hs-box-icon, body#dxBody td.hs-box-icon, div#mainBody td.hs-box-icon +{ + width: 12px; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/hs-expandcollapse.css b/documentation/api_extracted/stylesheets/hs-expandcollapse.css new file mode 100644 index 0000000..7ba21b5 --- /dev/null +++ b/documentation/api_extracted/stylesheets/hs-expandcollapse.css @@ -0,0 +1,18 @@ +/* This stylesheet is included only in online output and sets all exandable sections + to invisible, and Show All link to visible */ +.hs-collapsed +{ + display: none; +} +.hs-expanded +{ + margin-left: 14px; +} +div#HSShowAll +{ + display: block; +} +div#HSHideAll +{ + display: none; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/hs-heading-expandcollapse.css b/documentation/api_extracted/stylesheets/hs-heading-expandcollapse.css new file mode 100644 index 0000000..c953fad --- /dev/null +++ b/documentation/api_extracted/stylesheets/hs-heading-expandcollapse.css @@ -0,0 +1,26 @@ +/* This stylesheet supports the Expandable Heading and Section Widget */ +h1.hs-collapsibleheading +{ + margin-left: 0px; + cursor: pointer; + cursor: hand; +} + +img.toggle +{ + margin-top: 3px; + zoom: 1; + position: relative; +} + +div.section h1, div.section h2, div.section h3 +{ + zoom: 1; + position: relative; +} + +/* So that design time shows the elements with no clipping */ +div#pagebody div.InnovaContentWidget img.toggle +{ + margin-top: 5px; +} \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/hs-simpletab.css b/documentation/api_extracted/stylesheets/hs-simpletab.css new file mode 100644 index 0000000..9834627 --- /dev/null +++ b/documentation/api_extracted/stylesheets/hs-simpletab.css @@ -0,0 +1,80 @@ +/* End Widget Tab Strip */ +.SimpleTab +{ + border-right: 1px white solid; + border-top: 1px #BBBBBB solid; + border-bottom: 1px #BBBBBB solid; + background-color: white; + border-bottom: 1px white solid; + float: left; + height: 1.6em; +} +.SimpleTabLeftEnd +{ + width: 5px; + float: left; + height: 1.6em; + border-top: 1px transparent solid; + background: url('../images/hs-simpletableft.png') no-repeat; + border-bottom: 1px white solid; +} +.SimpleTabRightEnd +{ + width: 5px; + float: left; + height: 1.6em; + margin-left: -1px; + border-top: 1px transparent solid; + background: url('../images/hs-simpletabright.png') no-repeat; + border-bottom: 1px white solid; +} +.SimpleTabContentArea +{ + clear: both; + min-height: 75px; + border-left: 1px #BBBBBB solid; + border-right: 1px #BBBBBB solid; + border-bottom: 1px #BBBBBB solid; + padding-left: 12px; + padding-right: 12px; + padding-top: 5px; + padding-bottom: 5px; + border-top: 1px #BBBBBB solid; +} +.SimpleTabContentArea pre +{ + padding: 0px; + margin: 0px; + font-size: 11pt; +} +.SimpleTabStripContainer +{ + width: 100%; + height: 1.78em; + position: relative; + top: 0.25em; + overflow: hidden; + margin-bottom: 0px; +} +.SimpleTabContainer +{ + font-size: 1.3em; +} +.SimpleTabStripContainer, .TabContainer, .SimpleTab, .SimpleTabLeftEnd, .SimpleTabRightEnd +{ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +.SimpleTabCaption +{ + line-height: 1.84em; + padding: 6px; + font-size: 0.75em; +} +.SimpleTabCommands +{ + float:right; + vertical-align:bottom; + line-height: 24px; +} +/* End Widget Tab Strip */ \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/hs-tabstrip.css b/documentation/api_extracted/stylesheets/hs-tabstrip.css new file mode 100644 index 0000000..456de4c --- /dev/null +++ b/documentation/api_extracted/stylesheets/hs-tabstrip.css @@ -0,0 +1,92 @@ +/* This StyleSheet contains custom styles for this project */ + +/* Syntax Tab Strip */ +.HsTab +{ + border-right: 1px #BBBBBB solid; + border-top: 1px #BBBBBB solid; + border-bottom: 1px #BBBBBB solid; + background-color: #EFF5FF; + float: left; + height: 1.6em; + cursor: pointer; +} +.HsTabLeftEnd +{ + width: 5px; + float: left; + height: 1.6em; + background: url('../images/hs-tab-leftend.png') no-repeat; + border-top: 1px transparent solid; + border-bottom: 1px #BBBBBB solid; +} +.HsTabRightEnd +{ + width: 5px; + float: left; + height: 1.6em; + background: url('../images/hs-tab-rightend.png') no-repeat; + margin-left: -1px; + border-top: 1px transparent solid; + border-bottom: 1px #BBBBBB solid; +} +.HsTabContentArea +{ + clear: both; + min-height: 100px; + border-left: 1px #BBBBBB solid; + border-right: 1px #BBBBBB solid; + border-bottom: 1px #BBBBBB solid; + padding: 12px; + border-top: 1px #BBBBBB solid; + font-size: 0.75em; +} +.HsTab.HsTabActive +{ + background-color: white; + border-bottom: 1px white solid; +} +.HsTabRightEnd.HsTabRightEndActive +{ + background: url('../images/hs-tab-active-rightend.png') no-repeat; + height: 1.6em; + border-bottom: 1px white solid; +} +.HsTabLeftEnd.HsTabLeftEndActive +{ + background: url('../images/hs-tab-active-leftend.png') no-repeat; + height: 1.6em; + border-bottom: 1px white solid; +} +.HsTabStripContainer +{ + width: 100%; + height: 1.78em; + position: relative; + top: 0.25em; + overflow: hidden; + margin-bottom: 0px; +} +.HsOuterTabContainer +{ + font-size: 1.3em; +} +.HsTabStripContainer, .TabContainer, .HsTab, .HsTabLeftEnd, .HsTabRightEnd +{ + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +.HsTabCaption +{ + line-height: 1.84em; + padding: 6px; + font-size: 0.75em; +} +.HsTabCommands +{ + float:right; + vertical-align:bottom; + line-height: 24px; +} + +/* End Syntax Tab Strip */ \ No newline at end of file diff --git a/documentation/api_extracted/stylesheets/languagefilter.css b/documentation/api_extracted/stylesheets/languagefilter.css new file mode 100644 index 0000000..ae4cfc9 --- /dev/null +++ b/documentation/api_extracted/stylesheets/languagefilter.css @@ -0,0 +1,20 @@ +img#languageFilterImage +{ + border: 0; + margin-left: 0; + vertical-align: middle; +} + +.languageFilter +{ + color: #0000FF; + cursor: hand; + text-decoration:underline; + padding-bottom: 4; + font-size: 8pt; +} + +div#hslanguagemenu +{ + width: auto; +} \ No newline at end of file diff --git a/documentation/api_extracted/tb_cold.gif b/documentation/api_extracted/tb_cold.gif new file mode 100644 index 0000000000000000000000000000000000000000..d5bbef635bff94ce2f9bd64bfc2d81e819c80ff2 GIT binary patch literal 2533 zcmeIxi9Ztz1Hkc-Fvp%A%aMjXh&3c{kJ6-+b8?lVWY&6_IcAB-@wgt#vI)h|ax@;t zFz4u)#|Sg`m8)g0dgORYG@FFydEP(c{XE}4;rIFc?2xu*XK!%S=1VE4N-kuvowT7TaW ztuOW!xp2;Z|5%rmb75#U?1s>KT7NE4N`karE2Yj4I|+mM^Md9vC*5ErcB-L}-(}CCuC@X7S>MC=)r;#f;(7vW16d zRlG1aws&=pW?l#*&690yy|f+!&rd_LED=b}?5mN{TGx=@Sh_jtLDRmj=(251swyG+ z*b{vkLpL`lrbjO|ycLK`4kIIR1y=hRy5UTQz%ot@zf^rxCXMDpns zJz`XmX0vMGqoP55SO#(B2&62RjyPJLkU}o0+S7J^TjrcoLxUC5;OcqQhpjRO6i&@? zgF@gNGP>qPP}58?PIB&JVCE%*WzSpc!L-VY+OhD)=&coW9rRbepkhLfWQ1L!^@Y?Y zoDZfEn+d{WO$$^uvzZ}?LEkOt)vw`n2btD-rcB2&TDKS2Yc8qq7_>nP1+t*(sx73Cj*S8|?~XE9=h>fh+2}-xszRzuuc~3G6nGRo_fJ zweQu)_=DNfzzq;8th0Z(S#`HsnRK_Fcht?IY0M~hh1q{W=2<<_YKQl11hEQtAGNl9 zC!ACU$&Zfr_~V-fY&P>xPdav_3HK%rq-Y%Omcv!8O+{`RL96jv%aIbHID}XbHWqc- zMUzi58^;(6#D$?7JFE}pvrhC`KqvvxmvzSQ8&UpfVf35ZV{zZsKq~3}516wc?PZqe zM3id)n}GQ=n8IU!=Eb%mTIlk%QC*VOoU-GL!K6u{iOO7H9jTs#eX`Ryc<$QW^8vE8MU0nV7n7(e%V94vf%z^@oh5wA^sa z4J+s-D33D|IG6y^bpv?#v*j8<32Vt3izmgZ+tkeX>>X6x1g=G1$p~lswV*wFsbxDr z!Efsd=ADDx?+3ZVq`gDB7{%OXD~K}%BYa%29V6Sxxx$PG8~%3^P3qj+T~BiMD?Z>q z)eb|Ppp*h{DVLUY>TS4EP!P-qPkU3HQ9IJjb2{KLwNBH~r4%>(Q`u#;!;<1J8D%?* zTH8^rhgF7gnVZkpuPeGuxSz-n2pPJo#zQJ8k@1eYA2)2FW_pgWEM3cE2cwZzppoFb zK3$!nCEkyh!YJ0j4=@=oTSJwr5#^5giko6vRkG2ehW9Ag<)m;_;?4$JKDR;vor8S~H4dI`I?Qi?W93^x!)}`L_n+(*tJkfQX6jQ2h_5 zD(?=46o~flOZrLO22$KHN^Z|j2&d`(I8UdrNBntnMbXgO062)r!fA5?xuKDLMU0kN zE2MvR5E7h|RPxMbS86CNUe-^zRt_-%4-B1iqgx@cH;R9DBip!_HU=_q=#{}d^)U-m zqpPk%$6w!9dGjB{p9(IDK{`*u?w7eVF;3$mMyO~#M!pwZAvwU^#$g=hN}aq$QPNAz zk*-P|fyCnF&}ukD zn7QCq+Z=f>OGw5SJ;?hkK5c?!GO^pyPiNId#_e5(K2KRSpCF=_HX2S?;2F!MOQKiS zNJ7Au)M4-DgY3D1n!x%7zICNu%lvo^A&#%sTm0N~<(P3S|MI9vUB5M^02H?xJo|3$ zd2{#lZTt?KwhzC?kvyT7-ZktL$Y&R zpjp>;!kq71mL3L39rBYnnO>iUb6iyCi@9cl_38HveWk>C-Ikz+Oj5tE)JZ5505Jax D9x!0q literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/tb_hot.gif b/documentation/api_extracted/tb_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..a300011f7f0a1960b2bf344d3c76876e92dd7593 GIT binary patch literal 2593 zcmeH`_fr!H0!9O_2nfi4g|^ZRgb1u=1wo36N(%x~q=hEZ0#c<&Bu5~#p(;oy8fros zy+aHjT|x;`rG}1NAQTa4O3uCeFK+hDd^6wAZ{``97;0&|cLO{D`+)y~Mql^qMi5zO zGysi86Nx!>zv$j-ZEa;TyP3aW?Xy@cE*HT4-?%Zq&OiKP;QzpY>fZ(Y-2#CB1RyRH zxji4#7RN6RhV@hyc3?ym6=du!@m)z0e;Ug8+yS)l%H2zpF{v(Mq=T%BVJgE*r!ud3 z^yV;z38++o5cUkChCG-9h!yf;@hDY3`|A6XV z^+3Qh&x}^R(swSA^{}5-<2|4&i%ChQ)%x}p%pzR|-UnC=xtZkWrD%suk2i)+GX;)I z{HI!#xAaTsk(-}wSGtv?nrO=lsVPuya+CkJLT2tgS-ob&BD**Jgfw8@qG?BcAWv}} zY-v8;-(Kp=-$F)i{6ANFHe|i2djI5mmWJ1=48%_chK*zUa(w+$@m+b&nA(9LdRkCdoUjTzn3V5j*;Yk69$_Q$)~o2_O2H@$uoQ@otJg|Lh>B2(VAlv>6JpLaPecU;is{i_fixffU znW_%idqUg&%C1fj1_YlI+`Rwujr*H-a)AXu_ zU3X``MX7JexJ^{Nxmhu(cy^_D8W2*pc`^w8ARNMDZJqSID{dq?eD1~mOjt3LE*;wW zWC?aaes2By=xpz;T<}OT`6uy{ypej)7&<+maaLEOymAqNNI7UQlDv43SL>Zw!`A;( zT4fU%C(^i9cP8+7A@UxDUet7oe;?O=(?WaaZA9dc&AhAJ{S78Jdv9IHg6s3OQW~hU zJ(*66-kC+5YgwwY1GXMdWVtRL4nfy`?vG(yv4B(0Z8rN8sLp_Ae0l)N8dAhwcA~NU zHdpxdi)wrlfM-{Clye^i$6e;TP0rvGQ42VSmE-V9+y%HXV`L5H`Q~bx3T!OV2nF{^ z!N}I*GEpy1oD9FGkG`PTr`VIW#k|#55gi43n{lE!?#@aFS(n~j3p<>CCroI(Gnb%> zw12rZJj`_frj1jTE>q|c;jQ;;st2+9K#BSknfl@ywPWz0tR*x1kpZbQ6yNMTp$UKOIJ;elx-bRi(QKsj*FW_^k30Z{S*RU@f)K_O0!rj8FwH zRE*&jio>@+M`5rXiaq898NK^Nqa1E!Y=L7t@g(PvjcX{uR z_sf3vR0q4VJ0_Jr&3-bUkIV+ITqGy$l~^#M6nmyJD#_ZVe%})vq-yBvyPq}Mby05KCiX?qbtWOJ8_hcd zTkxz7a|~YS!;x@huv1s=34WAv`eJ2l9As`r$?i5jc0KmOj9Y0@!}U+OK>=XZg@3zg z(WO||P_}Wbb6-?CyB306i5^de@b=A$Ee{i%V3U^`47(~dL{j|xm&Q_8qInAvQZZ)B z830<3u{k77dQA+dbI8zmA&VuOtz-%n@bJs^@YeUQs3Q*h+(c@!KboyVaI`*t<6Ysm TpZixe>4*LNZg=hg06PBx4seaR literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/tb_inexplorer.gif b/documentation/api_extracted/tb_inexplorer.gif new file mode 100644 index 0000000000000000000000000000000000000000..00361f02d3383e51fef0105f495d37f61b3f307c GIT binary patch literal 7063 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 O!@ZADh^JgoK;!?-Ep*%f literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/tb_inexplorer_hot.gif b/documentation/api_extracted/tb_inexplorer_hot.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba5da115519a4d01479033ce1d8253629235a88f GIT binary patch literal 7920 zcmW+)XH=6*6Mjj6&_WOu=|y@|xGG&iEObP!O7AKvN--i;h=O#GF1>dIg7h9*=m8Nz z4@DsK&?E^Z`MBS6X7|i9GdpL0%$&13S~?GvlnOX#Eal1JfqpmZeEw2KSEr28jP;LR#dVy<~Nx=abfw7}c3tK3Y@pv%9RRy}i4q zx2^*{+%R3!kE_98+6RA+0LlbFlK|+R3lT8J1I7fvmoY2_fi1|0^mSoa3FFz;CZbHLJma0feJVg0VgW0%L$tk@gn?8$b~56PnEXa zlyxFX!in;5qEG}?*5^b%f+`tLRfZFleTd5OR82Th(}$=TNHp{(nguI3fl|UAe=&s(T5iE3|FIjW-rr zFqFm{%N`gD;mu|7=E_7%VZ6B}!9gDHpnTwX>mW=D@1To!(!@LI;^4-3C*v*nqr*gP zYLf1nhdIH=fe`3KO*1A$zzInnfAbJ~g)vkrK&%m>wg?e0l2o)L^?b)lQgM<5j64;4 zE}A>PUGX*f#F{MPbj03B9-*ZMhpr)_YY6BTDyD{tX(3|Jcx(+0+k(Sla5yv$hrwf8 z@K`h+hdEenUvijUcALdV;8(k`=fL5x1T1z5OU0inxN~~G2sj)8iz8xjR6HI-z+Ghy*H;NFbhrO8w9Je@>%zS-Q=WfFwG4I_>o)-TEqMGf0rgBA5C5p z3es3#=%j=TJo3wCS2{2%v8mvXiv5iLU6tuS`bq2XaJ^^p&Rq~KVT?{<0YS_0YT+}3 zSkb~47KOEi0N(a?176qWMS315+j@HLSAmO*m!BbiL3l41nl66jDzCH)76?+Z51ep~ zWfYCo_!$xzE)p9eq{eYoTL`^1G4C&;`D!^vTda6FR-d2ri1+=VkQVQy4!aj$IT|Y; zaz1)42h)1=Q29lINo&kXqLrUcmwKA-eyDibs~jD%WLtZ2v76WILj+-iRaUh36(rZP z0y*9k#ZXc5!SN2(q4_-KIW$4ER79~v?h}N>0Qd==^sZKbgq6; z+8xfMTmU@RepF-Ml*UqdiLNibqWyqCzh% zNzq-p&*l_U_i=N(ZlQerVWs$+hMZu2Ch2PxXUDzo$6_?ymgJG*2lbVkjjy#ZzMdEaxU1WTy$%WeZ?-WOBVYQ+eW2t-fkE9{`Ti* zD)RAaGH;Ggcehi?+ZWwe0+>S6+;i@4_Xswb->ntSlsOy`Eo}Y=2@7`X9_{boIY?-@ zdbX&3{rU+^Bxx*ET$evnq<4aH%yNjj|NY%j88vIsDe*0G5gBYP^XY5j>ywn-ug>Dz zbd+(p>e-{K9!pKuLV<|64Rv)#y`!lJ#cQvooq5CSI_*8}8de^WA|Ech%+4vSBvJz! z=0lC%7nVo}Y4&b>6|im}u0%hc-m0E(KH09vm!Ir36L(GsD9H8G-7dVdJpOG}44Tva ziJ#YH-GqIjsR-BK5Mp5Cja zzT7XAhUu=%=n2rDIoHp89Yv^bZM*n9kmyinq6sB@hKWWhF{(4jhiK3)xpFHB&_#p4 zvU=|Z2(n}|XlZw_r|bqw=w~yT^mcGG?tT@{uvucBCgY?YrY?wG?*u**w<(1y&spwk}sj9qpMHpWVG{ifJ$p=sZ#F67V58X zOQGpBC;`ErCGHEo*!!j}7<-}QL`#};T}nueogqdh|DW%DgD+JMl1F4#)Dw6AVKw`0 z2mc{@IYdL!)c8iiM38UwMa@|;T>Y% zu;1}PrVm+*U6WQGraa6%eG{6$d)4R*$6*$uthmhY^$Pd>5UtWGK|zHLggy5`1^_MA z*3un~<$uZlXcBetS^sFlvuq}P+b`@&_B1S~;Oi1kU+bA2k0xObZz?1#tC|0;$>Dy= z#KhiNn@<^t5e3%7{)yJ(TPaUM?sa2td{Z*I8~d5>hc}bnS4oY}Os+;U zx~nw7B4Y;`PJ=&QDh^CxypO7~pk)q~3wK3)M;M9>-n|JI47{3!O+tR9$o{ivn?5~# zR9in(=Ik*rgF8N|LqW@3gY{;YxQX@kWl_#H#Kr@&LJ;0zXSg7Ikn=gdadN2qW8J{q zjyJJs0b1eNqlep1AvUkwA`IIjVD4#uS~fx|eE*!_;JtONq@fBw;=nxRnAireA`uY% z1yE)uH-jPa%a!JZo+sn#xod&5q^zWCtHbPIYU~?r)%H*WX)vq1$>koT}tL zqo{oZT;>n=9}@av!G4tDsRI;l`qQPcOO*F9wdg4s*-8T@k%(qMnYR+Yq;&2ZQEDvy96Jawvh_0jsqcUAUdqWBL5)x(^tLwRJ^&1cLp@#yOOgV_cB0ngtV zM?W(!Z!+G!=*{+}h`!{3+?SW%5D+9sWy)hUr%Ut4)007N1vRu;-ogvE{uHhiix8 zh6_6$0repMB!#$yw*+5{(oxi#64|2cW+1raZ4?)bq@_7$s37pLn)&Sxs%} z65gdo-Vm;HF!SeoZBXR)52wgrp8*Z(hwh}x02P^jRwRn{mg&xxi5Ac5jR}`ACqs9o z`Pm8OdF3d0IsDs++S=XgNZYaTQl*~tp5aZ za-vhBgXazp%o8DM+3x+c8MMz9?6Z=8=VV~UuiFFfgR2;X&-wGWXV34gjoH8JW^R335}2pYF!htr-Sd62 zcJKISVe72Zx3goa$qCQAAEg2Fw<26%_aFw+qzQR%*#+e#D+BCbsYTp6ykSs4G!;9wPb{?0WBBfwOD-U*-&GcKqBL z{2AvMKqmTN7e4=%^F54#eRO5ss6!OkLRmR|!o{2}NCfDc+PWvYwG=p=6$Ye>`93&; zk#|9Z-lDdtmYp9S%bh8&qfNJ-z^QBbN}6jKmv#T6usd`rs( zqJJGN$Oig_fUQgTZ8Cgg$}u@cr!P@&J@KYs zlAC10lTh}n(ciuMzFV(W*ZEEx%AVBl zJ&h5lWd!^il0TCZzH%kzlT%Tl;f2cIII~jR5j5n<6hkf$?Nr)Nujp#!xO%g=%&Fw7 zI!QrXY15R3^srlLK_+Pe{%)-NjyC4+nG`>1d&X?{@$m*kba>M!Chp_2o6js)(HLfZavAevB<_7U|cVXkt&Wi zFSahOHdn8vx23T(=1uub|f|^ zlMyi3|D)#k2Sl!z))i1kMYojLm2m%0zA|&)hdlZ+M-P z4XI4!s%+4ySTcb&EP%P2DtTur`A;f&PQatKl_CQH5+%rq9wd9|&rB|gue3#_#zcZB z^T$ym7Wevak`arrYL%K(@!!y&b%j4O7?bXmrY>`Txb9PJAy#!;6{_NDH+~GG$kjZt zsCnj7V`@=D+65cT)Li-alUceNHh`4XtAxI(wRW<5&jF2UbXH6bKTJb z`1MSUZR$^Z)l4W;mApl@ep5AKpvp-VddH|Ptf?OE1lvH=dCgS$@Kk@=L>{dF{9;kh ztxzB2V;4G5pH*5P#oQ31S{3Ky^J%lrVW2@ZvHDeNZSYA$wrZ1WIE=6W&9i6}@oAh@ zc+FK5lonK-QrgsIQCz9l)SC*c4R7jhYRYD;p6v-~J9+0f(b!3uX`bBtTp13VooT_H zv@Gzn&X=-|M>kD{mozthYE2Co<7xg}TJ7IcgI8^vk#0TmY5QZ*df-zg!ObkW3rZDl z*^;&!Z)%t*wUa^7FrCuKBHM;6+DJU@OM0!Vo2aRf95EEY5)Jw_6Z~5bwWC+R+vK2} zg}P-6Rxkqd?$U58Q z)k}0j+d_aV=6&;1xs%~Jd|B;MK+o$}0gBO3!fxl~TJUe6_bRWq0IJK=m1U0&)`RNd z9YJw8f%s4~9h2vm15J4MnyPi)IPK2x=_H=?E=u>^)#^*M?5k}+XLB(_M`#om`pi6D z@b0osp27&x(5`6k7hmx8!GYpa4_+g%Clb=*%8qP?@XK`v&Cbu}B z!G3ky0cI2pb2K343Ra4a60oIU%6wts7X}0bF)iL;UKD5_fE~y{LREi7LPxQ=(i!WYbu9=WpBwZ=QZkLs8>?hzM)HT?q^^8#Qa zPjy%Ju8~PKN^f^`diSW{7|*A%2(`hb(y7F=mNcvO$KKh@@5ZmBj8AGOSw>DqIK&Wh>Ih}dkv*!m(x4;O{VpYs|3fo^;xG4w* zvjH^G0J8>|6A2d2W>LRAcV;H z!u08#GhEp=%}5%+hywToan$c%=3Q`2WVd?sOv4aOv+T@d2v|UHjCX`aA{w-E+@Tl^ z?$-dxA%WVy*{|tfmzDwOYmkuN>L~Kp8|x*1$jI!#*xcEwEdTf)t8qYM9A+@hUxcG@ zpz)jOe}3@IvlW7%Mr&W4SD;>CW(}68hG{p4CPBxZ~5zwM9SRDzLJEa-Dvt8}GB4Sl8g9Jdp#w`EFd)c9cH>+1MG;dme zEgLTVz_diQ?hpWA@@?uSD`6Y6vw3HenfuS`*%Zs|Y3Mq>$!{7#*<`!2)oHzZH!8AI zkfoiC1vRpZVq+1oU3}ky8l_Ae^wUiEtq9)+K*((l*5Neg9VW{id=zD8CVi|{k3iU2 zbL`)jBCH+lWO!i)!Hdl_XSw=qrl3x{c7RhJGeyz zv~!eiXZ6~?aNFv7#=g{b!eRN}Lw=j|+kFH22WL?S3grhhZGR-P+8Hz!8KMDb7U&f} z@x3~6RE|YSgXoz_{4flur>6 z7~2LdtB3>}0DQrfkUg;@i}ykphEbXlz^4*TnmRsPce+D|K=bpdtkFxFxznq;MU3;9TlW@)8_@~2QvO+%Ylz1I=+gWVtcsdXH80aQ7bDy+PL&+6OoH?n4FcyFK8r_^|hY^RDG}fEyOJhlW1w za?|4XIlO@G03kNDt_nXNgj|k&@?J+Q^~1i7L~i_hU8&OQeO;NVG2{NaSAkA?a-Bc+ z1<*=LYx*~TKY<%4%zQX7Q2G-OH&ofAR3BiJ%2c$qZ|@x*3@a82Re?C!ZXO!lzxedS zuk$KDe5@^;@WEJ@>Q-&6&qcRTQqnkh_^r_U_h|2{P}d)ofX z)T!q0GfVh*&A1tL>hFXFjp<+hI~Aa#Nvma;+2C|!n_eRxxKlIEAGci1UaO;%-C5MQm*QkbItRA;=&>J^9Z z*Rx4~{P#6XVJyq(iO+fTIXG8XDORhBCEiN0 z*I-sW-DLXpv36T+Hj!hexaTN=fI3(;e}!tI_jU1ws9yj)G_QR6Fsi3`_F?Q_lerJs zaTM|G+Pfcl-!}*(&RR6X>nsVSdt%-P*t);7_eV?=DW1!5u-l~9mwLFYy)ymOocUY| z(+=9mtxbe^cgKw0#RoFhUi$+k8D7-{ZPUfN;^Cv^#&!;ix8$mdW~U~6T_zmf33Ky3 zpff_`@CY1Rn*^&a-+fL|N#)os5w9net@*rcGNmX!ApU_iU20nv{Ji4}LUM*qB5ysRM2 z+VwaJp69@~?Wv`<`uLmAvV*`GNlSzN{WrVioXd{d8m#sgVvNRYh4~uVB{4_@tv(9G zZKUPi?7*skq&feq_C1=`;CFt`Ql#&t`=r1)q15t{@D&}D&cnwsv1-pnxRlX4XyX8} zdK!70oy6mqe(N6;k(ct3Ui$Wpv5BS;%QCR3UW+^LlSh14ZqT6gY(Q``fq-X$!d@7odCdZ+c2` z=YzkG9@ebu$Tt3txbw8sqI*m=#0|`mr18T+)X8kf`&o6t(=w+QcXdj`M&mKkrIz_l zR+kgLyvN=08LD4@$28eE1!=od8c`xUiz9_NcvzYL07Ut>7diz4w$87NB zv#QjUw~msjkscyPW#LvEx&l7ty$_#>mA-iAWOZUbiGEgFm7sIyzUp*oVr_iU$~zY? zi(h}`vDK}j&Tcg&N_WQYH4I$7_Bi6ia;@=FgLm{j_p(xp$onQuGnb1F5(g}|yb(=* zL@VT_-^^{6j5VyhaPhgjGDpDXHcYv@eA;F%KFBd)U2JjjKP#Oi^Rg_bD~h#1&g*k3lFVM;!Qmc-xue)&&%`T+}gU26rfhZm((s1f&Z7YgEath2SEa0)&UmyeT)mDT3h? z@i>Z{J5es2A{R%2x)Y&s6b)yhhC5LsfCzIZ8u${e18`=+#CI`k*5O3km@{hx(JAAf zJA&escMx8Bo+}PQ3Ia$uFj5YJghEh)080D~Xw5rkj_!5aw@E|>|TG{mtm@o|_q?t+mx z9wv^zNHcMQnK%k2H*O?{Gm^t!Fq0!#UnCT74aJ*j;H@?A4i^c-J6tfrI~x(4FVc)~ z!To|YA;5tU?o5btN91CWNCXl&-qqDbKm-sF;e^}^al{MA3kV`Qmxx9ZyHG@I7h!ya zfE!1laRdU6g2y4zcr+G|#o~zsJOV{Pq6w%j0vb!ejuWsr!uU7=ha(`+L}V8ci6x@C zh$t)(jU{%C6UT8x9G-~B6DdSu9EyTKQF5^qWETaArJyd1Q_xrndYsaA0Y|}(Q?NM7 z_ys%#ho|5P6vBo7k5Vp5>i-+?|6Kq;WPn1)qf?gI>JMU-pVMdrN~HZT!cYYalSGH)PN!Flm(Z)N^q#?9m;Esd+X z;B0MwF$>JqE{%xiRUYd8A`vO~KF+_N#h{A+{?*@`h$t9qVss^JwDA2X=#{2RL~8p_cF9-$wdG6Q@EdyR`gIj6eMxs5UPzfRS+#ye zey34RDO#5)sQYZy);1p&_1~NBE{&IA+tanqo4A378p2$QKLh`h#@bz}o>?mz@xkWY zU~@Bt0?>%f`%rVdpZ5ic^voGPWc@d+Ek8QM$|P5|3#f~Z%C`IObO!NzlGcS6gM|}x z*bT+<3Km19swZOnSssZk1@Lr&sTie}d)nwkg=N7}Tb`p?KGGa^%h5U_A;NrTY6051 z`igecZ1*6nE1KVzdvd73$6{bAQEEFX4?gK&Bmeh#g{vu!)$6ONpS#5Ih_CmK=hIwP z3-Rec7PDCRU1y%s@;ddfYV*89SaoGv2M9j8@8Yp6n(4=8FP0s8dqeD3%#$SsnVM0J zFsWadeT-!BFGc#BMGvfLqsXG>Ej|F1^5@G8vLMbFZ}GA9&EG9Fl3Qi(_wBaI-N^0T z{F}$EwES*s(b}0mo^b_nzBw)%)W+Q2l&Tsra=2AJ^<^_mt{c3hCxhN?)05uCz0tc> zQIf4AvAzY_EJ5L5?MXu0_hVok9FDuKpg$p7Z9U}JZpAIqFm3H0Bc(Oe8<$;{8W!yb zPF2^8-Q}verVZOw8+mf{<(f;TOB;5v4)$XHq?}w3iT`zB~>u^YmpEStp zO2~K_51+j4)sNG|b=RfI19aik9Wv45H#fyEKj_4Gc&kfdZkE)?IzUPzOW;eQ} zV^qnv_Xz^?%N(~TXb<7ON|)Bl)Cv35?C zM2wo+E)ydwGg>03*)H8DD_o9?f zW%#dwh1kG_I`Sv2KGdemsx7|MpGi0PqlH6Ncgll=-M&1bC}^Tmj_!(T$c1v{q=*&E z*Q)on##s*uNz`!!csE{tC0G1VU4J;_c8n0ay@NWvzSyO`kjyLE;!&p)K~0CP(juQ` zvbgoweEBDsg)g(x+!HDba3^VUQ?0$$`6}=v8txn<=K5BZWW}udxzd};q)l;eKFW)6 z9zjJ8#8ir zA^M~JSK5RxQ8UWIt@&)|^bP0KUV$_L7g~|?9J*~94d1vOLy(50#x_lhe^T4mpgVhZ zh7_kr&|QJ3d%S=?Sr%-mB~W-;@v+?^Ro&NDZR=?vQ26MO{tB%jF%dEZ(Pg0B; zq17MVs0^-VTWaTG0^pPH)%1VXn`V+nE96*<^huUXUdK6nUdN95*gY19W0oSlo8)Dv z7hr~*I;yT62;o=(UIby(ORR5gUR$I8Bez@4{Nel-x1Z$Sg=~2`-D6tuw@(>fn*0zb z0|zTAmWMRcaDZ-q_N5p8>=Pr+LAP|G&GVPrbl0#owe7Qv%jvrS^3&F)`N?(9A8W5j zM~Th*-w13jyHpN`)^umQfD1_$tlEFQ<=JjGbW7If!IPsl2(~Qne*Xfq`*FJfb9t~_ zN#`Axe*&#HHLsV>2QZPWD{iWkf12AJuPv?Zr1Sun$O~0fhvaQEqfm9 z=rwPXr_9bkX%6L*9nT$gI!Zx@7OCi`?4Nw_GjmGDkl zl>PUC&E=sk`WL(H_o*vb9Cv-_OOUhKP?Pse&>+DZ$KUQBCg%V#`Ctn}Sa?dVij%v8m z{2^(_Wv~H9#1fm9&iNmMG>6&qAJoPy&_6G@%x-V_X&HF68z9s8nZ4P?y|RHde$B1u zo`8d({O5c@GK%g93ILU1Ys--+2{?vOj&q{qnP4gDt;_50Auz zpY*YxEX4ozdwz9e|9dX}3Q7Ko1s|W6(Spla+zqd^jQguX0-k}dXdQ#kd}tp7PUYV( z3)Py4+VGuR@_!-w(In~T&uV}3iJuAuKP@4FJJ+t5-Z$0vv4X(^?F#~R)u?shfxoT? z2`Yd;;V;YkNXo*4cm;3V15(tZoz_N? zCZfnmkt4E^D>^}V2;(IH7=gp-Lg4h`OpJwamO41oI-H#|`syT{BRTq7T{NUO8oVCO zHW@8+5`BX+M%Xn*Bsu1KNQ`7*43}xlElzT*OmEDc^%w#1SZ;CnYEn22G+N~(R*f@G z0~)7g8u!RGPA54IRu`u~8TaHQPOC7Mx;OR`5dXq8-XuBRtS;VsGTvA`{-ZJc`Fi|Y z(*#@Bg!jn_FX$5TMH945ZS3jdUgX7da3+3tO?2UeYpF#lg+zYpjj=V2{Z<#}pPU%z zn)J3ep<5?j-Zh%lG|56d=>=V~%4AZ4YiuH2Y_e`_(qwYVdNSf9nYS?Mqg`ASUG#r} zDU2s@kgg4LZ%UzVbUA0L_+&~kG_|x2UVD-fshe6AlGMV9&^h@m4F^0YW9gw0x9U>( zds8GQQv~VK*r2Jm=@KI+5fjj~Ve$zgk~0!_k~YtoK7YcZs*C7?#(O0r=*kfy;%TDd zY5mYd>}1m4!n8khiT&cKK(px+k8J#hGg$k;?|lO@-!~ znB|UG=3EWQvC@qff@R*t#BnO-*}COzn5Of)rN2%|r<2Hgf12o|nE$mt_j3{a)l`CI zO5V4re6Q1dtD-!ClpHe1KHtZ!AUHJ7JO%DrpY+kbAcU(hh8_`Cl;}T|r&yG3T$GEb zFHEOTF+D9b2ThBRBEDLqZ z4?oQ!Ng&DgWnw3pHn1`UhLvkrqIQ5pFPay?U z3oc&*s9MPtlG7EkXBD?Mk#c&KcQz~Ty|lU4P^mCoDZg2H|EyAjyGpCCQq!U8Aw!jp zUgbF5?}U`HNJS*P=vQ=o70ex_9frDJT&bIidNqx*bU?k9thOpfJ?<;(phHzFqRfj? zZ_lbfa@SZ(*4QZ3m^0Kkr`CLHsB!75F-}btDK2Y<+3*|I2D;Yf&D3CAilmh1L0lRfF`(9VNm1;LL2L`d=^W^W5vnob^&K%U!1Gc=di$vDQ-* z8meA4RJ%9SrZ%9s;r#OzCGKU?nbqNih2a~>im>{g)J9B0WB(brQ3+ha{kwGfcQdTA zn>^h(k&2#bK%bv9;!Yb3HtTL|RQ&Bjuevv_g*6Q})c@z6^GCAwH&+7%3`n}y$c9y} zr#7E9G_$rgG)*@lxf>TH^CaET#|~gvUo(AU3&R$gnydC{LzxSvf~Eva*WUs`w9agz z8R=Tzgj6ul)gLHTQfF04DcNu#+9diLH_uvrNT4s1>K&DAX!LC~+}k7(?TY60WbRbH z2fyzy0@uvJDq-zP9vwO!tjaU32uZ58)RH%_+8d3P_w_qU&m45{cv zUXAA&_AA5S4$q*pUbmOh;IYTxsnp=RV(h3sN*6PslwM`(UIJQ^$wI@JW(KgigwYXGcuxkhe=p zBo(uyE&kZj{Rv}ilAg*On*3G68GDa+R4e2UzeV9gSXN`*pF6ik^_Anacw4<6#OO)n z5HTaBg{3CjrCar5tC+FPsWI{Os{N^fc+QfekWr=CQG4Dv1B*VI;%HUnF{b+QuS{_t zm^#9ya+n>mM(IYs&5r(fJnpSLasR`}aOjBQK_nzm*RHSDGJQ%c}R5p(p+tfxraIn(?lmHD~Zp(>^+2CoJ7r_37z(~V5?%e!-Id~+=? z7s68JAzq8LSqpz315>wHmerW40Tvm)MRDat+E;U8=}Qdi%u|m66&02PU`a)KX$6>* z-|2&XSWs+QrfFSLCNHTx0hZO4A2oGjlpCXzqeZaGqAJWhDlAWTmSj|x^33OTUX3me ztk{!TmRfL!;1xBM)mhIOZIywAff)zv%EJ6A`4iu=wKVgR;mXL?WFK*TpIa2 zHKMXT`f7U|TU(SqlhHIW(-a@;wLHtWqgOa}s9czmHklBy6N8>yFP%(F+xpmF2D2Yq zY?_#3ZelbeoThK@Gi`gJ2|(1=G`SoSl3HDus^Xa;z`c9yMnIb<>Ud_|(@k5#>~_F* zTBJ%?DcJ`qe<@G$w)yrqOLyXx$@_S(T!PB35PA=`y{BQn$3)qxXO4M}-j#71J!C$Z zk~q+n{-X=~C2)37>N@IEcrb`Lc<(g^OFnqyUBFEF9S{=NJb8FM>d-K4Z|mc}(CdBk zjDHpe`>*(qUe8Weh5udj+NWZ!(0)JLc++3&+`m3eIyFcK9?8(cDoZp}oGIU=yW zWp8$b@gjc7z&CClg*Xz2r7=G65b|Sa#mr0sd`N;{dAi4 zsp=8wteEAP&;E=Sdh(mhU)3E&s@rO|Ej?+^I0HTCYLYom<{>$HoEN_C$QV4I{Y@%< zays99CT8B;m~pzy(u?Ci&V7ACpv>$wlMY@}=)EZTLDC8{n4f&**m!7OJ%H|-^xKJ{ z1IP&#%ahrjeO9LtKQK_)c=D35HAW}9tbsu}=W~0C zLRFb2SoLajHCUIYyp26~Z%B*dspHd5Hj6mcuB*mza*b1Y3}yA5s~9kvpZn?;9U=az zTN#%HYZB596n7}3;U(K=F<&xUk(`?w8zb6y+-!yvspv0CDTqhB81J6K{< zlR>8L!Q>0ccMp2Sh8>*^RQ|ZfKDe~f7}KdJ+35UG{_NS;r-NjKjL(=>J-Ahi;TC%* zY@O$-68HV>!#@yZrfZ{I+VZGp&t3~Zf4=!8;LZ@A=i4tZeJ12JgX`OGzZ$>dtsl8L-YF})@GNq6|whjH*@bBp5=k{wqW|p&y>Dt~~ zhdx84Q2T9LxGXWj?tQS*x<73-OmF$x>+B!#wGS1Ci=`jKy<^J&_7^Tzf!yB}7HT&l z2t8lpl|yA*?~J=F1qxvkf4N(oPvli8+&g(2p)6upZ~W83^mUwd!lZnB`L&akuFr}? zEdhYx2ir`t|7zjtYt1GH3;L7&Zgu(M`ts& zp8}(H{TT<9oG=Ejc$T}O(#tF=-MgmOF`9`#HePg>)^62rON(vi{^L0R)*^jf=AZ@7 z*Z6kA+4zBD>*K^TrK!o!HXCt?2Yyxb-b_s!ZyV-nKccC7Ki z_TA=J9`r8P5Xc@iCHZNjH75cC1bkopJMbH9m|EHx`SKpO=S>O?kiQ19VjyJFHf|kmf+GxDt&#O=? znkzM}*SZWP8Kk&aWp(Z`r5FS%N$D`e{=Cb&Zx{?JobQnaX@p&I3f4PZSpTBXcC)K2 zr1{|W)gXn3YvRM9N*!+~Q#B9yzO%aj8|J&(I?*bG-3}J>Smd-3>jFO-ijWAfW?NCv zW*e9L=_0iNu(xzw-+)J5I?SQ+b?H`z$woX^3Sl6xX-v1uMhE;7oZ+GC(V_nmvnweq z%u=iS@P*Oc#KX7O)RSADEXu-dAKW}OGA-9!Er|!2zdeR)z@FR2#8)okBnyupzFIYi z`aotBAqUoB-f;aF7v7M?9-Z7z9Ft4<>Ti3u*|`3ZkW2+;Wth4J*$Fjn|LM5++FKLv13pM9;1HUG0CYEHY z!BDT?zxOFTW+Yqlq46Ng?4QV!s;4u6P=`@(Q;^YD47LV_)8 zw9M>FefdP?#F45GkejTqki!3(CP#hn)EiG!?H_y~R~0z27wIh3ji&I$duj5DJ!`0L z)+U4fcu*V9f7_|ozm3lVZEyT3n=;5w7%MS44>ftI_#f)>cFE-dJM$m!jLK2hkk3)% zO^bnRPiyEw=`mZ97#A}^^vJc+pD3P}PuWal#^cL7oE`7XVa9s7sw;FoZEdadp7gp^ zyQa!7ztEPL>Kf?_u32`}e5z;KcqEP!*+a%kw zf>!%4wZ702wBv+Xg)~vVRT=p;5IHJl(e&}`%u;Q8u?MrB9~&Kg-J?v<7)1t zv9Y`P?tVPlOHjrN&)vLu8(hDDCcI3kAKo~sk)b>;^f}+0fUAJ>-$*_`vV+=4!KO``KfsFbgTp)Q3l%ck-Ob;i8z* zX9Mq_E2>;8{vuVxPk{8Oh}@3ypRvAi-L*%zDf-re(zwmA35IF>cSyd64Xtrqjmc_7 zWfjkybWok?>%fYn0duL_?sVxIws&F@NvrqxO|h`ZJ884#??l=;QwO)-$&yI#)M(9y z{6)TIF?qh%5;YqRv;CUGd;VTW+iWDbH0!&CtyO141?t^u6^e^)a_XDe=)mb+5p7TV zH}PC`KWzUY4#M9lHzZzH6YQzwmFa1Igi^pkLo#;wN-|rTM`gm zaHC}a0A>I=WdLPn0Dxl?5oS36W;uXnIgevGlxAi*W@ct*d8uZPk6^3tX13dAw*PDu z6KQE_a}W@67ZiLM7J0_`ff*NvHUNY%DTXyQgM)*ItA~fq@Q522iyj(`GBA%h0FOC< zk7fXmk7kUEi;0Yti=VuYwvUX``H$PSkK5ai+y9gp7?d9zl{7MxIRKA2IgmPLkY+lS zl$4U6!Ih!Il(m$U-rk%b9h^5bn@vlZmzSKJoSv!3q#_@rH#DS9Or~aJqMn|mq@<^^ z&ZOJ=t0Nz+IWes|H?B}luu@Q~U;wUXX0K>wtf!~0t*xuAv#qtxtImh7-u$cZ@Utc& zwLCesQct#K0Jdg1wq}5~X=k;7ezuP}wzg)qw6wLp)wbJ@wceDp;rzD$wzmJC)6)0)mvEAac|a$hSi>( z*tN9N&(GE0<=!zY+D1a&URvC9aomW8+mAWhj+5MfzXD{^c_+=1E26U|i>RbLWhT<)WbFxVP!L zxaYmS<Fn_3_x$fMDeE*Z>tS8)kBsf4qVBr6@6plh;^Ob;=kW0G z@9+2V{QdB&VDQd|_tw_*>FM?E?(p!d@bJ#~_xJhw{P+L=|F&lTwygi#kN?}j|NrX$ z|F-}C+5Z0iA^!_bMO0HmK~P09E-(WD0RR9Y`2+y~0000i00000g907_00{p8UkMyY zu%N+%2oow?$grWqhY%x5oJg^v#fum-YTU@NqsNaRLy8 zoJq5$&6_xL>fFh*r^$ang9;r=w5ZXeNRujE%CxD|r%fOt?uiw97>jEB3xUk{Fh!ZQ;D|oTv z$B-jSo=n;94=R;2Yu?Pcv**Z{iB1_!y0q!js8g$6&AN5!&#+_5o=w|o=%G_Q=dR7W zx9{JbZwuYc*|qWGtbr?E&b)b1;X#RSmJXM?^Xu5NbA}GodgUqW!i$R^PrkhQ^XSR{ z^RB(U`}c*puQwW?et@|5=`RJJzQ6zf;>`!&fCLtpmwfEy_m6^SF}R?9`vEB7gyhx3 zo`D!Xx3lePXO2GF zC}gl+W*MfjX5Lw@QBycut-RW1YpuQW;`{8r+I9=>zW`?@Ze~*;W3a&i9E?oD2_w9) z!w)ws@xu-`9Pz>a2CVVMiVggo!U+G{cd*D5PdstS^+8;+!5MSx^2>gCOxYB!)NJ$3 zIOnYM&OGDXGR!~+Etkxb(cJUVNGEOc&q8n5j|(U+AWdI}*w;hTKoKpO(Mosiwax3W ziFJYfypTmuzzA@5TxGBQk3UXC0Myec{L{8kcYCXKWL$skH_~B`9cA7?0V6ltW(P$$ zK2j4tl;gMV4HU7hTH7|`IP^RUVH$D+YP=8&Eqpb``{;UHtD9@Z+eW+i=F@-!ya82 z(13HJUIM*GJ^nfFdkj1q1oP%V{Y9`S%c~pYDtJNIxd3=VIiLtfNWv1D@PsH#p$bWe zmH-a$g@^HuE{Za`((!MBH>{on^S8qu5)Vaco1g-T;=jA$u0HpJodwlryUxteEG~qh z6aizMClbYR>7!uj9%w-b%I|_g5u)1|H#MMeFM>~N9tXV`lrwt9ieQQ26z8~?D&kFn zXx$f>13J8!~w%p; z=uD?N*U8Ryy7QgzjHf)!xd~>>ahu#^iZ`_a&crwa903DIGww;0edg0B2E|H05#x-1 zr0Jm$ji^K=`j3H55uXQ5NZx;ZPYf+?9OaH zI?|fj^rrtQ=|u}lMBnkTD}?jo?^sF0A!_KQRgsw+D;WY&B1Iof<;zFk@xB1;Ks@fK zj{uY)9#z=qs^iH+eIO7Xu?B#w>o6-?)mqlEw)L#ynFkC65!bom)TTO>;x^$n|4YbS zg>Z{&oKbZMBcxJAsT)uoRGoU1#Y)wo?+5`b)`-Mv6|0YHK9h8jH7sV$|g6JB%8Sibidb}C8@0Tiz0Sf!L#FH@Clcp|$D)M6C^ zt38i9*1CiFmbJe0wQpMSd*AV>LIdHEYj4*fVBh}Mq#+!N|E}1@52_D%=PMi|*H_6c z4l$+i^I-iTdA0}(GJXU4u2jOCjHW`h#8W#l2xbrf6QB+S`dBe;P4~m=|E?IhF!&!@ z(mPoK!vGK+81Oqf00{M(=fC0kFOt`xWB@Z+150jllAWwuuogJLb~SKF^9sXlF8FbX z>>*J(_(i||BZEY3qlLjpT<=0LrUD|$Vhz!Q6G!#L-81{5X3Ma<&bAP;*8ri zYM+Mq&7v{NV*62p5~G-@C|<0cQ`~_^R8;^~h-zC3t>_?&XUK~tk60lvX-GeM%FUi~ zk}ZAdx(-;=5#{s%_v(aMo>7dT9(1?^E6Q(2lDqf=V}?W=mGDjt{}>|(!L4_#YkA*U z-rZ#?W79%x_PRGb^Np{0^qU9%?w8;OFF3-POzmnr9NXCjZkL5C6nywJdx0F}5`TJT z4wpHR4wmr89qDmHzLG%fhKjq@w*YA5_{Yg`!jBL(TMAvu(?L*{K~eSLcxfM9G8c6{ z=z4{9+@6#_W#xjD+Ajl;0DDWL-pP2M>YhgG;YGC{FXuO8t2)}OlA5bY{;IOwnpVcM zwefI;JXy_JA16mW%TuSi#5+y#j4s9PPU)y&Xqx%bo4!0%1&Q_=f)X&;S1W z|Nj6OfC4yx1XzFucz_7#fAtW5(${@RQGa8>ehxT+R)K!S2Z2a&e-s#f7KnQocoZ7A zfw2Y$vEgKPiThI!FYZ@3(B=uF&)gLNo|pMi&Y2poGTQ+-H> z-^YhU!BX}CV&`RjW;8yfq&i>$c#^<60&oR^H;8Cah;b%=Klq0)h&L}sZ#oBwmGl93 zmRS3?6~NE~fTv^l0Aidd7M|#Z*d&UtM~XUDZ>{(jcnDQsa5nf5Z@-8Yv3Oqo@C9sF zi(qk!X}E#9D2FsuiZT{+CRRMY6N`Njj3H1Ab#n;81_jsyLUUI)H8wog2n8+mL$5T8 zmGnLkHcQU60CKk3p%1i71l%h?W0Hk)P&<`o=%A<^q&hN!{~jSb&zjHgj1yk$rY% za+5{YLyum$6&^W324nm3LP>d-rlI zRX5AnjDMLGfeDI!NSM4g8G<;HUGa)UM2n#*nqVoILTQ@GcWTk~6$v>vj`^Cf36!!K ziM5nwPGM$9L7c-mSkA>Ul&2{fsmYt1F`5miU>C@c}G%dorzSP%%PmM>71Pb zo&SJIH@867c@*c#VA+`zfW@85;ho_Jp5Ymrq^V}0xjVN>OBu#Gu9G;m(?_NhKS%Tc zLv%!Yr$2MqcL@YtuVe_S<40*3OtcxF^0^t}iAi4;Mih2K9+o~rWo}vUNdMEJ*mF1* zH)wl=ai+F9ssjvy6=>b_8}Jz$WLTk@afYIjdl_0>tF(4pv|I~>Zh6z5YeQy@L|Cj8 zVd*2I{}UP;`ImrD8l_S?rBqs_R(hpanx$H5r3>hr^@(ok`9-ZZJo%!sLZnSiAN7SFG z<^=bncC@5QgJz&*q;+7&M5KgDr?hs8+N7wOPq^q9kJuZhI;_)FtcxL;OnQ8ysI1w< ztcdY6Z~3fYVTaNRFw~k%$-1q^)UC$!t()P5T6nJLny%`)uI$>b>B@y(8l8v;t-Cme z|LzB_ih-liDzAe{uhbZb`1%+Z8j8XSumQUm14|UaKmZI&01j}BX|WF;KmZbO6boCi zN`VLjkOD`cu^cO*{<@C_d$5U-utK4+5Bm=bYXG2`6dtP;8cP5Lu$~ud7B9;bH=7sa zno@o#kV#3hB}8cNAFHqwYqLs=vsJ6J1xr|M2AQW= z6vwI-%?Y%GVX{Y?v=}QC`5?1rv$B*Ru?<_X3(K$^8@Fmpv<*uD4L}17YqUd=whmwn z1i-RELAMMm0Zx0jdAqk~j2S^v@@%*XIr)e z&;yOzJPZ4$||41;YCevKzRR@UkAeySFR78{4?bJG=joy)T=*(%`nno3tsb z7T*dtAmmso#$xxQYuYG5tiuDS(>S|n7GbNpf5E!JJC zSM#!d>r@gexZ%s!Yjd2OvD@u#oL>-8cfGmi^W>}!G!F?RV%`@OTtp@#i9$w zhM99?e3M9-#+p2AYdp3>JDx*9z;@d_X$!;;Y&y{!z88GEfc(T4927wn+48jt8xQRTu4@STo{S$NLV>o9?Ui}>~2{QZwXw1o- z3>Z1wxphmtXIsh)o3f>>xp&L4tsKjT8?}tA#dmwlPAtfZ+{BLT%9%SgrJT6U6S;3o z&*a>&pS#E?Ov&bhL^W3*b!Wy>)0PU#cdhd@Np!zrVZ+&s7dea+$2_hA{S>5&7ZN?u zc2Uts5zEj-u1@iv1L@Iz0n$aGv35Mt8J!s&jnZ+U(%nbWFfG%3LDT8?(v=a@IPDfX zeStjPdq1rgLG6JFxCE=TbfD0+l?>fHxGF!jjb`{sJ597*y3IS*g{UnX7ntoBHTu|U z;ne>M%3(A_fz)x7a6_o3wdF&i4+gB&&8h0cK4I6|Zp7W;6OZgO-o)eG*lpf~$`{AI z7(T7sUctJ?=|CaZr;u7Vd^xD;mfbp}Mf**p&#m8t7Tv@JqR&m- z!a3t0YTz3uoHj0I9bV!=dZY+0)rFbHaC5C#vC&?U;wp|6EFR#6b3c?sWA-Z%cCF^c6nPT)yuq8{htCQiwbS*llIdfo0CMI6==>CYQE-FanvP9=HGa7 z>6oG)@X+bzj?;Z(z7|U7sF1~N6_ZZsQeo*VNapWzHGdXp2nhoXnFY1ulyeHraY>QO zypW5&6{)W3P{HanNao!`M%bk`bOw)fCXOV5fDbT+$(PAg6Pcf35$wY56vV!Rm@W7Y95y7n47f(5pyyIZ2rieH8>>@JMm+Uzp%wbn%a+@m<03 zxzXtHzPgnsE%FWi$!jP;C+<%wzw+_w-1C~Pfan<+AM-;&^3(M445jlc&hi8cA3Zo%LG3^<3ZeUQd8uZS^f5JwE^R*P+*R zRQ6`y9B4mBYQOf&(e_jH_HYjzaxX=6U-!Oo_b`z#sg;Z=ttu)(%Lndfu~C0h#ZEl4)LX z&L8O-Li^aI{8{1q(vbbyFAeR`4&fjTD?t26f%}4!%zH;aOo8T*Sw7NF6{%?mIIxwZ z+y2=>{ZW;tr3z=d1!PvJj90Rlu&*zn=PelRFSbl77dMT;CS zZv0pAqeP7$O`bH_4CTTpCUvcZ8B^v=nl)|S#F}JlLJ%2{288lF#D7!Ay z2V%y6M;ihNFe)(s56Fh~xrY7kwnM|Hq3R9+1tLQfl&7xMP2#W7-2oOPQystrWE4n~ z1z~55Y7VxiC=u{D zyfngZFO3RIWAt4>w$UBt4`;RLSMMP_+_1q!_7Eb>Eq2K^H zIH}Jh84LV}OXF4qup@;8l;LLN)ArPDJdv6UlusdZv+2n|Mxi1c zIS!!UpEek41JnV>h#tC6tQVh$%3~ ze1W+f1^q3pLw{RNze9}LY%P6ANX&~um9kD!^R9)|$7JJNbJ(&@LkgN|BQ-DEoSqCv zgabyYa*c2zffcXbXa&|kz8V@Xz>XLm)7FT94K{$3h|TO>jW_OWS+Sb`RR~W5d+Wyq z9g>n!w+!zPc*; zHKTwLasg;u7%cDHc1s|`K}#|u;jedE>t3fiXf1%kK@6HwbS-r|PEJiayl&q94%`L3 z2c+pqE5ONNYBAaghm?ZxS?sJNrOJ!35;t<#F_PSbN}*1Ko-)FhdhZN5&1_! z;)IZkgk&U-s7Og3v5_}Q#UvguWg<*uHq)6{RERR486j!HgqhRC z<}{C)&5c!aCD-I;IET4SaU#o`C;{gLnXw5!w9}pMgl9bEIZt}l)1LRlXFm10&v$Nu z8RZlUIRSd9bDkuf5v1ZkH*!UV8dHG{HRthK89b15ZZkImm%EOHIh+I$pi+b=5g!^- zf=aYB6&>0}iH1_N+@?1g?G#6E;?Z(~l%%c%;Z2WKP_2`E(JafOiI0#1g&xV2rOdmj zO?Aq?oGw*PJOznQD+Qg^L~bzB!i`b#Hk;a@=vwP)SB|1Ho$jS(29eQCR?Rv9mican zI#udY1?p7pKy@QN?URZ&l(M`aB^uE3Yl-^tf^$VHDf~&-eF&gAwVyOrI{A`sXfbwFks z87yqmf-`8e3}}=3O(S=@nanqVa+JL?<&)y1e&8!!mb1C# zjnwxPl^Dk?1~HCM_ae?Tsqr;tF^fTy+SQ~M^q5Z#!7Y??$`(mtUyPLHT*Y;sy5E*?fD1|e!D6nhrD zFtkkm+>2G;S=4OU!WPWHhDz*$*SwJNbLoo;Gk8MSrP#u*cY*GB#Du=JsKhKhQ3+3& zfz_Vy1-0p$3VM&j6NA8b#x;&{PfWYdGqLuyk!VtF8DY|VI`y}ctXE+;}Q14loy69%EFD;TTY`L4k z5|~&;CNhBso(BQxM3=`p_KkFf_u>-e-bLMKzL8}!eBre?h1DS*k9BB$9r57$sy%@T z(wE-!q(4SH)KPYkHWlrfCHdM--u9i)cNl|UILjYDh{(?(-z%waErzXdHke@$t2i<@ zGT{X?RD$U1Scf`}o^((2;uytWHNnfgUs~ke6WPc-^&`G|=t@8T^a|HTlliL-Z*<fqmRq$!Fuv4_2T^E*15^KBw#`&l!8WZ!1|Iv3fzK(tG;;H zy~wk>AKR~B$iJ}*LCqV#5;Q*)6utC=10;}wHC)3m2!lA-1Xqy3_j5fPl)vpbCTyK`aEi-jlJ9o3nV}264+ZjI)J!=!P(mf-q43gGqElDM$lks4r%i!lSc7 zQ#%Ga*n(B_y}R3pGdl%9{Jt<0Kh^8JdN9GzD+NzTzeb3ITC~MJXoNUq2KS@Gv$I3o z!odW3qJ)AdhSG`sD#Dfn!+797Gbjb2LpA`Uym+t$I4T8IZ^ z7)Mt?hLv=MRshI=G{{X%$8oC!TBt8f2)JF4g^!&7GyGe)L1@HyxJT+UNp)z&eH;Xm zl*N-o24--|rfIGe;!ZZHEPpo1!f$B9G1L7;<;l_bkad-O+$+IqnQQuyfN)CDH{g)X;FyTos}HS_L}5I25d}w?u|q zkiJ4#0%zRN$@B&fHG}3WPbsuj0NYeR3{GU&1ZE7vSR}eh1=dofgZdH$>9Yh*9RwY1 zOjy0RObCT`bys)ghJ62YPG98J1|8Irt5*gJ$u*^epggi;=($RWMc!P8X1%^Dv{V`M z20xv%YQ4DN?1pURhMZ%AfweDCSkpmpQ*4z!LNHf!ty6V1Oy*RFU1V5?1k`-BS0vR; zVLYOB;-{FE*_ox;nzdPf%842S(NYD^8{0{FFHU$HlTylW5JI7SXWKgJ000RfCF3PgFes%7Bty;JyMnB zqFvoKCkiQJtO;NB+EQ(~zV+L_rO&=)+M@+RCg{;Y_yrQAiKi7rsdYpaj0arcPPikw zRoGiI2-nbb1+o7HM3A-9pWH|_XhJo7!$u&{likdJu&&p;N|)V;`YAD#f)tDx5=?uS zJ#;3e3Q6OmQd#ib-vwUZy*RiFPNO`>csK(g=(mN_+UESVO{K>{fY_Eq#GLE5O3+$R zFg~tDK4f@H&b>G{HOk`*SwubCNu0!5bjxy7&&$G9xm8`dU5MUMh!ar~<2oO=x?S2s zHEr$MAOPS17GMEh0=WAGqm{sTNQA4+zf_b)sO!xyT>?Zc-j>9~MCdt7wcM`#T17QT zv9(5xCEHJJzC=|(Zw$zSEXQf>qxY5D*2NQO`40RwACAG@X0j$Oy- zWj{=mTq6Gn(cpAmvqUn+y@Uy_1Ue{Qx{Oj>7~1PJKw#a1%q7R;_1F*=U&bV1aXZy` z$OV;L$)=3T_I2OqgkKlNp_auHOED|wNUi*3i2WFW=va*N&?*&U6#m7?`nrVo{7XCF zhC@c=L_Xw1AOdqOUT?reZs3BS%fJ6z;`Owz#4WlnHR2}*1=X9&C`H~NxLyM+RW?Ar zGS)=tvx5m{(=R69`7}N@-NF zqGmR;2n{#`WP@yMLpQ8MDL_OfAmz^-XGo4xZa{+|*k;HygY89pvz zE*}$#fNwDi>(Cbql4z(C4~wdBASW@D&+>e2sz zW0Rm?oH=N#4j-J!7XpbanCa^6xM5@hDf(iCXXRQmKt55316*9d+73r3q+%gJR7;50 zZg2&vMMNP80w3_}y8hdp9$GUVQQ-8kI%f@V}?hL88vLF9R?P8Lm z{lWve_5tOsFI|*P*$ib&+yf!-fhyku@nweJ?t>B!g(DyW0A>Lh5OW`p0k-A>MW`=Z zKHfW^avxZN5O2SAAo2QYf;M+^RyfJiHNiG$^Ce*HW~Jf*7IXqeJ|2gr_(ktPl3%f? zA7B}BuikHrls;Tggf~zGMTl4LHQ5s_Snox|PhDy(MSH;kHXxB?;_GWkXSzo<1 zPVYp|Z1vvkVf<>4;B_YJhFoCZLvuwE$HXHOaYz=0K2U=&fWm3+hI1s3L%EbbAuHLV zT<38YvRr5d8Fa;Dmv?=ab9JrcQ=H?6^_j;7tM5E!qIiY(tXQ~m-(zO-P6tab4UBQf7`34#YyY~u7}N- z--N7Bdo^Uk!H+~ZZ2E-sai~6cAu4iWvU(KtUU0<4cb`^Xk9-T=d-TNlvTsSzti`aG z#BI!cvhQ@Bx6t*)`S6T+1;l*QO;3>j{QBC~MP3YdEid}pFM3?meAF#cC0%?b%64t< z^p;d%eK)faC;ozb&2KAvDfUL$?|Hk_cg`p9<^Q(fZ^4*ENa~mV_RV?Xclq!Se-_k! z-sk0d{e2y3{9!us*fd9=mP&;$*!PEjaCd*Fq|3To$@*7MeFO+^0tc?E_wV4pdiB-` zWaiLYL4ybtGW7OvT|tBi7g}`a@gqoq5jB!5`EN=|T_#tuZ0YhP%$PD~(yVForbd-G zW&WU266MaILT@@7YV;`5q$ZoqRJaghM2Rh(K8-3>qf@8@Ax15kwX0W(7@eB@N|xkT zsA|`aRY((PPNj0^(ydEZr`?|aKkf3h=?q-oz=Dl}V>FOo9 zII`e+-!^mZ?D;e3(4t3^E^YcW>eQdFVs7oa<>h~qU(>EVcedQh8e`k;?fWshCW#~1&%rDxFe4}`uHP|K?*q}kwqGL zB$7!gxg?WKI{74&Q6lLKA(gq=SS6NOYPltqg6VPjC75A~8J?G8nt3LgX|`6Tnr*uI zCY(XB87G}}+DYe}cj~z(pIheHC!m1}YT%!P8hR+AWL}vlqm4Q$U7?RkIw_@yMOrDQ znQH3bqMLg9DX2DG8Y-!!YC5W^sjA8-s;j#CDxa;wIxDSi%33R~xq^ACuD$x&A+Ns* zJ1n7Iof3O2vJ(cIEVIpix2&_#N{bw{(^`9NZPjACEw_nj+by`^Qf92U<(li*x96(6 zZcOR2`!2j1xf?IN>&{y*zT)1SFTdOF+b_V<{u?mC$qrmF!onV$FvGd_6c7MA>xki^ literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/vb6projprops.gif b/documentation/api_extracted/vb6projprops.gif new file mode 100644 index 0000000000000000000000000000000000000000..17fab58cf0f929c0e64f292248be5bb72dbb58df GIT binary patch literal 9295 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 + + +Creating an Add-in with Visual Basic 6 + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating an Add-in with Visual Basic 6

    +

    Obsolete. Visual Basic 6 is no longer supported. See +Creating Add-ins (VB.NET).

    + + + + diff --git a/documentation/api_extracted/vbaddin_newdll.gif b/documentation/api_extracted/vbaddin_newdll.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c328008bc692e9531a3b7f7e41fd467205f4c4a GIT binary patch literal 11636 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 X=(!>E!XAo+LNBACS16nh03h@~WIXUC literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/vbaddin_selinterface.gif b/documentation/api_extracted/vbaddin_selinterface.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8b7435ee7d8f905002555fcae279ae63bc10f6b GIT binary patch literal 8195 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 eI<42bt=~GX=en-%I6%-D2fAA ziXcvh0a3$dO^0>|caVc`yKm^50f$hqZ#u-c01{dNiAfxYNr$8tfYU*cf;a6Dl>hGb zW)C2E29SgTWH$kddjQEZfa04wfF=}06AIAW!_nLWXr2Ky?@%=F0ESS2;U0?N9>DMn zV0edO_;v;cusp-DJOfzX0W4uS4rc&|JAeZW;10ui;|n7Sg;81VQ8}DZx!+N}9ml{p z1MV0TVVsFD!9-rB*_S21VA_e5J40uCkjLo z2O>!XR%C?8Qb7fAppry;f`C0qls!qDJ;gUfdx}(hnnZh=RA-VXXNqrd&NPY6-iC%$ z5Jg7l8%@SNMaI3iY{+Ija)J{D_Y4L1EZ?%^o~7iT!&_F| zb9ke<=dO9?{+12T-uS+;JPUO=i*Y|o^gT-tJxh-{D|nN5_ogDTq9Xn7O?$yzd&S)V z=ngz^1_4)qAQkP9iU9~{0CEO_oIxS&VCVn@3Wh+>&Y-Y8XvM%@`@r4+WDgA4gYNwo zXJ>nNXK%wZDD(`vcXoGoRxxl_0lotb+=0M%?QbA=1CTrDTh-a!+vT@_y@9>ez(8*x zuy!!49ReGGz`$>yFvy!d81&5*5K!E{ZsCWw&VcqzOAGp3y z7v$ivXy>b^$k*idM-y?|uME}X4aQSSMUg7h<`4g2&?+?^uHBKNS4|e+teuR&{UjTM z$M|~&) zt?6QG=nu0QxUKnWuiHQ=OSQe_=4heLVGZ2gdUs~#b_ctyEr=#y)tS~4G%Mi4XVFR5 zwyLE@IVRA!l=HEBYJkB2P%mg80)gFn5DH!KdN2mx{(1=CXD8o%_vHC6i8o!La4tD;ThcoUbTP1znO|dI1*-dq9IM_{d z9bha^g> zdQh0|b$C#e9nN%EoS&q4$on`1Cr46V8#Pc?oeTRsKxFCXJ}x=0KQqeKFv+FFQqx3T z&RmKotoW%|+I>8mk^@KLU8L@CabCUCa6!p}P1#Aqir3Le<9fK!p}5<5H;}BfC+C#p zxZ&}Th~vI)QoJ37dyKvPyl0fHbw5{$tzlMjl(|&IElONHeDb(%YGh&3SHDAV3bd)~ zc+pQ}TYfP>I)RQ%;d@Rc*K*i1Ras^kbB>KG`&@_4IRMyF>Ug?LQ(}8JSc}F$QO_WW zLM4EHf~v^!X-fLNnxoaAGXKf-jJn+TiMUI$@a5n$MqfOcQLa5 zT{F6?zV8yPCL8B+0+k-H3h0$4QPG&j(}1zutOX*o-LHRy%?u2cUVbYQySu(p6L<5* zY*+x@bJcOdidXqqdR{|fm`eIYzpqlQU?Q=ivg^SpXGCDg4ssAPkSp1(-!QJ1WG2va)HNmZRx2uJ@$Jnikpg{dv6b!Mc>e z(;o!7-~IR92y~_%!GzIw*nWZEC^@L|K2Ahn2jpu|I^fYfymn&?c7>9EzZ@io>JP9# zUc?7t&$rtSKBpJ3`5%l;bCRelSbcMWE?rwm)uU z7D7zq7~X5h#~%>@?#^Fh0h3>lVd}`ZRu8c#f$$`X$-4=MIQ$Okal884gyRZo-b6QXNXm)?F8XK!u{}7zofmP|U9w{Kj)XD3s(% zPCQVBc45@bUM85}A}^80j=+eX-rOI9W|hyQ9jpKgnkKA0r=V&2gP<)D_CD}BkDjbZ z_4~+7=Hqn{={H+!1KQD_Z8;b>j^qnn#b|~LJp_$7M2zrEld{*!D3Tm-s1ntax>50H zM^lo|2wd+VeQM?GeRhWIrJ47t@Qqa&QemRjmy})Nwd4!$@xuFwh167mJXoLHC zr*e*d2?0)28PadQCmz)SuDx`lvs`01#$?W0czS7ExNVG&LY-od$ynp$-4thtoDhNQ}fg z<9kWM>&7&KeKr5-i(3$_1et4HINArhAi_i(xRySo&{?j7I(Hv}e{!Qa7GnNQDq64))1?yvE5F+n~x z)bN@qdS=%|pRGTcN`I21iqghY!v8piK*ypHsUR=;A;Qk*gDLry-ORJdZ1cn9JovVu z_2tAhzI6rnG@g^Ed%u1}xZ+eSjIr7g(VV14oKz!1l4$ch+`Es4cnU?9L-Ku;yfifu zRU>_Z2?F}x+YB0Gr!+a+(`@YaeL1zq>F8JDHP>zw-HFG!#`POU^LBJc-c1LIEgZ7@ zz|-$AxX%cicR_$qWR#j12Yu*ba+aVze-`14u-Pe2e8+W>+RGtHvufbGMDg40Z^yP2 zYRk60u+d*xKIt6WcIO`_1IjI5Zd+k5=kcA-d*X-8-p^k+*7^>s!Gx-xrHkI z4n&OzRbB{Hy$@9<3eyw_)7F0zs-GNY*c4{G5N3KGW=<4tArNk*A8z9vZkHTx-xThs zAKFaoPS=H~q>kyK5A^Z|dM5*aGy(kF8sLF`bub!wT_;;-+aaJ8uit(>@^Iw?x zUwwr{V}-w_!+)$4BHj!BLMQ=_XaD^YnYhxG==3qk_2a)U!rI9!~o4 zHPO!?DHt`v7B%r}3Q*|$pWGsrdr7j&VshMK;z>6ATtf1%$izPeDgVAErU)iy4gZ>q%q>1tYaoH;sL5t0US8x2dNc|IAsTkB?hTJZmEe1sST0zO(iLjA#<-e6P%LS`;h6WpN=1ye4?Ip`!%a9GV7!(^yIxd;@Z%y}@# zf<0stl;%teW_wF!qef+;JSM*%$)!roVOz@nl$tBZlq)QhFaDS-B$SV{l=sOnx7Q~( zuOwG;DHp3W2YR05BbkS4pIzHrAW)hm#8mLqoNLjN`(-KD@-SD&Fy}K<0rq2##*cjG z!@`@CLb8^^dxgSpKMI{%ay>@!dk*q_QS!Bx3ayv&L=W>;%?r3&iVb0@1^TH!`^}3i z4hzhga>EY`ZW%LHvJ1Zp70TI{xH9EuJ!Yqll;r&={r6b#c#vCgSQK#h$4)S7P%vjx zy{rKZ0E#MWu`g?jDrgMk=fL&{~bgTzO`g()pu$ajBey zq~<`V@553+~De3!BeavXn>SUvTG<{%e6GLm$U*U#7PtDz>P1&Q(@=r}7 zADg}Gn)1?`l6;#be>ImWwPcdCMl3fAD76MTv=;idC^4r788&y3wDkzL^%=EgELT-N zwG6bjjV-rzjbaj(!Gnd{XVKf671|dZ+90j1!jUa=>KN-Vl8#N`j%}lkU89cSr*@cY}|9++3L%y4kw1?U_`r~mI&hwv<2q2|M56enVo_-HW zIxsAy=X+BRn_sU$dL)NmPaQ)y1q+TKX`kd+gz#85!*TB#dY@EVpE65?3`?()Qm>a? zuZnTMt|L%QIb9>BPus8Gbga+756C^%ulU?=)7JOJ5omebt?-O(`#d0-K5)_8@3_+M z>NiNmGU(AX;A=PN{XE!OHaOQc_+x)C&~J!}c_WToIX<8Hd2XR#WK?}~kpfVDR{wrh^H!-2J3hY9N%_1PcoL>Xfc8tY#f zA50#-@4|jezTlF2E7aj*;i^ml>jC6QG6pTOsmC=MrJ znE_DdWSlK_R!Sv8VSHM_X;z*!LgOStNd>493zRXL^GhDxOPIQ=hO-dGzF41vox`KP zj9fVObt+FRKLd?LqjY}G>bFPsclGFr&aqd_{b-u2N}l&0pZ6r2ft}Cou|Oiou&u|z zVhND;Hi$aus59oQ|Il1{N(l^YAz>4|ojK!SQIhZ*XZ|uTN!oo$@Lfp^sgo=LggI1>F zNmY{Bii-J4vgP@gr6ty-<&0HHSnRR}=3EFXbk1aGlewoncKJ{R3SEVskU`g9mKMfW zuPdOT3(Gs>&>+^8UDp*0mB~maEZ8LcDC_h%>j0U^Vvq4+@X2b!>gr?0^1qXLca=4% z*wsR^l^Ep?s&uFt*;?+;jasKw0=CU$%#EX;5rJe&beWq!lSg+Fz$6La8wu=-YPcxY zbp-H?zTdii`g$14D&6?{n$yM&*#@5J_NgfJ40H2%6}acyO)j>{h_%L`x}yu8Rq0r} z`#EhuzOj=5Y!<<~me@jI#l8e!pJ#6<ALp1}9XeT~xLqDo||yZJoGHeE&@a@-<^< zpBCF(ea4<1+kU9n=1-XOT1dp2=jmn?+b)a)>q>q1TK&L|9NXR$3m&>F>fGZvUXNxv z61Xs%J-%Hny8j{Wu(%xxa@yN!Khz=J_XKaY{9GkAT`h=PB&uBe)Uj_`IoElz?<=rt z9Xn%Hv2ZSdl?q)DF$FGQtn#vKdnPBRHZ3z$L>^RZ$NR@FVnsHWWA99kZN8388e<)v zV}rX6z^}W$7~3%{CvnQF5q2l@agnR4o7b-~cc&4n37GOen5`HSndFN##E139XDC_G zt6f<0fykZ-@B*&zAL8Nhvf#bDu;8jDkHv;g$yaAHl1Fhasl_ipnO)KaTry-`GId_E ztX;CfE;%T!xM1Q}JZ4vX0apT9S3(n)t6gO`Dd|4HFYHCn!6xUQUoTFSF%>(nmDjFS zVb|&uH=5!%+GaPp0XOqAxG1lyj(3x+Gj zotyZbhuNK1z@2y2-H*;YzqLDm*j*sSeX#g_sM&pZze@p(>>-olG5hVS!0a(U;IT04vAFZGbnUSm_E<^rR4x8gYxYzh z@YIm?)YSQuGjYGUe(z0v9j|hY!nP=9_5dIBz+U}4w)PB$Jx@}+OpCwFn!P{*UKX-m zmO5WnU~4Z>*vmS_>!$eYHug&g_Ole#^O(xBxbyQ_+;x)K>pTqm(hPPR02@<--FL#C z*WMNbFu;Z6x>6 z$!fsjy`KFn=Y?4rAui%l+k=aFU#jp=@@G_@qP`HJFmlW&kA2llr3^0GQtjfYG|>Xn z{#4$wv0Q{adqfglNBvT3AaTC}&qhx;wzX`z_XX`h9K~K7ix1b%N)l|>A|?e=w3uq` z`Jq8bhfyaxX3&(E#K(2IG#*#0A$_rSD_8~B9YSh&tbFSfWgf{xtH$TlQae}N%^c8f-1PNgM-&m=7OUmZWiMHYng2NXVq>!}4P8x) zxZGoGqd$vc`Q_fKN=t{^W5ICusMFK7s=R{mPH{EBhd--QbZfFSuIm7Wr<(hwlq9Yd z2_2n-Ve$h4HtWQaZ$irn0%;64vbdBQOFG6Shcxbt6lULX_N8LcoxX20b+mci8QX8i zWoG_=&wqv+5kK;{c44GYbM;eAlqQJo)wZ5@qkP10kwU9kR#!N$Zap5s9XvwoW$g@A zuAyg~Iqko<$akqE{@SV`-r<#g)QJFucN5*x*8U*LRiUgQMLk^hVdPV6D4QBP3=#30 zGHW-+pFXLNVf9K1gmabL+^cR*1CLg9oK?%v>*&EqzoS23X*DvQ$?a#q-*dVYH@G#T z@ngSx^#*y^HRb02sOy=1KLNEVj<#rbL{9sCRe4@|)*e*f+P0soV)C3WnNG;#n%V*M zY06Ag$9gTfr1AV!ATZjF6n3u3znw4X5al=gPV;iH2*n2nD;ntfb0W+?~sc|h_*tvPHu+_QsY(Uth{cg9_r4xoE z;>vRq_TGk=7mHCm?enUN>mUVC#BG?qsLgGZz0>H}lG9XSv2WRUWpUsE2@u$&!cTV9 zqNUgFId29Ob%Wd?Nw`NQoRD6`;;9+sfjr}CuBW$be%?pK0FCZ9VJR>74PpNj9(GSM z$!->^0)9Sj{Tl4>-MtFW^jY566!|pq9l8B`k{gzS>fYM-R_})$)7Pin=6}Vnk@ZEd ztgr3Jl?vKt|HczC3v%p_#Aa-vwtIUgX zUiXWMdMJXnIZEUA&JU%NKPWt)=n8fc#1Ir&|+iS0l zGTWGwACz-*^LH!_LGS-oV(c)z2#iSNPRG#W6?|-M8jzlb)h5*(GWzt*HH&+8i?K0s zT=CL9yC}p~1QV^-w?`&@pv8oaw^qReJoSf4m;u`6(-q@2oA>URgdO{CG|EfUBkOs8 zh0k6Pp>Vc<{lx|<{n+&+&5=yVN~i4EqLq1j?Zo}pKqc0D=8wf}k(`XZCO6t_Eh>I8 z6$)8*1gc1Z?p&!JFQr!G{_O7$I;DAeCQ4tTBx+3S%Jo-w4ORR*T`s zZ|yah=k`d-;CJ5@Tfc!QZ9|@|Z0zsb@FCTIB9+Y~3Lgd+jW7KpkGDA~1V=P?X`=rS zZ*p6@`g6o#TH3NypLpHH^<>Z!UK}lB5pp%j_+LjNFYF_^B(`k4Y?^;ulAe%l$ZWYO zLZ@=Fg(JXg)K*fskb{NH9 zms<3E50ra7)fM;I@$q}m73L_WWEa>Qe1Z84=|OiwUD~Er{cZ4`$lEgY7>-U3eykmS zEOB(XUn(EfO7zd=*WE@yVn%y+Th6pd@KlEsH$MQc3rU3RUA`C_uE6WEAk4iB zy|0U#sjEnlBmEmP`dAkZ-sj`Ru1YstvWKotl5Tvf&tr_;$3mZj6+ZvYW8t#zCh-tJ z=@U1{&3)Nw#Zu1wcq}-F%8Aj-5yRaK?fty8!Hjgw5NpZN>eFo>{TUmf+c=GR*n#io zau01=nyPz89vW-iQwhp!C+c%|Fm4YFtke|#TZrGPrR1opO{n}_id#cUNDEC0qg<%I zrG;;qXD3DShty|SbnA?7>rRM(ka9;Ov)Gen>u<|$u{Pde?);iEGHwh$iZKz&@;omN z>1~U)`&O>Yv|jDUy!Y-c4Q1q)!d#^J(nh|`EB1X`AEiBK-m5>i+M~5M9kuIQanZ80 zPQjPc#`MPs3-)SO8GWkfpOPWI?$0->GqYmX{#1D*`Ki8+n*I~Nz!QsABDeK1r%gRy zu+IS1bJ1E)g|?RXc`tp^7LRa@Ui>FX^}c z0n94LpLxba;*9D4XiNOfS4jP&VEJd*FuK53IxiLDb3m(tEsykLFAMEV8YfSW#t~=} zeK>k+xPH2Vfm9*MFRwq9e~@c1l4a<=Y-nM$XZ~qm?mb(Wh^*_ZBnWN9cy?sIRtn%= zksHmy@~2m(URLK?uE3}=k4DOwS!p+|R!6cWAYU<(xS{HbDScRhREu++n|6SOJIY|B;eSYpar9ZT;AY$+Msa0>=+&(Sc`<>M_|1YEE5J-qBfQ*6Us? zt3hkhu}bv%G6dnE*^#eSRWScVQLd1|d$fTeKJMUN+c?mVDY?F;Pr4y0Z?KMrwUDIq*rQYQofP(; z!BF3cM+ETqr~1}(apj{40V{dd(M}Z)g$R~mW)H!CLh`0p!zM=Z``aq`!6Up@)3$pi>bP2{q9a7PokBq1+ zcPBb;>q+^ToHEzY$|y#gR@S4GOaYzP3$l2BUYkhAqL%pZ^Qds>4CGk#MS1$Y<7{Rr zmqxF&LV-3Xt}28_hJRIC=t@;JqYgDqbEi$ypuFtTgIfEq>R>ro&r0x7x?@^OTdIFL z3uA)K>C>eL*kniJXiNC!c*fMJH!!$1|5^^}rdEw55Yz zkoFBR3&WGtYkbNub<&o0#_mOf*jVr9SYvhlkoR1}b8x0dzg_^XzB8`A2g^d}ctZ%S ze3+;HtHnY*o+ga$r#_rjSA^*BJVtNPOaY5YCylk_mz7CcM768s3g4cEl>D)nWBtGH zWdF`gr*2Op8XLHSWPYqNz30`kL(o?5?-i?s)Wp=O&OwApRoW4>#MsM|;J3}yTJ`Yiix4C@I<=Pn!}-fc>;eTxm#1|S4YmNZ$#%keUhY&NZmK?a9j zxz6_|L+iX|eoWe89p#hsC2dEeD3YaeZt!;BfXok>_iaWP8T#gPsvS;hIyW*!PF$y? zD`Z;j2kEUXpk*si>;5uiGiXKJv+z#^m`7!W_pdmalAOAh7964;8NMDJ{^a*DZ6acm zP6K%|H$7N)(0tV2f&?a`GLhv;QvJuN`S=|Z|5(0tUZwV7lfA!CZxU1enepE8$*m0N z$-e!MMmIVS@4fkRD0RUn=^)Wk6esgU!EYZ*}G^ z5wrd|RYLzxrM#@nON}0~jva|gq;Htni5SkZR^~c2bc05f`dcON zGGG2`nys#&4lL>HfO)qJzsM+H`IpGiw#v(xS817leE}lL%9W~!PIwr#hZ)6P&2~BQ z$lxgudZ{lR8(vATaci3)^74_=$&;BH`5kUhdni%!tvp(eB=T$~GR;-vuYLrNZ(6Uv ze_e**>DG0F}oiTKyLwHz&@N;xD~9N zWlI$cTrVsxhBfApXanzT@*Hda-iQrzSIOUI)%;XhRHZYD1NfsFIYf5e0B zSm*dst(b9sgFcw;>z`L86Q^8fb7YaBAQIP;c`ql@Avh6p;IQiY$bfx^sUWPY*Ur{- za1mqo?Ik}mFSr$z zJ3UQ}bJhWWWqh2dX;|w0@oi$)&SKSYEU|A<+Yz6FfvAD~qv>U7!&lfrgClaI9e?bA zH;+{{fnyDwp;B5am8>HhyW3IWP($VTx0r9|nRb~K1G5EVlTgVlsB2E;3JV`ZsH%^R z;W zL7*q+sIyAZc)5WjE~#73N9ZZ1c@=A~QY?Dg-?+5J0x z_;+iVqzJ6jXI`C5*%fEpKs@WTUPV%G&!$RRF#j3+IdiS2U;(B$-at3E8Q0qUW3S6& z;>)hiJsbJ-2R#+=&pO2Idwb-4K~h%kruH*Oi(`CZqkr7GMK^f=xszvJ%88$66}2*d=VW*% zpVwHUYt~t`r&d*HRLiDPuzjf1Ik)NO*(|eC%YUNhblo=Bdtq_rhU{H8E?DJ)THSf` zm}b$8XspW5W&iBm!0tGIttvZF{L9uWu=0uP=toSvMM=N$cn4Q3omjtIoutf-+Qjvi z*kuO9YH!w1b=m9A#tm`zi6jYZfK4MR*}2Tx+3zj|^6i8fcB=6qtGk4mn9}R4Cr!F# zsLf{ixemH$o#`d0ee=)KZxej=)w?5<9m&n@y(lx?eFISI+yduz)80A4YlZOsW|6Xso zG@)u3$PKe_{K{W9Sd-D}#v62qQST6^4Kidj8q-2osp4{RyNf~Kj+^EPrn<>9%@G? z*|mgiJ2GE27VQmHj{jc?!*|$mR~uJNgv9Ehos?a=fKQx*@1+ z-d3hAi*lQ8X9`3nUuMa?Ry7tiK&zHe4McL7HB}}pWinP~Q{Jze;qN5=ul;sb$*3a? zB*|R42b3ut1(B401h|^%jkl;CioPjErP#V-iz?)Nflwvoc#+tATm+gh@iSzEzB?dv z{~nI|J5xMq(JH;M#)~G?%fFN+CpTR2Ae~{Do<6>GF(6zzV+e3~}u%U@z42wDCg zs@YOlg+-*5yy#v1Z0_XR@5aMIAkbz)z409hR&?3o~w-opFx;jH=>Im`kzpP5Lj{ ztry%GM3I-eRF3TZ`%B*WIv_E?y9wJPlA?GC;?Bj+ahdOB7My3`7ao1UaHrVy)Hj3GW75d-SQNI4B>Dm1}q(DDx3TSLhtP*u%&_Fl4 zknbKek>3;#ihwV$?OlH{m>N@^u-OW?*Ej%4#|X}o3uxAVM#`QpsYF9V z1^7SXnB%XEUmz52zfNrZHD|$anAMu-{%;X561#BoSH`op~k-D$dBB zH0=6YI^t?1URPuMWLO~@a+3yHV%ecXHZA5&yxS+85@n}Dt-KZx+i7B!DD9qNEPn}S zu&c-XI|tMNDM)`VTKt3i@vJOrS%dveMf%rO@qy3rEzW`DmkG!s>%a6$4wch!Urc2p zKk$qJZ242R$w(G=NFBO=g@zhoVJh$&2w=s#_c&BIgza9ztb-(vs<>ljMVS4ZTT*RIfygf=ozN8uR`$lZt3+q=@@0$n&cTivXERT5vsB0eO>mjtviC^WgUHlhs}kXrtqIAsK<9@@xwsYk zGTbdwasE8{G^_^-S}oH_9Xy5H6$dKrEi;*~JjGJ12j?DBo!tnoieF+@zkZl2@G(dB zuwXqhm}!ADbnsTXR~(sKwamB3D)7sn$ZLggPnM8ZkEWx@Fs3d<>CbM8r|b8B&}v;8 z7vpTGt2luMalAMpE7Y{nn?@R*EGdzFR7`Gv{|cy=6D44~h@7a~BF7>h>qgc#~1@K{P)t#CN7`m#GvCC7%gL*35DQFi~E3U-kr{5_$C_E*npmsRpR^=(Yo%3Dxf z`^jeU4l8OiT*O)JziE^fF`)mnCCQ5Q+?d>q=#MpLO>T;-?Un`Hs{7u5FFP;QgIhFN zH`VMg=uw2;^CIk9NV;psRVGYiUyA*4>QBdYp}6RwR@ILwLh^I6n_|9?j~H!)GG_=B z^_;)h@J9RU5^ix0e)>jE*jKjQ4~UCh{;BedzYD=04-lhBVt+Z%>U_MBcsi`BdO30L ze1eLLitIf2b}wI1jA#FhX1=qqiXYELriF|6bJT96}2_oTmPfUG@dz#V~<@x(_ zXI5}M1XhrZ#+7viGQX;z#HgeMNK#@#vN55QSi9@*6xVxb|04d@Mq*R>s-TVHVa|yN z>qj@xR@OcdC4&;Ba0RENLN|aHbwlh(vyox&38|a+8X8gE|UA zv1#&%ss8?l`RNz10E?ce$R?7Ao`(vdi6|8ZQXU5u4JSb!CpirlT^<)34L2VRry?O% zHucmBwfmHm?FF@nydE|n_ZDR{@jW#w^_Lu4lb?uY&#Q_47ysN=69pS+`~_)5#9%qX z4VEHUTO!kzqDWh!NNZf+kTHd=$(WGmRXzU`Jv=u{G@rcepsn}1QXhzy#AAqBFN~rp z^rbbYTCDSBovm6^dS(5$I|@kT{Ww~KqymFXT0^mr;tE=$h5{p1LoLW+#^-{}4M5gIibm!V64xhU zrZ4KRwC1&ckf>>q!}Fx#woVTME!gNR`3fz?=&WQ5tyJl(bqlRc>1=EYZJc3rwqAv{ z{&aTXg?4dtU-=4gboC}!XiqBW92yE8I_Mk+3LU|8PLM(;D4p|eq4Oc_mrMxqDV-}) zkt-JcH-e&XT`*s9h!{gCIjuWizPoI3m?=Z}QcS zdM|>l*r%{Kx`QF6V>imp&Ky!4t7yroF69EI4kHMOe`QEODoMa%{6zpO`9;q7o37+H z8{;3ol0RaMiLxbcJ->f-Oa7WNCfOXspVG!tBk{7pCx@3L$1$cPm84`crWTf@Rx+kF zl%#bqrVo^)gBdd*B^gl0%-xdA(*rKQuRO;Lky!m%SWG!@-LB+JxpbwuY)pB4rFmjZ z`LdSM_Kr+-v`{< zWgt`L2Ai@5L*|sEqc`DY<%4W2NZBDnaV*10<-?gQBZcK7m5##}ftoDvNap2p@*$&M$AeH7C~F8pMEP7q zIfA!Tr=rACeec8)3z*!=d%s*TTWTU#Y6>e1oT?)1-8)lC(L>D&k*q+_{)Oe`1m7Tq zuj8b?Up}97@~$C7z$0WKRoCC9Vp%t2I<@z1-03ikb<&=7)r|sRWwunw`rh{u7 z75tj<3zF08NGeRM8ou}J8I7aTGvso*w3wQsrNL!f=N#VQyiKMWGGc@j&yF7L@@&Xa z_01LThzVt@9J~qF7JGiv!GS$Pij{TR_7wpDgSp&Yy1-7WQI}IOmf7F)xnN3_fgzvC znlhF=L-61^@%1h~__~&gan{LR;MvxU8+;>MuR@5v7}qHHn6`oJTT>f+VKi`o4~qd0 z)R4LNJ{*!`wtnkj>qV63q(rWz#O9(RtfivhqQ<^NoV-932`Lh*&GG-r&B8@^RWryI zf?+Iyu>hd|UP~Xq#Q>~ji05Mb$3=g1Bz#?l;V2QO8N%Gj#WGmSGQq_C^cRyBEu;U)+LF(AN z8iXJX3SLcmkS4pQYF3~EdLSHSptc&Xjvh$Ij91qdr0c?~_Z_4cz^e}g>BsXL`~w+e z@fsF^46AsJ8a<6D0s(K29OE^a2brw#n(l#2&v?!5KxQyrbL0kdY`!mq4PPkuEa)37 S*!e8^8!W{e00;;G;r{`@u!^Jr literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/vbcardbutton.htm b/documentation/api_extracted/vbcardbutton.htm new file mode 100644 index 0000000..e3da785 --- /dev/null +++ b/documentation/api_extracted/vbcardbutton.htm @@ -0,0 +1,252 @@ + + + +Calling Add-ins (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Calling Add-ins (VB.NET)

    + +
    + + + + diff --git a/documentation/api_extracted/vbmenuitem.htm b/documentation/api_extracted/vbmenuitem.htm new file mode 100644 index 0000000..b726ed8 --- /dev/null +++ b/documentation/api_extracted/vbmenuitem.htm @@ -0,0 +1,379 @@ + + + +Creating Menu Commands (VB.NET) + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Menu Commands (VB.NET)

    + +
    + +

    +This topic shows how to create a +VB.NET add-in in Microsoft Visual Studio that adds menu commands to +the context-sensitive and Tools menus of vaults in File +Explorer.

    +

    +

    +NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

    + +

     

    +
      +
    1. +

      + Start + Microsoft + Visual Studio.

    2. +
    3. +

      + Click File > New > + Project.

      +
    4. +
    5. +

      + Select Visual Basic + in Installed and select + Windows Desktop > Class Library (.NET Framework) +as the template.

    6. +
    7. +

      + Type a name for the project in Name and + click OK.

    8. +
    9. +

      + + Click Project > Add Reference > + Browse, click + EPDM.Interop.epdm.dll, and click + OK.

      +
    10. +
    11. +

      + Right-click Epdm.Interop.epdm in the Solution Explorer, + select Properties, and set Embed Interop Types to False + to handle methods that pass arrays of structures.

      +
    12. +
    13. +

      + Click Project > Add Reference > + Assembly > Framework, + click + + System.Drawing, and + click OK.

    14. +
    15. +

      + Click Close.

    16. +
    17. +

      + Right-click the name of the + project in the Solution Explorer and select Properties.

      +
        +
      1. +

        + On the Application tab, click + Assembly Information. +

      2. +
      3. +

        + De-select + Make assembly COM-Visible.

        +
      4. +
      5. +

        + + On the Compile tab, select + AnyCPU for the Target CPU, de-select Prefer + 32-bit, and select Register for COM interop.

        +
      6. +
      +
    18. +
    19. +

      Save the project.

    20. + +
    21. +

      + Double-click +Class1.vb in the Solution Explorer + to open the code window.

      +
        +
      1. +

        + Before Public Class + Class1 type:
        +
        +
        + + Imports EPDM.Interop.epdm
        +
        +
        Imports System.Runtime.InteropServices
        +
        <Guid("")> _
        + <ComVisible(True)> _

      2. +
      3. +

        + To populate the GUID + attribute above, click Tools > Create GUID in the IDE, select GUID + Format + 6, click Copy, and click Exit. Replace + <Guid("")> + with the copied string.

      4. +
      5. +

        + Type Implements IEdmAddIn5 after Public Class + Class1 and +make sure that the GetAddInInfo and OnCmd methods are generated after + you press Enter.

      6. +
      7. +

        Replace your add-in's + implementation of the + IEdmAddIn5::GetAddInInfo method with the following code:

      8. +
      + +
      +

      Public + Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault As + EIEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5) Implements + IEdmAddIn5.GetAddInInfo

        + 'Specify the add-in information 
        poInfo.mbsAddInName = "Menu command sample"
        poInfo.mbsCompany = "SOLIDWORKS Corporation"
        poInfo.mbsDescription = "Adds menu + command items"
        poInfo.mlAddInVersion = 1
        poInfo.mlRequiredVersionMajor = 5
        poInfo.mlRequiredVersionMinor = 2

        'Add + menu command items (the command-ID numbers 1000 and 1001 are
        'arbitrary; PDM does not use them; + instead, PDM only passes them to the
        'implementation of OnCmd + to know which command was selected)

        poCmdMgr.AddCmd(1000, "First command", + EdmMenuFlags.EdmMenu_Nothing, "This is the first command", + "First command", 0, 99)
        poCmdMgr.AddCmd(1001, "Second command", + EdmMenuFlags.EdmMenu_MustHaveSelection, "This is the second + command", "Second command", 1, 99)

      End Sub


      The flag
      + + + EdmMenuFlags.EdmMenu_MustHaveSelection + means that +the second command is only available if the user has selected one or more +files or folders.

      +
      +
        +
      1. +

        + Replace your add-in's + implementation of the + + IEdmAddIn5::OnCmd method with the + following code (IEdmAddIn5::OnCmd is called when a menu command is selected by the +user):

      2. +
      +
      + +

      + Public Sub OnCmd(ByRef poCmd As EdmCmd, + + + ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd

      +

      +   'Check the command ID to + see which command was selected
      +  '(This only affects the + caption of the message box below)
      Dim CommandName As String

      +

      +   If poCmd.mlCmdID = 1000 Then
          CommandName = "The first command." +

      +

      +   Else
          CommandName = "The second command."

      +

      +   End If

      +

      +   'Retrieve the bounds of the + array containing the selected files and folders
      Dim index As Long

      +

      +   Dim last As Long

      +

      +   index = LBound(ppoData)

      +

      +   last = UBound(ppoData)

      +

      +   Dim StrID As String

      +

      +  
      +  'Create a message showing the + names and IDs of all selected files and folders
      +
        Dim message As String +

      +

      +   message = "You have selected the + following files and folders: " + vbLf

      +

      +   While index <= last
          If ppoData(index).mlObjectID1 = 0 Then
            message = message + "Folder: (ID="

      +

      +       StrID + = ppoData(index).mlObjectID2

      +

      +       message + = message + StrID + ") "
          Else
              message = message + "File: (ID="

      +

      +         StrID + = ppoData(index).mlObjectID1

      +

      +         message + = message + StrID + ") "
          End If

          message = message + ppoData(index).mbsStrData1 + vbLf
          index = index + 1
        End While
      +
        'Display the message
        Dim v As EdmVault5
        v = poCmd.mpoVault
        v.MsgBox(poCmd.mlParentWnd, message, EdmMBoxType.EdmMbt_OKOnly, + CommandName)

      End Sub

      +
      + +
    22. +
    23. +

      + Click Build > Build + Solution to build the add-in.

    24. +
    25. Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
      10. +
      11. Click OK.
      12. +
      13. Click OK.
      14. +
      +

      +
      +
       

    26. +
    27. +

      + The first menu command appears in the context-sensitive + and Tools menus of vault files in + File + Explorer. The second menu command + appears in the context-sensitive menus only when one or more files or folders are selected. + Right-click a file in + the vault and select Second + command. A dialog similar to the following is displayed:

      +
    28. +
    +
    +

    +  

    +
    + + +
    + + + + diff --git a/documentation/api_extracted/vbreactor.htm b/documentation/api_extracted/vbreactor.htm new file mode 100644 index 0000000..5e78f85 --- /dev/null +++ b/documentation/api_extracted/vbreactor.htm @@ -0,0 +1,181 @@ + + + +Creating Add-in Hooks (VB.NET) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Add-in Hooks (VB.NET)

    +
    + +

    This +topic shows how to implement + IEdmAddIn5::GetAddInInfo +and IEdmAddIn5::OnCmd +in your add-in to have SOLIDWORKS PDM Professional notify your add-in +whenever a file is added, checked out, or checked in.
    +
    +
    NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used. + 

    + +
      +
    1. Call + IEdmCmdMgr5::AddHook + from your add-in's GetAddInInfo + method + for each activity you want your add-in to know about. Implement IEdmAddIn5::GetAddInInfo + in your add-in as follows:
    2. + +
      +

      + Public Sub + GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, + ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
      +
       
      + 'Specify + add-in information
        + poInfo.mbsAddInName = "My first add-in"
        + poInfo.mbsCompany = "The name of my company"

      +

      +   + poInfo.mbsDescription = "This is a very nice add-in."
        + poInfo.mlAddInVersion = 1
      +
      + 'Specify + minimum version of SOLIDWORKS PDM Professional
        + poInfo.mlRequiredVersionMajor = 5
        + poInfo.mlRequiredVersionMinor = 2

      +

      +   + + + 'Notify when a file has been added
      +
        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAdd)

        + 'Notify when a file has been checked out
      +
        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostLock)

        + 'Notify when a file is about to be checked in
      +
        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreUnlock)

      +   'Notify when a file has been checked in
      +
        poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostUnlock)

      End Sub
      +

      +
      + + +
    3. +

      Implement + IEdmAddIn5::OnCmd in + your add-in as follows:

    4. + +
      +

      + Public Sub OnCmd(ByRef + poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd
      +
        'Check the type of hook that + triggered this call
      +
        Dim name As String
        + Select Case poCmd.meCmdType
          Case EdmCmdType.EdmCmd_PostAdd 
            name = "PostAdd"
          Case EdmCmdType.EdmCmd_PostLock 
            name = "PostLock"
          Case EdmCmdType.EdmCmd_PreUnlock 
            name = "PreUnlock"
          Case EdmCmdType.EdmCmd_PostUnlock 
            name = "PostUnlock"
          Case Else 
            name = "?"
        End Select
      +
        'Check the upper and lower bounds + of the array
      +
        Dim message As String
        message = ""
        Dim index As Long
        + index = LBound(ppoData)
        Dim last As Long
        + last = UBound(ppoData)

       
      + + 'Append the paths of all files to a string
        While index <= last
          message = message + ppoData(index).mbsStrData1 + vbLf
          index = index + 1
        End While
      +
        'Display a message to the user
      +
        + message = "The following files were affected by a " + name + " + hook:" + vbLf + message

        + Dim vault As EdmVault5
        vault = poCmd.mpoVault
        vault.MsgBox(poCmd.mlParentWnd, message)
      +
      End Sub

      +
      + +

      OnCmd +is called for each of the +hooks registered in GetAddInInfo. You can tell which hook triggered the call to +OnCmd by +inspecting the meCmdType +member of the EdmCmd structure +that is passed as poCmd in OnCmd. meCmdType contains an EdmCmdType constant +that indicates the triggering hook.

      + +

      The second argument to OnCmd +is an array of EdmCmdData structures. There is +one element in the array for each file that is affected by the call. The +contents of the structure members vary depending on the type of hook that +is executed. See EdmCmdData for a complete list +of members and their descriptions.

      + + +
    5. +

      + Click Build > Build + Solution to build the add-in.

    6. +
    7. Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
         
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
         
      10. +
      11. Click OK.
         
      12. +
      13. Click OK.
      14. +
    8. +
    9. +

      + Try adding, checking out, and checking in + vault files.

    10. +
    + +

    +NOTE: +OnCmd is not called during check-in if the +file is not modified before it is checked in. During check-in of unmodified +files, SOLIDWORKS PDM Professional triggers an "undo check-out" event. To handle +this "undo check-out" event, add hooks for EdmCmdType.EdmCmd_PreUndoLock and +EdmCmdType.EdmCmd_PostUndoLock +to your add-in's GetAddInInfo.

    + +
    + + + + diff --git a/documentation/api_extracted/vbresedit.gif b/documentation/api_extracted/vbresedit.gif new file mode 100644 index 0000000000000000000000000000000000000000..ba9987f817719716803086fba83a76894492183e GIT binary patch literal 6118 zcmeI!_cz<`-v{tFZ3(5-ev8<2SXHeqqJ#RhMbJ;H18J<-q8hYFY+{dUt40zL)Fx&T zyJqas7BNDN#H^Yz+T`{<_kVEzd|&5rUgvpTKU~*2uXA4KT)O%XH6YfhT=@VC_}_&E z01hA&0|*fSp&|fG0Ki!Q_%QSV;9)?n2#^~Fl7g4FaS9WOh9KC(4hl5 zhhYtX(g7$FfF1@GU`z*$nSk*cV9WwwOaQh9zzzckuvr6aSbz-&K&}Bu7J%dc9-PCM z0S*TQ?gOdOL6Bh(gbvaf2IoIy}U3z#eO09~KzPk%Q6YY?yM$Lo7L;H94Qd%8|ozl(1`R$aXak zrkc;8HMPTS3=0yo21(%P#H{HMIL28V<0201&=-ye(guqKuvlzS5usj9s9gzYhk)C4 z4#~B*xA&<5eQKaS$RVLV4_IFUgsuaoLzU>pN^~D29qYk_08AYaQ%8si1v8;?OyfgJ zOk*`B>=1-$qsFv3tU62^C=+?enCWo{#$4m98H3kgN^3TdH4oUD&mo&N>>=b@g3nq4 zc5RK$DoS8|$zrWBIUo?{u#5k{{!blH`R@e$cNPE;8~6f})O$=44l=Dc56>Oo7YTnM zdp7~R{_}pcu$=Kk#QV(lI9aWzI*qI6IzP%k#oVVD+vz1W?a?@jGg70Ha z4^caS{|C5KQTU>6o}zhI!r~d_rx}mT%I`H#+NH&z)5^-=%jI zDW4(6$Lvkjau8XCR5%Uf>ZZL&t$BkSDlw_GH}a`m9WAz-CD$KR{+gnMZ1UWNSHGUE z|M(v*i#oK!kNX+_Ii+JB5w$d$w>;YCcOWRG4r5mYYPUR$myMGv&~iU|>!kFpXRW&T zWJ06%ch;wh8`JzbfBq~gSOp&4S0@D>b4H8|Rdr>=>3OpX`#DVvlzq zFJ=?mn)et4&mpu!s`pMOGtGx5pGiWCEai}%WL&urb9oHJ9T)$w>ua3m&hELR+LhDV z0^m`rkoN|}s(*z3MRYFYev<%jCNDsDCo!9!8zZ zO4xB+%(|rbTjv-UHJ$f)ruG9~={&&(rQ zl}$}$y_&}_Ra|+ryjs7@C|GOwv*UBA`rShe=t8^(LQf7WbXHH+eZVc^-KqP(xw-kN zkGbM*J~|%U_&u?Ey+bx!jnY5=QF}x0T&(2n2pLB!Znsv@72pVuRDwZf2NU7$ z+<*2+uVVjQpW7RQdJ08bg|bwzPPM!iw?2iR*H~3XO;;u8=!wU^9(~Cx@QVKP;J+Dz z_8x?t0o%06ogq}mCDx!(zg{M*{d+4?NBZKb=dry1+Nh6&iI#H_yz6hs58|W z$8Z;el2NipFHp649+d=vD@fd@s9!-)RIo@Z38bsnd>Z!~t7w?cZ$fPrsremxB_>_K zL9d0Uf$F3V;-YV~^A>zMF2rWk{3CJY2^Zg)QlxM<5T{epa6AJD-cm9-qZTCdNAF3L zV)a?!a=iyC?t@V;3ui=^Lmpg;bBnP*lPNwzZNFKw9*c^}lw|64XpXJNdG};Wk9+In zbb|il_8b3~JrM3ryC;|&A9ze;FA%o}I0T%R5bb^5=ANZ}Oj%J>-X~Gt!@BGvZeot2 zxu^dap_4%Tb6&v+-Ss%zJ>j!TmWqRZH*9PpvAQQq)vL4HVt*s4Ng(@5xKhs<@Md!R z^&mcI1fNE0`pJQb7WS{l;a9C@xJT;(k18^b9Dmbv8pK2 zMkAM7GM=lhGa_B^(mXUA`aMH@J6F#r-#Dr3S$sZ_qU61J^}&GlDbwxzvn6>v((#47 zRM$W`t0#P)_mkc-eq$7k8nxwDS_!@FV(-EAgcoMhClgDMyt80C1L74 z*1#Fj=2JVDgJvb*LinWSt}i7~PkP|O24?}TT~x@qo|zepY5P+By1N2_NBTgcO{M96 ze7MToSzfb_X5o+zNj-D&=P0e$PPhf=x>za7c(wiON{+ijn4jjB6#(=?k~>rwSG;KL zwyM|IF>WgJ$4`1Scid3(EUmM-Hcshq*eQF@r9F3UlhU26=kcyB-rn$ySzmK#X-1pu z{JOI?H;*F9n<-)UliMmAm53rXO4{F>h4d%>DkY5=!Xd?@4X!+{*|A8(gWCNc;+`sh{wHhyeX0N9TBLODN%2(XRzNC zk=UB$W4}B%yxZI6e=XUg*J&1J`aM(gM@thsroj{MiTDN zI+!YJKbl_UhkO-o*6F0}UFPLyXUW+g`iG~fWb;y_P0lS^x3ow3wjbPyeGN zoDl-5P8gr^-@I_;o{MOX_XJV3Dz@9s{>?ivK(^|tTg%EX=_4irNxKmDj>m`$d^i2l zqql^4!CwomJ|m2p8}Ck$QCTl>$4>I@V9(KC%}C>Wz?}VdTJM%9uhp16%ZplYYXiCL z%ea<>ZZUb}mH5tl_=;#nkC*F$G;6X?x{uPiM|AsVM4kRY+m{gOx+Uh|!#u;Rt~!3g zt5H{qLJ_H;2nxCs9jWaPRQ1SFBd*)Y)T|6Lyp{$VJeMl#=LGJeC)CYZV^4|S=6E(4 z3X*Rdr^dc3^VIw{x%N?`ERj%uO6RHHv;%Rw_zwHz`q^-4 zTDj$2_d9gV`;0 zF9P9Vh;JRfbqa5J9sEv2I51vVr|LSyGyO&6{rj^$=b0F$iCqY<*Rq4ns%XG@(_s9I zU`4&)ZBZ{))f=U3#61(=?RHnH14=J3u*o6trXD(9#Ie`QtMwDw$=($q#8X?z-DHo2 znqtkfUBtbdFyTS15Bw#lo>Cf4rB!H^Y9|$zoswRFw?e?CNx*SaYi&g|mx*_0Vt}xh z>H`zik4bhUdxWNApe7h4lJm+T+4sjt_;UwW=q~D^hPA;c7SZm)ejMRqtO0*!8v1P; zBb^*78{uT~(8UrIW}S<$%l7%G7rC2+2xWQ{GT|siErf{shXQa1V^g=|OXXxk)&n0H$O-87tDas-@@=klCuSwXM%JAmrA&+-m z7rsQLQ6nO=W1F&qd>#C_BhWe;_JP&NGxA|rDr(;Zlg)ao&We^{#x^a$<0C>BJA#L* zLvnW97pOM9)xj^5;oleBnQh3z%GV`{@xfkiD~98%yd3V@J5-or&rq;IxzXX?5%n6F z-=nd|A@6#gziaWf6ETe!0izWlfwC#Fvk!tkhC5slW4}M2@}b=>;7LT-MSY92d!CRy z^BbTTE!xNaPanDzB6af2Z|w!?qRsD_g&I*37Pb=}=fU+MpI)Fp?bz{|^2I!-e6ra4 zM6=^V@Ff;0eAxC(bWBNfrX;%15?%KaQDRB%kfb+eNuKB=@028zQlf8OlK);(pjfhN zB%eJWPZ&BmA|*MBk{m-zj@wI)7fbm7Nl7qENkpe4r=;LIlYMC^_`MX87%qdBES$q7 zi~>e(@>m7FE2QDbd$I5^VTP|noU`|R97$^_(;OB9;{W_|?6bW%!2px(u>W}vt-2LT+7ix5*0wyV`Lrq`OS2|( zkeUf!%DO(1gK!Qr-_K!J%I7*`a;s9ZBXFNxVCnmioU6_`*TqRUYET;dx#bR@{cG|N zHK7xgdC}te6?wTCn2gg<_qe6(_sV$*WBIjVIRWAYcF8r@E!QNq3&E6gTe{6 ze!@3={ngsKvGIC3vi!$#(LDOg7oQJPJ`Gt>X{(rwulBaTd~6pa8pHD&uy z4nyH@H^v){ppAm#WdhoC%vM3N87#}ue3hi;Y+Bpg*UQi$8nBu z>%Y`?KVPc43l1{TbR5?PcX{s}L;YZgcXw$d>nB*XY60QZ%F1x2NL| zPlHQK(;w1NftKd5rg=m+72aDl(cN8G-@DS(EcsPS((R1o+v*rTii_$jT(!EehvwTn zK0!5Qw!%%it77^#Z}%B%_id{j8?Eab8tXW0Eb`9s2it`)gwQmwNj7SNgX* zTPAp089KcnzkyxffrFlby5)gyd9BciR_?#8$6gKcm=9Lf4Tw*&8zrUE;_CbyUEVM0 z4vOCS#_QLsl-hJrFzxcC2!?6IjN#C>@8F{EH#Yv;Ds8Az0~4e%xM|qWGVH%&^X>kn z#)sy_5Z^cvduo_{?{Lh})4$yTg)PcU)Odk!hP^+igh5O5s^_nMWZfQetnap{A0Cq& zj*-kS>gmFyj^r4QFvo}erAGT`xq&L9VMavkrQz`UQP#d=bX{|d6s;>|)aw#0QIL=z zNK2}xMcz&)_RvVN_!OzJ&qer5^RZmPhPc19yvea$?=iB}xPwH4oyvISYFLH&XjT3A zMD2L)CQxJJ+0kuA~AKMON!PrIT39{kYyK)4y29^^^X1MrH%Nt(WJ)4 z&BrIrCp?R2KUXJa&FNW!qYL%JOZD`plk{JH-=>Pj*I&`IA(NlXr-JTGeJ`4d>7CkJ zom#2?x@$z|X8$Phn+`Xk+0v#@u&19!7DEcBlj_Gxcz=S4KgFfp%_%>n**|6bETri0 zV6z!{{~1N%jB>+_3VlY^KWY2MOwWTiau%~U{b#=l&o<{e--pC%uxGW&KQ-@8{!VhG zGNLwx=b#O9mSVG#D?!zw9&Hb2Ef{Y)t8B*F=U@%<-{c)Gi!(|vVF_R^d-~P*%G#W z+oR=j)#X9*%IL43JtyY3yj(e;)n?Vz_`ca=;FZ~i5GrwXi9J1j*QtA9)yIKZMYqUq z__ag-xT#{N%XSFuYTTX4r2W%*&Z74Txs7!5KxXdLOn1Ai}k!w~eH(#ri ze%eg9pmBR@^DbxeZt-U6v90@-TMsX5=%j6F25j9g-g@wT>rwxfvDWsp%iB*Zw@uTw zO#`-JQ`@kUhxgz>RsatQunpL8Oxtn(cZYXi$Ca~#lwrARvEEp+oH#q)uXjAsSg6Y^ z-zk + + +Creating Serial Numbers (VB.NET) + + + + + + + + + + +

    SOLIDWORKS PDM Professional API Help

    +

    Creating Serial Numbers (VB.NET)

    + +

    This +sample shows how to generate serial numbers for file data cards using +an add-in written in VB.NET.

    +

    NOTES:

    +
      +
    • +

      + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

      +
    • +
    • +

      SOLIDWORKS +PDM Professional recommends that serial numbers be generated using the built-in format strings or lists. + They provide better performance than serial numbers generated by add-ins + or serial numbers from files. Only write an add-in to generate the serial + number if built-in format strings or lists are insufficient.  

      +
    • +
    • +

      The +differences between serial number generation and other types of hooks + are:

      + +
    • +
    + +
      +
    1. +

      Follow + Creating Menu Commands (VB.NET) to +create a basic add-in.

      +
    2. +
    3. +

      Register a hook to + notify + your add-in when a serial +number needs to be generated. Implement IEdmAddIn5::GetAddInInfo as follows:

      +
    4. +
      +

      + Public Sub GetAddInInfo(ByRef + poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, + ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
      +
        'Specify add-in information
        + poInfo.mbsAddInName = "My serial number generator"
        + poInfo.mbsCompany = "The name of my company"
        + poInfo.mbsDescription = "Implements serial numbers"
        + poInfo.mlAddInVersion = 1
        + poInfo.mlRequiredVersionMajor = 5
        + poInfo.mlRequiredVersionMinor = 2

        + 'Register that a serial number needs to be + generated
      +
        poCmdMgr.AddHook(EdmCmdType.EdmCmd_SerialNo)

      End Sub +

      +
      + +
    5. +

      + Implement IEdmAddIn5::OnCmd as follows:

    6. + +
      +

      + Public Sub OnCmd(ByRef + poCmd As EdmCmd, + + + ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd
      +
        'Check the upper and lower bounds of the array +
        Dim index As Long + index = LBound(ppoData)
        Dim last As Long + last = UBound(ppoData)

        If index <= last Then +
          Dim cnt As Integer
          cnt = last - index + 1 +

          'Create a temporary array + to which you have full + access
          Dim tmpArr(cnt) As EdmCmdData
          tmpArr = ppoData +

          'Generate serial numbers for all of the affected + files
          Dim CounterVal As String

          While index <= last +
            CounterVal = tmpArr(index).mlLongData1
            Dim s As String +
            s = "My serno(" + CounterVal + + ")"
            tmpArr(index).mbsStrData1 = s
            index = index + 1 +
          End While +

          'Return the updated data +
          ppoData = tmpArr
        End If +

      End Sub
      +
      +
      + The second argument to + OnCmd +is an array of EdmCmdData structures. There is +one element in the array for each file that is affected by the call. + See EdmCmdData for a complete list +of members and their descriptions.

      +
      + + +
    7. +

      + Click Build > Build + Solution to build the add-in.

    8. +
    9. + Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
        +
      1. Open the SOLIDWORKS + PDM Professional Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
      10. +
      11. Click OK.
      12. +
      13. Click OK.
      14. +
      +
    10. +
    11. +

      + Right-click the Serial Numbers node in the + tree and click + New Serial + Number. +

    12. +
    13. +

      + Create a new serial number + in the Name field and select + + Serial number from add-in + in the Type dropdown.
      +
      +

      +

      + The name of your add-in is displayed in Name of add-in.

      +
    14. +

      + After ensuring that your add-in is selected, click + + OK.

      +

      + Now you can connect the add-in serial number to controls in + your file data cards.

      + +
    15. +

      + Click + Cards > File Cards, double-click Text Card, and click the + + Title + control.

    16. + + + +
    17. +

      + In + the Default value group box on the Edit-box properties panel, + click Serial number and + select the serial number that you created in step 7.

    18. + +

      +     +

      + +
    19. +

      + Save the card and exit the Card Editor.

    20. +
    21. +

      + Create a new text file + by right-clicking in a File Explorer vault view and + clicking New + > Text Document. +

      + The file data card displays a serial number in Title of the newly added + file.

    22. +
    +
    +

    +

    +
    + + + + diff --git a/documentation/api_extracted/vermsg.gif b/documentation/api_extracted/vermsg.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1dae5254e39f833ccf2666405d095923aa7a367 GIT binary patch literal 3526 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 literal 0 HcmV?d00001 diff --git a/documentation/api_extracted/xref.gif b/documentation/api_extracted/xref.gif new file mode 100644 index 0000000000000000000000000000000000000000..b7b77e2d2fa6e5989aa8264c5db2ad0527685eaf GIT binary patch literal 10410 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 literal 0 HcmV?d00001 diff --git a/helpers/batch_copy_tree.py b/helpers/batch_copy_tree.py new file mode 100644 index 0000000..a7d25df --- /dev/null +++ b/helpers/batch_copy_tree.py @@ -0,0 +1,828 @@ +""" +Batch Copy Tree Export for PDM Vault +===================================== +This module provides a framework for: +1. Logging into a PDM vault via API +2. Reading part numbers from a CSV file (no extensions) +3. Running the PDM Copy Tree function for each part +4. Exporting each part's file tree to its own subfolder on a local path + +Usage: + python batch_copy_tree.py -c parts.csv -o "C:\\Temp\\Output" --vault "IDSVault" +""" + +import logging +import argparse +import getpass +import os +import ctypes +from datetime import datetime +from pathlib import Path +from typing import List, Optional, Dict, Any + +import win32com.client + +# PDM API Type Library Constants +EdmObject_File = 1 +EdmObject_Folder = 2 +EdmSearch_FileName = 1 # Search by filename +EdmGet_Simple = 1 # Simple get (latest version) + + +# ============================================================================= +# CONFIGURATION - Can be overridden via command line +# ============================================================================= + +VAULT_NAME = "IDSVault" # Default vault name + + + +# ============================================================================= +# LOGGING SETUP +# ============================================================================= + +def setup_logging(log_file: Optional[str] = None) -> logging.Logger: + """Configure logging for the batch process.""" + if log_file is None: + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file = f"batch_copy_tree_{timestamp}.log" + + logger = logging.getLogger("batch_copy_tree") + logger.setLevel(logging.DEBUG) + + # File handler + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + + # Console handler + ch = logging.StreamHandler() + ch.setLevel(logging.INFO) + + # Formatter + formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + ch.setFormatter(formatter) + + logger.addHandler(fh) + logger.addHandler(ch) + + return logger + + +# ============================================================================= +# PDM VAULT CONNECTION +# ============================================================================= + +class PDMVaultConnection: + """Handles connection and authentication to the PDM vault.""" + + def __init__(self, vault_name: str): + self.vault_name = vault_name + self.vault = None + self.is_connected = False + self.logger = logging.getLogger("batch_copy_tree") + self._username = None + self._password = None + + def connect(self, username: str, password: str) -> bool: + """ + Connect and log into the PDM vault with username/password. + + Args: + username: PDM username + password: PDM password + + Returns: + True if connection successful, False otherwise + """ + try: + # Create the vault interface + self.vault = win32com.client.Dispatch("ConisioLib.EdmVault") + + # Login with credentials + self.vault.Login(username, password, self.vault_name) + + self.is_connected = True + self._username = username + self._password = password + self.logger.info(f"Successfully connected to vault: {self.vault_name}") + self.logger.info(f"Logged in as: {username}") + return True + + except Exception as e: + self.logger.error(f"Failed to connect to vault '{self.vault_name}': {e}") + self.is_connected = False + return False + + def disconnect(self) -> None: + """Disconnect from the PDM vault.""" + if self.vault is not None: + try: + # Clear the vault reference + self.vault = None + self.is_connected = False + self.logger.info("Disconnected from vault") + except Exception as e: + self.logger.warning(f"Error during disconnect: {e}") + + def search_file_by_name(self, filename: str) -> List[Dict[str, Any]]: + """ + Search for a file in the vault by filename (supports wildcards). + + Args: + filename: The filename to search for (e.g., "part001.*" or "part001.sldprt") + + Returns: + List of dicts with 'file_obj', 'path', 'folder_path', 'folder_obj' for each match + """ + if not self.is_connected: + self.logger.error("Not connected to vault") + return [] + + results = [] + + try: + # Create search object + search = self.vault.CreateSearch() + + # Set search filename + search.FileName = filename + self.logger.debug(f"Search pattern: '{filename}'") + + # Execute search + search_result = search.GetFirstResult() + + while search_result is not None: + try: + file_id = search_result.ID + folder_id = search_result.ParentFolderID + + # Get the file and folder objects + file_obj = self.vault.GetObject(EdmObject_File, file_id) + folder_obj = self.vault.GetObject(EdmObject_Folder, folder_id) + + if file_obj is not None and folder_obj is not None: + folder_path = folder_obj.LocalPath + # Use the actual filename from the file object + actual_name = search_result.Name + full_path = str(Path(folder_path) / actual_name) + + results.append({ + "file_obj": file_obj, + "file_id": file_id, + "folder_id": folder_id, + "path": full_path, + "folder_path": folder_path, + "folder_obj": folder_obj, + "filename": actual_name + }) + except Exception as e: + self.logger.warning(f"Error processing search result: {e}") + + search_result = search.GetNextResult() + + except Exception as e: + self.logger.error(f"Error searching for '{filename}': {e}") + + self.logger.debug(f"Search for '{filename}' returned {len(results)} result(s)") + return results + + def __enter__(self): + """Context manager entry - note: call connect() separately with credentials.""" + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Context manager exit.""" + self.disconnect() + + +# ============================================================================= +# FILE LIST HANDLING +# ============================================================================= + +def load_part_numbers_from_csv(csv_path: str) -> List[str]: + """ + Load list of part numbers from a CSV file (single column, no header). + + Args: + csv_path: Path to the CSV file with one part number per line (no extensions) + + Returns: + List of part numbers + """ + logger = logging.getLogger("batch_copy_tree") + part_numbers = [] + + try: + with open(csv_path, 'r', encoding='utf-8-sig') as f: + for line_num, line in enumerate(f, start=1): + part_number = line.strip() + if part_number: # Skip empty lines + part_numbers.append(part_number) + + logger.info(f"Loaded {len(part_numbers)} part numbers from {csv_path}") + + except FileNotFoundError: + logger.error(f"CSV file not found: {csv_path}") + except Exception as e: + logger.error(f"Error reading CSV file: {e}") + + return part_numbers + + +def search_and_resolve_parts( + vault: PDMVaultConnection, + part_numbers: List[str], + extension: str +) -> Dict[str, List]: + """ + Search for part numbers in the vault and resolve each to a root file. + + Part numbers are searched with the user-specified extension + (e.g., "PART001.SLDASM") since the CSV does not include file extensions. + + Args: + vault: Active vault connection + part_numbers: List of part numbers (no extensions) + extension: File extension including the dot (e.g., ".SLDASM") + + Returns: + Dict with: + - 'valid': list of file info dicts (ready for copy tree) + - 'not_found': list of part numbers not found in vault + - 'ambiguous': list of dicts with part_number and all found paths + """ + logger = logging.getLogger("batch_copy_tree") + results = {"valid": [], "not_found": [], "ambiguous": []} + + total = len(part_numbers) + for i, part_number in enumerate(part_numbers, 1): + logger.info(f"[{i}/{total}] Searching for: {part_number}{extension}") + + search_results = vault.search_file_by_name(f"{part_number}{extension}") + + if len(search_results) == 0: + results["not_found"].append(part_number) + logger.warning(f" NOT FOUND: {part_number}") + + else: + match = search_results[0] + logger.info(f" FOUND: {match['path']}") + + if len(search_results) > 1: + logger.warning(f" Multiple matches found, using first result:") + for r in search_results: + logger.warning(f" - {r['path']}") + + results["valid"].append({ + "part_number": part_number, + "filename": match["filename"], + "path": match["path"], + "file_obj": match["file_obj"], + "file_id": match["file_id"], + "folder_id": match["folder_id"], + "folder_obj": match["folder_obj"], + }) + + return results + + +# ============================================================================= +# COPY TREE OPERATIONS +# ============================================================================= + +def get_window_handle() -> int: + """Get a window handle for PDM API calls. Returns console handle or 0.""" + try: + hwnd = ctypes.windll.kernel32.GetConsoleWindow() + return hwnd if hwnd else 0 + except Exception: + return 0 + + +def _collect_references(file_obj, folder_id: int, vault, logger) -> List[Dict[str, Any]]: + """ + Collect all referenced files from an assembly using IEdmReference5. + + Uses IEdmFile5.GetReferenceTree() to get the reference tree root, then + recursively traverses all levels of the reference tree using + GetFirstChildPosition/GetNextChild on each node. + + Args: + file_obj: IEdmFile5 COM object (the root assembly) + folder_id: Folder ID of the root file + vault: The IEdmVault COM object + logger: Logger instance + + Returns: + List of dicts with 'file_id', 'folder_id', 'name' for each + unique referenced file (including the root file itself) + """ + collected = {} # keyed by file ID to deduplicate + + # Add the root file itself + root_name = file_obj.Name + root_id = file_obj.ID + collected[root_id] = { + "file_id": root_id, + "folder_id": folder_id, + "name": root_name, + } + logger.debug(f" Root: {root_name}") + + def _traverse_children(ref_node, depth=0): + """Recursively traverse all children of a reference node.""" + indent = " " * (depth + 1) + try: + result = ref_node.GetFirstChildPosition("", True, True, 0) + + if isinstance(result, tuple): + child_pos = result[0] + else: + child_pos = result + + while child_pos is not None: + try: + if hasattr(child_pos, 'IsNull') and child_pos.IsNull: + break + except Exception: + pass + + try: + child_ref = ref_node.GetNextChild(child_pos) + if child_ref is None: + break + + if isinstance(child_ref, tuple): + child_ref = child_ref[0] + + child_file_id = child_ref.FileID + child_folder_id = child_ref.FolderID + child_name = child_ref.Name + + if child_file_id not in collected: + collected[child_file_id] = { + "file_id": child_file_id, + "folder_id": child_folder_id, + "name": child_name, + } + logger.debug(f"{indent}Child: {child_name}") + + # Recurse into this child to get its children + _traverse_children(child_ref, depth + 1) + + except StopIteration: + break + except Exception as child_err: + logger.debug(f"{indent}Error reading child reference: {child_err}") + break + + except Exception as e: + logger.debug(f"{indent}Error traversing children at depth {depth}: {e}") + + try: + # Get the reference tree (IEdmReference5) + ref_tree = file_obj.GetReferenceTree(folder_id, 0) + + if ref_tree is None: + logger.warning(f" GetReferenceTree returned None") + return list(collected.values()) + + _traverse_children(ref_tree) + + except Exception as e: + logger.warning(f" Error traversing reference tree: {e}") + logger.debug(f" Full error:", exc_info=True) + + return list(collected.values()) + + +def execute_copy_tree( + vault: PDMVaultConnection, + file_info: Dict[str, Any], + output_dir: str, + part_name: str, + dry_run: bool = False +) -> Dict[str, Any]: + """ + Export an assembly and all its referenced files to a local subfolder. + + Uses IEdmFile5.GetReferenceTree() to traverse references, then + IEdmFile5.GetFileCopy() to download each file to the output folder. + + Args: + vault: Active vault connection + file_info: Dict with file_obj, file_id, folder_id, path, etc. + output_dir: Base output directory + part_name: Part number used as subfolder name + dry_run: If True, build tree but don't copy files + + Returns: + Dict with 'status' ('success'/'failed'), 'file_count', 'dest_path', + 'source_path', and 'error' (if failed) + """ + logger = logging.getLogger("batch_copy_tree") + dest_path = os.path.join(output_dir, part_name) + # GetFileCopy requires destination path to end with backslash + dest_path_trailing = dest_path if dest_path.endswith("\\") else dest_path + "\\" + result = { + "status": "failed", + "file_count": 0, + "dest_path": dest_path, + "source_path": file_info["path"], + "error": None + } + + try: + # Create the output subfolder + os.makedirs(dest_path, exist_ok=True) + logger.debug(f"Output folder: {dest_path}") + + hwnd = get_window_handle() + file_obj = file_info["file_obj"] + folder_id = file_info["folder_id"] + + # Step 1: Traverse the reference tree to find all files + logger.info(f" Building reference tree...") + ref_files = _collect_references(file_obj, folder_id, vault.vault, logger) + file_count = len(ref_files) + result["file_count"] = file_count + logger.info(f" Reference tree: {file_count} file(s) found") + + if dry_run: + for idx, ref in enumerate(ref_files, 1): + logger.info(f" [{idx}/{file_count}] {ref['name']}") + logger.info(f" DRY RUN: Would copy {file_count} file(s) to {dest_path}") + result["status"] = "dry_run" + return result + + # Step 2: Copy each file to the output directory using GetFileCopy + # Confirmed signature: GetFileCopy(lParentWnd, poVersionNoOrRevisionName, poPathOrFolderID, lEdmGetFlags, bsNewName) + # lParentWnd = window handle (0 for headless) + # poVersionNoOrRevisionName = version number (0 = latest) + # poPathOrFolderID = destination folder path (must end with \) + # lEdmGetFlags = EdmGet flags (EdmGet_Simple = 1) + # bsNewName = new filename or empty string to keep original name + copied = 0 + for idx, ref in enumerate(ref_files, 1): + ref_name = ref["name"] + logger.debug(f" [{idx}/{file_count}] Copying {ref_name}...") + + try: + # Get the file object from the vault by ID + ref_file_obj = vault.vault.GetObject(EdmObject_File, ref["file_id"]) + if ref_file_obj is None: + logger.warning(f" Could not get file object for {ref_name} (ID: {ref['file_id']})") + continue + + ref_file_obj.GetFileCopy(hwnd, 0, dest_path_trailing, EdmGet_Simple, "") + copied += 1 + except Exception as copy_err: + logger.warning(f" Failed to copy {ref_name}: {copy_err}") + + result["file_count"] = copied + result["status"] = "success" + logger.info(f" SUCCESS: {copied}/{file_count} file(s) exported to {dest_path}") + + except Exception as e: + result["error"] = str(e) + logger.error(f" FAILED: {e}") + logger.debug(f" Full error details:", exc_info=True) + + return result + + +def batch_copy_tree( + vault: PDMVaultConnection, + file_list: List[Dict[str, Any]], + output_dir: str, + dry_run: bool = False +) -> Dict[str, List]: + """ + Execute Copy Tree for multiple parts. + + Args: + vault: Active vault connection + file_list: List of file info dicts (from search_and_resolve_parts) + output_dir: Base output directory + dry_run: If True, build trees but don't execute copies + + Returns: + Dict with 'success' and 'failed' lists of result dicts + """ + logger = logging.getLogger("batch_copy_tree") + results = {"success": [], "failed": []} + + total = len(file_list) + logger.info(f"Starting batch copy tree for {total} parts") + logger.info("=" * 60) + + for i, file_info in enumerate(file_list, 1): + part_number = file_info["part_number"] + logger.info(f"[{i}/{total}] Processing copy tree for: {part_number} ({file_info['filename']})") + + result = execute_copy_tree(vault, file_info, output_dir, part_number, dry_run) + + if result["status"] in ("success", "dry_run"): + results["success"].append(result) + else: + results["failed"].append(result) + + return results + + +def test_copy_tree_api(vault: PDMVaultConnection, file_info: Dict[str, Any]) -> bool: + """ + Test reference tree traversal on a single file without copying. + + Args: + vault: Active vault connection + file_info: Dict with file_obj, file_id, folder_id, path + + Returns: + True if reference traversal succeeds, False otherwise + """ + logger = logging.getLogger("batch_copy_tree") + logger.info("=" * 60) + logger.info("TESTING REFERENCE TREE TRAVERSAL") + logger.info("=" * 60) + logger.info(f"Test file: {file_info['path']}") + + try: + file_obj = file_info["file_obj"] + folder_id = file_info["folder_id"] + + # Step 1: Test GetReferenceTree + logger.info("Step 1: Calling GetReferenceTree...") + ref_tree = file_obj.GetReferenceTree(folder_id, 0) + if ref_tree is None: + logger.error(" GetReferenceTree returned None") + return False + logger.info(f" OK - Got reference tree object: {type(ref_tree)}") + + # Step 2: Introspect reference tree object + logger.info("Step 2: Inspecting IEdmReference5 COM object...") + try: + type_info = ref_tree._oleobj_.GetTypeInfo(0, 0) + type_attr = type_info.GetTypeAttr() + methods = [] + for i in range(type_attr.cFuncs): + func_desc = type_info.GetFuncDesc(i) + names = type_info.GetNames(func_desc.memid) + methods.append(f"{names[0]}({', '.join(names[1:])})" if len(names) > 1 else names[0]) + logger.info(f" IEdmReference methods ({len(methods)}):") + for m in methods: + logger.info(f" - {m}") + except Exception as intro_err: + logger.warning(f" Could not introspect: {intro_err}") + + # Step 3: Traverse children + logger.info("Step 3: Traversing reference tree children...") + ref_files = _collect_references(file_obj, folder_id, vault.vault, logger) + logger.info(f" Found {len(ref_files)} file(s) in reference tree:") + for idx, ref in enumerate(ref_files, 1): + logger.info(f" [{idx}] {ref['name']}") + + # Step 4: Test GetFileCopy on root file (introspect only, don't copy) + logger.info("Step 4: Inspecting IEdmFile5 GetFileCopy method...") + try: + type_info = file_obj._oleobj_.GetTypeInfo(0, 0) + type_attr = type_info.GetTypeAttr() + for i in range(type_attr.cFuncs): + func_desc = type_info.GetFuncDesc(i) + names = type_info.GetNames(func_desc.memid) + if "copy" in names[0].lower() or "get" in names[0].lower(): + sig = f"{names[0]}({', '.join(names[1:])})" if len(names) > 1 else names[0] + logger.info(f" - {sig}") + except Exception as intro_err: + logger.warning(f" Could not introspect file object: {intro_err}") + + logger.info("=" * 60) + logger.info("API TEST PASSED") + logger.info("=" * 60) + return True + + except Exception as e: + logger.error(f"API TEST FAILED: {e}") + logger.debug("Full error details:", exc_info=True) + logger.info("=" * 60) + return False + + +# ============================================================================= +# COMMAND LINE INTERFACE +# ============================================================================= + +def parse_arguments(): + """Parse command line arguments.""" + parser = argparse.ArgumentParser( + description="Batch Copy Tree export for SolidWorks PDM Professional", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + python batch_copy_tree.py -c parts.csv -o "C:\\Temp\\Output" + python batch_copy_tree.py -c parts.csv -o "C:\\Temp\\Output" -v "IDSVault" --dry-run + python batch_copy_tree.py -c parts.csv -o "C:\\Temp\\Output" --test + +CSV format (one part number per line, no extensions, no header): + UDS.00056 + WIDGET.00123 + BRACKET.00789 + +Each part number's Copy Tree output goes to its own subfolder: + C:\\Temp\\Output\\UDS.00056\\{files...} + C:\\Temp\\Output\\WIDGET.00123\\{files...} + """ + ) + + parser.add_argument( + "-v", "--vault", + default=VAULT_NAME, + help=f"PDM vault name (default: {VAULT_NAME})" + ) + + parser.add_argument( + "-c", "--csv", + required=True, + help="Path to CSV file containing part numbers (one per line, no extensions)" + ) + + parser.add_argument( + "-o", "--output-dir", + required=True, + help="Base output directory for exported files (e.g., C:\\Temp\\Output)" + ) + + parser.add_argument( + "-u", "--username", + help="PDM username (will prompt if not provided)" + ) + + parser.add_argument( + "--log-file", + help="Custom log file path (default: auto-generated with timestamp)" + ) + + parser.add_argument( + "--dry-run", + action="store_true", + help="Build copy trees and show what would be copied, but don't execute" + ) + + parser.add_argument( + "--test", + action="store_true", + help="Test Copy Tree API calls on the first part only, then exit" + ) + + return parser.parse_args() + + +# ============================================================================= +# MAIN EXECUTION +# ============================================================================= + +def main(): + """Main entry point for batch copy tree processing.""" + # Parse arguments + args = parse_arguments() + + # Setup logging + logger = setup_logging(args.log_file) + logger.info("=" * 60) + logger.info("PDM BATCH COPY TREE EXPORT") + logger.info("=" * 60) + logger.info(f"Vault: {args.vault}") + logger.info(f"CSV File: {args.csv}") + logger.info(f"Output Directory: {args.output_dir}") + if args.dry_run: + logger.info("Mode: DRY RUN (no files will be copied)") + if args.test: + logger.info("Mode: API TEST (testing on first part only)") + + # Get credentials + username = args.username + if not username: + username = input("PDM Username: ") + + password = getpass.getpass("PDM Password: ") + + # Get file extension from user + ext_input = input("Enter the file extension to search for (e.g., SLDASM, SLDDRW, SLDPRT): ").strip() + ext_input = ext_input.lstrip(".") # Remove leading dot if user included one + if not ext_input: + logger.error("No extension provided. Exiting.") + return 1 + extension = f".{ext_input}" + logger.info(f"File extension: {extension}") + + # Load part numbers from CSV + part_numbers = load_part_numbers_from_csv(args.csv) + + if not part_numbers: + logger.error("No part numbers loaded from CSV. Exiting.") + return 1 + + logger.info(f"Loaded {len(part_numbers)} part numbers from CSV") + + # Connect to vault + vault = PDMVaultConnection(args.vault) + + if not vault.connect(username, password): + logger.error("Failed to connect to vault. Exiting.") + return 1 + + try: + # Search for parts in vault + logger.info("Searching for parts in vault...") + logger.info("=" * 60) + validation = search_and_resolve_parts(vault, part_numbers, extension) + + valid_count = len(validation["valid"]) + not_found_count = len(validation["not_found"]) + + # Summary + logger.info("=" * 60) + logger.info("SEARCH RESULTS SUMMARY") + logger.info("=" * 60) + logger.info(f"Parts ready to process: {valid_count}") + logger.info(f"Parts not found: {not_found_count}") + + # Report not found + if not_found_count > 0: + logger.warning("\nParts not found in vault:") + for pn in validation["not_found"]: + logger.warning(f" - {pn}") + + # Save not found list + not_found_file = f"not_found_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" + with open(not_found_file, 'w') as f: + for pn in validation["not_found"]: + f.write(pn + "\n") + logger.info(f"Not found list saved to: {not_found_file}") + + if valid_count == 0: + logger.error("No valid parts to process. Exiting.") + return 1 + + # API test mode - test on first part then exit + if args.test: + test_passed = test_copy_tree_api(vault, validation["valid"][0]) + return 0 if test_passed else 1 + + # Verify output directory is accessible + try: + os.makedirs(args.output_dir, exist_ok=True) + except OSError as e: + logger.error(f"Cannot create output directory '{args.output_dir}': {e}") + return 1 + + # Confirm before proceeding + mode_label = "DRY RUN copy tree" if args.dry_run else "copy tree" + print(f"\nReady to {mode_label} for {valid_count} parts to '{args.output_dir}'") + confirm = input("Proceed? (yes/no): ").strip().lower() + + if confirm != "yes": + logger.info("Operation cancelled by user") + return 0 + + # Execute batch copy tree + results = batch_copy_tree( + vault, + validation["valid"], + args.output_dir, + dry_run=args.dry_run + ) + + # Final report + logger.info("=" * 60) + logger.info("BATCH COPY TREE COMPLETE") + logger.info("=" * 60) + logger.info(f"Total parts processed: {valid_count}") + logger.info(f"Successful: {len(results['success'])}") + logger.info(f"Failed: {len(results['failed'])}") + + if results["success"]: + total_files = sum(r["file_count"] for r in results["success"]) + logger.info(f"Total files exported: {total_files}") + + if results["failed"]: + logger.warning("\nFailed parts:") + for r in results["failed"]: + logger.warning(f" - {r['source_path']}: {r['error']}") + + # Write failed parts to a separate file for retry + failed_file = f"failed_copies_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" + with open(failed_file, 'w') as f: + for r in results["failed"]: + f.write(f"{r['source_path']}\t{r['error']}\n") + logger.info(f"Failed parts list saved to: {failed_file}") + + return 0 if not results["failed"] else 1 + + finally: + vault.disconnect() + + +if __name__ == "__main__": + exit(main()) diff --git a/helpers/batch_workflows_paths.py b/helpers/batch_workflows_paths.py new file mode 100644 index 0000000..f274f45 --- /dev/null +++ b/helpers/batch_workflows_paths.py @@ -0,0 +1,864 @@ +""" +Batch Workflow Processing for PDM Vault (Path-based) +===================================================== +This module provides a framework for: +1. Logging into a PDM vault via API +2. Processing a list of files (by full vault path) through a specified workflow transition + +Usage: + python batch_workflows_paths.py --vault "MyVault" --csv "files.csv" --transition "citadel_set_production released" +""" + +import logging +import argparse +import getpass +import time +from datetime import datetime +from pathlib import Path +from typing import List, Optional, Dict, Any + +import ctypes +import pythoncom +import win32com.client +import comtypes +import comtypes.automation +from comtypes import COMMETHOD, GUID, HRESULT +from comtypes.automation import IDispatch as _CT_IDispatch + +# PDM API Type Library Constants +EdmObject_File = 1 +EdmObject_Folder = 2 +EdmObject_Workflow = 6 + +# --------------------------------------------------------------------------- +# comtypes interface for IEdmFile13 — enables vtable call to ChangeState3. +# +# Confirmed from gen_py stubs (IEdmFile13.py): +# IID : {DB0646C9-9E3F-4EA2-93AA-EB6584D268E2} +# oVft : 432 → slot 54 (IUnknown[0-2] + IDispatch[3-6] + 47 placeholders[7-53]) +# --------------------------------------------------------------------------- +_IEdmFile13_phs = [COMMETHOD([], HRESULT, f"_ph{i}") for i in range(47)] +_VARIANT_p = ctypes.POINTER(comtypes.automation.VARIANT) + +class _IEdmFile13_CT(_CT_IDispatch): + _iid_ = GUID("{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}") + _idlflags_ = ["dual", "oleautomation"] + _methods_ = _IEdmFile13_phs + [ + COMMETHOD( + [], HRESULT, "ChangeState3", + (["in"], _VARIANT_p, "poStateIdOrName"), + (["in"], _VARIANT_p, "poTransitionIdOrName"), + (["in"], ctypes.c_long, "lFolderID"), + (["in"], ctypes.c_wchar_p, "bsComment"), + (["in"], ctypes.c_long, "lParentWnd"), + (["in"], ctypes.c_long, "lEdmStateFlags"), + (["in"], ctypes.c_wchar_p, "bsPasswd"), + ), + ] + + +def _make_i4_variant(val: int) -> comtypes.automation.VARIANT: + """Return a VARIANT with vt=VT_I4 containing the given integer.""" + v = comtypes.automation.VARIANT() + v.vt = 3 # VT_I4 + ctypes.cast(ctypes.byref(v, 8), ctypes.POINTER(ctypes.c_int))[0] = int(val) + return v + + +class _Phase2AVError(OSError): + """Raised when ChangeState3 crashes with an access violation after all retries. + + Distinct from generic OSError so batch_transition can count consecutive + Phase-2 AV failures and trigger a vault reconnect to reset PDM's in-process + state after repeated corruption. + """ + + +# Escalating backoff for Phase-2 access violations (seconds between attempts). +# PDM's in-process DLL can take progressively longer to clean up after state +# corruption accumulates; a longer final sleep gives it a real chance to settle. +_PHASE2_BACKOFF = (3, 10, 30) + + +def _changestate3(vault_obj, file_id: int, to_state_id: int, + transition_id: int, folder_id: int, comment: str, + password: str) -> None: + """ + Call IEdmFile13::ChangeState3 via comtypes vtable to transition a file + using a *specific* transition ID, bypassing the ambiguous ChangeState. + + Uses the primary win32com vault for GetObject so that the returned COM + proxy is in the primary connection's context. Bridging to comtypes is + done by reading the IEdmFile13* stored inside the pythoncom PyIBase + wrapper at CPython object offset 16, then calling QueryInterface to get + an AddRef'd comtypes pointer. + + Reads from _oleobj_ directly (not from a secondary QI(IID_IUnknown) result) + because for aggregated COM objects the controlling IUnknown can be at a + different address with a shorter lifetime than the IEdmFile13* itself. + + Retries up to 3 additional times on Phase-1 access-violation or + misaligned-pointer failures, and on Phase-2 access violations inside + ChangeState3 itself (with escalating backoff of 3s, 10s, 30s between + attempts to give PDM's in-process DLL time to clean up corrupted state). + If all Phase-2 attempts fail, raises _Phase2AVError so batch_transition + can trigger a vault reconnect after repeated failures. + """ + logger = logging.getLogger("batch_workflows_paths") + max_attempts = 1 + len(_PHASE2_BACKOFF) # initial + 3 retries + + for attempt in range(max_attempts): + if attempt > 0: + logger.debug(f" [CS3] Retry {attempt} for file ID {file_id}") + + file_obj = None + try: + # Fresh COM wrapper each attempt — primary vault, no competing refs. + file_obj = win32com.client.CastTo( + vault_obj.GetObject(EdmObject_File, file_id), 'IEdmFile13' + ) + # CastTo('IEdmFile13') calls QI(IID_IEdmFile13) so _oleobj_ already + # holds the IEdmFile13* directly. Read it at offset 16 in the + # CPython object struct (ob_refcnt[8] + ob_type[8] + m_pUnknown[8]). + py_disp = file_obj._oleobj_ + raw_ptr = ctypes.c_uint64.from_address(id(py_disp) + 16).value + logger.debug(f" [CS3] raw_ptr={raw_ptr:#018x} (& 7 == {raw_ptr & 7})") + if not raw_ptr or (raw_ptr & 0x7) != 0: + raise RuntimeError(f"Misaligned IEdmFile13* at offset 16: {raw_ptr:#x}") + ct_unk = ctypes.cast(raw_ptr, ctypes.POINTER(comtypes.IUnknown)) + file13 = ct_unk.QueryInterface(_IEdmFile13_CT) # AddRefs independently + logger.debug(f" [CS3] QI OK (attempt {attempt})") + except (OSError, RuntimeError) as exc: + if file_obj is not None: + del file_obj + is_retryable = ( + (isinstance(exc, OSError) and 'access violation' in str(exc).lower()) + or isinstance(exc, RuntimeError) + ) + if is_retryable and attempt < max_attempts - 1: + sleep_s = _PHASE2_BACKOFF[attempt] + logger.debug( + f" [CS3] Phase-1 failure ({exc}); sleeping {sleep_s}s then retrying" + ) + time.sleep(sleep_s) + continue + raise + + # Release win32com wrapper — file13 holds its own AddRef'd reference. + del file_obj + + # --- Phase 2: call ChangeState3 --- + v_state = _make_i4_variant(to_state_id) + v_trans = _make_i4_variant(transition_id) + try: + file13.ChangeState3( + ctypes.byref(v_state), + ctypes.byref(v_trans), + ctypes.c_long(folder_id), + comment, + ctypes.c_long(0), + ctypes.c_long(0), + password, + ) + return # success + except OSError as exc: + # Access violation inside ChangeState3 (PDM in-process DLL crashes while + # accessing internal state left over from a recent transition). An + # escalating sleep (3s, 10s, 30s) lets PDM's post-transition cleanup + # finish, then we retry with a fresh COM wrapper. After all retries + # are exhausted, raise _Phase2AVError so batch_transition can count + # consecutive failures and reconnect the vault. + if 'access violation' in str(exc).lower(): + if attempt < max_attempts - 1: + sleep_s = _PHASE2_BACKOFF[attempt] + logger.debug( + f" [CS3] Phase-2 access violation ({exc}); " + f"sleeping {sleep_s}s for PDM cleanup then retrying" + ) + time.sleep(sleep_s) + continue + raise _Phase2AVError( + f"ChangeState3 access violation after {max_attempts} attempts: {exc}" + ) from exc + raise + + +# ============================================================================= +# CONFIGURATION - Can be overridden via command line +# ============================================================================= + +VAULT_NAME = "IDSVault" # Default vault name +DEFAULT_TRANSITION = "Citadel_mig_Set Proto Released" # Default transition name + + +# ============================================================================= +# LOGGING SETUP +# ============================================================================= + +def setup_logging(log_file: Optional[str] = None) -> logging.Logger: + """Configure logging for the batch process.""" + if log_file is None: + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file = f"batch_workflow_paths_{timestamp}.log" + + logger = logging.getLogger("batch_workflows_paths") + logger.setLevel(logging.DEBUG) + + # File handler + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + + # Console handler + ch = logging.StreamHandler() + ch.setLevel(logging.INFO) + + # Formatter + formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + ch.setFormatter(formatter) + + logger.addHandler(fh) + logger.addHandler(ch) + + return logger + + +# ============================================================================= +# PDM VAULT CONNECTION +# ============================================================================= + +class PDMVaultConnection: + """Handles connection and authentication to the PDM vault.""" + + def __init__(self, vault_name: str): + self.vault_name = vault_name + self.vault = None + self.is_connected = False + self.logger = logging.getLogger("batch_workflows_paths") + self._username = None + self._password = None + + def connect(self, username: str, password: str) -> bool: + """ + Connect and log into the PDM vault with username/password. + + Args: + username: PDM username + password: PDM password + + Returns: + True if connection successful, False otherwise + """ + try: + self.vault = win32com.client.Dispatch("ConisioLib.EdmVault") + + # Login with credentials + self.vault.Login(username, password, self.vault_name) + + self.is_connected = True + self._username = username + self._password = password + self.logger.info(f"Successfully connected to vault: {self.vault_name}") + self.logger.info(f"Logged in as: {username}") + + return True + + except Exception as e: + self.logger.error(f"Failed to connect to vault '{self.vault_name}': {e}") + self.is_connected = False + return False + + def disconnect(self) -> None: + """Disconnect from the PDM vault.""" + if self.vault is not None: + try: + self.vault = None + self.is_connected = False + self.logger.info("Disconnected from vault") + except Exception as e: + self.logger.warning(f"Error during disconnect: {e}") + + def reconnect(self) -> bool: + """Force a full disconnect + re-login using the stored credentials. + + Used to reset PDM's in-process DLL state after repeated Phase-2 access + violations indicate the vault connection's internal data structures have + been corrupted. Returns True if the re-login succeeded. + """ + if self._username is None or self._password is None: + self.logger.error("Cannot reconnect: no stored credentials") + return False + username, password = self._username, self._password + self.logger.info("Reconnecting vault to reset PDM internal state...") + self.disconnect() + # Give the in-process DLL a moment to release any lingering state. + time.sleep(2) + return self.connect(username, password) + + def get_file(self, file_path: str) -> Dict[str, Any]: + """ + Get a file object from the vault by full path. + + Args: + file_path: Full path to the file in the vault + + Returns: + Dict with 'file_obj', 'folder_obj', 'path' or None if not found + """ + if not self.is_connected: + self.logger.error("Not connected to vault") + return None + + try: + folder_path = str(Path(file_path).parent) + folder_obj = self.vault.GetFolderFromPath(folder_path) + + if folder_obj is None: + self.logger.warning(f"Folder not found: {folder_path}") + return None + + # GetFileFromPath returns (file_obj, file_id) tuple + result = self.vault.GetFileFromPath(file_path, folder_obj) + + # Handle tuple return value + if isinstance(result, tuple): + file_obj = result[0] + else: + file_obj = result + + if file_obj is None: + return None + + # Re-fetch via GetObject, then cast to IEdmFile13 so CurrentState and + # transition methods are accessible regardless of gen_py stub state. + file_obj = self.vault.GetObject(EdmObject_File, file_obj.ID) + file_obj = win32com.client.CastTo(file_obj, 'IEdmFile13') + + return { + "file_obj": file_obj, + "folder_obj": folder_obj, + "path": file_path + } + + except Exception as e: + self.logger.error(f"Error getting file '{file_path}': {e}") + return None + + def __enter__(self): + """Context manager entry.""" + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Context manager exit.""" + self.disconnect() + + +# ============================================================================= +# FILE LIST HANDLING +# ============================================================================= + +def load_file_list_from_csv(csv_path: str) -> List[str]: + """ + Load list of file paths from a CSV file (single column, no header). + + Args: + csv_path: Path to the CSV file with one file path per line + + Returns: + List of file paths + """ + logger = logging.getLogger("batch_workflows_paths") + file_paths = [] + + try: + with open(csv_path, 'r', encoding='utf-8-sig') as f: + for line_num, line in enumerate(f, start=1): + file_path = line.strip() + if file_path: # Skip empty lines + file_paths.append(file_path) + + logger.info(f"Loaded {len(file_paths)} file paths from {csv_path}") + + except FileNotFoundError: + logger.error(f"CSV file not found: {csv_path}") + except Exception as e: + logger.error(f"Error reading CSV file: {e}") + + return file_paths + + +def validate_files( + vault: PDMVaultConnection, + file_paths: List[str] +) -> Dict[str, List]: + """ + Validate that files exist in the vault by their full paths. + + Args: + vault: Active vault connection + file_paths: List of full vault paths to validate + + Returns: + Dict with: + - 'valid': list of file info dicts (ready for transition) + - 'not_found': list of paths not found in vault + """ + logger = logging.getLogger("batch_workflows_paths") + results = {"valid": [], "not_found": []} + + total = len(file_paths) + for i, file_path in enumerate(file_paths, 1): + logger.info(f"[{i}/{total}] Validating: {file_path}") + + file_info = vault.get_file(file_path) + + if file_info is None: + results["not_found"].append(file_path) + logger.warning(f" NOT FOUND: {file_path}") + else: + # Read state now, then release the COM wrappers immediately. + # Keeping file_obj alive across the full validation pass leaves + # stale COM proxies in memory. After any file is transitioned, + # PDM's server may invalidate proxies for other files, causing + # access violations later. transition_file() fetches its own + # fresh wrapper just before it needs it. + try: + current_state = file_info["file_obj"].CurrentState + state_name = current_state.Name if current_state else "Unknown" + except Exception as e: + logger.warning(f" Could not get state: {e}") + state_name = "Unknown" + + results["valid"].append({"path": file_path, "current_state": state_name}) + logger.info(f" FOUND (State: {state_name})") + # file_info (and its file_obj / folder_obj) goes out of scope here + + return results + + +# ============================================================================= +# WORKFLOW PROCESSING +# ============================================================================= + +def get_available_transitions(vault: PDMVaultConnection, file_obj) -> List[Dict[str, Any]]: + """ + Get list of available transitions for a file in its current state. + + Args: + vault: Active vault connection + file_obj: IEdmFile object + + Returns: + List of transition info dicts with 'name' and 'id' + """ + logger = logging.getLogger("batch_workflows_paths") + transitions = [] + + try: + current_state = file_obj.CurrentState + if current_state is None: + return transitions + + trans_pos = current_state.GetFirstTransitionPosition() + while not trans_pos.IsNull: + transition = current_state.GetNextTransition(trans_pos) + transitions.append({ + "name": transition.Name, + "id": transition.ID, + "target_state": transition.ToState.Name if transition.ToState else "Unknown" + }) + + except Exception as e: + logger.error(f"Error getting transitions: {e}") + + return transitions + + +def transition_file( + vault: PDMVaultConnection, + file_info: Dict[str, Any], + transition_name: str, + comment: str = "" +) -> str: + """ + Transition a single file using a named transition. + + Args: + vault: Active vault connection + file_info: Dict containing 'path' (and optionally 'current_state' for logging) + transition_name: Name of the transition to execute + comment: Optional transition comment + + Returns: + One of "success", "not_available", or "failed". + - "success": transition completed and state verified + - "not_available": named transition is not valid from the file's current + state (typically means the file is already in the target state from a + prior run — not a real failure, just a no-op) + - "failed": real failure (access violation, missing file, state + unchanged after call, etc.) — worth retrying + """ + logger = logging.getLogger("batch_workflows_paths") + file_path = file_info["path"] + + try: + # Fetch a fresh COM wrapper right now — not from validation. + # By the time this file is processed, earlier transitions may have + # caused PDM to invalidate COM proxies obtained during the validation + # pass. A fresh GetObject/CastTo gives a clean proxy every time. + fresh = vault.get_file(file_path) + if fresh is None: + logger.error(f"File no longer accessible in vault: {file_path}") + return "failed" + file_obj = fresh["file_obj"] + folder_obj = fresh["folder_obj"] + + # Get current state and find the transition + current_state = file_obj.CurrentState + if current_state is None: + logger.error(f"File has no workflow state: {file_path}") + return "failed" + + # Find the transition by name + target_transition = None + trans_pos = current_state.GetFirstTransitionPosition() + + while not trans_pos.IsNull: + transition = current_state.GetNextTransition(trans_pos) + if transition.Name.lower() == transition_name.lower(): + target_transition = transition + break + + if target_transition is None: + available = get_available_transitions(vault, file_obj) + available_names = [t["name"] for t in available] + logger.error( + f"Transition '{transition_name}' not available for {file_path}. " + f"Current state: {current_state.Name}. " + f"Available transitions: {available_names}" + ) + return "not_available" + + # Collect everything we need from the COM objects, then release them + # before calling _changestate3. _changestate3 fetches its own wrapper + # internally, so having the lookup wrapper alive simultaneously would + # create competing COM references and corrupt PDM's internal state. + old_state_name = current_state.Name + expected_state_name = target_transition.ToState.Name + to_state_id = target_transition.ToState.ID + trans_id = target_transition.ID + file_id = file_obj.ID + folder_id = folder_obj.ID + + logger.info( + f" Transition: '{target_transition.Name}' (ID: {trans_id}) | " + f"ToState: '{expected_state_name}' (ID: {to_state_id}) | " + f"Folder ID: {folder_id} | File ID: {file_id}" + ) + + # ↓ Release all COM wrappers from the lookup phase before the vtable call + del file_obj, folder_obj, fresh, current_state, target_transition, trans_pos + + try: + _changestate3( + vault.vault, + file_id, + to_state_id, + trans_id, + folder_id, + comment, + vault._password or "", + ) + except _Phase2AVError as exc: + # Persistent access violation — flag for batch_transition to count + # against the consecutive-failure threshold for reconnect. + vault._last_was_phase2_av = True + logger.error(f"Failed to transition {file_path}: {exc}") + return "failed" + else: + vault._last_was_phase2_av = False + + # Verify the state actually changed — re-fetch and cast to IEdmFile13 + fresh_file = win32com.client.CastTo( + vault.vault.GetObject(EdmObject_File, file_id), 'IEdmFile13' + ) + new_state = fresh_file.CurrentState + actual_state_name = new_state.Name if new_state else "Unknown" + + if actual_state_name.lower() == expected_state_name.lower(): + logger.info( + f"SUCCESS: {file_path} | " + f"{old_state_name} -> {actual_state_name}" + ) + return "success" + else: + logger.error( + f"FAILED (state unchanged): {file_path} | " + f"Expected: {expected_state_name}, Actual: {actual_state_name}" + ) + return "failed" + + except Exception as e: + logger.error(f"Failed to transition {file_path}: {e}") + return "failed" + + +def batch_transition( + vault: PDMVaultConnection, + file_list: List[Dict[str, Any]], + transition_name: str, + comment: str = "" +) -> Dict[str, List[str]]: + """ + Transition multiple files using a named transition. + + Args: + vault: Active vault connection + file_list: List of file info dicts (from validate_files) + transition_name: Name of the transition to execute + comment: Optional transition comment + + Returns: + Dict with 'success', 'failed', and 'not_available' file lists. + - 'success': transition completed + - 'failed': real failure worth retrying (access violation, etc.) + - 'not_available': transition not valid from current state — typically + means the file is already in the target state from a prior run + """ + logger = logging.getLogger("batch_workflows_paths") + results = {"success": [], "failed": [], "not_available": []} + + total = len(file_list) + logger.info(f"Starting batch transition: '{transition_name}' for {total} files") + logger.info("=" * 60) + + # Consecutive Phase-2 access-violation counter. When it hits the threshold, + # the vault connection's in-process state is likely corrupted past the + # point where sleeping will help, so force a full disconnect + re-login. + consecutive_phase2_av = 0 + PHASE2_AV_RECONNECT_THRESHOLD = 3 + + for i, file_info in enumerate(file_list, 1): + file_path = file_info["path"] + logger.info(f"[{i}/{total}] Processing: {file_path}") + + vault._last_was_phase2_av = False + status = transition_file(vault, file_info, transition_name, comment) + + if status == "success": + results["success"].append(file_path) + consecutive_phase2_av = 0 + elif status == "not_available": + results["not_available"].append(file_path) + consecutive_phase2_av = 0 + else: # "failed" + results["failed"].append(file_path) + if getattr(vault, "_last_was_phase2_av", False): + consecutive_phase2_av += 1 + logger.warning( + f" Phase-2 AV streak: {consecutive_phase2_av}/" + f"{PHASE2_AV_RECONNECT_THRESHOLD}" + ) + if consecutive_phase2_av >= PHASE2_AV_RECONNECT_THRESHOLD: + logger.warning( + f"{consecutive_phase2_av} consecutive Phase-2 access " + "violations — forcing vault reconnect" + ) + if vault.reconnect(): + logger.info("Vault reconnected successfully") + else: + logger.error( + "Vault reconnect failed — aborting remaining batch" + ) + break + consecutive_phase2_av = 0 + else: + consecutive_phase2_av = 0 + + return results + + +# ============================================================================= +# COMMAND LINE INTERFACE +# ============================================================================= + +def parse_arguments(): + """Parse command line arguments.""" + parser = argparse.ArgumentParser( + description="Batch workflow transitions for SolidWorks PDM Professional (path-based)", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + python batch_workflows_paths.py --vault "MyVault" --csv "files.csv" --transition "citadel_set_production released" + python batch_workflows_paths.py -v "MyVault" -c "wip_files.csv" -t "citadel_set_wip" + +CSV format (one full vault path per line): + C:\\IDSVault\\Parts\\widget.sldprt + C:\\IDSVault\\Parts\\bracket.sldprt + C:\\IDSVault\\Assemblies\\main_assy.sldasm + """ + ) + + parser.add_argument( + "-v", "--vault", + default=VAULT_NAME, + help=f"PDM vault name (default: {VAULT_NAME})" + ) + + parser.add_argument( + "-c", "--csv", + required=True, + help="Path to CSV file containing full vault paths" + ) + + parser.add_argument( + "-t", "--transition", + default=DEFAULT_TRANSITION, + help=f"Workflow transition name to execute (default: {DEFAULT_TRANSITION})" + ) + + parser.add_argument( + "--comment", + default="Batch workflow transition", + help="Comment for the workflow transition" + ) + + parser.add_argument( + "-u", "--username", + help="PDM username (will prompt if not provided)" + ) + + parser.add_argument( + "--log-file", + help="Custom log file path (default: auto-generated with timestamp)" + ) + + return parser.parse_args() + + +# ============================================================================= +# MAIN EXECUTION +# ============================================================================= + +def main(): + """Main entry point for batch workflow processing.""" + # Parse arguments + args = parse_arguments() + + # Setup logging + logger = setup_logging(args.log_file) + logger.info("=" * 60) + logger.info("PDM BATCH WORKFLOW PROCESSOR (PATH-BASED)") + logger.info("=" * 60) + logger.info(f"Vault: {args.vault}") + logger.info(f"CSV File: {args.csv}") + logger.info(f"Transition: {args.transition}") + logger.info(f"Comment: {args.comment}") + + # Get credentials + username = args.username + if not username: + username = input("PDM Username: ") + + password = getpass.getpass("PDM Password: ") + + # Load files from CSV + file_paths = load_file_list_from_csv(args.csv) + + if not file_paths: + logger.error("No files loaded from CSV. Exiting.") + return 1 + + logger.info(f"Loaded {len(file_paths)} file paths from CSV") + + # Connect to vault + vault = PDMVaultConnection(args.vault) + + if not vault.connect(username, password): + logger.error("Failed to connect to vault. Exiting.") + return 1 + + try: + # Validate files exist in vault + logger.info("Validating files in vault...") + logger.info("=" * 60) + validation = validate_files(vault, file_paths) + + valid_count = len(validation["valid"]) + not_found_count = len(validation["not_found"]) + + # Summary + logger.info("=" * 60) + logger.info("VALIDATION SUMMARY") + logger.info("=" * 60) + logger.info(f"Files ready to process: {valid_count}") + logger.info(f"Files not found: {not_found_count}") + + # Report not found + if not_found_count > 0: + logger.warning("\nFiles not found in vault:") + for f in validation["not_found"]: + logger.warning(f" - {f}") + + # Save not found list + not_found_file = f"not_found_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" + with open(not_found_file, 'w') as f: + for path in validation["not_found"]: + f.write(path + "\n") + logger.info(f"Not found list saved to: {not_found_file}") + + if valid_count == 0: + logger.error("No valid files to process. Exiting.") + return 1 + + # Execute batch transition + results = batch_transition( + vault, + validation["valid"], + args.transition, + comment=args.comment + ) + + # Final report + logger.info("=" * 60) + logger.info("BATCH PROCESS COMPLETE") + logger.info("=" * 60) + logger.info(f"Total files processed: {valid_count}") + logger.info(f"Successful transitions: {len(results['success'])}") + logger.info(f"Failed transitions: {len(results['failed'])}") + logger.info( + f"Transition not available (likely already in target state): " + f"{len(results['not_available'])}" + ) + + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + + if results["failed"]: + logger.warning("\nFailed files (real failures — retry these):") + for f in results["failed"]: + logger.warning(f" - {f}") + + failed_file = f"failed_transitions_{timestamp}.txt" + with open(failed_file, 'w') as f: + for path in results["failed"]: + f.write(path + "\n") + logger.info(f"Failed file list saved to: {failed_file}") + + if results["not_available"]: + not_avail_file = f"not_available_{timestamp}.txt" + with open(not_avail_file, 'w') as f: + for path in results["not_available"]: + f.write(path + "\n") + logger.info( + f"Not-available file list saved to: {not_avail_file} " + f"(likely already in target state — not retried)" + ) + + return 0 if not results["failed"] else 1 + + finally: + vault.disconnect() + + +if __name__ == "__main__": + exit(main()) diff --git a/helpers/db_helper.py b/helpers/db_helper.py new file mode 100644 index 0000000..35a9ef2 --- /dev/null +++ b/helpers/db_helper.py @@ -0,0 +1,788 @@ +""" +Database Helper for PDM Migration +================================== +Interactive tool for running SELECT queries, transforming results, and +inserting new rows — with mandatory terminal confirmation before any +write operation touches the database. + +Usage: + python db_helper.py --db target_db --task copy_with_new_id + python db_helper.py --db source_db --query "SELECT TOP 10 * FROM Documents" + python db_helper.py --db target_db --task copy_with_new_id --dry-run +""" + +import json +import logging +import argparse +import sys +import os +import glob +from datetime import datetime +from pathlib import Path +from typing import List, Optional, Dict, Any, Callable, Tuple, Set + +# db_utils lives one directory up +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +from db_utils import DatabaseConnection + + +# ============================================================================= +# CONFIGURATION +# ============================================================================= + +CONFIG_PATH = Path(__file__).resolve().parent.parent / "config.json" +QUERIES_DIR = Path(__file__).resolve().parent / "queries" + + +def load_config() -> dict: + """Load config.json from the project root.""" + with open(CONFIG_PATH, "r", encoding="utf-8") as f: + return json.load(f) + + +def load_query(name: str) -> str: + """ + Load a SQL query from the queries/ folder by name. + + Args: + name: Query name (filename without .sql extension). + e.g. "get_var47" loads queries/get_var47.sql + + Returns: + The SQL text from the file. + """ + sql_path = QUERIES_DIR / f"{name}.sql" + if not sql_path.exists(): + available = sorted(p.stem for p in QUERIES_DIR.glob("*.sql")) + raise FileNotFoundError( + f"Query '{name}' not found at {sql_path}\n" + f"Available queries: {available}" + ) + return sql_path.read_text(encoding="utf-8").strip() + + +def list_queries() -> List[str]: + """Return names of all available .sql files in the queries/ folder.""" + return sorted(p.stem for p in QUERIES_DIR.glob("*.sql")) + + +# ============================================================================= +# LOGGING +# ============================================================================= + +def setup_logging(log_file: Optional[str] = None) -> logging.Logger: + """Configure logging with file + console handlers.""" + if log_file is None: + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file = f"db_helper_{timestamp}.log" + + logger = logging.getLogger("db_helper") + logger.setLevel(logging.DEBUG) + + # File handler — everything + fh = logging.FileHandler(log_file) + fh.setLevel(logging.DEBUG) + + # Console handler — INFO and above + ch = logging.StreamHandler() + ch.setLevel(logging.INFO) + + formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") + fh.setFormatter(formatter) + ch.setFormatter(formatter) + + logger.addHandler(fh) + logger.addHandler(ch) + + return logger + + +# ============================================================================= +# DATABASE CONNECTION +# ============================================================================= + +def connect_db(config_key: str) -> DatabaseConnection: + """ + Connect to a database using a named block from config.json. + + Args: + config_key: "source_db" or "target_db" + + Returns: + Connected DatabaseConnection instance. + """ + logger = logging.getLogger("db_helper") + config = load_config() + + if config_key not in config: + raise ValueError( + f"Config key '{config_key}' not found in {CONFIG_PATH}. " + f"Available keys: {[k for k in config if k.endswith('_db')]}" + ) + + db_config = config[config_key] + logger.info( + f"Connecting to {db_config['database']} on {db_config['server']} " + f"({config_key})" + ) + return DatabaseConnection(db_config) + + +# ============================================================================= +# SELECT +# ============================================================================= + +def run_select( + db: DatabaseConnection, + query: str, + params: Optional[tuple] = None, + preview_rows: int = 10, +) -> List[Dict[str, Any]]: + """ + Execute a SELECT query, log it, print a preview, and return results. + + Args: + db: Active DatabaseConnection + query: SQL SELECT statement + params: Optional query parameters + preview_rows: How many rows to preview on the console (0 = skip) + + Returns: + List of row dicts. + """ + logger = logging.getLogger("db_helper") + logger.info(f"Running SELECT:\n{query}") + if params: + logger.debug(f" Params: {params}") + + rows = db.execute_query(query, params) + logger.info(f" Returned {len(rows)} row(s)") + + if rows and preview_rows > 0: + _print_table(rows[:preview_rows]) + if len(rows) > preview_rows: + print(f" ... and {len(rows) - preview_rows} more rows") + + return rows + + +def _print_table(rows: List[Dict[str, Any]]) -> None: + """Pretty-print a list of row dicts as an aligned console table.""" + if not rows: + return + columns = list(rows[0].keys()) + # Compute column widths (header vs data) + widths = {col: len(col) for col in columns} + str_rows = [] + for row in rows: + str_row = {col: str(row[col]) for col in columns} + for col in columns: + widths[col] = max(widths[col], len(str_row[col])) + str_rows.append(str_row) + + header = " | ".join(col.ljust(widths[col]) for col in columns) + sep = "-+-".join("-" * widths[col] for col in columns) + print(f" {header}") + print(f" {sep}") + for sr in str_rows: + line = " | ".join(sr[col].ljust(widths[col]) for col in columns) + print(f" {line}") + + +# ============================================================================= +# CONFIRMATION GATE +# ============================================================================= + +def preview_and_confirm( + action: str, + sql: str, + rows: List[Dict[str, Any]], + preview_rows: int = 5, + dry_run: bool = False, + total_row_count: Optional[int] = None, +) -> bool: + """ + Show the user what's about to happen and ask for confirmation. + + Args: + action: Short description ("INSERT into Documents") + sql: The SQL statement that will be executed + rows: The data rows that will be written (or a sample of them) + preview_rows: How many sample rows to display + dry_run: If True, show the preview but return False without prompting + total_row_count: If `rows` is only a sample, pass the full count + here so the prompt shows the real number of rows + that will be written. + + Returns: + True if user confirms, False otherwise. + """ + logger = logging.getLogger("db_helper") + full_count = total_row_count if total_row_count is not None else len(rows) + + print("\n" + "=" * 60) + print(f" ACTION: {action}") + print(f" ROWS: {full_count}") + print(f" SQL: {sql}") + print("=" * 60) + + if rows and preview_rows > 0: + shown = min(preview_rows, len(rows)) + print(f"\n Sample data ({shown} of {full_count}):") + _print_table(rows[:preview_rows]) + + if dry_run: + print("\n [DRY RUN] — no changes will be made.") + logger.info(f"[DRY RUN] Would {action} ({full_count} rows)") + return False + + print() + response = input(" Execute this? [y/N]: ").strip().lower() + if response in ("y", "yes"): + logger.info(f"User confirmed: {action} ({full_count} rows)") + return True + else: + logger.info(f"User declined: {action}") + print(" Aborted.") + return False + + +# ============================================================================= +# INSERT +# ============================================================================= + +def _parse_insert_columns(sql: str) -> Optional[List[str]]: + """ + Extract the column name list from a standard INSERT statement. + + Matches 'INSERT INTO (col1, col2, ...) VALUES ...'. Returns + None if the INSERT has no explicit column list (e.g. 'INSERT INTO t + VALUES (...)') so the caller can fall back to positional labels. + """ + import re + # Match the first parenthesised group after INSERT INTO
    + # Table name may be bracketed/dotted: [db].[dbo].[Table] + m = re.search( + r"INSERT\s+INTO\s+[\[\]\w\.]+\s*\(([^)]+)\)\s*VALUES", + sql, + re.IGNORECASE | re.DOTALL, + ) + if not m: + return None + cols = [c.strip().strip("[]") for c in m.group(1).split(",")] + return [c for c in cols if c] + + +def _build_insert_preview_rows( + rows: List[Dict[str, Any]], + params_builder: Callable[[Dict[str, Any]], tuple], + column_names: Optional[List[str]], +) -> List[Dict[str, Any]]: + """ + Apply params_builder to each row and return dicts keyed by the INSERT's + column names — so the preview shows exactly what will be written. + Falls back to positional labels ('col_0', 'col_1', ...) if the column + list couldn't be parsed. + """ + preview = [] + for row in rows: + params = params_builder(row) + if column_names and len(column_names) == len(params): + preview.append(dict(zip(column_names, params))) + else: + preview.append({f"col_{i}": v for i, v in enumerate(params)}) + return preview + + +def run_insert( + db: DatabaseConnection, + insert_sql: str, + rows: List[Dict[str, Any]], + params_builder: Callable[[Dict[str, Any]], tuple], + action: str = "INSERT rows", + dry_run: bool = False, + preview_columns: Optional[List[str]] = None, +) -> Dict[str, int]: + """ + Insert rows with confirmation, logging, and transaction safety. + + Args: + db: Active DatabaseConnection + insert_sql: Parameterised INSERT statement (use ? placeholders) + rows: Row dicts (typically from run_select, possibly transformed) + params_builder: Callable that converts a row dict into the param + tuple matching the INSERT's ? placeholders + action: Description shown in the confirmation prompt + dry_run: If True, preview only — don't execute + preview_columns: Optional list of column names for the preview + display. If None, parsed from the INSERT SQL. + + Returns: + Dict with counts: inserted, skipped, errors + """ + logger = logging.getLogger("db_helper") + stats = {"inserted": 0, "skipped": 0, "errors": 0} + + if not rows: + logger.info("No rows to insert.") + return stats + + # Build the preview from the ACTUAL params that will be sent to the DB + # (not the raw SELECT rows) so users see what will really be inserted. + column_names = preview_columns or _parse_insert_columns(insert_sql) + preview_rows = _build_insert_preview_rows( + rows[:5], params_builder, column_names + ) + # Attach the full row count so preview_and_confirm can report it + # accurately even though we only transformed the sample. + if not preview_and_confirm( + action, insert_sql, preview_rows, + total_row_count=len(rows), + dry_run=dry_run, + ): + return stats + + # Execute row-by-row inside a single transaction so we can log per-row + # and rollback cleanly on failure. + total = len(rows) + # Update progress ~50 times across the batch (minimum every row for + # tiny batches). Keeps the terminal feeling alive without spamming. + progress_step = max(1, total // 50) + print() # blank line before the progress indicator + + for i, row in enumerate(rows, 1): + params = params_builder(row) + try: + db.execute_non_query_no_commit(insert_sql, params) + stats["inserted"] += 1 + logger.debug(f" [{i}/{total}] Inserted: {params}") + except Exception as exc: + err_msg = str(exc) + if "duplicate" in err_msg.lower() or "violation of" in err_msg.lower(): + stats["skipped"] += 1 + logger.warning(f" [{i}/{total}] Skipped (duplicate): {params}") + else: + stats["errors"] += 1 + logger.error(f" [{i}/{total}] Error: {exc} | params={params}") + + # Live progress (overwrites the same line) + if i % progress_step == 0 or i == total: + pct = (i / total) * 100 + print( + f"\r Progress: {i}/{total} ({pct:5.1f}%) " + f"inserted={stats['inserted']} skipped={stats['skipped']} " + f"errors={stats['errors']}", + end="", + flush=True, + ) + print() # end the progress line + + # Commit or rollback + if stats["errors"] == 0: + db.commit() + logger.info( + f"Committed. Inserted: {stats['inserted']}, " + f"Skipped: {stats['skipped']}" + ) + else: + print( + f"\n {stats['errors']} error(s) occurred. " + f"Commit anyway? [y/N]: ", end="" + ) + resp = input().strip().lower() + if resp in ("y", "yes"): + db.commit() + logger.info(f"Committed with errors. {stats}") + else: + db.rollback() + stats["inserted"] = 0 + logger.warning(f"Rolled back all inserts. {stats}") + print(" Rolled back.") + + # Summary + print(f"\n Results: {stats}") + return stats + + +# ============================================================================= +# PREDEFINED TASKS +# ============================================================================= +# Each task is a function that receives (db, args) and orchestrates a +# SELECT → transform → INSERT workflow. Register new tasks in TASK_REGISTRY +# at the bottom of this section. + +def task_copy_with_new_id(db: DatabaseConnection, args: argparse.Namespace) -> None: + """ + Example task: query rows, swap the ID, and insert as new rows. + + Customise the SELECT, INSERT, and transform logic below to match your + actual table and columns. + """ + logger = logging.getLogger("db_helper") + + # ----- 1. SELECT the source rows ----- + select_sql = """ + SELECT TOP 10 + ID, Name, Description + FROM YourTable + WHERE SomeCondition = 1 + """ + rows = run_select(db, select_sql) + + if not rows: + logger.info("No source rows found — nothing to do.") + return + + # ----- 2. Transform: build new rows with modified values ----- + # Adjust this logic to match your actual needs (new IDs, tweaked + # strings, mapped values, etc.) + new_rows = [] + for row in rows: + new_row = dict(row) # shallow copy + new_row["ID"] = row["ID"] + 1000 # example: offset the ID + # new_row["Name"] = row["Name"] # keep as-is, or modify + new_rows.append(new_row) + + # ----- 3. INSERT the transformed rows ----- + insert_sql = """ + INSERT INTO YourTable (ID, Name, Description) + VALUES (?, ?, ?) + """ + + run_insert( + db, + insert_sql, + new_rows, + params_builder=lambda r: (r["ID"], r["Name"], r["Description"]), + action="INSERT transformed rows into YourTable", + dry_run=args.dry_run, + ) + + +def task_check_vv50(db: DatabaseConnection, args: argparse.Namespace) -> None: + """ + For every document that has VariableID=57 (in DWS paths), check whether + it also has a VariableValue row for VariableID=50. + + Steps: + 1. Run DWS_GET_VV-57.sql → list of documents + 2. For each DocumentID, run Get_All_VV_Per_DocID.sql + 3. Log whether VariableID=50 is present or missing + """ + logger = logging.getLogger("db_helper") + + # ----- Step 1: Get all documents with VV-57 ----- + step1_sql = load_query("DWS_GET_VV-57") + docs = run_select(db, step1_sql, preview_rows=5) + + if not docs: + logger.info("No documents returned — nothing to check.") + return + + # ----- Step 2 & 3: Check each document for VV-50 ----- + step2_sql = load_query("Get_All_VV_Per_DocID") + + has_vv50 = [] + missing_vv50 = [] + + total = len(docs) + for i, doc in enumerate(docs, 1): + doc_id = doc["DocumentID"] + file_name = doc.get("FileName", "") + full_path = doc.get("FullVaultPath", file_name) + + var_rows = db.execute_query(step2_sql, (doc_id,)) + var_ids = {row["VariableID"] for row in var_rows} + + if 50 in var_ids: + has_vv50.append(doc) + logger.debug( + f" [{i}/{total}] VV-50 EXISTS | DocID={doc_id} | {full_path}" + ) + else: + missing_vv50.append(doc) + logger.info( + f" [{i}/{total}] VV-50 MISSING | DocID={doc_id} | {full_path}" + ) + + # ----- Summary ----- + logger.info("=" * 60) + logger.info("VV-50 CHECK COMPLETE") + logger.info("=" * 60) + logger.info(f"Total documents checked: {total}") + logger.info(f" Has VV-50: {len(has_vv50)}") + logger.info(f" Missing VV-50: {len(missing_vv50)}") + + if has_vv50: + # Write missing list to file for follow-up + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + out_file = f"has_vv50_{timestamp}.txt" + with open(out_file, "w", encoding="utf-8") as f: + f.write("DocumentID,FileName,FullVaultPath\n") + for doc in has_vv50: + f.write( + f"{doc['DocumentID']}," + f"{doc.get('FileName', '')}," + f"{doc.get('FullVaultPath', '')}\n" + ) + logger.info(f"Has VV-50 list saved to: {out_file}") + +def copy_57_to_50(db: DatabaseConnection, args: argparse.Namespace) -> None: + """ + DWS had a variable called Number, but we want that info to show up on the data cards + in the field for "Drawing Number" + + That means that anything in the DWS folder that has a VariableID = 57, we are going to take all of that + information and insert a new row in the VariableValues table, where everything is the same except the VariableID = 50 + + The one caveat is that we don't want to insert a row for VariableID = 50 if one already exists. For that we are going to reference + the has_vv50_{date}.txt file and exlude those document ID's + + Steps: + 1. Run DWS_VV-57_FullList.sql → list of documents + 2. For each row returned in Step 1. check and see if DocumentID exists in the has_vv50_{date}.txt file + 3. If it doesnt already exist insert a new row into VariableValue with all of the same info only change the VariableID to 50 + """ + logger = logging.getLogger("db_helper") + + # ----- Step 1: Fetch all VV-57 rows in DWS paths ----- + rows_57 = run_select( + db, load_query("DWS_VV-57_FullList"), preview_rows=5 + ) + if not rows_57: + logger.info("No VV-57 rows found — nothing to copy.") + return + + # ----- Step 2: Load DocumentIDs that already have VV-50 ----- + exclude_file = args.exclude_file or _find_latest_has_vv50_file() + excluded_doc_ids = _load_excluded_doc_ids(exclude_file) + + # ----- Step 3: Filter out rows whose DocumentID already has VV-50 ----- + rows_to_insert = [ + r for r in rows_57 if r["DocumentID"] not in excluded_doc_ids + ] + skipped = len(rows_57) - len(rows_to_insert) + logger.info( + f"After filter: {len(rows_to_insert)} rows to insert, " + f"{skipped} skipped (DocumentID already has VV-50)" + ) + + if not rows_to_insert: + logger.info("Nothing to insert after filtering.") + return + + # ----- Step 4: Insert (with preview + confirmation) ----- + def build_params(row: Dict[str, Any]) -> tuple: + # Parameter order MUST match INSERT_VV50_Copy.sql: + # VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, + # ValueText, ValueInt, ValueFloat, ValueDate, ValueCache, IsLongText + return ( + 50, # override VariableID + row["DocumentID"], + row["ProjectID"], + row["RevisionNo"], + row["ConfigurationID"], + row["ValueText"], + row["ValueInt"], + row["ValueFloat"], + row["ValueDate"], + row["ValueCache"], + row["IsLongText"], + ) + + run_insert( + db, + load_query("INSERT_VV50_Copy"), + rows_to_insert, + params_builder=build_params, + action="INSERT VariableID=50 copies of DWS VV-57 rows", + dry_run=args.dry_run, + ) + + +def _find_latest_has_vv50_file() -> Optional[str]: + """Find the most recent has_vv50_*.txt file in the current directory.""" + logger = logging.getLogger("db_helper") + matches = sorted(glob.glob("has_vv50_*.txt")) + if not matches: + return None + latest = matches[-1] + logger.info(f"Auto-detected exclusion file: {latest}") + return latest + + +def _load_excluded_doc_ids(path: Optional[str]) -> Set[int]: + """ + Load DocumentIDs from a has_vv50_*.txt file (CSV format with header). + + Returns an empty set if no file is provided and prompts the user to + confirm they want to proceed without any exclusions. + """ + logger = logging.getLogger("db_helper") + + if not path: + logger.warning( + "No exclusion file found — ALL VV-57 DocumentIDs will get a " + "VV-50 copy, including ones that may already have VV-50." + ) + resp = input( + " Proceed without an exclusion list? [y/N]: " + ).strip().lower() + if resp not in ("y", "yes"): + logger.info("User aborted — no exclusion file.") + raise SystemExit(1) + return set() + + excluded: Set[int] = set() + with open(path, "r", encoding="utf-8") as f: + header = f.readline() # discard "DocumentID,FileName,FullVaultPath" + for line in f: + line = line.strip() + if not line: + continue + first = line.split(",", 1)[0].strip() + if first.isdigit(): + excluded.add(int(first)) + logger.info(f"Loaded {len(excluded)} DocumentIDs to exclude from {path}") + return excluded + + +# Register tasks here — maps --task name to function +TASK_REGISTRY: Dict[str, Callable] = { + "copy_with_new_id": task_copy_with_new_id, + "check_vv50": task_check_vv50, + "copy_57_to_50": copy_57_to_50 +} + + +# ============================================================================= +# CLI +# ============================================================================= + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Database helper for PDM migration — interactive SQL tasks", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + python db_helper.py --db target_db --task copy_with_new_id + python db_helper.py --db target_db --task copy_with_new_id --dry-run + python db_helper.py --db source_db --query get_var47 + python db_helper.py --db source_db --query "SELECT TOP 10 * FROM Documents" + python db_helper.py --list-queries + """, + ) + parser.add_argument( + "--db", + help='Config key for the database: "source_db" or "target_db"', + ) + parser.add_argument( + "--task", + choices=list(TASK_REGISTRY.keys()), + help="Name of a predefined task to run", + ) + parser.add_argument( + "--query", + help=( + "Run a SELECT query. Pass a query name to load from " + "helpers/queries/.sql, or pass raw SQL in quotes." + ), + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Preview what would happen without executing writes", + ) + parser.add_argument( + "--list-queries", + action="store_true", + help="List all available saved queries and exit", + ) + parser.add_argument( + "--exclude-file", + help=( + "Path to a has_vv50_*.txt file whose DocumentIDs should be " + "excluded from copy_57_to_50. If omitted, the most recent " + "has_vv50_*.txt in the current directory is used." + ), + ) + return parser.parse_args() + + +def _resolve_query(query_arg: str) -> str: + """ + Resolve a --query argument to SQL text. + + If it looks like a SQL statement (contains a space), use it as-is. + Otherwise treat it as a saved query name and load from queries/.sql. + """ + if " " in query_arg: + return query_arg + return load_query(query_arg) + + +def main() -> int: + args = parse_arguments() + + # --list-queries doesn't need a DB connection or logging + if args.list_queries: + queries = list_queries() + if queries: + print(f"Available queries in {QUERIES_DIR}:") + for name in queries: + # Show the first line of each .sql as a description + sql_path = QUERIES_DIR / f"{name}.sql" + first_line = sql_path.read_text(encoding="utf-8").split("\n")[0] + print(f" {name:30s} {first_line}") + else: + print(f"No .sql files found in {QUERIES_DIR}") + return 0 + + if not args.db: + print("Error: --db is required (unless using --list-queries)") + return 1 + + logger = setup_logging() + + logger.info("=" * 60) + logger.info("DB HELPER") + logger.info("=" * 60) + logger.info(f"Database: {args.db}") + logger.info(f"Task: {args.task or '(ad-hoc query)'}") + logger.info(f"Dry run: {args.dry_run}") + + db = connect_db(args.db) + + try: + if args.query: + sql = _resolve_query(args.query) + logger.info(f"Resolved query:\n{sql}") + run_select(db, sql) + + elif args.task: + task_fn = TASK_REGISTRY[args.task] + task_fn(db, args) + + else: + logger.error("Provide either --task, --query, or --list-queries") + return 1 + + except FileNotFoundError as exc: + logger.error(str(exc)) + return 1 + except KeyboardInterrupt: + logger.warning("Interrupted by user") + db.rollback() + return 130 + except Exception: + logger.exception("Unhandled exception") + db.rollback() + return 1 + finally: + db.close() + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/helpers/queries/DWS_GET_VV-57.sql b/helpers/queries/DWS_GET_VV-57.sql new file mode 100644 index 0000000..b0ba18f --- /dev/null +++ b/helpers/queries/DWS_GET_VV-57.sql @@ -0,0 +1,14 @@ +SELECT DISTINCT + d.DocumentID, + d.Filename AS [FileName], + --p.Path AS [FolderPath], + p.Path + d.Filename AS [FullVaultPath] + --v.ValueText, + --d.DocumentID + --d.CurrentVersion +FROM [Drilling_Test].[dbo].[Documents] d +INNER JOIN [Drilling_Test].[dbo].[DocumentsInProjects] dp on d.[DocumentID] = dp.DocumentID +INNER JOIN [Drilling_Test].[dbo].[Projects] p on dp.ProjectID = p.ProjectID +INNER JOIN [Drilling_Test].[dbo].[VariableValue] v on d.DocumentID = v.DocumentID +WHERE v.VariableID = 57 and p.Path like '%DWS%' +ORDER BY [FullVaultPath] asc; diff --git a/helpers/queries/DWS_VV-57_FullList.sql b/helpers/queries/DWS_VV-57_FullList.sql new file mode 100644 index 0000000..52d77eb --- /dev/null +++ b/helpers/queries/DWS_VV-57_FullList.sql @@ -0,0 +1,24 @@ +/* +Here we are basically just doing SELECT * FROM VariableValue WHERE VariableID = 57 +The reason we are doing all the join statements is we are trying to target only the files in the +DWS folder, so we need the other tables in order to construct a path +*/ + +SELECT + v.VariableID, + v.DocumentID, + v.ProjectID, + v.RevisionNo, + v.ConfigurationID, + v.ValueText, + v.ValueInt, + v.ValueFloat, + v.ValueDate, + v.ValueCache, + v.IsLongText +FROM [Drilling_Test].[dbo].[Documents] d +INNER JOIN [Drilling_Test].[dbo].[DocumentsInProjects] dp on d.[DocumentID] = dp.DocumentID +INNER JOIN [Drilling_Test].[dbo].[Projects] p on dp.ProjectID = p.ProjectID +INNER JOIN [Drilling_Test].[dbo].[VariableValue] v on d.DocumentID = v.DocumentID +WHERE v.VariableID = 57 and p.Path like '%DWS%' +ORDER BY v.DocumentID asc; diff --git a/helpers/queries/Find_Duplicate_Rows.sql b/helpers/queries/Find_Duplicate_Rows.sql new file mode 100644 index 0000000..68fd803 --- /dev/null +++ b/helpers/queries/Find_Duplicate_Rows.sql @@ -0,0 +1,14 @@ +SELECT TOP (1000) [ConfigurationID] + ,[ConfigurationName] + FROM [_Citadel_CS].[dbo].[DocumentConfiguration] + + SELECT * +FROM [_Citadel_CS].[dbo].[DocumentConfiguration] +WHERE ConfigurationName IN ( + SELECT ConfigurationName + FROM [_Citadel_CS].[dbo].[DocumentConfiguration] + GROUP BY ConfigurationName + HAVING COUNT(*) > 1 +); + + diff --git a/helpers/queries/Get_All_VV_Per_DocID.sql b/helpers/queries/Get_All_VV_Per_DocID.sql new file mode 100644 index 0000000..98557b9 --- /dev/null +++ b/helpers/queries/Get_All_VV_Per_DocID.sql @@ -0,0 +1,6 @@ +-- Get all distinct VariableIDs for a given DocumentID +-- Pass DocumentID as parameter (?) +SELECT DISTINCT VariableID + FROM [Drilling_Test].[dbo].[VariableValue] + WHERE DocumentID = ? + diff --git a/helpers/queries/INSERT_VV50_Copy.sql b/helpers/queries/INSERT_VV50_Copy.sql new file mode 100644 index 0000000..3536edb --- /dev/null +++ b/helpers/queries/INSERT_VV50_Copy.sql @@ -0,0 +1,9 @@ +-- Insert a VariableValue row that mirrors an existing VV-57 row but with +-- VariableID = 50 (used by copy_57_to_50 task). +-- Parameter order MUST match build_params() in copy_57_to_50: +-- VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, +-- ValueText, ValueInt, ValueFloat, ValueDate, ValueCache, IsLongText +INSERT INTO [Drilling_Test].[dbo].[VariableValue] + (VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, + ValueText, ValueInt, ValueFloat, ValueDate, ValueCache, IsLongText) +VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); diff --git a/helpers/samples/README.md b/helpers/samples/README.md new file mode 100644 index 0000000..ba7b458 --- /dev/null +++ b/helpers/samples/README.md @@ -0,0 +1,42 @@ +# Input File Format Reference + +The actual input CSVs under `helpers/` are gitignored (they are environment-specific +and often large). These samples document the expected format for each script so you +don't have to guess next time. + +All sample files use a minimal set of example rows. **No headers**, **UTF-8** (with or +without BOM). Empty lines are skipped. + +## Full-path format + +Used by `batch_workflows_paths.py` and any script whose CLI takes `--csv` / `-c` and +operates on files already inside the vault. + +- One full Windows vault path per line. +- Path must match what `IEdmVault5.GetFileFromPath` expects — i.e. the real location + inside the vault's local view (e.g. `C:\PDM\\...`). +- Extension-sensitive: `.SLDPRT`, `.SLDDRW`, `.SLDASM`, `.pdf`, etc. all count as + distinct files. + +See `sample_full_paths.csv`. + +## Part-number format + +Used by `batch_copy_tree.py` (and other scripts that resolve files by part/document +number rather than path). + +- One part number per line. +- No extension, no path. +- Case and dashes/underscores should match the vault's stored value. + +See `sample_part_numbers.csv`. + +## Filename-only format + +Used by older helpers (e.g. the `Code15*.csv` family) that match by filename across +the vault rather than by full path. + +- One filename per line, with extension. +- No directory component. + +See `sample_filenames.csv`. diff --git a/helpers/samples/sample_filenames.csv b/helpers/samples/sample_filenames.csv new file mode 100644 index 0000000..ca7e298 --- /dev/null +++ b/helpers/samples/sample_filenames.csv @@ -0,0 +1,4 @@ +EXAMPLE-PART.SLDPRT +EXAMPLE-DRAWING.SLDDRW +EXAMPLE-LIBRARY-FEATURE.SLDLFP +EXAMPLE-DOCUMENT.PDF diff --git a/helpers/samples/sample_full_paths.csv b/helpers/samples/sample_full_paths.csv new file mode 100644 index 0000000..5edf02c --- /dev/null +++ b/helpers/samples/sample_full_paths.csv @@ -0,0 +1,5 @@ +C:\PDM\Drilling_Test\DWS\Data Subs\EXAMPLE-PART.SLDPRT +C:\PDM\Drilling_Test\DWS\PileDRIVER\825 PileDRIVER\MFG\800-TT-001.SLDPRT +C:\PDM\Drilling_Test\DWS\PileDRIVER\825 PileDRIVER\MFG\800-TT-001.SLDDRW +C:\PDM\Drilling_Test\DWS\Assemblies\EXAMPLE-ASSY.SLDASM +C:\PDM\Drilling_Test\DWS\Drawings\EXAMPLE-DRAWING.pdf diff --git a/helpers/samples/sample_part_numbers.csv b/helpers/samples/sample_part_numbers.csv new file mode 100644 index 0000000..ce36db5 --- /dev/null +++ b/helpers/samples/sample_part_numbers.csv @@ -0,0 +1,6 @@ +2-80001010 +2-80003568 +2-80003962 +2-TF-80009889 +4-804687-02 +6-60181-02 diff --git a/helpers/test_batch_api.py b/helpers/test_batch_api.py new file mode 100644 index 0000000..4aa43b2 --- /dev/null +++ b/helpers/test_batch_api.py @@ -0,0 +1,184 @@ +""" +IEdmFile13::ChangeState3 via comtypes vtable direct call. + +Confirmed from gen_py IEdmFile13_vtables_: + - IEdmFile13 IID : {DB0646C9-9E3F-4EA2-93AA-EB6584D268E2} + - ChangeState3 oVft = 432 → vtable slot 54 + - Slot layout: + 0-2 IUnknown (handled by comtypes base) + 3-6 IDispatch (handled by comtypes base) + 7-53 47 methods from IEdmObject5 … IEdmFile12 (placeholders) + 54 ChangeState3 + 55 GetThumbnail +""" +import ctypes +import getpass +import pythoncom +import win32com.client +import win32com.client.gencache as gencache +import comtypes +import comtypes.automation +from comtypes import COMMETHOD, GUID, HRESULT +from comtypes.automation import IDispatch as CT_IDispatch + +VAULT_NAME = "Drilling_Test" +TEST_PATH = r"C:\PDM\Drilling_Test\DWS\PileDRIVER\825 PileDRIVER\MFG\800-TT-001.SLDPRT" +FOLDER_PATH = r"C:\PDM\Drilling_Test\DWS\PileDRIVER\825 PileDRIVER\MFG" +TRANSITION_ID = 268 +TO_STATE_ID = 9 +EdmObject_File = 1 +IID_IEdmFile13 = "{DB0646C9-9E3F-4EA2-93AA-EB6584D268E2}" + +# --------------------------------------------------------------------------- +# comtypes interface — 47 placeholders put ChangeState3 at slot 54 (offset 432) +# --------------------------------------------------------------------------- +_phs = [COMMETHOD([], HRESULT, f"_ph{i}") for i in range(47)] + +VARIANT_p = ctypes.POINTER(comtypes.automation.VARIANT) + +class IEdmFile13_CT(CT_IDispatch): + _iid_ = GUID(IID_IEdmFile13) + _idlflags_ = ["dual", "oleautomation"] + _methods_ = _phs + [ + COMMETHOD( + [], HRESULT, "ChangeState3", + (["in"], VARIANT_p, "poStateIdOrName"), + (["in"], VARIANT_p, "poTransitionIdOrName"), + (["in"], ctypes.c_long, "lFolderID"), + (["in"], ctypes.c_wchar_p, "bsComment"), + (["in"], ctypes.c_long, "lParentWnd"), + (["in"], ctypes.c_long, "lEdmStateFlags"), + (["in"], ctypes.c_wchar_p, "bsPasswd"), + ), + COMMETHOD( + [], HRESULT, "GetThumbnail", + (["out", "retval"], ctypes.POINTER(ctypes.c_void_p), "pBitmap"), + ), + ] + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +def make_i4_variant(val: int) -> comtypes.automation.VARIANT: + """Return a 16-byte VARIANT with vt=VT_I4 and the given integer value.""" + v = comtypes.automation.VARIANT() + v.vt = 3 # VT_I4 + # The union value starts at byte offset 8 inside VARIANT + ctypes.cast(ctypes.byref(v, 8), ctypes.POINTER(ctypes.c_int))[0] = val + return v + + +def raw_ptr_from_pycom(py_com_obj) -> int: + """ + Read the IUnknown*/IDispatch* stored inside a pythoncom COM wrapper. + CPython 64-bit layout: ob_refcnt(8) | ob_type(8) | punk(8) → offset 16. + """ + return ctypes.c_uint64.from_address(id(py_com_obj) + 16).value + + +# --------------------------------------------------------------------------- +# Main +# --------------------------------------------------------------------------- + +def main(): + username = input("PDM Username: ") + password = getpass.getpass("PDM Password: ") # reused for bsPasswd below + + print("\n=== Connect ===") + vault = gencache.EnsureDispatch("ConisioLib.EdmVault") + vault.Login(username, password, VAULT_NAME) + print(f"Logged in to {VAULT_NAME}") + + folder_obj = vault.GetFolderFromPath(FOLDER_PATH) + result = vault.GetFileFromPath(TEST_PATH, folder_obj) + raw = result[0] if isinstance(result, tuple) else result + file_id = raw.ID + fold_id = folder_obj.ID + print(f"File ID: {file_id} Folder ID: {fold_id}") + + file_obj = vault.GetObject(EdmObject_File, file_id) + file13_w32 = win32com.client.CastTo(file_obj, "IEdmFile13") + + # ----------------------------------------------------------------------- + print("\n=== Extract raw IEdmFile13* from pythoncom ===") + # ----------------------------------------------------------------------- + py_disp = file13_w32._oleobj_ # PyIDispatch wrapping IEdmFile13 + raw_ptr = raw_ptr_from_pycom(py_disp) + print(f"IEdmFile13* = {raw_ptr:#x}") + + # Sanity: read the vtable pointer (first 8 bytes of the COM object) + vtbl_ptr = ctypes.c_uint64.from_address(raw_ptr).value + print(f"Vtable ptr = {vtbl_ptr:#x}") + + if not raw_ptr or not vtbl_ptr: + print("ERROR: Could not read a valid COM pointer — aborting.") + return + + # ----------------------------------------------------------------------- + print("\n=== QI to IEdmFile13_CT via comtypes ===") + # ----------------------------------------------------------------------- + # Cast to IUnknown so comtypes can call QueryInterface properly + ct_unk = ctypes.cast(raw_ptr, ctypes.POINTER(comtypes.IUnknown)) + # py_disp must stay alive while ct_unk is in use (ct_unk is a borrowed ref) + try: + file13_ct = ct_unk.QueryInterface(IEdmFile13_CT) + print(f"QI succeeded: {file13_ct}") + except Exception as e: + print(f"QI failed: {e}") + import traceback; traceback.print_exc() + return + + # ----------------------------------------------------------------------- + print("\n=== Build VARIANTs ===") + # ----------------------------------------------------------------------- + v_state = make_i4_variant(TO_STATE_ID) + v_trans = make_i4_variant(TRANSITION_ID) + print(f"v_state vt={v_state.vt} val={TO_STATE_ID}") + print(f"v_trans vt={v_trans.vt} val={TRANSITION_ID}") + + # ----------------------------------------------------------------------- + print(f"\n=== ChangeState3(state={TO_STATE_ID}, trans={TRANSITION_ID}, folder={fold_id}) ===") + # ----------------------------------------------------------------------- + try: + hr = file13_ct.ChangeState3( + ctypes.byref(v_state), + ctypes.byref(v_trans), + ctypes.c_long(fold_id), + "Batch transition test", + ctypes.c_long(0), + ctypes.c_long(0), + password, # PDM password (required by this transition) + ) + print(f"ChangeState3 returned HRESULT {hr:#010x}") + except Exception as e: + print(f"ChangeState3 raised: {e}") + import traceback; traceback.print_exc() + # Keep py_disp alive + del py_disp + return + + # keep py_disp alive until after the call + del py_disp + + # ----------------------------------------------------------------------- + print("\n=== Verify state ===") + # ----------------------------------------------------------------------- + fresh = vault.GetObject(EdmObject_File, file_id) + try: + state = fresh.CurrentState + if callable(state): + state = state() + name = state.Name if hasattr(state, "Name") else str(state) + print(f"New state: {name}") + if name in ("Approved", "AA"): + print("\n*** SUCCESS! ***") + else: + print("State did not reach Approved.") + except Exception as e: + print(f"Could not read new state: {e}") + + +if __name__ == "__main__": + main() diff --git a/migrate_filedata.py b/migrate_filedata.py new file mode 100644 index 0000000..b487365 --- /dev/null +++ b/migrate_filedata.py @@ -0,0 +1,1080 @@ +""" +File Data Migration Script + +Migrates VariableValue data for files (not projects) between SQL Server databases. +Maps DocumentIDs using the Documents table and Filename as the unique identifier. + +Key differences from migrate.py: +- All files have ProjectID=2 in both databases +- Maps DocumentID instead of ProjectID +- Uses Filename from Documents table for mapping +- Filters for file-based records (DocumentID != 1) +""" + +import json +import logging +import csv +import os +import glob +from datetime import datetime +from db_utils import DatabaseConnection + + +class FileDataMigration: + """Handles migration of file-based VariableValue data between databases.""" + + def __init__(self, config_file='config.json'): + """Initialize migration with configuration file.""" + # Load configuration + with open(config_file, 'r') as f: + self.config = json.load(f) + + # Store database identifiers for progress tracking + self.source_db_name = self.config['source_db']['database'] + self.target_db_name = self.config['target_db']['database'] + + # Setup logging with timestamp + self.timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + log_filename = f'filedata_migration_{self.timestamp}.log' + + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler(log_filename), + logging.StreamHandler() + ] + ) + self.logger = logging.getLogger(__name__) + + # Initialize mappings + self.variable_map = {} + self.document_map = {} + self.configuration_map = {} + self.state_map = {} + + # Database connections + self.source_conn = DatabaseConnection(self.config['source_db']) + self.target_conn = DatabaseConnection(self.config['target_db']) + + self.logger.info("Database connections established.") + + def build_variable_mapping(self): + """Build mapping of source VariableID to target VariableID based on variable names.""" + # Pulls all non-deleted, non-system variables from both the source and target databases, + # then matches them by name. This produces a dict that translates source VariableIDs to + # their corresponding target VariableIDs so migrated records point to the correct variable + # in the new vault. Any source variables without a name match in the target are logged as unmapped. + self.logger.info("Building variable ID mapping...") + + # Fetch variables from source (exclude deleted and system variables) + source_variables = self.source_conn.execute_query( + "SELECT VariableID, VariableName FROM Variable WHERE IsDeleted = 0 OR IsDeleted IS NULL" + ) + + # Fetch variables from target (exclude deleted and system variables) + target_variables = self.target_conn.execute_query( + "SELECT VariableID, VariableName FROM Variable WHERE IsDeleted = 0 OR IsDeleted IS NULL" + ) + + # Filter out system variables (names in curly brackets) + source_user_vars = [v for v in source_variables if not (v['VariableName'].startswith('{') and v['VariableName'].endswith('}'))] + target_user_vars = [v for v in target_variables if not (v['VariableName'].startswith('{') and v['VariableName'].endswith('}'))] + + self.logger.info(f"Found {len(source_user_vars)} user variables in source database") + self.logger.info(f"Found {len(target_user_vars)} user variables in target database") + + # Create name-to-ID mapping for target + target_var_map = {v['VariableName']: v['VariableID'] for v in target_user_vars} + + # Build source-to-target mapping + mapped_count = 0 + unmapped_count = 0 + + for source_var in source_user_vars: + source_id = source_var['VariableID'] + var_name = source_var['VariableName'] + + if var_name in target_var_map: + target_id = target_var_map[var_name] + self.variable_map[source_id] = target_id + mapped_count += 1 + else: + self.logger.warning(f"Variable '{var_name}' (ID: {source_id}) not found in target database") + unmapped_count += 1 + + self.logger.info(f"Variable mapping complete. Mapped {mapped_count} variables.") + if unmapped_count > 0: + self.logger.warning(f"Unmapped variables: {unmapped_count}") + + def transform_source_path(self, source_path): + """Transform source path to expected target path by prepending root folder.""" + if not source_path: + return None + + # Get target root folder from config + target_root = self.config.get('path_mapping', {}).get('target_root_folder', 'Citadel') + + # Strip leading backslash if exists + path_without_leading = source_path.lstrip('\\') + + # Prepend target root folder + transformed = f'\\{target_root}\\{path_without_leading}' + + # Ensure trailing backslash if original had it + if source_path.endswith('\\') and not transformed.endswith('\\'): + transformed += '\\' + + return transformed + + def build_document_mapping(self): + """Build mapping of source DocumentID to target DocumentID based on full vault path.""" + self.logger.info("Building document ID mapping using full vault path (folder path + filename)...") + + # Fetch documents with full paths from source + # Join Documents -> DocumentsInProjects -> Projects to get folder path + source_documents = self.source_conn.execute_query(""" + SELECT + d.DocumentID, + d.Filename, + p.Path AS FolderPath, + p.Path + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + """) + + # Fetch documents with full paths from target + # Filter out deleted documents (Deleted=0) to avoid mapping to stale records + # when a document has been added and deleted multiple times + target_documents = self.target_conn.execute_query(""" + SELECT + d.DocumentID, + d.Filename, + p.Path AS FolderPath, + p.Path + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + WHERE d.Deleted = 0 + """) + + self.logger.info(f"Found {len(source_documents)} documents in source database") + self.logger.info(f"Found {len(target_documents)} documents in target database") + + # Create full-path-to-ID mapping for target + # Use case-insensitive comparison + case_sensitive = self.config.get('path_mapping', {}).get('case_sensitive', False) + + target_doc_map = {} + duplicate_count = 0 + for doc in target_documents: + full_path = doc['FullVaultPath'] + if full_path: + # Normalize path for case-insensitive matching if needed + key = full_path if case_sensitive else full_path.lower() + if key in target_doc_map: + duplicate_count += 1 + # Keep the last occurrence + target_doc_map[key] = doc + + self.logger.info(f"Built target document index with {len(target_doc_map)} unique paths") + if duplicate_count > 0: + self.logger.warning(f"Found {duplicate_count} duplicate paths in target (kept last occurrence)") + + # Build source-to-target mapping + mapped_count = 0 + unmapped_count = 0 + null_path_count = 0 + + for source_doc in source_documents: + source_id = source_doc['DocumentID'] + filename = source_doc['Filename'] + folder_path = source_doc['FolderPath'] + source_full_path = source_doc['FullVaultPath'] + + # Skip documents with no path + if not source_full_path or not folder_path: + self.logger.debug(f"Document '{filename}' (ID: {source_id}) has no path - skipping") + null_path_count += 1 + continue + + # Transform source folder path to expected target folder path + target_folder_path = self.transform_source_path(folder_path) + + if not target_folder_path: + self.logger.debug(f"Document '{filename}' (ID: {source_id}) - path transformation failed") + unmapped_count += 1 + continue + + # Construct expected target full path + # Folder path already ends with '\', so just concatenate filename + target_full_path = target_folder_path + filename + + # Look up in target using case-insensitive comparison + key = target_full_path if case_sensitive else target_full_path.lower() + + if key in target_doc_map: + target_doc = target_doc_map[key] + target_id = target_doc['DocumentID'] + self.document_map[source_id] = target_id + mapped_count += 1 + else: + self.logger.debug(f"Document '{filename}' (ID: {source_id}) - Target path not found") + self.logger.debug(f" Source path: [{source_full_path}]") + self.logger.debug(f" Transformed to: [{target_full_path}]") + unmapped_count += 1 + + self.logger.info(f"Document mapping complete:") + self.logger.info(f" - Successfully mapped: {mapped_count} documents") + self.logger.info(f" - Unmapped (path not found): {unmapped_count} documents") + self.logger.info(f" - Skipped (null path): {null_path_count} documents") + self.logger.info(f" - Total in document_map: {len(self.document_map)} documents") + + def build_configuration_mapping(self): + """Build mapping of source ConfigurationID to target ConfigurationID based on ConfigurationName.""" + """ NOTE: find the manual overrides by searching for all the instances where ConfigurationName has dupe in the DB""" + self.logger.info("Building configuration ID mapping...") + + # Fetch configurations from source + source_configs = self.source_conn.execute_query( + "SELECT ConfigurationID, ConfigurationName FROM DocumentConfiguration" + ) + + # Fetch configurations from target + target_configs = self.target_conn.execute_query( + "SELECT ConfigurationID, ConfigurationName FROM DocumentConfiguration" + ) + + self.logger.info(f"Found {len(source_configs)} configurations in source database") + self.logger.info(f"Found {len(target_configs)} configurations in target database") + + # Create ConfigurationName-to-ID mapping for target + target_config_map = {} + target_duplicates = {} + + for config in target_configs: + config_name = config['ConfigurationName'] + config_id = config['ConfigurationID'] + + if config_name in target_config_map: + # Track duplicates + if config_name not in target_duplicates: + target_duplicates[config_name] = [target_config_map[config_name]] + target_duplicates[config_name].append(config_id) + else: + target_config_map[config_name] = config_id + + if target_duplicates: + self.logger.warning(f"Found {len(target_duplicates)} duplicate ConfigurationNames in target:") + for name, ids in target_duplicates.items(): + self.logger.warning(f" '{name}': IDs {ids}") + + # Load manual overrides from config file + manual_overrides = self.config.get('configuration_mapping_overrides', {}) + if manual_overrides: + self.logger.warning("=" * 70) + self.logger.warning("MANUAL CONFIGURATION MAPPING OVERRIDES DETECTED!") + self.logger.warning(f"Found {len(manual_overrides)} manual configuration mapping overrides in config.json") + self.logger.warning("=" * 70) + self.logger.warning("Please verify these mappings are correct before proceeding:") + + # Convert string keys to int (JSON keys are always strings) + manual_overrides = {int(k): int(v) for k, v in manual_overrides.items()} + + # Display the manual overrides + for source_id, target_id in sorted(manual_overrides.items()): + self.logger.warning(f" Source ConfigurationID {source_id} -> Target ConfigurationID {target_id}") + + self.logger.warning("=" * 70) + + # Prompt user for confirmation + try: + response = input("\nHave you verified these configuration mappings are correct? (yes/no): ").strip().lower() + if response != 'yes': + self.logger.error("Migration cancelled by user - please verify configuration mappings in config.json") + raise ValueError("User cancelled migration - configuration mappings not verified") + except EOFError: + # Non-interactive mode - log warning but continue + self.logger.warning("Running in non-interactive mode - cannot prompt for confirmation") + self.logger.warning("PROCEEDING WITH MANUAL CONFIGURATION OVERRIDES - ENSURE THESE ARE CORRECT!") + + self.logger.info(f"Proceeding with {len(manual_overrides)} manual configuration mapping overrides") + + # Build source-to-target ID mapping + mapped_count = 0 + unmapped_count = 0 + override_count = 0 + + for source_config in source_configs: + source_id = source_config['ConfigurationID'] + config_name = source_config['ConfigurationName'] + + # Check if there's a manual override first + if source_id in manual_overrides: + target_id = manual_overrides[source_id] + self.configuration_map[source_id] = target_id + self.logger.debug(f"Manual override: ConfigurationID {source_id} -> {target_id} ('{config_name}')") + override_count += 1 + mapped_count += 1 + elif config_name in target_config_map: + target_id = target_config_map[config_name] + self.configuration_map[source_id] = target_id + self.logger.debug(f"Mapped Configuration '{config_name}': {source_id} -> {target_id}") + mapped_count += 1 + else: + self.logger.warning(f"Configuration '{config_name}' (ID: {source_id}) not found in target database") + unmapped_count += 1 + + self.logger.info(f"Configuration mapping complete:") + self.logger.info(f" - Successfully mapped: {mapped_count} configurations") + self.logger.info(f" - Manual overrides applied: {override_count} configurations") + self.logger.info(f" - Unmapped: {unmapped_count} configurations") + self.logger.info(f" - Total in configuration_map: {len(self.configuration_map)} configurations") + + def build_state_mapping(self): + """Build mapping of source CurrentStatusID to target CurrentStatusID based on explicit config.json mappings.""" + self.logger.info("Building state (CurrentStatusID) mapping...") + + # Load manual state mappings from config file + # Unlike configuration mapping, state mapping ONLY uses explicit mappings from config + # If no mapping exists, the target DB value is left unchanged + manual_mappings = self.config.get('state_mapping_overrides', {}) + + if not manual_mappings: + self.logger.info("No state mapping overrides found in config.json") + self.logger.info("CurrentStatusID values will remain unchanged in target database") + return + + self.logger.warning("=" * 70) + self.logger.warning("MANUAL STATE (CurrentStatusID) MAPPING OVERRIDES DETECTED!") + self.logger.warning(f"Found {len(manual_mappings)} manual state mapping overrides in config.json") + self.logger.warning("=" * 70) + self.logger.warning("Please verify these mappings are correct before proceeding:") + + # Convert string keys to int (JSON keys are always strings) + manual_mappings = {int(k): int(v) for k, v in manual_mappings.items()} + + # Display the manual mappings + for source_id, target_id in sorted(manual_mappings.items()): + self.logger.warning(f" Source CurrentStatusID {source_id} -> Target CurrentStatusID {target_id}") + + self.logger.warning("=" * 70) + + # Prompt user for confirmation + try: + response = input("\nHave you verified these state mappings are correct? (yes/no): ").strip().lower() + if response != 'yes': + self.logger.error("Migration cancelled by user - please verify state mappings in config.json") + raise ValueError("User cancelled migration - state mappings not verified") + except EOFError: + # Non-interactive mode - log warning but continue + self.logger.warning("Running in non-interactive mode - cannot prompt for confirmation") + self.logger.warning("PROCEEDING WITH MANUAL STATE OVERRIDES - ENSURE THESE ARE CORRECT!") + + # Store the mappings + self.state_map = manual_mappings + + self.logger.info(f"State mapping complete:") + self.logger.info(f" - Total explicit mappings loaded: {len(self.state_map)} state mappings") + self.logger.info(" - Any CurrentStatusID not in this mapping will remain unchanged in target") + + def export_mappings_to_csv(self): + """Export variable and document mappings to CSV files for verification.""" + self.logger.info("Exporting mappings to CSV files...") + + # Export variable mappings + var_csv_filename = f'mapping_variables_filedata_{self.timestamp}.csv' + with open(var_csv_filename, 'w', newline='', encoding='utf-8') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['VariableName', 'SourceID', 'TargetID']) + + # Get variable names for the mapping + source_vars = self.source_conn.execute_query( + "SELECT VariableID, VariableName FROM Variable" + ) + source_var_names = {v['VariableID']: v['VariableName'] for v in source_vars} + + for source_id, target_id in self.variable_map.items(): + var_name = source_var_names.get(source_id, 'Unknown') + writer.writerow([var_name, source_id, target_id]) + + self.logger.info(f"Variable mappings exported to: {var_csv_filename} ({len(self.variable_map)} mappings)") + + # Export document mappings + doc_csv_filename = f'mapping_documents_filedata_{self.timestamp}.csv' + with open(doc_csv_filename, 'w', newline='', encoding='utf-8') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['Filename', 'SourceDocID', 'TargetDocID', 'SourcePath', 'TargetPath']) + + # Get filenames and full paths for the mapping + source_docs = self.source_conn.execute_query(""" + SELECT + d.DocumentID, + d.Filename, + p.Path + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + """) + source_doc_info = {d['DocumentID']: {'Filename': d['Filename'], 'FullVaultPath': d['FullVaultPath']} for d in source_docs} + + target_docs = self.target_conn.execute_query(""" + SELECT + d.DocumentID, + d.Filename, + p.Path + d.Filename AS FullVaultPath + FROM Documents d + INNER JOIN DocumentsInProjects dp ON d.DocumentID = dp.DocumentID + INNER JOIN Projects p ON dp.ProjectID = p.ProjectID + """) + target_doc_info = {d['DocumentID']: {'Filename': d['Filename'], 'FullVaultPath': d['FullVaultPath']} for d in target_docs} + + for source_id, target_id in self.document_map.items(): + source_info = source_doc_info.get(source_id, {}) + target_info = target_doc_info.get(target_id, {}) + filename = source_info.get('Filename', 'Unknown') + source_path = source_info.get('FullVaultPath', 'Unknown') + target_path = target_info.get('FullVaultPath', 'Unknown') + writer.writerow([filename, source_id, target_id, source_path, target_path]) + + self.logger.info(f"Document mappings exported to: {doc_csv_filename} ({len(self.document_map)} mappings)") + + def save_migration_progress(self, batch_num, total_batches, stats): + """Save migration progress to resume on failure.""" + progress_file = f"filedata_migration_progress_{self.source_db_name}_to_{self.target_db_name}_{self.timestamp}.json" + + progress_data = { + 'timestamp': datetime.now().isoformat(), + 'migration_timestamp': self.timestamp, + 'source_database': self.source_db_name, + 'target_database': self.target_db_name, + 'last_completed_batch': batch_num, + 'total_batches': total_batches, + 'records_inserted': stats['inserted'], + 'records_updated': stats['updated'], + 'records_errors': stats['errors'] + } + + with open(progress_file, 'w') as f: + json.dump(progress_data, f, indent=2) + + self.logger.info(f"Progress saved: batch {batch_num}/{total_batches}") + + def load_migration_progress(self): + """Load previous migration progress if exists for current database pair.""" + progress_pattern = f"filedata_migration_progress_{self.source_db_name}_to_{self.target_db_name}_*.json" + progress_files = glob.glob(progress_pattern) + + if not progress_files: + self.logger.info("No previous file data migration progress found for this database pair") + return None + + latest_progress = max(progress_files, key=os.path.getmtime) + + with open(latest_progress, 'r') as f: + progress = json.load(f) + + if (progress.get('source_database') != self.source_db_name or + progress.get('target_database') != self.target_db_name): + self.logger.warning(f"Found progress file but database names don't match. Ignoring.") + return None + + self.logger.info(f"Found previous file data migration progress: {latest_progress}") + self.logger.info(f" Source DB: {progress['source_database']} -> Target DB: {progress['target_database']}") + self.logger.info(f" Last completed batch: {progress['last_completed_batch']}/{progress['total_batches']}") + self.logger.info(f" Records inserted: {progress['records_inserted']}") + self.logger.info(f" Records updated: {progress['records_updated']}") + + return progress + + def cleanup_progress_file(self): + """Remove progress file after successful completion for this database pair.""" + progress_pattern = f"filedata_migration_progress_{self.source_db_name}_to_{self.target_db_name}_*.json" + progress_files = glob.glob(progress_pattern) + + for pf in progress_files: + os.remove(pf) + self.logger.info(f"Removed progress file: {pf}") + + def preview_migration(self, num_records=20): + """ + Preview what the first batch of VariableValue migrations would look like. + Shows the actual SQL parameters that will be inserted/updated. + """ + self.logger.info("="*70) + self.logger.info(f"MIGRATION PREVIEW - First {num_records} Records") + self.logger.info("="*70) + self.logger.info("Showing actual SQL MERGE parameters that will be executed") + self.logger.info("="*70) + + # Fetch source VariableValue records (same filter as actual migration) + source_values = self.source_conn.execute_query( + f"""SELECT TOP {num_records} * FROM VariableValue + WHERE ProjectID = 2 AND DocumentID != 1 + ORDER BY DocumentID, VariableID, RevisionNo""" + ) + + if not source_values: + self.logger.info("No source records found to preview.") + return + + self.logger.info(f"\nFound {len(source_values)} source records to preview\n") + + # Preview each record + mapped_count = 0 + skipped_count = 0 + + for i, record in enumerate(source_values, 1): + # Extract source IDs + source_variable_id = record.get('VariableID') + source_document_id = record.get('DocumentID') + + # Map to target IDs + target_variable_id = self.variable_map.get(source_variable_id) + target_document_id = self.document_map.get(source_document_id) + + self.logger.info(f"Record #{i}:") + self.logger.info(f" SOURCE VariableValue Row:") + self.logger.info(f" VariableID : {record.get('VariableID')}") + self.logger.info(f" DocumentID : {record.get('DocumentID')}") + self.logger.info(f" ProjectID : {record.get('ProjectID')}") + self.logger.info(f" RevisionNo : {record.get('RevisionNo')}") + self.logger.info(f" ConfigurationID: {record.get('ConfigurationID')}") + self.logger.info(f" ValueText : {record.get('ValueText')}") + self.logger.info(f" ValueInt : {record.get('ValueInt')}") + self.logger.info(f" ValueFloat : {record.get('ValueFloat')}") + self.logger.info(f" ValueDate : {record.get('ValueDate')}") + self.logger.info(f" ValueCache : {record.get('ValueCache')}") + self.logger.info(f" IsLongText : {record.get('IsLongText')}") + + # Check if mapping exists + if target_variable_id is None or target_document_id is None: + self.logger.warning(f" TARGET: WILL BE SKIPPED (unmapped)") + if target_variable_id is None: + self.logger.warning(f" - Source VariableID {source_variable_id} not mapped to target") + if target_document_id is None: + self.logger.warning(f" - Source DocumentID {source_document_id} not mapped to target") + skipped_count += 1 + else: + # Prepare params exactly as migration would (same logic as migrate_file_variable_values) + params = ( + target_variable_id, # VariableID + target_document_id, # DocumentID + 2, # ProjectID (always 2 for files) + record.get('RevisionNo'), # RevisionNo + record.get('ConfigurationID'), # ConfigurationID + record.get('ValueText'), # ValueText + record.get('ValueInt'), # ValueInt + record.get('ValueFloat'), # ValueFloat + record.get('ValueDate'), # ValueDate + record.get('ValueCache'), # ValueCache + record.get('IsLongText') # IsLongText + ) + + self.logger.info(f" TARGET MERGE Parameters (will be UPSERTED):") + self.logger.info(f" VariableID : {params[0]} (mapped from source {source_variable_id})") + self.logger.info(f" DocumentID : {params[1]} (mapped from source {source_document_id})") + self.logger.info(f" ProjectID : {params[2]} (always 2 for files)") + self.logger.info(f" RevisionNo : {params[3]}") + self.logger.info(f" ConfigurationID: {params[4]}") + self.logger.info(f" ValueText : {params[5]}") + self.logger.info(f" ValueInt : {params[6]}") + self.logger.info(f" ValueFloat : {params[7]}") + self.logger.info(f" ValueDate : {params[8]}") + self.logger.info(f" ValueCache : {params[9]}") + self.logger.info(f" IsLongText : {params[10]}") + mapped_count += 1 + + self.logger.info("") + + self.logger.info("="*70) + self.logger.info(f"PREVIEW SUMMARY") + self.logger.info("="*70) + self.logger.info(f"Records that WILL be migrated: {mapped_count}") + self.logger.info(f"Records that will be SKIPPED: {skipped_count}") + self.logger.info("") + + def migrate_file_variable_values(self): + """ + Migrate VariableValue records for files (ProjectID=2, DocumentID != 1). + Uses UPSERT mode with periodic commits and resume capability. + """ + self.logger.info("Starting file-based VariableValue migration (UPSERT mode)...") + + # Get batch settings + batch_size = self.config.get('migration', {}).get('batch_size', 500) + commit_interval = self.config.get('migration', {}).get('commit_interval', 10) + + self.logger.info(f"Migration settings: batch_size={batch_size}, mode=UPSERT (insert new, update existing)") + + # Fetch ONLY the latest revision for each VariableID+DocumentID+ConfigurationID combination + # Filter: ProjectID=2 (files) and DocumentID != 1 (not project-level variables) + # Uses window function to get only the highest RevisionNo for each variable per document per configuration + source_values = self.source_conn.execute_query( + """SELECT * FROM ( + SELECT *, + ROW_NUMBER() OVER (PARTITION BY DocumentID, VariableID, ConfigurationID + ORDER BY RevisionNo DESC) as rn + FROM VariableValue + WHERE ProjectID = 2 AND DocumentID != 1 + ) ranked + WHERE rn = 1 + ORDER BY DocumentID, VariableID, ConfigurationID""" + ) + + self.logger.info(f"Found {len(source_values)} latest-revision VariableValue records in source (ProjectID=2, DocumentID!=1).") + + # Prepare MERGE query for UPSERT operation + # Match on all primary key columns: VariableID + DocumentID + ProjectID + RevisionNo + ConfigurationID + merge_query = """ + MERGE INTO VariableValue AS target + USING (SELECT ? AS VariableID, ? AS DocumentID, ? AS ProjectID, ? AS RevisionNo, + ? AS ConfigurationID, ? AS ValueText, ? AS ValueInt, ? AS ValueFloat, + ? AS ValueDate, ? AS ValueCache, ? AS IsLongText) AS source + ON (target.VariableID = source.VariableID + AND target.DocumentID = source.DocumentID + AND target.ProjectID = source.ProjectID + AND target.RevisionNo = source.RevisionNo + AND target.ConfigurationID = source.ConfigurationID) + WHEN MATCHED THEN + UPDATE SET + ValueText = source.ValueText, + ValueInt = source.ValueInt, + ValueFloat = source.ValueFloat, + ValueDate = source.ValueDate, + ValueCache = source.ValueCache, + IsLongText = source.IsLongText + WHEN NOT MATCHED THEN + INSERT (VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, ValueText, ValueInt, ValueFloat, ValueDate, ValueCache, IsLongText) + VALUES (source.VariableID, source.DocumentID, source.ProjectID, source.RevisionNo, source.ConfigurationID, source.ValueText, source.ValueInt, source.ValueFloat, source.ValueDate, source.ValueCache, source.IsLongText); + """ + + # Collect records to upsert + params_list = [] + skipped_unmapped = 0 + + for record in source_values: + # Extract source IDs + source_variable_id = record.get('VariableID') + source_document_id = record.get('DocumentID') + + # Map to target IDs + target_variable_id = self.variable_map.get(source_variable_id) + target_document_id = self.document_map.get(source_document_id) + + # Skip if mapping not found + if target_variable_id is None: + self.logger.debug(f"Skipping record: VariableID {source_variable_id} not mapped") + skipped_unmapped += 1 + continue + + if target_document_id is None: + self.logger.debug(f"Skipping record: DocumentID {source_document_id} not mapped") + skipped_unmapped += 1 + continue + + # Extract other fields + source_rev = record.get('RevisionNo') # Read but not used - we always insert as Rev 1 + source_configID = record.get('ConfigurationID') + source_valueText = record.get('ValueText') + source_valueInt = record.get('ValueInt') + source_valueFloat = record.get('ValueFloat') + source_valueDate = record.get('ValueDate') + source_valueCache = record.get('ValueCache') + source_islongtext = record.get('IsLongText') + + # Map ConfigurationID to target + target_config_id = self.configuration_map.get(source_configID) + + # Skip if configuration mapping not found + if target_config_id is None: + self.logger.debug(f"Skipping record: ConfigurationID {source_configID} not mapped") + skipped_unmapped += 1 + continue + + # Prepare params for MERGE statement + # ProjectID is always 2 for files in target database + # RevisionNo is always 1 (we only migrate latest revision as new Rev 1) + params = ( + target_variable_id, # VariableID + target_document_id, # DocumentID + 2, # ProjectID (always 2 for files) + 1, # RevisionNo (always 1 for migrated data) + target_config_id, # ConfigurationID (mapped) + source_valueText, # ValueText + source_valueInt, # ValueInt + source_valueFloat, # ValueFloat + source_valueDate, # ValueDate + source_valueCache, # ValueCache + source_islongtext # IsLongText + ) + + params_list.append(params) + + self.logger.info(f"Prepared {len(params_list)} records for UPSERT") + self.logger.info(f"Skipped {skipped_unmapped} records (unmapped IDs)") + + # Check for previous progress + previous_progress = self.load_migration_progress() + + # Calculate batches + total_batches = (len(params_list) + batch_size - 1) // batch_size + + # Initialize statistics + total_stats = {'inserted': 0, 'updated': 0, 'errors': 0} + start_batch = 0 + + # Handle resume + if previous_progress: + self.logger.info(f"*** Previous file data migration found ***") + self.logger.info(f"Last completed batch: {previous_progress['last_completed_batch']}/{previous_progress['total_batches']}") + self.logger.info(f"Records inserted: {previous_progress['records_inserted']}") + self.logger.info(f"Records updated: {previous_progress['records_updated']}") + + try: + print(f"\n*** Previous file data migration found ***") + print(f"Last completed batch: {previous_progress['last_completed_batch']}/{previous_progress['total_batches']}") + print(f"Records inserted: {previous_progress['records_inserted']}") + print(f"Records updated: {previous_progress['records_updated']}") + response = input(f"Resume from batch {previous_progress['last_completed_batch'] + 1}? (y/n): ").strip().lower() + except EOFError: + response = 'y' + self.logger.info("Running in non-interactive mode - automatically resuming") + + if response == 'y': + start_batch = previous_progress['last_completed_batch'] + total_stats['inserted'] = previous_progress['records_inserted'] + total_stats['updated'] = previous_progress['records_updated'] + total_stats['errors'] = previous_progress['records_errors'] + self.logger.info(f"Resuming from batch {start_batch + 1}") + else: + self.logger.info("Starting fresh migration (previous progress will be overwritten)") + self.cleanup_progress_file() + + self.logger.info(f"Commit interval: every {commit_interval} batches") + + # Process in batches + for batch_num in range(start_batch, total_batches): + batch_start = batch_num * batch_size + batch_end = min(batch_start + batch_size, len(params_list)) + batch_params = params_list[batch_start:batch_end] + + self.logger.info(f"Processing batch {batch_num + 1}/{total_batches} ({len(batch_params)} records)...") + + # Execute MERGE for this batch + for params in batch_params: + try: + cursor = self.target_conn.connection.cursor() + cursor.execute(merge_query, params) + + # Check if record was inserted or updated + # (This is approximate - SQL Server doesn't easily report MERGE action) + if cursor.rowcount > 0: + total_stats['inserted'] += 1 + else: + total_stats['updated'] += 1 + + cursor.close() + + except Exception as e: + total_stats['errors'] += 1 + self.logger.error(f"Error upserting record: {e}") + + self.logger.info(f"Batch {batch_num + 1} complete: inserted={total_stats['inserted']}, updated={total_stats['updated']}, errors={total_stats['errors']}") + + # Commit every N batches to keep connection alive and save progress + if (batch_num + 1) % commit_interval == 0: + self.target_conn.commit() + self.save_migration_progress(batch_num + 1, total_batches, total_stats) + self.logger.info(f"[COMMIT] Transaction committed at batch {batch_num + 1} (every {commit_interval} batches)") + + # Final commit + self.target_conn.commit() + self.logger.info(f"[SUCCESS] Final transaction committed") + + # Clean up progress file on success + self.cleanup_progress_file() + + self.logger.info("File-based VariableValue migration completed successfully!") + self.logger.info(f"Total records inserted: {total_stats['inserted']}") + self.logger.info(f"Total records updated: {total_stats['updated']}") + self.logger.info(f"Total errors: {total_stats['errors']}") + + def validate_migration(self): + # After the migration runs we will run this script to validate that everything was inserted correctly into the Target DB + self.logger.info("Running Validation on the Target to ensure we completed migration successfully") + + # the primary key columns are VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID + # IMPORTANT: We only migrated the LATEST revision from source, so only validate those + source_values = self.source_conn.execute_query( + """SELECT * FROM ( + SELECT VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, + ROW_NUMBER() OVER (PARTITION BY DocumentID, VariableID, ConfigurationID + ORDER BY RevisionNo DESC) as rn + FROM VariableValue + WHERE ProjectID = 2 AND DocumentID != 1 + ) ranked + WHERE rn = 1 + ORDER BY DocumentID, VariableID, ConfigurationID""" + ) + + # Target should have all records with RevisionNo = 1 + target_values = self.target_conn.execute_query( + """SELECT VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID FROM VariableValue + WHERE ProjectID = 2 AND DocumentID != 1 AND RevisionNo = 1 + ORDER BY DocumentID, VariableID, ConfigurationID""" + ) + + # -------------------------------------- + # Convert target_values to a set of tuples for fast lookup + # --------------------------------------- + self.logger.info("Building target record set for comparison...") + target_set = set() # this is every row of the VariableValue table in the Target DB + for record in target_values: + key = ( + record['VariableID'], + record['DocumentID'], + record['ProjectID'], + record['RevisionNo'], + record['ConfigurationID'] + ) + target_set.add(key) + + error_list = [] # this is the container we are going to use to hold the errors we find + success_count = 0 # we will just tally the records we find + ignore_count = 0 # counter for rows that we didnt map because we couldnt find a documentID or variableID in the Target DB + + # now we search the target for each row using the mapped values to make sure that it is in there, we log it if we can't find it + # -------------------------------------- + # Create a CSV to log all the rows we think we are missing and begin the scan + # --------------------------------------- + doc_csv_filename = f'validation_missing_filedata_{self.timestamp}.csv' + + with open(doc_csv_filename, 'w', newline='', encoding='utf-8') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['Target_VariableID', 'Target_DocumentID', 'ProjectID', 'RevisionNo', 'ConfigurationID']) # write header + self.logger.info(f"Prepared {len(source_values)} records. Beginning validation with Target DB") + + for record in source_values: + # Extract source IDs + source_variable_id = record.get('VariableID') + source_document_id = record.get('DocumentID') + + # Map to target IDs + target_variable_id = self.variable_map.get(source_variable_id) + target_document_id = self.document_map.get(source_document_id) + + # Extract other fields + source_rev = record.get('RevisionNo') # Read but not used - we always insert as Rev 1 + source_configID = record.get('ConfigurationID') + source_projectID = record.get("ProjectID") # even though all of these should be 2 we are still going to pull the actual value + + # Map ConfigurationID to target + target_config_id = self.configuration_map.get(source_configID) + + # Prepare params for validation + # ProjectID is always 2 for files in target database + # RevisionNo is always 1 (we migrated latest revision as Rev 1) + params = ( + target_variable_id, # mapped VariableID + target_document_id, # mapped DocumentID + source_projectID, # ProjectID (should be 2 for files) + 1, # RevisionNo (always 1 in target) + target_config_id, # ConfigurationID (mapped) + ) + + # Some documents, variables, or configurations didnt map into the Target DB + # These wont have a target ID so we are going to ignore them + if not target_document_id or not target_variable_id or not target_config_id: + ignore_count += 1 + else: + if params in target_set: + success_count += 1 + else: + self.logger.warning(f"Failed to find match for {params} in Target") + error_list.append(params) # record which record is missing + writer.writerow([params[0], params[1], params[2], params[3], params[4]]) + + + self.logger.info("=" * 50) + self.logger.info("$ Migration Validation Completed!") + self.logger.info("=" * 50) + self.logger.info(f"Gross Success rate: {(success_count / len(source_values)) * 100:.2f}%") + self.logger.info(f"Success rate w/o Ignored Files: {(success_count / (len(source_values) - ignore_count)) * 100:.2f}%") + self.logger.info(f"{success_count} of {len(source_values)} Rows were found") + self.logger.info(f"-" * 50) + self.logger.info(f"MISSING ROW COUNT:{len(error_list)} - See CSV output for details") + self.logger.info(f"We ignored a total of {ignore_count} rows. We couldn't map these to the TargetDB. Either bad Var, Doc, or Config ID") + + def migrate_documents_status(self): + """ + Migrate CurrentStatusID from source Documents to target Documents. + Only updates CurrentStatusID if a state mapping exists in config.json. + If no mapping exists, the target DB value remains unchanged. + """ + self.logger.info("Starting Documents CurrentStatusID migration...") + + # Check if there are any state mappings + if not self.state_map: + self.logger.info("No state mappings configured - skipping CurrentStatusID migration") + return + + # Get batch settings - use dedicated document status batch size if configured + batch_size = self.config.get('migration', {}).get('document_status_batch_size', 5000) + commit_interval = self.config.get('migration', {}).get('commit_interval', 10) + + self.logger.info(f"Migration settings: batch_size={batch_size}, commit_interval={commit_interval}") + self.logger.info(f"Using executemany() for fast batch updates") + + # Fetch CurrentStatusID from source Documents + source_documents = self.source_conn.execute_query(""" + SELECT DocumentID, CurrentStatusID + FROM Documents + WHERE CurrentStatusID IS NOT NULL + """) + + self.logger.info(f"Found {len(source_documents)} documents with CurrentStatusID in source database") + + # Prepare update parameters + update_params = [] + skipped_no_mapping = 0 + skipped_unmapped_doc = 0 + + for doc in source_documents: + source_doc_id = doc['DocumentID'] + source_status_id = doc['CurrentStatusID'] + + # Map source DocumentID to target DocumentID + target_doc_id = self.document_map.get(source_doc_id) + + if target_doc_id is None: + # Document not mapped to target - skip + skipped_unmapped_doc += 1 + continue + + # Map source CurrentStatusID to target CurrentStatusID + target_status_id = self.state_map.get(source_status_id) + + if target_status_id is None: + # No state mapping exists - leave target DB value unchanged + self.logger.debug(f"Document {source_doc_id}: No state mapping for CurrentStatusID={source_status_id} - skipping") + skipped_no_mapping += 1 + continue + + # Add to update list + update_params.append((target_status_id, target_doc_id)) + + self.logger.info(f"Prepared {len(update_params)} documents for CurrentStatusID update") + self.logger.info(f"Skipped {skipped_unmapped_doc} documents (not mapped to target)") + self.logger.info(f"Skipped {skipped_no_mapping} documents (no state mapping configured)") + + if not update_params: + self.logger.info("No documents to update - migration complete") + return + + # Update query + update_query = """ + UPDATE Documents + SET CurrentStatusID = ? + WHERE DocumentID = ? + """ + + # Calculate batches + total_batches = (len(update_params) + batch_size - 1) // batch_size + + # Initialize statistics + total_updated = 0 + total_errors = 0 + + # Process in batches + for batch_num in range(total_batches): + batch_start = batch_num * batch_size + batch_end = min(batch_start + batch_size, len(update_params)) + batch_params = update_params[batch_start:batch_end] + + self.logger.info(f"Processing batch {batch_num + 1}/{total_batches} ({len(batch_params)} documents)...") + + # Execute updates for this batch using executemany (much faster than individual executes) + try: + cursor = self.target_conn.connection.cursor() + cursor.executemany(update_query, batch_params) + + # executemany returns total affected rows + batch_updated = cursor.rowcount + total_updated += batch_updated + + cursor.close() + + self.logger.info(f"Batch {batch_num + 1} complete: {batch_updated} documents updated in this batch") + + except Exception as e: + total_errors += len(batch_params) + self.logger.error(f"Error updating batch {batch_num + 1}: {e}") + self.logger.error(f"Failed to update {len(batch_params)} documents in this batch") + + # Commit every N batches + if (batch_num + 1) % commit_interval == 0: + self.target_conn.commit() + self.logger.info(f"[COMMIT] Transaction committed at batch {batch_num + 1} (every {commit_interval} batches)") + + # Final commit + self.target_conn.commit() + self.logger.info(f"[SUCCESS] Final transaction committed") + + self.logger.info("Documents CurrentStatusID migration completed successfully!") + self.logger.info(f"Total documents updated: {total_updated}") + self.logger.info(f"Total errors: {total_errors}") + + def run(self): + """Execute the complete file data migration process.""" + try: + self.logger.info("=" * 50) + self.logger.info("Starting File Data Migration") + self.logger.info("=" * 50) + + # Build mappings + self.build_variable_mapping() + self.build_document_mapping() + self.build_configuration_mapping() + self.build_state_mapping() + + # Export mappings for verification + self.export_mappings_to_csv() + + # Preview first batch of migrations + # self.preview_migration(num_records=20) + + # Perform migration + self.migrate_file_variable_values() + + # Migrate Documents CurrentStatusID if state mappings are configured + # TODO DONT TOUCH THIS UNTIL A NEW VAULT MIGRATION + # TODO State Mapping via SQL does not work + # self.migrate_documents_status() + + # Perform validation + # self.validate_migration() + + self.logger.info("=" * 50) + self.logger.info("File Data Migration Completed Successfully!") + self.logger.info("=" * 50) + + except Exception as e: + self.logger.error(f"Migration failed: {e}", exc_info=True) + raise + + finally: + # Close connections + self.source_conn.close() + self.target_conn.close() + + +def main(): + """Main entry point.""" + migrator = FileDataMigration() + migrator.run() + + +if __name__ == '__main__': + main() diff --git a/migrate_folderdata.py b/migrate_folderdata.py new file mode 100644 index 0000000..a8eb9e7 --- /dev/null +++ b/migrate_folderdata.py @@ -0,0 +1,734 @@ +""" +Data Migration Script +Migrates VariableValue data from source to target database with ID mapping. +""" +import json +import logging +import csv +import os +import glob +from datetime import datetime +from db_utils import DatabaseConnection + + +class DataMigrator: + def __init__(self, config_path='config.json'): + """Initialize the migrator with configuration.""" + with open(config_path, 'r') as f: + self.config = json.load(f) + + self.source_conn = None # this is the source DB connection (check config.json) + self.target_conn = None # this is the target DB connection (check config.json) + self.project_map = {} # this is where we store all the ProjectID maps between |source <-> target| + self.variable_map = {} # this is where we store all the VariableID maps between |source <-> target| + self.project_mapping_details = [] # Store full mapping details for export + self.variable_mapping_details = [] # Store full mapping details for export + + # Store database identifiers for progress tracking + self.source_db_name = self.config['source_db']['database'] + self.target_db_name = self.config['target_db']['database'] + + # Setup logging and timestamp + self.timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + log_filename = f"folderdata_migration_{self.timestamp}.log" + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler(log_filename), + logging.StreamHandler() + ] + ) + self.logger = logging.getLogger(__name__) + + def connect_databases(self): + """Establish connections to source and target databases.""" + self.logger.info("Connecting to source database...") + self.source_conn = DatabaseConnection(self.config['source_db']) # use the DB info in config.json to connect + + self.logger.info("Connecting to target database...") + self.target_conn = DatabaseConnection(self.config['target_db']) # use the DB info in config.json to connect + + self.logger.info("Database connections established.") + + def transform_source_path(self, source_path): + """Transform source path to expected target path by prepending root folder.""" + if not source_path: + return None + + # Get target root folder from config + # TODO this is defaulting to Citadel, need to change to make this more generic + target_root = self.config.get('path_mapping', {}).get('target_root_folder', 'Citadel') + + # Strip leading backslash if exists + path_without_leading = source_path.lstrip('\\') + + # Handle root path specially. The way the code is set up our Source Root will always be blank + if not path_without_leading or path_without_leading == '': + # Source root maps to target root + return f'\\{target_root}\\' + + # Prepend target root folder + transformed = f'\\{target_root}\\{path_without_leading}' + + # Ensure trailing backslash if original had it + if source_path.endswith('\\') and not transformed.endswith('\\'): + transformed += '\\' + + return transformed + + def build_project_mapping(self): + """Build mapping of source ProjectID to target ProjectID based on folder paths.""" + """NOTE: If you try to match based on names you are going to get a lot of the same folder names""" + self.logger.info("Building project ID mapping using path-based matching...") + + # Fetch projects from source with paths (exclude deleted projects) + source_projects = self.source_conn.execute_query( + "SELECT ProjectID, Name, Path FROM Projects WHERE Deleted = 0 OR Deleted IS NULL" + ) + + # Fetch projects from target with paths (exclude deleted projects) + target_projects = self.target_conn.execute_query( + "SELECT ProjectID, Name, Path FROM Projects WHERE Deleted = 0 OR Deleted IS NULL" + ) + + self.logger.info(f"Found {len(source_projects)} active projects in source database (deleted projects excluded)") + self.logger.info(f"Found {len(target_projects)} active projects in target database (deleted projects excluded)") + + # Create path-to-ID mapping for target + # Handle case sensitivity based on config, we default to FALSE + case_sensitive = self.config.get('path_mapping', {}).get('case_sensitive', False) + + target_path_map = {} + # in this loop we are going through all of the folders in the Target DB (PDM calls them projects) and + # creating the key:value pair [path]:[project_DB_row] + for project in target_projects: + path = project['Path'] + if path: + # Normalize path for case-insensitive matching if needed + key = path if case_sensitive else path.lower() + target_path_map[key] = project + + self.logger.info(f"Built target path index with {len(target_path_map)} paths") + + # Build source-to-target ID mapping + mapped_count = 0 + unmapped_count = 0 + null_path_count = 0 + + for source_project in source_projects: + source_id = source_project['ProjectID'] + project_name = source_project['Name'] + source_path = source_project['Path'] + + # Skip projects with no path + if not source_path: + self.logger.warning(f"Project '{project_name}' (ID: {source_id}) has no path - skipping") + null_path_count += 1 + continue + + # Transform source path to expected target path + target_path = self.transform_source_path(source_path) + + # This is more of a precaution, it really should never be triggered, I guess maybe this would show you there was an error w/root + if not target_path: + self.logger.warning(f"Could not transform path for project '{project_name}' (ID: {source_id})") + unmapped_count += 1 + continue + + # Here we handle case sensitivity if its required. + # target_path - this is actually our "expected target path" or basically our source + new root folder + # lookup_key - this is basically just a case sensitive version of target_path + lookup_key = target_path if case_sensitive else target_path.lower() + + # Here we are taking all of the paths we are expecting to find (lookup_key) and seeing if we actually find them in the TargetDB + # the if clause only gets triggered on the matches + if lookup_key in target_path_map: + target_project = target_path_map[lookup_key] + target_id = target_project['ProjectID'] + + # if we find a match we map it to Global project_map in our DataMigrator class (created in __init__) + self.project_map[source_id] = target_id + + # Store full details for export this is used for logging in the CSV so we can manually review the mappings + self.project_mapping_details.append({ + 'ProjectName': project_name, + 'SourceID': source_id, + 'TargetID': target_id, + 'SourcePath': source_path, + 'TargetPath': target_path + }) + + self.logger.debug(f"Mapped Project '{project_name}': {source_id} -> {target_id} (Path: {source_path} -> {target_path})") + mapped_count += 1 + else: + # Enhanced debugging for unmapped paths + self.logger.warning(f"Project '{project_name}' (ID: {source_id}) - Target path not found") + self.logger.warning(f" Source path: [{source_path}]") + self.logger.warning(f" Transformed to: [{target_path}]") + self.logger.warning(f" Lookup key: [{lookup_key}]") + + # Check for similar paths (useful for finding typos/whitespace issues) + similar = [p for p in target_path_map.keys() if project_name.lower() in p.lower()][:3] + if similar: + self.logger.warning(f" Similar paths in target: {similar}") + + unmapped_count += 1 + + self.logger.info(f"Project mapping complete:") + self.logger.info(f"--- Successfully mapped: {mapped_count} projects") + self.logger.info(f"--- Unmapped (path not found): {unmapped_count} projects") + self.logger.info(f"--- Skipped (null path): {null_path_count} projects") + self.logger.info(f"--- Total in project_map: {len(self.project_map)} projects") + + def build_variable_mapping(self): + """Build mapping of source VariableID to target VariableID based on variable names.""" + """NOTE: The logic in this section is different than the Project Mapping""" + """NOTE: the reason for this is that there cannot be duplicate Variable names so we can match on Name""" + self.logger.info("Building variable ID mapping...") + + # Fetch variables from source (exclude deleted variables) + source_variables = self.source_conn.execute_query( + "SELECT VariableID, VariableName FROM Variable WHERE IsDeleted = 0 OR IsDeleted IS NULL" + ) + + # Fetch variables from target (exclude deleted variables) + target_variables = self.target_conn.execute_query( + "SELECT VariableID, VariableName FROM Variable WHERE IsDeleted = 0 OR IsDeleted IS NULL" + ) + + # Filter out system variables (names in curly brackets like {GUID}) + source_variables_before_filter = len(source_variables) + target_variables_before_filter = len(target_variables) + + # The PDMVault has a two kinds of variables. All the user created variables show up with human readable names + # the system variables show up like Name = {ASDFASD-FASDFSDF-ADFDFDFS} + # so in these two lines, we are making sure we ignore the system variables by ignoring { } + source_variables = [v for v in source_variables if not (v['VariableName'].startswith('{') and v['VariableName'].endswith('}'))] + target_variables = [v for v in target_variables if not (v['VariableName'].startswith('{') and v['VariableName'].endswith('}'))] + + # We are keeping track of how many system variables we are skipping + source_system_vars_excluded = source_variables_before_filter - len(source_variables) + target_system_vars_excluded = target_variables_before_filter - len(target_variables) + + self.logger.info(f"Found {len(source_variables)} user variables in source database (deleted: excluded, system variables: {source_system_vars_excluded} excluded)") + self.logger.info(f"Found {len(target_variables)} user variables in target database (deleted: excluded, system variables: {target_system_vars_excluded} excluded)") + + # Create name-to-ID mapping for target + target_map = {row['VariableName']: row['VariableID'] for row in target_variables} + + # Build source-to-target ID mapping + for source_variable in source_variables: + source_id = source_variable['VariableID'] + variable_name = source_variable['VariableName'] + + if variable_name in target_map: + target_id = target_map[variable_name] + self.variable_map[source_id] = target_id + # Store full details for export + self.variable_mapping_details.append({ + 'VariableName': variable_name, + 'SourceID': source_id, + 'TargetID': target_id + }) + self.logger.debug(f"Mapped Variable '{variable_name}': {source_id} -> {target_id}") + else: + self.logger.warning(f"Variable '{variable_name}' (ID: {source_id}) not found in target database") + + self.logger.info(f"Variable mapping complete. Mapped {len(self.variable_map)} variables.") + + def validate_mappings(self): + """Validate project and variable mappings for integrity.""" + self.logger.info("Validating mappings...") + + validation_issues = [] + + # Check for duplicate target IDs in project mapping (multiple sources -> same target) + # NOTE This was put inplace before we switched to matching via project path. It really shouldnt trigger + # NOTE but we are going to leave it in, in case it does. If it does trigger its a sign of having duplicate names + target_id_counts = {} + + # here are making a dictionary where... + # key/value ..... [targetID]:[sourceID_list] + # basically if the sourceID_list is longer than one that shows that we are mapping multiple things to the same target + for source_id, target_id in self.project_map.items(): + if target_id not in target_id_counts: + target_id_counts[target_id] = [] + target_id_counts[target_id].append(source_id) + + # basically if the sourceID_list is longer than one that shows that we are mapping multiple things to the same target + for target_id, source_ids in target_id_counts.items(): + if len(source_ids) > 1: + issue = f"Multiple source projects ({source_ids}) map to same target project {target_id}" + validation_issues.append(issue) + self.logger.warning(issue) + + # Check for duplicate target IDs in variable mapping + # NOTE: I can't think of a reason why any of this would ever trigger, but its in here + var_target_id_counts = {} + for source_id, target_id in self.variable_map.items(): + if target_id not in var_target_id_counts: + var_target_id_counts[target_id] = [] + var_target_id_counts[target_id].append(source_id) + + for target_id, source_ids in var_target_id_counts.items(): + if len(source_ids) > 1: + issue = f"Multiple source variables ({source_ids}) map to same target variable {target_id}" + validation_issues.append(issue) + self.logger.warning(issue) + + # logging the issues + if validation_issues: + self.logger.warning(f"Found {len(validation_issues)} validation issues") + else: + self.logger.info("All mappings validated successfully - no integrity issues found") + + return validation_issues + + def export_mappings_to_csv(self): + """Export ID mappings to CSV files for manual review.""" + self.logger.info("Exporting mappings to CSV files...") + + # Export project mappings + project_csv = f"mapping_projects_{self.timestamp}.csv" + with open(project_csv, 'w', newline='', encoding='utf-8') as f: + writer = csv.DictWriter(f, fieldnames=['ProjectName', 'SourceID', 'TargetID', 'SourcePath', 'TargetPath']) + writer.writeheader() + writer.writerows(self.project_mapping_details) + + self.logger.info(f"Project mappings exported to: {project_csv} ({len(self.project_mapping_details)} mappings)") + + # Export variable mappings + variable_csv = f"mapping_variables_{self.timestamp}.csv" + with open(variable_csv, 'w', newline='', encoding='utf-8') as f: + writer = csv.DictWriter(f, fieldnames=['VariableName', 'SourceID', 'TargetID']) + writer.writeheader() + writer.writerows(self.variable_mapping_details) + + self.logger.info(f"Variable mappings exported to: {variable_csv} ({len(self.variable_mapping_details)} mappings)") + + def save_migration_progress(self, batch_num, total_batches, stats): + """Save migration progress to resume on failure.""" + """NOTE: Migration takes several hours and is subject to timeouts/connection issues. Need a way to resume gracefully""" + + # Create database-specific progress filename + # NOTE we create this file when the migration starts. Its specific to the DB's being migrated so you could conceivably + # NOTE go back and forth between migrations if you wanted + # NOTE when the migration is finished this file gets deleted + progress_file = f"migration_progress_{self.source_db_name}_to_{self.target_db_name}_{self.timestamp}.json" + + # In config.json we specify how we are going to batch the migration and then as we migrate we keep stats of it + # essentially we commit changes every 10 batches so we are tracking that and rolling back to the nearest 10th if we have an error + progress_data = { + 'timestamp': datetime.now().isoformat(), + 'migration_timestamp': self.timestamp, + 'source_database': self.source_db_name, + 'target_database': self.target_db_name, + 'last_completed_batch': batch_num, + 'total_batches': total_batches, + 'records_inserted': stats['inserted'], + 'records_updated': stats['updated'], + 'records_errors': stats['errors'] + } + with open(progress_file, 'w') as f: + json.dump(progress_data, f, indent=2) + self.logger.info(f"Progress saved: batch {batch_num}/{total_batches}") + + def load_migration_progress(self): + """Load previous migration progress if exists for current database pair.""" + # Look for progress files matching current database combination + # for instance if you are trying to Migrate A->B and then it times out and you try doing A->C you wont get + # any errors, otherwise it would see a progress file and assume the progress on A->B was the progress of your A->C migration + progress_pattern = f"migration_progress_{self.source_db_name}_to_{self.target_db_name}_*.json" + progress_files = glob.glob(progress_pattern) + + if not progress_files: + self.logger.info("No previous migration progress found for this database pair") + return None + + # Get most recent progress file for this database pair + latest_progress = max(progress_files, key=os.path.getmtime) + + with open(latest_progress, 'r') as f: + progress = json.load(f) + + # Validate that progress file matches current databases + if (progress.get('source_database') != self.source_db_name or + progress.get('target_database') != self.target_db_name): + self.logger.warning(f"Found progress file but database names don't match. Ignoring.") + return None + + self.logger.info(f"Found previous migration progress: {latest_progress}") + self.logger.info(f" Source DB: {progress['source_database']} -> Target DB: {progress['target_database']}") + self.logger.info(f" Last completed batch: {progress['last_completed_batch']}/{progress['total_batches']}") + self.logger.info(f" Inserted so far: {progress['records_inserted']}") + self.logger.info(f" Updated so far: {progress['records_updated']}") + self.logger.info(f" Errors so far: {progress['records_errors']}") + + return progress + + def cleanup_progress_file(self): + """Remove progress file after successful completion for this database pair.""" + """NOTE: This function is called from migrate_variable_values() """ + """NOTE: This function is only called after the final DB commit """ + progress_pattern = f"migration_progress_{self.source_db_name}_to_{self.target_db_name}_*.json" + progress_files = glob.glob(progress_pattern) #TODO look more into glob, but its basically a path matching tool + + for pf in progress_files: + os.remove(pf) + self.logger.info(f"Removed progress file: {pf}") + + def migrate_variable_values(self): + """Migrate VariableValue records from source to target using ID mappings with UPSERT logic.""" + """ NOTE: We are using Upsert logic which means if a Folder card already has data in the Target """ + """ NOTE: This migration is going to revert it to matching whatever is in the Source. """ + self.logger.info("Starting VariableValue migration (UPSERT mode)...") + + # Get configuration. In config.json we set how we want to batch it + # NOTE: We are defaulting to 500 Batch sizes + batch_size = self.config.get('migration', {}).get('batch_size', 500) + + self.logger.info(f"Migration settings: batch_size={batch_size}, mode=UPSERT (insert new, update existing)") + + # Fetch all VariableValue records from source + # TODO: REMOVE DocumentID=1 if you want to try migrating all the variable values + # TODO: Do that at your own risk + # TODO: Probably don't do that + # Only fetch records for folders (DocumentID = 1) + # ORDER BY ensures consistent ordering across runs for reliable resume + source_values = self.source_conn.execute_query( + "SELECT * FROM VariableValue WHERE DocumentID = 1 ORDER BY ProjectID, VariableID, RevisionNo" + ) + + self.logger.info(f"Found {len(source_values)} VariableValue records in source (DocumentID=1 only).") + + # Prepare MERGE query for UPSERT operation + # MERGE will INSERT if not exists, UPDATE if exists + # NOTE: In this context the source is the staged data that we are about to insert. It has already been converted. + # NOTE: Basically we are saying We have a correctly formatted row we are about to insert called "SOURCE" does it already exist in our target DB + merge_query = """ + MERGE INTO VariableValue AS target + USING (SELECT ? AS VariableID, ? AS DocumentID, ? AS ProjectID, ? AS RevisionNo, + ? AS ConfigurationID, ? AS ValueText, ? AS ValueInt, ? AS ValueFloat, + ? AS ValueDate, ? AS ValueCache, ? AS IsLongText) AS source + ON (target.VariableID = source.VariableID + AND target.ProjectID = source.ProjectID + AND target.DocumentID = source.DocumentID) + WHEN MATCHED THEN + UPDATE SET + RevisionNo = source.RevisionNo, + ConfigurationID = source.ConfigurationID, + ValueText = source.ValueText, + ValueInt = source.ValueInt, + ValueFloat = source.ValueFloat, + ValueDate = source.ValueDate, + ValueCache = source.ValueCache, + IsLongText = source.IsLongText + WHEN NOT MATCHED THEN + INSERT (VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID, ValueText, ValueInt, ValueFloat, ValueDate, ValueCache, IsLongText) + VALUES (source.VariableID, source.DocumentID, source.ProjectID, source.RevisionNo, source.ConfigurationID, source.ValueText, source.ValueInt, source.ValueFloat, source.ValueDate, source.ValueCache, source.IsLongText); + """ + + # Collect records to upsert, with detailed tracking + params_list = [] + record_metadata = [] # Store metadata for logging + skipped_unmapped = 0 + skipped_invalid_doc = 0 + + for record in source_values: + # Extract source IDs + source_variable_id = record.get('VariableID') + source_project_id = record.get('ProjectID') + source_docID = record.get('DocumentID') + + # Skip if DocumentID is not 1 (safety check, should be filtered by query) + if source_docID != 1: + self.logger.warning(f"Skipping record: ProjectID {source_project_id} - VariableID {source_variable_id} DocumentID is not == 1") + skipped_invalid_doc += 1 + continue + + # Map to target IDs + target_variable_id = self.variable_map.get(source_variable_id) + target_project_id = self.project_map.get(source_project_id) + + # Skip if mapping not found + if target_variable_id is None: + self.logger.debug(f"Skipping record: VariableID {source_variable_id} not mapped") + skipped_unmapped += 1 + continue + + if target_project_id is None: + self.logger.debug(f"Skipping record: ProjectID {source_project_id} not mapped") + skipped_unmapped += 1 + continue + + # Extract other fields + source_rev = record.get('RevisionNo') + source_configID = record.get('ConfigurationID') + source_valueText = record.get('ValueText') + source_valueInt = record.get('ValueInt') + source_valueFloat = record.get('ValueFloat') + source_valueDate = record.get('ValueDate') + source_valueCache = record.get('ValueCache') + source_islongtext = record.get('IsLongText') + + # Prepare params for MERGE statement + # Order matches the SELECT in MERGE USING clause + params = ( + target_variable_id, # VariableID + source_docID, # DocumentID + target_project_id, # ProjectID + source_rev, # RevisionNo + source_configID, # ConfigurationID + source_valueText, # ValueText + source_valueInt, # ValueInt + source_valueFloat, # ValueFloat + source_valueDate, # ValueDate + source_valueCache, # ValueCache + source_islongtext # IsLongText + ) + params_list.append(params) + + # Store metadata for detailed logging if needed + record_metadata.append({ + 'target_variable_id': target_variable_id, + 'target_project_id': target_project_id, + 'source_variable_id': source_variable_id, + 'source_project_id': source_project_id + }) + + self.logger.info(f"Prepared {len(params_list)} records for UPSERT") + self.logger.info(f"Skipped {skipped_unmapped} records (unmapped IDs)") + + if skipped_invalid_doc > 0: + self.logger.info(f"Skipped {skipped_invalid_doc} records (invalid DocumentID)") + + # Check for existing progress and offer to resume + previous_progress = self.load_migration_progress() + start_batch = 0 + total_stats = {'inserted': 0, 'updated': 0, 'errors': 0} + + if previous_progress: + self.logger.info(f"*** Previous migration found ***") + self.logger.info(f"Last completed batch: {previous_progress['last_completed_batch']}/{previous_progress['total_batches']}") + self.logger.info(f"Records inserted: {previous_progress['records_inserted']}") + self.logger.info(f"Records updated: {previous_progress['records_updated']}") + + # Try to prompt user, if fails (non-interactive), automatically resume + try: + print(f"\n*** Previous migration found ***") + print(f"Last completed batch: {previous_progress['last_completed_batch']}/{previous_progress['total_batches']}") + print(f"Records inserted: {previous_progress['records_inserted']}") + print(f"Records updated: {previous_progress['records_updated']}") + response = input(f"Resume from batch {previous_progress['last_completed_batch'] + 1}? (y/n): ").strip().lower() + except EOFError: + # Non-interactive mode - automatically resume + response = 'y' + self.logger.info("Running in non-interactive mode - automatically resuming") + + if response == 'y': + start_batch = previous_progress['last_completed_batch'] + total_stats['inserted'] = previous_progress['records_inserted'] + total_stats['updated'] = previous_progress['records_updated'] + total_stats['errors'] = previous_progress['records_errors'] + self.logger.info(f"Resuming from batch {start_batch + 1}") + else: + self.logger.info("Starting fresh migration (previous progress will be overwritten)") + self.cleanup_progress_file() + + # Get commit interval from config + commit_interval = self.config.get('migration', {}).get('commit_interval', 10) + self.logger.info(f"Commit interval: every {commit_interval} batches") + + # Process in batches with periodic commits + total_batches = (len(params_list) + batch_size - 1) // batch_size + + try: + for i in range(start_batch * batch_size, len(params_list), batch_size): + batch = params_list[i:i + batch_size] + batch_num = (i // batch_size) + 1 + + self.logger.info(f"Processing batch {batch_num}/{total_batches} ({len(batch)} records)...") + + # Execute MERGE for each record in batch + batch_inserted = 0 + batch_updated = 0 + batch_errors = 0 + + for j, params in enumerate(batch): + try: + cursor = self.target_conn.connection.cursor() + cursor.execute(merge_query, params) + affected = cursor.rowcount + cursor.close() + + # MERGE returns 1 for INSERT, 2 for UPDATE (1 match + 1 update) + if affected == 1: + batch_inserted += 1 + elif affected == 2: + batch_updated += 1 + + except Exception as e: + meta = record_metadata[i + j] + var_name = next((v['VariableName'] for v in self.variable_mapping_details if v['TargetID'] == meta['target_variable_id']), f"ID:{meta['target_variable_id']}") + proj_name = next((p['ProjectName'] for p in self.project_mapping_details if p['TargetID'] == meta['target_project_id']), f"ID:{meta['target_project_id']}") + + self.logger.error(f"Failed to UPSERT - Variable: '{var_name}' (ID: {meta['target_variable_id']}), Project: '{proj_name}' (ID: {meta['target_project_id']}), Error: {e}") + batch_errors += 1 + + total_stats['inserted'] += batch_inserted + total_stats['updated'] += batch_updated + total_stats['errors'] += batch_errors + + self.logger.info(f"Batch {batch_num} complete: inserted={batch_inserted}, updated={batch_updated}, errors={batch_errors}") + + # Commit every N batches to keep connection alive and save progress + if batch_num % commit_interval == 0: + self.target_conn.commit() + self.save_migration_progress(batch_num, total_batches, total_stats) + self.logger.info(f"[COMMIT] Transaction committed at batch {batch_num} (every {commit_interval} batches)") + + # Final commit for any remaining batches + self.target_conn.commit() + self.cleanup_progress_file() + self.logger.info("[SUCCESS] Final transaction committed successfully") + self.logger.info("[SUCCESS] Migration completed - progress file cleaned up") + + except Exception as e: + self.logger.error(f"Migration failed at batch {batch_num}: {e}") + self.logger.error(f"Progress has been saved. Run the migration again to resume from batch {((batch_num // commit_interval) * commit_interval) + 1}") + # Don't rollback - we want to keep what was already committed + raise + + self.logger.info(f"Migration complete:") + self.logger.info(f" - Total inserted (new): {total_stats['inserted']}") + self.logger.info(f" - Total updated (existing): {total_stats['updated']}") + self.logger.info(f" - Unmapped skipped: {skipped_unmapped}") + self.logger.info(f" - Errors: {total_stats['errors']}") + + def validate_migration(self): + # After the migration runs we will run this script to validate that everything was inserted correctly into the Target DB + self.logger.info("Running Validation on the Target to ensure we completed migration successfully") + + # the primary key columns are VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID + source_values = self.source_conn.execute_query( + """SELECT VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID FROM VariableValue + WHERE DocumentID = 1 + ORDER BY DocumentID, VariableID, RevisionNo""" + ) + + target_values = self.target_conn.execute_query( + """SELECT VariableID, DocumentID, ProjectID, RevisionNo, ConfigurationID FROM VariableValue + WHERE DocumentID = 1 + ORDER BY DocumentID, VariableID, RevisionNo""" + ) + + # -------------------------------------- + # Convert target_values to a set of tuples for fast lookup + # --------------------------------------- + self.logger.info("Building target record set for comparison...") + target_set = set() # this is every row of the VariableValue table in the Target DB + for record in target_values: + key = ( + record['VariableID'], + record['DocumentID'], + record['ProjectID'], + record['RevisionNo'], + record['ConfigurationID'] + ) + target_set.add(key) + + error_list = [] # this is the container we are going to use to hold the errors we find + success_count = 0 # we will just tally the records we find + ignore_count = 0 # counter for rows that we didnt map because we couldnt find a projectID in the Target DB + + # now we search the target for each row using the mapped values to make sure that it is in there, we log it if we can't find it + # -------------------------------------- + # Create a CSV to log all the rows we think we are missing and begin the scan + # --------------------------------------- + doc_csv_filename = f'validation_missing_folderdata_{self.timestamp}.csv' + + with open(doc_csv_filename, 'w', newline='', encoding='utf-8') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(['Target_VariableID', 'DocumentID', 'Target_ProjectID', 'RevisionNo', 'ConfigurationID']) # write header + self.logger.info(f"Prepared {len(source_values)} records. Beginning validation with Target DB") + + for record in source_values: + # Extract source IDs + source_variable_id = record.get('VariableID') + source_project_id = record.get('ProjectID') + + # Map to target IDs + target_variable_id = self.variable_map.get(source_variable_id) + target_project_id = self.project_map.get(source_project_id) + + # Extract other fields + source_rev = record.get('RevisionNo') + source_configID = record.get('ConfigurationID') + source_documentID = record.get("DocumentID") # even though all of these should be 1 we are still going to pull the actual value + + # Prepare params for MERGE statement + # DocumentID is always 1 for folders in the PDMVault but we are still going to pull the value directly instead of hard coding + params = ( + target_variable_id, # mapped VariableID + source_documentID, # should be 1 but we are going to pull it anyway + target_project_id, # mapped ProjectID + source_rev, # RevisionNo + source_configID, # ConfigurationID + ) + + # Some projects didnt map into the Target DB these are usually things like '' or 'No Project' + # These projects wont have a target ID so we are going to ignore them + if not target_project_id or not target_variable_id: + ignore_count += 1 + else: + if params in target_set: + success_count += 1 + else: + self.logger.warning(f"Failed to find match for {params} in Target") + error_list.append(params) # record which record is missing + writer.writerow([params[0], params[1], params[2], params[3], params[4]]) + + self.logger.info("=" * 50) + self.logger.info("$ Migration Validation Completed!") + self.logger.info("=" * 50) + self.logger.info(f"Gross Success rate: {(success_count / len(source_values)) * 100:.2f}%") + self.logger.info(f"Success rate w/o Ignored Files: {(success_count / (len(source_values) - ignore_count)) * 100:.2f}%") + self.logger.info(f"{success_count} of {len(source_values)} Rows were found") + self.logger.info(f"MISSING ROW COUNT:{len(error_list)} - See CSV output for details") + self.logger.info(f"We ignored a total of {ignore_count} rows. We couldn't map these to the TargetDB. Either bad Var or Proj ID") + self.logger.info("$" * 50) + + def run(self): + """Execute the complete migration process.""" + try: + self.logger.info("=" * 50) + self.logger.info("Starting Data Migration") + self.logger.info("=" * 50) + + self.connect_databases() + self.build_project_mapping() + self.build_variable_mapping() + self.validate_mappings() + self.export_mappings_to_csv() + self.migrate_variable_values() + self.validate_migration() + + self.logger.info("=" * 50) + self.logger.info("Migration completed successfully!") + self.logger.info("=" * 50) + + except Exception as e: + self.logger.error(f"Migration failed: {e}", exc_info=True) + raise + + finally: + if self.source_conn: + self.source_conn.close() + if self.target_conn: + self.target_conn.close() + + +if __name__ == "__main__": + migrator = DataMigrator('config.json') + migrator.run() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4b32235 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +pyodbc==5.0.1 +pywin32>=306 +comtypes>=1.2.0 diff --git a/rollback_filedata.py b/rollback_filedata.py new file mode 100644 index 0000000..f844dd2 --- /dev/null +++ b/rollback_filedata.py @@ -0,0 +1,235 @@ +""" +Rollback File Data Migration Script +Deletes VariableValue records from target database for documents that were migrated. +Uses the document mapping CSV to identify which target DocumentIDs to delete. +""" +import json +import logging +import csv +import sys +from datetime import datetime +from db_utils import DatabaseConnection + + +class FileDataRollback: + def __init__(self, config_path='config.json', mapping_csv_path=None): + """Initialize the rollback tool with configuration and mapping file.""" + with open(config_path, 'r') as f: + self.config = json.load(f) + + self.target_conn = None + self.mapping_csv_path = mapping_csv_path + self.target_document_ids = [] + + # Setup logging + self.timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + log_filename = f"rollback_filedata_{self.timestamp}.log" + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler(log_filename), + logging.StreamHandler() + ] + ) + self.logger = logging.getLogger(__name__) + + def connect_database(self): + """Establish connection to target database.""" + self.logger.info("Connecting to target database...") + self.target_conn = DatabaseConnection(self.config['target_db']) + self.logger.info("Target database connection established.") + + def load_document_mappings(self): + """Load document mappings from CSV file and extract target DocumentIDs.""" + if not self.mapping_csv_path: + raise ValueError("No mapping CSV file path provided") + + self.logger.info(f"Loading document mappings from: {self.mapping_csv_path}") + + with open(self.mapping_csv_path, 'r', encoding='utf-8') as f: + reader = csv.DictReader(f) + + # Check if required columns exist + fieldnames = reader.fieldnames + if 'TargetDocID' not in fieldnames: + raise ValueError(f"CSV must contain 'TargetDocID' column. Found: {fieldnames}") + + for row in reader: + target_id = row['TargetDocID'] + if target_id and target_id != '': + try: + self.target_document_ids.append(int(target_id)) + except ValueError: + self.logger.warning(f"Skipping invalid TargetID: {target_id}") + + self.logger.info(f"Loaded {len(self.target_document_ids)} target DocumentIDs from mapping file") + + def preview_deletion(self): + """Preview how many records will be deleted.""" + self.logger.info("=" * 50) + self.logger.info("Previewing deletion impact...") + self.logger.info("=" * 50) + + # Count records that will be deleted + count_query = """ + SELECT COUNT(*) as RecordCount + FROM VariableValue + WHERE DocumentID = ? AND ProjectID = 2 + """ + + total_records = 0 + documents_with_data = 0 + + for doc_id in self.target_document_ids[:10]: # Preview first 10 + result = self.target_conn.execute_query(count_query, (doc_id,)) + count = result[0]['RecordCount'] if result else 0 + if count > 0: + self.logger.info(f" DocumentID {doc_id}: {count} records") + total_records += count + documents_with_data += 1 + + if len(self.target_document_ids) > 10: + self.logger.info(f" ... and {len(self.target_document_ids) - 10} more documents") + + # Get total count for all documents + self.logger.info("") + self.logger.info("Calculating total impact across all documents...") + + # Count in batches to avoid SQL parameter limit (2100) + batch_size = 2000 + total_count = 0 + + for i in range(0, len(self.target_document_ids), batch_size): + batch = self.target_document_ids[i:i + batch_size] + placeholders = ','.join(['?'] * len(batch)) + batch_query = f""" + SELECT COUNT(*) as BatchCount + FROM VariableValue + WHERE DocumentID IN ({placeholders}) AND ProjectID = 2 + """ + result = self.target_conn.execute_query(batch_query, tuple(batch)) + batch_count = result[0]['BatchCount'] if result else 0 + total_count += batch_count + + self.logger.info("=" * 50) + self.logger.info(f"TOTAL RECORDS TO BE DELETED: {total_count}") + self.logger.info(f"Across {len(self.target_document_ids)} mapped documents") + self.logger.info("=" * 50) + + return total_count + + def rollback_variable_values(self): + """Delete VariableValue records for all mapped target DocumentIDs.""" + self.logger.info("=" * 50) + self.logger.info("Starting Rollback of File Data") + self.logger.info("=" * 50) + + # Get user confirmation + total_to_delete = self.preview_deletion() + + if total_to_delete == 0: + self.logger.info("No records found to delete. Exiting.") + return + + self.logger.info("") + try: + response = input(f"Are you sure you want to DELETE {total_to_delete} records? (yes/no): ").strip().lower() + except EOFError: + # Non-interactive mode + self.logger.error("Cannot proceed without confirmation in non-interactive mode") + return + + if response != 'yes': + self.logger.info("Rollback cancelled by user") + return + + # Perform deletion + delete_query = """ + DELETE FROM VariableValue + WHERE DocumentID = ? AND ProjectID = 2 + """ + + total_deleted = 0 + batch_size = 100 + commit_interval = 10 # Commit every 10 batches + + self.logger.info(f"Processing {len(self.target_document_ids)} documents in batches of {batch_size}...") + + try: + for i in range(0, len(self.target_document_ids), batch_size): + batch = self.target_document_ids[i:i + batch_size] + batch_num = (i // batch_size) + 1 + total_batches = (len(self.target_document_ids) + batch_size - 1) // batch_size + + batch_deleted = 0 + + for doc_id in batch: + try: + cursor = self.target_conn.connection.cursor() + cursor.execute(delete_query, (doc_id,)) + rows_deleted = cursor.rowcount + batch_deleted += rows_deleted + cursor.close() + + except Exception as e: + self.logger.error(f"Failed to delete records for DocumentID {doc_id}: {e}") + + total_deleted += batch_deleted + self.logger.info(f"Batch {batch_num}/{total_batches}: Deleted {batch_deleted} records") + + # Commit every N batches + if batch_num % commit_interval == 0: + self.target_conn.commit() + self.logger.info(f"[COMMIT] Transaction committed at batch {batch_num}") + + # Final commit + self.target_conn.commit() + self.logger.info("[COMMIT] Final transaction committed") + + self.logger.info("=" * 50) + self.logger.info(f"Rollback Complete!") + self.logger.info(f"Total records deleted: {total_deleted}") + self.logger.info("=" * 50) + + except Exception as e: + self.logger.error(f"Rollback failed: {e}") + self.logger.error("Attempting to rollback transaction...") + self.target_conn.connection.rollback() + raise + + def run(self): + """Execute the rollback process.""" + try: + self.logger.info("=" * 50) + self.logger.info("File Data Rollback Tool") + self.logger.info("=" * 50) + + self.connect_database() + self.load_document_mappings() + self.rollback_variable_values() + + self.logger.info("=" * 50) + self.logger.info("Rollback process completed successfully!") + self.logger.info("=" * 50) + + except Exception as e: + self.logger.error(f"Rollback process failed: {e}", exc_info=True) + raise + + finally: + if self.target_conn: + self.target_conn.close() + + +if __name__ == "__main__": + # Check for CSV file argument + if len(sys.argv) < 2: + print("Usage: python rollback_filedata.py ") + print("Example: python rollback_filedata.py mapping_documents_filedata_20251208_075312.csv") + sys.exit(1) + + mapping_csv = sys.argv[1] + + rollback = FileDataRollback(config_path='config.json', mapping_csv_path=mapping_csv) + rollback.run()
    + +

    This +sample shows how to implement + IEdmAddIn5::GetAddInInfo and + IEdmAddIn5::OnCmd to create a Visual Basic add-in +that is called when the user clicks a button in a file data card. The add-in +opens a dialog box in which the user browses for the file whose data card is +displayed. The add-in copies the path of the selected file to a text field in the +file's data card. 
    +
    +
    NOTE: + Because SOLIDWORKS PDM Professional cannot force a reload of + add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

    + +
      +
    1. +

      Follow + Creating Menu Commands (VB.NET) to create a basic add-in.

      +
    2. +
    3. +

      Register a hook + to notify your add-in when a user clicks a button in a file data card. + Implement IEdmAddIn5::GetAddInInfo as follows:

      +
    4. + +
      +

      + Public Sub GetAddInInfo(ByRef + poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, + ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
      +
           '
      Specify + information to display in the add-in's Properties dialog box
           poInfo.mbsAddInName = "My serial number generator"
           poInfo.mbsCompany = "The name of my company"
           poInfo.mbsDescription = "Implements serial numbers"
           poInfo.mlAddInVersion = 1
           poInfo.mlRequiredVersionMajor = 5
           poInfo.mlRequiredVersionMinor = 2
      +
           'Notify the add-in when a + file data card + button is clicked
           poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardButton)

      +

      + End Sub

      +
      + +
    5. +

      + Implement IEdmAddIn5::OnCmd as follows:

      +
    6. + +
      +

      + Public Sub OnCmd(ByRef poCmd As EdmCmd, + + ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd
        + On Error GoTo ErrHand

          + 'Respond only to a specific button command
          'The + button command to respond to begins with "MyButton:" and ends with the name + of the
          'variable to update in the card
          If Left(poCmd.mbsComment, 9) = "MyButton:" Then +
            'Get the name of the variable to update. +
            Dim VarName As String
            VarName = Right(poCmd.mbsComment, Len(poCmd.mbsComment) - 9) +

            'Let the user + select the file whose path will be copied to the card variable
            Dim vault As EdmVault5 +
            vault = poCmd.mpoVault
            Dim PathList As IEdmStrLst5 +
            PathList = vault.BrowseForFile(poCmd.mlParentWnd, EdmBrowseFlag.EdmBws_ForOpen + + EdmBrowseFlag.EdmBws_PermitVaultFiles, + "", "", "", "", "Select File for + " + VarName)

               If Not PathList Is Nothing Then +
                 Dim path As String +
                 path = PathList.GetNext(PathList.GetHeadPosition) 
      +
                 'Store the path in the + card variable 
                 Dim vars As IEdmEnumeratorVariable5 
                 vars = poCmd.mpoExtra 
                 Dim VariantPath As Object 
                 VariantPath = path 
                 vars.SetVar(VarName, "", VariantPath) 
               End If +
             End If

             Exit Sub +

           'Handle + errors
           ErrHand: +
             Dim ErrVault As EdmVault5
             ErrVault = poCmd.mpoVault +
             Dim ErrName As String
             Dim ErrDesc As String +
             ErrVault.GetErrorString(Err.Number, ErrName, ErrDesc) +
             ErrVault.MsgBox(poCmd.mlParentWnd, "Error in my card + button." + vbLf + ErrDesc)

      End Sub
      +
      +
      + The second argument to + OnCmd, ppoData, +is an array of + EdmCmdData structures. There is one element in the array when +it is called from the file data card. +See EdmCmdData for information about the structure.

      +
      + + +
    7. +

      + Click Build > Build + Solution to build the add-in.

    8. +
    9. Install + the add-in through the SOLIDWORKS PDM Professional + Administration tool:
       
    10. + +
        +
      1. Open the SOLIDWORKS + Professional PDM Administration tool.
         
      2. +
      3. Expand the vault where + you want to install this add-in and log in as Admin.
         
      4. +
      5. Right-click Add-ins and click New + Add-in.
         
      6. +
      7. Browse to + + project_path\project_name\project_name\bin\Debug, + click project_name.dll and EPDM.Interop.epdm.dll.
         
      8. +
      9. Click Open.
         
      10. +
      11. Click OK.
         
      12. +
      13. Click OK.
      14. +
      +
    11. +

      + Click Cards > File Cards.

      +
    12. +
    13. +

      + Double-click Text Card.

      +
    14. +
    15. +

      + Add + a button to the card.

    16. +
    17. +

      + Click the button.

    18. +
    19. +

      + In Caption, type Browse....

      +
    20. +
    21. +

      + In + Command + type, select Run Add-in.

    22. +
    23. +

      + In Name of add-in, type + MyButton:Title.

      +

    24. +
    25. +

      + Save the card and exit the + Card Editor.

    26. +
    27. +

      + Open + File Explorer on the vault and select a checked-out text +file.

    28. +
    29. +

      + Click + Browse + in the file's data card.

    30. +
    31. +

      + The + Select File for Title dialog box pops up.

    32. +
    33. +

      + Browse to and select the + checked-out text file.

    34. +
    35. +

      + Click Open + to copy the path of the selected file to the Title field of the + file's data card.

    36. +
    + +

    Remarks

    + +

    +In this example, the value of a variable +is set using +IEdmEnumeratorVariable5::SetVar. You +can also read values using +IEdmEnumeratorVariable5::GetVar.

    + +

    +Using a button handler like this +add-in, you can also:

    +
      +
    • +

      + Retrieve +the number of configurations, layouts, or both, in the file by inspecting the + EdmCmdData::mpoExtra + variable, which contains + IEdmStrLst5 + of file interfaces.

    • +
    • +

      + Switch the active configuration.

      +
    • +
    • +

      + Set focus to a certain +control using the members of + EdmCmdData. +

    • +
    • +

      + Close the card automatically after + the button handler +returns by setting the + EdmCmdData::mlLongData1 +variable to one of the + EdmCardFlag constants. 

      +
    • +
    + +

    + +

    +This topic describes how to create a VB.NET stand-alone application that logs into +a SOLIDWORKS PDM Professional file vault and lists the files in the root folder.

    +
      +
    1. +

      + Start up Microsoft Visual Studio.

    2. +
    3. +

      + Click File > New Project > Visual Basic > Windows Forms + App (.NET Framework).

      +
        +
      1. +

        Type + StandaloneApplicationVBNET in Name.

        +
      2. +
      3. +

        Click Browse and navigate to the folder where to create the + project.

      4. +
      5. +

        Click OK.

      6. +
      7. +

        Right-click the name of your project in the Solution Explorer and select + Add Reference + to add the SOLIDWORKS PDM Professional primary assembly interop to your project.

        +
        +
          +
        1. Browse to the top + folder of your SOLIDWORKS PDM Professional installation.
        2. +
        3. Locate and click + EPDM.Interop.epdm.dll.
          +
           
        4. +
        5. Click Open. +
        6. +
        7. Click Add. +
        8. +
        9. Click Close.
        10. +
        +
        +
      8. +
      +
    4. +
    5. +

      + Change the + version of the .NET Framework and the + platform + target.

      +
      +
        +
      1. Click Project > + + StandaloneApplicationVBNET + Properties > Compile > Advanced Compile Options.
      2. +
      3. Set Target CPU to AnyCPU. +
      4. +
      5. Keep suggested Target + framework (all configurations) or change it to .NET Framework 4.5 + (or later).
      6. +
      7. De-select Prefer 32-bit.
      8. +
      9. Click OK.
      10. +
      11. Click Yes.
      12. +
      +

       

    6. +
    7. +

      + Right-click Form1.vb + in the Solution Explorer and click View Designer.

      +
    8. +
    9. +

      + Click View > Toolbox.

      +
    10. +
    11. +

      + Drag + a button from the Toolbox onto the form.

      +
    12. +
    13. +

      Double-click the button + to open Form1.vb and replace all of the code in the code window with the following + code.

    14. +
    +
    +
    Imports EPDM.Interop.epdm
    + 
    +Public Class Form1
    + 
    +    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    +        On Error GoTo ErrHandler
    + 
    +        'Create a file vault interface and log in to a vault
    +        Dim vault As IEdmVault5 = New EdmVault5
    +        vault.LoginAuto("MyVaultName"Me.Handle.ToInt32)
    + 
    +        'Get the vault's root folder interface 
    +        Dim message As String
    +        Dim file As IEdmFile5
    +        Dim folder As IEdmFolder5
    +        folder = vault.RootFolder
    + 
    +        'Get position of first file in the root folder 
    +        Dim pos As IEdmPos5
    +        pos = folder.GetFirstFilePosition
    +        If pos.IsNull Then
    +            message = "The root folder of your vault does not contain any files."
    +        Else
    +            message = "The root folder of your vault contains these files:" + vbLf
    +        End If
    + 
    +        'For all files in the root folder, append the name to the message
    +        While Not pos.IsNull
    +            file = folder.GetNextFile(pos)
    +            message = message + file.Name + vbLf
    +        End While
    + 
    +        'Show the names of all files in the root folder 
    +        MsgBox(message)
    + 
    +        Exit Sub
    + 
    +ErrHandler:
    +        If vault Is Nothing Then
    +            MsgBox("Could not create vault interface.")
    +        Else
    +            Dim ErrName As String
    +            Dim ErrDesc As String
    +            vault.GetErrorString(Err.Number, ErrName, ErrDesc)
    +            MsgBox("Something went wrong." + vbLf + ErrName + vbLf + ErrDesc)
    +        End If
    + 
    +    End Sub
    + 
    +End Class 
    +
    +
      +
    1. +

      + Replace + MyVaultName + + in + the code with the name of a SOLIDWORKS PDM Professional vault on your + computer.

    2. +
    3. +

      + Click Debug > + Start Debugging or press F5.

        +
      1. +

        + Click Button1 on the + form.

        A message box is displayed that either contains the names of + the files in the root folder of the specified vault or informs you that the + root folder of the specified vault does not contain any files.

      2. +
      3. +

        + Close the form.

      4. +
    4. +
    +
      +
    1. +

      + Click File > Save All.

    2. +
    +

    + See +Also

    +

    Stand-alone +Applications (C#)

    +

    Stand-alone Applications (C++)

    + +
  • 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

    XY4br;9hkGek4XD%6zlmTzP{pI_db}v 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 l-f;(`##lzD|#KT{c1;zS*p&8%_`g4g9h8HkJ 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·XPQuG~UsuXjFN1tRlKs{uNg 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%0Aw|>vjOt0!ge)*p(0wqKNzY?onpl_gUUAd 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%0D9DY=Ho*oj{2~z z*_5lrr&MK6(p6kZ`5xK~RV9B%R;85X&JQox=6NHTTvIMaBP4G-eUX>fpU+PttL9H! zu&}%@|GPZZ%W|Bw*p@sV*;-pIH|N3|KtTnKp*rNyE?g#W`K&AYt^K(=2hf3qg8J}6 zheMlar)#01cE-`d&`>nFX)x6J!(C_wC8M>kE#+ts#@ zXE7vk^GS`TI8T94K8945L97YlLAJ=h2=h3J6Yc*=p| z5YS~Yo|rj$SiM`l9~bEbm$AqwQ(&4Vd#m};VI}*6*o$Xm${rQoO*69nTZ3*Bbmel? zj*GaWkt0rV!{7=pz}gzHZ-|(~Oc&e|D;JZ!o$FAId5KdtdxGs9Lx`=EQY}f%qNLYd z?EK{K^&1*u663Diif?L}DejE@EjBJ}5nwjy8NK+(#T(~JY~?=jsZBN}*qcrLZeLRG za6^V}P%F9bO&6i}Ykf2`o+K!)E37qNns)(_&~VoE4w}6*7Q!``>{eyd)Sus#F4~2p<#|;NjN*E59E> zZ+0v6^V+X?qChoiK&aMIq#_Rys?J#V>)FQ2-@#5MD1s{dOmijk^?jkGWHnU7*9e&^ zOBr7J6KzMY_5q*C&y=78!&jrB{uFK&mX?=?`{xCKy!sHP1+@>sh)$}CrK)m^crgD% zl3!Hc@zqc#NcG`Yx%)n^;zxcoeHs4`drA-vPR)=2#I4`_w;nyC7*X#yl|6h5C_(t@ zpU!@MVV6H88B+WB1Ak40OjLqsG=H1wl2GR!{Qw$I5-P=YQh!Y78RzL``O2gC54Fw( zkbzpISl&y-W4fR8*DYI??xa2Z@8@#Y@VY}Fx(I*&qskObdJLDI4rZ4^I^#fD$}_PdC&X-le=RivaxEAMs(V699^F z0d-mLAj;QpPs&VmI-5AK>fsa6|9_u?{=aY;(EXpnv*!o~FNjs3Q5$p8}AFutvcRn=m19ZYbIx!`DD3>Bt z=CWOYc0g~vetrCEFiUDh{DkRkaHCB8rWT@M^GcRr7& zT0~WF!-8QbCeKyRsw-6m+fGz|*)d^ySzLnuvQ`4=vO)>a%2i1@$T;@AM4#-m2FkiL zz(DpT4Vae;8tgBt89^oVlz>q`ClB$?6Z*ZPD=n?r)o!JMxM^Xp_|@}>3T}L$KHnfn zJqQvk6)`bVu=ha_9MrJu^UR2|cu@ZH`NmKFgP1v@$4R*S|G@~nE0F}CRyP{?-aj=A z#SOm=lnasIOTLlS1x0`T(E~K4S-dblPT8*rRNDW$PEaj+m|-B=DH>p9@fZFPi$RF$ zF1upbHX;Zjps__3&te`BC{VxtfrZ*DJuiW>_~klM!`vyCYT)INQ(p=|PeR`enFUbD zD;H?jx1Wg*)|#W5#4|tp_ahNgyv1MlTY0O`$wXihb*f6f2h_3I@QOaI#nwAjB40^g z>#<6R83s50mroxbU$7L4iGQlI!1(`vduYNwuzM}Kjt?y5@R2_PFY{B?G5djjsSW)E zRcMQT&3>XG@i$Z{3X<^hlj*NP0bTi`{-@2a}A@5XxOF5Dg5_L%WwVn-Yd?MQneAM#NyPY*vJI^QuOH zX_LEa*;)Or)`*_7caCF9de_bM*7ePKPAw(Sd$skBD=7g7gV)O^@Z-0KF8rYwa*|6;ov7=q%mrZaYY#SAWu6HKuwefm7=r!eqkhsg#n=)%E&l_CERZtr zopoILX)MD11RvjJHji0ezo{Zv%8#27v71gj0wn)tq|QUoKZsu@|rp89di$Qx2q`4IZZPuRPqAiMp|311Jh z=*559#dFQLAJtjE$F|0dx)%zR@sXYGb_>EvF#BKy8jWdnacMj!L8bo5N@)k2f7PFI z^63-R_9}ysC@c6~uKW)qJl9cRG_IpisJ)_rNO?t;fsIwJDd&o6*p%Z4c_e!$J3mn0*&+gZ8ve^zNq09RHm!l9t+=PRBT0yH- zQ0z(!)P*;oQ^zmvn2HHsCA!qUPw%wW@F z2_R6qZ~@hIdyCvdwN!>`6RTil>4|F4Z_i%w5dTSgbg+i0beiqzO+=ZO=4k0p5Z^1= zYpPZT#@AES|2xarQ__Q#di-y$%gD>_x0>=`h?;$!2>dJKjo0rZ~oPsK^0v+7FvS)|1Zz2U3B4@VpNvK;GMDIJEXM}&MGW36Z z*)x@?w>?{F6#4@rbLr2*U5X|l$f}@_TdCvUef2U=+0}yZuLWiCANnMObFfS9><>bS zJ#P<|!QJq;vp{%A)$j`kJ|(%8_|iE;g@g)|T%q9gy^2Pk!?3F)wA}Tah6Jds`A_!& zTeSxd`w;6LK+3UYkK64{Vg9+VaM|qj-@i?j{%iJXd`qt?Xav4H3}7czmTOfIuZ8v3 z2lK*<=)iSh2Y!GTx&{q?D!tf?FOf?Yq$T>1$rjfD0EHE`cAX_dv`+EZ2f zEc@U{w|XQOBNJ{B8$?GoAJvgH2@=4pffiN%!e5qURJu~P zpyh1aEk;SZ|G(f3=;K|)M3;x0>L27^)5)g4&Ff7orzxTKs($f*ZP9fW(Omwe;}_jw z<;v^V{PX#@rA*rXp8ATPx!rB5Y%G5KD;v3m@h>MOk#Txhwh5^t>Gf4Tao(bRfW_4)}f-NzuhUnY+pF_k1Bn-E6IH>jm!L# zt*H8aSjj)??^f*kkar~=yeKtQDgtj5Y&sxUf%EvLrS2D!sP}bW<*Q)yscI-`)kI0| z)jJ>R8->8IRh4p)5e=I&G4=L4>{sH`UbLgT3-H&FGWr1sQ`R4yHIu3%8V3T@;K%;= zW&g}-)pYpy!~jidH+RoQ0& z@YkL~0{vcJ>~E^)Xxeq|WSA^;e@ac8Q-oc#|EZ%*$WIy|)2WsvHb#1RC>4AwxE+fs zeo`;MRM-g+r9^t9*OTycRdh`2t%wSAOr*9i{JM8yN~K^%z3K$w(gK_*c~EmcaW3_^ zylW$$u$Epem9L3ZOK)S^x5fh0T8!MpTjaI%BJyrV9kVSrT{1q5C8xG06_o% zBme+E0Fkr{E$K%#QI(QqSX3fNsQ;DyfAx9){??|-6hc%X6{Q`pQYqysEJbZHam0}; zg-BWqKt^WZr~m*F5G$#*_r4DS8h&jPfW+SdX{ZM_YihP-9lp$HWUch&Zhecc+OB(E zm$~eAe=q;bcHN(Dvn}KC+gr8P#*H()lJakr@f&Y=MXlMi@!@8?TD3Y`@!%n^vVh^FuHCk6+iv^v+cVjXZfTpgb#je}%e2H> zvI`beD3M|tB_{y)_aVX<00r#_9>6Na0BpL=g63F@{vieiKl&`vUvAVldni zkuP3^uR^dWfp9#r}8bxMG(ALzZX(vVA?KR_p+n-o$>MUv`fuVGZv>Az2~=Jo(Rv2w;}1pD3#n&?zyymhsLXvK*`gMp zmLsDJL!v!OJ1ELF@ZwTJ<52GeY$+I$uM&MQqpSsyQ2v3W9v6rmbN#A=sAWj34zD^B zW^xX@8fCz2Z2~MJeI6bj00?!i6qH8DL7wbpRDQ4UzvS^qje0s6VE8kB!>H>rz)1$e zj$S7yfl!DqFEurjIfjpboJ$qw^*X#4W^^(t6I+jNz@O?My2(Vu!vfbZoowO)pURpm zE)z)haGmfeP!pk&b&+{Kcw?#yd1=pJMoEMu0Q#Pap9%OE?5^PMEzZ{v6!JuLR(eVJMV={>w5dD715YXo-l#k#{KJFZDcGj)`9dg1WD}iy!a+l$hQ`#} zAO3ll4|kTshmrLg9>Wjpa`I<*Dd`hb;oyK7{;NO#Qj>ytPZ+2&m6pjG!Nxhjun+YX z!Q*x<{Cl7t-Jjt#8Ls0b?9EEu}dyUMw;-x(NrDUOi81KE$zDWMusp8Sf#6#x%u30Mkt<$f2g+Thv zM#Kd8v-Yg`c1dE+p30*?*817NlX6*%Cq3n%3h(Y^8ld|YzvPd;Uzj#9-0Fs>j&nqe z@u|R@2krmxlzl=e#v*Ex{6P7jLU+=gXZp&jUpc`!30n0o#cs5hb%7{OVs)o zwBL2={Yzy13X0{Z_EPu5T3|^EakGZ}ci@tWKk#^_=KuG3#{Lg4a*#2{KNv(Fk3Mw- zN>YXDP1(YqJjHX#)8x*4go1K+bQ@$D52!Hhh5qnwdQ-TI=7Y*pJh~5`tIJMg4o71C z(i&KMSWq;}5$t&epfR!&wRT)<1|GD6ib*Vyfs9x*H z`IRRYt2lg;5mS_hLbM<3G=GtgYflh#)v~bVg}nijwp%nzcC z#mRP~?34d^qz&Tm-qSPKK_M{@!u?PDBp^sXg_$16I1p41 zc<~(*+N$dR6g(*GD@i#!CiuY@8)+fNlLa*Ko&P}uCRyX{KMM0arLyGabhQ(PcImS$ zhcl&=v!{x0bBgDlbAP&}ALZ+3F+l%5%SlfI`uGSxKSa$1%lbVVx`@iHKB34gNfG*B ze~QrTG|^9fjufvS`U>Tr@OpTCX9WL1g``^AwQNqAAh30Z;h>dxrpc`h=^xqA`S+kl z=$Uy_&@LZZ{sg%em?h@CPgpFPh)5-Vrus*lh{dP>J2fyt0sBd*fIgcbc*5eP`96I( zgP*%2*4Xv<348L2&%50VrZu3W)cV-M2A|O3PM`d?^hZ^b@WM=MT>Q5%!icicU!d|p z958v0`KAn{f!CY!cX~CGm=xO~b}>`)^?*XU(^mJR8M_H{Ga)POH*k6 z6TGw!MfCX^6W=+tq2)Uhs0}*U_2LfnAyE~if1~{J5TVcn3(haJM?fe>s2YGr`zsDt zEBab~xv}}Ie~(@P@}_x1f|yXTeC7BcAAEWPF<#+A2MYb>vml&P1uUQB-}_62qtSEf z#S<#8>hn3|uQ`YR@3zFs=V8H5LvBN206Rd$zfdPI^<~0-)tU%FwH@+uAH3KZotioL zzDFokja=DzBIC^HGWx;T{_mv?$FC@ZEKBJz&k^P>z#l_<(DPUn@4>ji+@SE;nv&@8 z94{!rrX|brZ1ozFdWwLD{V`>BtP{iF==nv5vl^fr&fVnHS70R1ji^*w_U9812K@8^ zr-&zVi0)`-lb2ca!{U_7Vdwl)B^Y9d$;Ica3eUt+C{Zn+mg%&TBWn3Bi04`3;A@`; znCpILNdSAsgO8_(^wZhTbRAw7!y^3Pk+!JNuDmL00t(Ah5c=*eOHPjtRG{C7-9(BH0j3n+>^SrR!m7fx{5wiTJkWzqPIZcbv-OfK7H@Za_}9-;v!VI0;d% zvWZ6k(Co&3Y`Y)HAb6Hfg$YQhMsI&`5$`7pj3sUNc1}+PM+pEgzEmV+c>6w)@@gCw z9VHV{_&R6@vzNpG4#*aHBXGXZPbuTS>>NYtz|VKl2HIb4{`#l5!H?3hp-s=h9gw5I zh^~fAp2cklTpuV6O)tl4xBa9!Wd?B;v0WbqU@%^pHTj);Nw7azf!Im zu7F_b(_bfjcM<~fpanvJ)aBawL@&XWrTZ+NpK_4<3I+HRAt(52aq-YU6YnYePdFM@ zIgjQkpmg2w5#E(IbIlYz_pD>)lv(uq|DAv+{e)>!h-9Wp1cHzHC0Z)Ft0VHG6DBO7 zbT&jrH)>Pc38Pe(m@%5AnaFngQAFP6fPI1=+56~cT-HK|?wie> zmcK!#+vDSw=>MH!rj5;6{nD{3=T3j_RCLBiLgGdf$_HXn^k4It@iJQYV+W*%tfhnU zCKb8nx=bf}YmUR5wL^bTzC35z#`!!3biP1Pp!upmietzeJ8xz`hs9^nMx;`;Ssx`j zcU4ZJ`a^srC;D@}jH1ZA!Jg#&b5tbkntZ5_rifF1BRVZd;;2e?B;7~i1N$$q`txom z?hFYQHU6+H=2Nn+d)y5D3sf^r`1}jQFK^`t&w<3#E_>&m`*`PqF!^Q%zMOk+{QTuR zZ?sv3H~Ke^^uM2qlMm>51gbImc)lF}|3q`)r1$Yp`&-X!Hvcfc&q$X4LZ6Z7!4k1Z zpVz5MKjSk9xaUVT6P~mk|2O8vhaqC&z#Kq-yFoO-6;+{({9QaF^zzR}X)Rboc!#9AuU|X8z3vlWhcGXY9Dr0B^*|kQkJ_gLg089*DuZ-p8z3SasNVb8D zdg)E~Tx~L3=fsvwOrE(}wML0*ZpCV@rkPeaxomR^=epN+D`|kbKtx!y3Q!2`LpSu( z2q3U`Ww-mKIoALq<}a(4p2ds6HgWYtw+NEpK;*sOwNfwIK<3ylR2AoC_M6E)9V71}a;6dooyE$$KB&E&S~6iwpF?^frG-*1qQ4P44198y$FVaLuY4% zhDK%0y0#Qu92_1bedCw27Cvn&^33cu8!LR4<9?k#YT7qg?hcLnj-J#rBW@9S=NlNw z@7p{$%$P*;Vq;@GOiE5?z1doN_1^c5g9F~aakY;)PMndekI6dl8oAG!)FF_oZSwpa z9fJw6gURGnnC;`p5x~dPwESA}~0>Y-bZ- z)0==1i>As7_wIf@XxC43B00C@bB3AWj#;7YS>2lR;w&i(8m3koqkTY4@ymc2*RXdJ zH%|@(r<;Ni#wM-Yi#C`&ZXL^}ZL-x$tm1ALubrZ2e@#ef;dvnBqV$)#6Na2-P5DLP zW+$z*ZKZ13@i3>3J8x;-g1TPqfXd(O>Y$iiCO1b*0`8UiHcSPZ~dL|vBO1@Y+=T`9cLpy8i}%^+MMU+n8|@ZwX1FK zYrLmZQXhJwxCEGFqm(+jurod^ti73@ox!~~ZK-MWReNxv-q~2QS;r|sXt*&Ex&$31 z^~I-Loi}3JVWT^D_ho5HUP>(-C02y(Bhu45(-{@5jHD_?eJ^6FtvW6^IATy7yjb~3 zc;jp%QawhXhsN1&*X^_#mx*ke=i9bjDM_kq$k35pY_1bnC2iso#YDtJ?PQ19Q}<_c zFEA7J-)y%{S24}u%LVCSxW=WtPp8~eOI_MXa#QQdkPP%@UFaJW9U}qj&AM4|*?3Da zq8Uc0)?!_XpJ@y;nNl^A607o6xu&&*bjzoH1X*H!0QJ<4-)LzO%Y0d_7YX`vCupXJ zy0@%mqn6sX(BLU^yKt>&^%KU;C&|{k*9K;q8OM@j)gyBnwRb_KO^_!^3&rq&kcc$CI4B^i%+3 z8`>W5n|SkTh0(Oc+hf-8y7C$nMcjke*{~v0YR2qhVr{CCZCG)^H^P7`txaX$_c0VO zA;;)@)*V(KNJhsH3}Z`OXsOjp)bggvH6z!;Y^`jPtB>(V=lW)AiQ8ecm$*5`BO&4g zUG4Ubd#}w^!^}%P^aa&hUTdm#Zr2hS-dq`Cveb{K+;+d_5{(n$s48V$D<{!WoD$=l zF*XtWO_yP8TrGbE$8=!UvzYqW^lpebY->toF{T^RxdGkbLF<^Dwr}j@)C(0Jao??A zFzu-P+qQ49?G9w$$fBBbWR zTCLMnyRs5t_w|@FRIv{r`)!N+437{(W{e>D-v+HWW&x=HxVmfWYeKYcgzy1E5%5#M z>7i^}4TJku%B<`~t9a_RLUZk-0hHuh*h#HNZ~~oW$WC($E|hYSX}i@U6xgS9C1%vZ zIH1<7>@)&EMd9hm?N$D6y9GvCcc#8wzKHkOYzzDeOAyuQwM&WlxBg~URxV&JX9R(I z)+28fv{rU3QZmh?(lai0;DeUfsg}3V4JGdJX zwbQ9#CX-wVz`lVo)zBmJBU87zXBfG7eS$fxV6~a7OgqamvS~6umRbrpm~{vBajN!` z2&b#JhRN5!wybsy5T<_Xy1oaY;%_-PSwt(~_*iD(`j#WEf^jOUv8+KJQn_cU04{pMZ=b84>ew-6j z90sD`ktH?;kEhhWwy&Z73e~Emh^(d0DO0VQ@Ow0?MFUl&>3F5sfBB#n^u|#9q-QzV zwj$-W9P4nIxyg+eEH1F@TcggCFl;GH+h{Ri78TsY5@BuBr*d3at)(wuFmDxGv5i7H zdh9^i;%yxA>J8ttT9Cml!Mt(9diWPt!nU%xkYpW3c}4;gV~xgXZPZt1ePsFWmzrs* zJy=^bU~87fJ{mH-XDSTxviLaop0Xi3J|br|nh91-c3afF>!WxkyK6UHXn=-EJczJ! z+#Rcxh@=N`8+$-iqLzSYb<1mR(J&n|8lvH|DC(O=O>GKOf!%T_*hlm#Oxhl~0JrsG zskIZU64%xtkIG^MjIVWyMXh|($6DK|oL0Jc+tLfxf)u}Qe^n<~Rd+26+OlrB1Wlz$ zSZ{4&T0$qqn<$Cp>hSX~M1513T%0#5e%!q@diUvgO@YZ@tJgQjR)`u~L!{l^CnMas zH$q!!IAa)CuJkoalPj)@RwZo~8K^FDS`Lpn zPJeVx&pXL*O-#;rswmYD0xbR$V^JCy5FYZRjm}FBE5xN=a2vhuK0$sBF2xzSM?+Z& z+hMnTTnb>9RJ-wVocqHj2WnndN?5xp-`@E*Xc)nLF?Q?0aUW(`a)UL9aCcIC;Cy*y z`v$a5t(!ptQP zjTyZ1m;B*&3t6g4AslaJaqzA2C&+tsGNn@sJ!RWEt8 z<0xx!_>sUtA%!ftz0pL!1$Csb9$F^z;3 zMQl%LP7sL6x2`MVeEr3+Nnzo!q~hUxVhyIyQn0beZ)q!7Sb^d!7p$xk8kpNGrV(f5 z4OT3`>|YjZHD!OBW))B3xrt($kxnPEtBc|m(K?>G{v;9y#et#3trM;x&(zk5W;Y0H zi;V3^SL+q%x~tJLy0f{SYH5uA8MbXrku?`>vO3)E53O0S6Tl0uTr^EkN?BWhCI^V1 zipw+b@fs9YR-$C-m}_NZwbj@)@%!pJ7N@MTySn0wv99Av0u{2Ty-rh+WL{Y#n#bZT z7g@Zr>{WHP2X(fDjnK`CucjSlv)A~IvZm2B_zl9A{dKGi%Ck&oize*t=!?r})%X1+ z6*tm-iRo{0xv;R4sXAM*7!5TW&g(4jjt?2@)ikd61S>NF-3y0RXil-iVQ*x8ds(gA zyS(kNSd)`skZjE8OC2vJjZjF7E6_kq?#1!R7n)ssL_glTOf`Kt6FK!G%zm)ETxSAVr5?{?PGjQ(%eLdV zf>^q8&4Na{Z;uCyrQ2?UJ~k@joBKP4a~ri|1Bb)EtkVQ->h%iX8c>;iAj7?o;8Rnj zwJ&OlP;EH{9San`UPO`M1{Rl~2`+}4xIRqL&rL*RV-<1hQL^Vy+9-*eHQ^7_El{T_ zU##dc>^A*lA&)sw7s%wP(l37#r*Sx^8xe`|#X?1Easzw1fcA2 z8>cfi<9bOnGIz{`c?BSslU0?By|^0FdG>~pjPcoFos*W^5@R}mW4b?PuK;Im2upy@ z$I4}(zGd0X&uYmsQFdN?f6rEvxU!DR1CPf{t;?5R_)e3{m~ZOXRJe&7Fq32{T*>`$ zibP69_TVu~2KAz4rmT5+0-EqZc{b`TBJ=w0VyC8bxobI=_IKshzWpcbd=bRK*6ds} zwQSKj!zc>XB+$B}63R9b_mrpzFM#HT( zHCX23cJN7@a!oO?u2!p@!kpr&9#xn#h21?`k4IaaSv51n)>SHAJIXt- zW1gEwt7J(vJe#J?GtcL=@U3g)yqoh%UByj*H6ujQn&M8&rJ2*NcUjW_c$ebDJ|w1T zoULhsW^dDKYFE|mqt-^l%dBxR(LB3MT16?y-mO<-GmX?+TN4$`#zok=uWNH^u(Y~0 z>8?ptG@p>oO_0`)$d*cS0=!~7J(~1-ifKE@Yph#Zq#a*D)(+iv%vO*|DMpa3HBk-7 zMJTnU72iuzYhtvIw$j{{G5xK^-PHGUdKX1pZgrC+aTw2`Mai}~l^nX-#@jcM=5qYj zfEF`D)NX@TFNZ28aYF4RHOi)Lo89ZF*6r;4b$dC$2*WNpulSG;X%HrVyL zm8yASB5Q4f$tX(bbewo4$`$&GE#XCbyKiG?`Z#qfnc7xZE2rqjnvm|A(n`NFI-xeT zD<1V|n#|@liuLxTz?uI?>5=3ebK0OAer@>aX4)m&MyuNZkVewfWVly&(!N?HOO~@0 zIqm!0KC04&rA6a;8R)4JSkNF1?i&`Dr1No7Dy-E(;FYZOJ;il7Y1*1ZZ@BXmW;K%g zGZoQlu%NfWU8th$s1;;W|z9uZKJ)U-?q2;`v{j-afv$68*)|k$L42MQ!A1q z%Ui6I2-#6__8YPWiBp7wru#OQ>+J{*LZQeymQ=Zs`nAgI<93lK>el%JD#GB z1J8M=$;rC*N$6M=pQTf}x`DDPR5tZZ4L7BGtWCR}NszD9XS%ws37cJASG8YKp%b7J zl+=>MGVZHdj7Ys9RFiaDC)L%0D;CS>$%?iZgW9baCNT^JUCrFmq4k6|9I@nAA=Kr< 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