Administrators Jon Posted January 5, 2014 Author Administrators Posted January 5, 2014 Yeah, think I've got it now. I was using the pDisp for the QueryInterface when it was null. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
trancexx Posted January 5, 2014 Posted January 5, 2014 ...while you're checking, don't query object for IDispatch. Some objects may not have it, IStream for sure. What you should do is first check that variant is object (don't forget that) and then set that flag of yours based on VARIANT's vt:bool bIsDispacth = vParams[0].oValue()->vt == VT_DISPATCH;After that it's a simple as this://... else if (iFlag == OBJ_IID && bIsDispacth) { //.. } //.. LPVOID ppV; hr = pDisp->QueryInterface(IID_IProvideClassInfo, &ppV); if (SUCCEEDED(hr)) { IProvideClassInfo* pProvideClassInfo = reinterpret_cast<IProvideClassInfo*>(ppV); // ppV is pointer to object of IProvideClassInfo interface hr = pProvideClassInfo->GetClassInfoW(&pTypeInfo); // TypeInfo for IUnknown pProvideClassInfo->Release(); } else if (bIsDispacth) { // Ok, so let's use the IDispatch interface to do what we want instead hr = pDisp->GetTypeInfo(0, LOCALE_SYSTEM_DEFAULT, &pTypeInfo); // TypeInfo for IDispatch } else { this->SetFuncErrorCode(1); return AUT_OK; }OBJ_IID is 7 at you. ♡♡♡ . eMyvnE
Administrators Jon Posted January 5, 2014 Author Administrators Posted January 5, 2014 In this case the object vt is VT_DISPATCH - that was my first attempt at checking so i assumed it was lieing. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
Administrators Jon Posted January 5, 2014 Author Administrators Posted January 5, 2014 Err, well it's not now but it was before which is why I went the QueryInterface route. Dagnamit.Edit: Haha, my first one was "if (vParams[0].oValue()->vt = VT_DISPATCH)" - rookie C error Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/
guinness Posted January 5, 2014 Posted January 5, 2014 Hello I'm not an expert on Autoit but I think there is a problem with the _ArrayFindAll function This script works on 3.3.10.2 and return 4#include <Array.au3> Local $avArray[5] = [0, 1, 2, 1, 0] Local $aiResult = _ArrayFindAll($avArray, 0) msgbox(4096,"",$aiResult[1])But on 3.3.11.1 i have : "e:UsersUSERDesktop_ArrayFindAll.au3" (5) : ==> Subscript used on non-accessible variable.:msgbox(4096,"",$aiResult[1])msgbox(4096,"",$aiResult^ ERROR Thank you EricConfirmed as fixed in v3.3.11.2. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now