« first day (999 days earlier)      last day (2181 days later) » 

12:00 AM
RELOAD!
[retailcoder/Rubberduck] 49 commits. 6413 additions. 4380 deletions.
[rubberduck-vba/Rubberduck] 7 opened issues. 1 closed issue. 14 issue comments.
 
> Rubberduck.Setup.2.0.11.0.exe (5.53 MiB) - Downloaded 1133 times.
Last updated on 2017-01-06
> Total Downloads 9,823
@M.Doerner good night!
 
[rubberduck-vba/Rubberduck] IvenBach opened issue [#2756: Indefinite Parse: Caused by [Standard || Class] Module or Form deletion](github.com/rubberduck-vba/Rubberduck/issues/2756)
> Deleted both a Standard Module, Class Module, and Form which caused the parse button to be grayed out. Solution to this was to insert a blank Module or Form.
[rubberduck-vba/Rubberduck] comintern edited issue [#2756: Indefinite Parse: Caused by [Standard || Class] Module or Form deletion](github.com/rubberduck-vba/Rubberduck/issues/2756)
> I think so but the UI never reflected this. In my OP my edit where I mention Indentation leads me to believe it's something just graphical.
 
12:16 AM
@Comintern How do you catch all these issues with immediate responses and updates?
 
You forgot immediate fixes - I just committed the fix and covering tests for #2753. ;-)
The answer is basically @Duga.
 
@Duga good work
 
@Comintern does this help with calling class member methods?
 
12:32 AM
> Updated to Mid$ from Mid based on RD's suggestion. Now it's flagging Mid$ in some locations but not others. Appears to be just the first usage.
 
@ThunderFrame Maybe. The last time I tried hooking from .NET, I hit all kinds of issues though. We'd also need to have 2 sets of thunks - IIR they are platform specific.
 
> Can you post some sample code that demonstrates the issue? By "flagging", do you mean that it's still reporting an inspection result for Mid$?
 
@Duga IIRC that was fixed in early .12
 
Oh yeah. That was #2618.
 
12:41 AM
Well this is interesting...
> In IDE you can get ITypeLib information about project using EbGetExecutingProj function that returns a IVBAProject that supports ITypeLib interface. This information contains everything about modules even private methods.
 
^^That fully supports my hunch that VB6 and VBA are building TypeLibs internally when they parse.
 
@ThunderFrame wait the project is a typelib??!!
 
What I want to know is if those functions in the VB6 dll are just not in the export table of VBE7.dll.
 
A regression test helps prevent github.com/rubberduck-vba/Rubberduck/issues/2618 from creeping back in, correct?
I want to make sure I understand the terminology.
 
If that's the case, it would be possible to find the appropriate entry point with a hex editor and knock out a dummy RCW wrapper to call arbitrary code...
There might be some security checks around jumping into a random dll address though, and you'd need a thunk to handle the stack.
@IvenBach In that context, regression means a bug that used to not be in the code base was introduced by a change. Basically something used to work, but a change (in that case probably one of mine) broke it.
 
12:47 AM
Basically devolving or returning to a previous state that should have been corrected?
 
@Comintern could that be the lParam pointer on the treeview nodes?
 
Regression testing is running a test suite that picks those instances up. That's why test coverage is so important - you want to catch enough code paths that you can tell before committing if you've caused a regression.
 
> May not be applicable for all inspections. Also makes me be more cautious about `CanFixInModule` and `CanFixInProject`...

This sounds like a good place for a `[Flags]` enum
 
@ThunderFrame If it is, that would be huge. IIR there was a GUID lurking in there...
 
@Comintern I guess there's more I still need to learn. Test coverage is just things like 'unit testing', and 'check in/out' testing
 
12:50 AM
> FWIW - There is a simple way to mask the concurrency issue yet allow the tests to run and detect 'hard' failures. Just give the Parser several tries to get the right answer prior to evaluating the results within the Assert. The example below is for 'EnclosingProjectComesBeforeOtherProceduralModule':

for (int idx = 1; idx < 25 && declaration.References.Count() != 1; idx++)
{
state = Parse(vbe);
declaration = state.AllUserDeclaration
 
It would be easy enough to test - marshal the lParam into an IntPtr, then pass it to LoadTypeLib
 
@IvenBach coverage basically measures how much of the code base is exercised when the tests run
 
@Comintern yep, of the 96 bytes for each lParam pointer, I think most of those bytes can be treated as DWORDs that are pointers, while some are flags (such as node type). Of the DWORD pointers, I think some of the pointers relate to the inner workings of the treeview (eg, previous node, next node, parent node etc), but others definitely point to memory regions that have interesting content.
there was one pointer plus an offset of about 500 bytes that gave a GUID
 
@Duga @Vogel612 - My thought is that just ignoring them is fine. Those 3 or 4 tests would break the hell of a lot more stuff it they were legitimately broken badly.
 
^^
 
12:56 AM
@ThunderFrame If that is the case, it should get us the document types - they'd have to inherit the interface of the "base" class.
I also just realized how we can hold the property window open - just subclass it and move it offscreen instead of closing it when it gets "hide" messages.
 
@Comintern From what I could tell, the GUID was either not set or all "0" (I forget which, but typically when the project hadn't been saved or executed), or a unique GUID (IIRC, I was able to find that GUID within the VBA binary)
 
I think that the GUID in the VBA binary should be the one that it assigns to use compiled classes. From what I can tell, it's privately registering them within the execution context.
 
Oooh, got a good question. Why is 'Object reference <oRef> is self-assigned' a bad thing?
 
@Comintern I haven't tested it yet, but viewing the properties of an ActiveX control on a sheet from the Excel UI, pops the Properties window out of VBE and into a non-dockable window
the Excel App hosted Properties Window has a class of PbrsHost
 
@IvenBach I allows the Object to auto-instantiate itself.
 
1:04 AM
but the properties window itself is still the same hWnd and class name of wndclass_pbrs
 
@Comintern and why is auto-instantiation a bad thing?
 
Sub Foo()
    Dim bar As New Collection
    Debug.Print bar.Count
    Set bar = Nothing
    Debug.Print bar.Count
End Sub
 
i.e. The Excel Properties window is hosting the VBE's Properties Window
 
@IvenBach You'd expect the second Debug.Print to error, but it actually news the object up again implicitly.
 
@IvenBach Plus, VB is checking that bar is instantiated before invoking every call
 
1:06 AM
^^
 
and, bar doesn't exist until you invoke a member
 
Changing it to the proper format below causes it to error out.
Sub Foo()
Dim bar As Collection
Set bar = New Collection
Debug.Print bar.Count
Set bar = Nothing
Debug.Print bar.Count
End Sub
And that's the reason why you would want to Dim (declare) and then on a separate line Set (instantiate) so that it will properly error as you'd expect it to?
 
Yep. That's the purpose of the inspection. Auto-instantiation can cause a bunch of subtle, hard to track down errors. For example...
It basically allows you to treat a variable as a default instance, which is a Bad Thingâ„¢.
 
> You seem to know your VB6
lol
Understatement of the year
 
Which part? I knew a fraction that I know after working on RD.
 
1:11 AM
@Comintern I just edited the code-block there ...
Duga doesn't distinguish edits from new posts...
 
LOL. Apparently I don't either.
 
@Comintern it's in the comments under the post
 
@Comintern Thank you for that. I don't do well just blindly doing something without knowing why. Mostly because I never learn underlying reasons and it never stretches me to learn/comprehend more.
 
Oh yeah, I distinctly remember the comment - my current self might not say the same thing about my former self ;-)
TBH, I probably never would have found RD if I didn't run across CR when I was looking for path searching optimizations.
 
Some things were just meant to be ;-)
 
1:18 AM
I don't know how I'll be able to help RD but I'll try.
This chat room has already helped me connect several bits of my knowledge together.
 
@IvenBach is the inspection's meta description good enough then?
@IvenBach you've already helped! Just keep doing what you're doing! If you want you can fork the project and download VS Community Edition and explore the source code and try fixing some of the easier issues.. But not only code contributions are helpful!
 
Has anyone else run into issue with the parser state becoming corrupted when a new module gets added by the macro recorder? I got into a state in Word where the parser was parsing the new module but the inspections couldn't see it yesterday. I haven't been able to replicate it though.
The Word macro recorder is particularly ghetto though.
 
@Comintern hmm, not that I remember. I need to use the macro recorder more
 
LOL. It would probably be easier to replicate if I used it.
 
Haven't had issues in Sage300 or Excel... But that was a couple of builds ago
 
1:24 AM
Excel seems to be find - I can see the status bar update when it's recording. Word's macro recorder is a lot different though - it has pretty minimal functionality. I suspect it's a hold-over from Word Basic.
 
Hey I got you a reason to like PowerPoint: no macro recorder! :D
 
I already like it better than Word.
Word's object model was designed by a bunch of drunks.
 
@Comintern I think they designed Word's recorder after they finished with Excel's recorder.
 
I think they designed Word's macro recorder in about 1990 and never touched it again.
Code name Bill the Cat? Sounds about right.
^^Designer of Word's object model.
 
Isn't that the image they got of Garfield after he went on a catnip binge?
I've vague memories of Bill the Cat and seeing him in comics.
 
1:58 AM
Source file from the 1998 edition of MS Office Developer article "Call Me Back" by Ken Getz and Michael Kaplan - web.archive.org/web/19980613145034/http://www.informant.com/…
'   These function names were puzzled out by using DUMPBIN /exports
'   with VBA332.DLL and then puzzling out parameter names and types
'   through a lot of trial and error and over 100 IPFs in MSACCESS.EXE
'   and VBA332.DLL.
'
'   These parameters may not be named properly but seem to be correct in
'   light of the function names and what each parameter does.
'
'   EbGetExecutingProj: Gives you a handle to the current VBA project
'   TipGetFunctionId: Gives you a function ID given a function name
 
Huh. Wonder if it still works.
:saves work:
Oh yeah forgot about the "File not found: vba332.dll"
Huh. There's a class declaration in VBE7.dll for IbPaneWndClass.
 
@Comintern what would that be?
 
That's the internal c++ class for the Immediate Window.
 
Hey looks like imgur is back online
@Comintern ooooh
 
I think the function @ThunderFrame is looking for might be something like _MsoHrSimpleQueryInterface
Wow, lots of interesting stuff in there.
_MsoFCreateControl
_MsoFGetComponentManager looks like you could do some damage with it.
Or _MsoSetVbaInterfaces
_VbeuiEnterpriseProtect
 
2:19 AM
"_VbeuiEnterpriseProtect" = 0 Google results
 
Ooooo... I wonder what Ctl3dAutoSubclass does in ctl3d32.dll
That dll looks like the weird form provider.
It's apparently not registered as a COM server though.
VBInternal_BreakMode
It also has an undeclared import from vba6mtrt.dll
 
@Comintern reads as "Control Cubed 32" which fits with the "F3/Forms Cubed" naming
 
vba6mtrt stands for "MTDesigner Runtime Object Library", but I don't find it with a filesystem search.
CLSID\%s\CONTROL....%s%s%s..#%d.clsid\%s\InprocServer32.clsid\%s\LocalServer32..‌​clsid\%s\LocalServer16..%s\%s...üÿÿÿt...%x.%x...%x..%d.%d...CLSID\%s....AppID...T‌​hreadingModel..AppID\%s....Interactive User....RunAs...{00020424-0000-0000-C000-000000000046}..{00020420-0000-0000-C000‌​-000000000046}
Is that the GUID you found?
 
> Looking for some input. The PR as it stands is an improvement over the version of the QuickFix currently in 'next'. That said, there is still some work to do to expand the assistance to the user in choosing a new name. That is, to include module scope and global scope variable name checks. I am currently working on this. So...my question is regarding the preference at this point - and I am good with either. Do you want to hold off on this PR - and I'll continue to push improvements as I
 
@ThunderFrame - Is msvbvm60.dll part of the standard Office install?
 
2:33 AM
@Comintern C:\windows\SysWow64\msvbvm60.dll
 
Oh yeah - I'm looking at it right now. Fun looking stuff in there like IClassModuleEvtW and IVbeRuntimeHostW.
 
BASIC_CLASS_AddRef.BASIC_CLASS_GetIDsOfNames.BASIC_CLASS_Invoke.BASIC_CLASS_QueryInterface.BASIC_CLASS_Release.BASIC_DISPINTERFACE_GetTICount.BASIC_DISPINTERFACE_GetTypeInfo.CopyRecord.CreateIExprSrvObj.DLLGetDocumentation.DllCanUnloadNow.DllFunctionCall.DllGetClassObject.DllRegisterServer.DllUnregisterServer.EVENT_SINK2_AddRef.EVENT_SINK2_Release.EVENT_SINK_AddRef.EVENT_SINK_GetIDsOfNames.EVENT_SINK_Invoke.EVENT_SINK_QueryInterface.EVENT_SINK_Release.EbCreateContext.EbDestroyContext.EbGetErrorInfo.
 
I think I'm looking at an internal TypeLib's documentation table. It's a bit hard to tell in the hex editor though.
 
0x25D70
 
Yup. That's the symbol table.
EbGetVBAObject :evil grin:
 
2:41 AM
InternalBasicMethodCall
 
TipGetAddressOfPredeclaredInstance
LOL -> Zombie_Release
"Release the Zombies!!!"
3
TipInvokeMethod
I foresee a whole new approach to unit testing...
 
May 6 '15 at 14:09, by RubberDuck
Don't get too excited yet. Doesn't seem to much of anything useful in here...
 
_VB_CALLBACK_GETHWNDMAIN_@4._VB_CALLBACK_REVOKE_@8.._VB_CALLBACK_REGISTER_@8
^^Debugger handling?
VBA_eval_constant_expression()
 
@Comintern IDK - Sounds more like hooks for the VBE windows
 
More support for the Immediate Window is console theory: R6019..- unable to open console device..
 
2:51 AM
@RubberDuck I tried to pass on your warning, but @Comintern is way too excited already
 
I mainly want to crack into the debugger stream.
That gets call stacks, ad-hoc access to functions, and well, direct output to the immediate window.
I need to decompile this.
 
sounds like a Rubberduck COM API people would kill to get their hands on
(and a serious threat to VBWatchDog's revenue?)
 
They can pay me to shut up about it.
 
I wonder how much Rubberduck is affecting MZ-Tools
or whether the paywall is conveniently masking the RD effect
if there is a RD effect
 
If there isn't, there will be.
 
3:03 AM
> @BZngr sorry for the delay! no worries, I just hadn't had a chance to get to it yet. On it!
 
I need to pry this hidden typelib out of here. They left internal documentation in it.
"Old constants for the LinkMode property (used for Visual Basic 1.0 compatibility)"
WTF!
 
lol
 
That's a long-lived Cucumber
4
 
"VB5 version of PropertyBag interface. Use this interface to maintain binary compatibility with VB5 projects that use this interface"
 
hmm, IIRC, VB5 dumps a Property Bag in text instead of a Structured Storage
 
3:07 AM
Wouldn't that be implementation specific? It's just an interface.
 
[retailcoder/Rubberduck] retailcoder pushed 18 commits to rd-next (only showing some of them below)
[retailcoder/Rubberduck] BZngr pushed commit 69ddd7f0 to rd-next: Sync with latest merged PR. Merge remote-tracking branch 'rubberduck-vba/next' into next
 
@Mat'sMug - Thanks!. Just wasn't sure of the process going forward. I appreciate all the help/guidance on this one.
 
cool =)
 
3:23 AM
Got. Hard to get tlbs out of dlls with a hex editor. I need better tools.
[
  odl,
  uuid(6B121A02-45DF-11D1-8907-00A0C9110049),
  hidden
]
interface IPersistableClassEvt : IUnknown {
    [helpstring("Occurs when an application creates an instance of a Class."), helpcontext(0x000df918)]
    HRESULT _stdcall Initialize();
    [helpstring("Occurs when an instance of a Class is removed from memory by setting all the variables that refer to the object to Nothing or when the last reference to the object falls out of scope."), helpcontext(0x000df919)]
    HRESULT _stdcall Terminate();
^^I want one.
That should be the interface that the VBE is using to update the property window.
 
Now to see if VS will build a PIA from it...
 
ResourceHacker will let you extract the TLBs
 
Does it extract hidden ones?
 
 
Or rather, non-default ones.
 
well, RH shows me 2 in MSVBVM60.dll
 
This is probably the 2nd one then. It's tlbid 3
 
[rubberduck-vba/Rubberduck] build for commit 858aa800 on PR2733: AppVeyor build failed
BUILD FAILURE!
 
3:33 AM
Hmm... VS will build an interop assembly for VBA, but not VBRUN. I wonder if I need to unrestrict it somehow.
Should we import that with the COM collector? It has the ErrObject definition in it.
 
YES!!
what else is in there?
that's crazy stuff!!
 
WTF?
 
@ThunderFrame lol. @Comintern is actually way way smarter about that stuff than me. He takes dragons.
 
Stupid imgur
 
@Comintern that would make you some kind of God.
3
 
3:39 AM
lol
I prefer Demon.
It has Collection, ErrObject, and a bunch of enums.
I think some of them might be duplicates. Like VbFileAttribute, VbMsgBoxStyle, etc.
 
Ahhhh... That's the problem. The .dll name is wrong:
[
  dllname("VBA6.DLL"),
  uuid(CF1C2C60-0D25-1069-9427-00DD0111BF30)
]
module _HiddenModule {
    [entry(601), vararg, helpcontext(0x000f6c9d)]
    VARIANT _stdcall Array([in] SAFEARRAY(VARIANT)* ArgList);
    [entry(566), helpcontext(0x000f735f)]
    BSTR _stdcall _B_str_InputB(
                    [in] long Number,
                    [in] short FileNumber);
    [entry(567), helpcontext(0x000f735f)]
    VARIANT _stdcall _B_var_InputB(
                    [in] long Number,
                    [in] short FileNumber);
O Hai, unsupported functions.
2
 
all the hard-coded stuff is right there basically
 
Yep. More or less.
Huh. You could use the interop assembly to pass ErrObjects back and forth to the runtime during unit testing.
Then RD could call .Clear and pass the error to the test results window.
 
no way!!
 
3:50 AM
Way.
The only reason we can't do that now is that we don't have an RCW for it.
 
> The MoveCloserToUsageRefactoring fix is a total hack - but it's also a fix. No sense reworking it more that this before we have a unified code re-writer.
[rubberduck-vba/Rubberduck] build for commit 17a7a289 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
    On Error GoTo TestFail

    'Arrange:

    'Act:

Assert:

    Assert.Fail Err, "Expected error was not raised."
:-)
 
[rubberduck-vba/Rubberduck] build for commit aa59e311 on unknown branch: AppVeyor build failed
BUILD FAILURE!
 
@Comintern that'd be... impressive :)
 
[
  odl,
  uuid(1E196B20-1F3C-1069-996B-00DD010EF676)
]
interface _HiddenInterface {
    [restricted, helpcontext(0x000f6d7c)]
    void _stdcall Right();
    [restricted, helpcontext(0x000f649d)]
    void _stdcall RTrim();
    [restricted, helpcontext(0x000f6582)]
    void _stdcall Space();
    [restricted, helpcontext(0x000f668d)]
    void _stdcall Trim();
    [restricted, helpcontext(0x000f6d61)]
    void _stdcall String();
    [restricted, helpcontext(0x000f659b)]
    void _stdcall UCase();
    [restricted, helpcontext(0x000f658a)]
OK. I'm going to load this sucker.
 
3:56 AM
oh wow!!!
 
It might still take some special handling - the COM collector will mark them as restricted, so I might need to reflag everything in that module.
I'll also need to add those to the correct "modules" that the run-time maps them to.
Huh. Err is a function that returns an ErrObject interface.
 
4:12 AM
@ticker who're you gonna call? Raw-bird-duck Rob Berdock!
huh, that one is different
 
EVENT_SINK_Invoke? I want one!
I also wonder if __vbaWriteFile would be a direct call for module exports.
 
@Comintern could be. Might also be the conversion of pcode to text, or writing module to stream
 
onlinedisassembler.com finally finished disassembling it.
I really need to do my own disassembly. I actually have the .pdb for it, so I should be able to get symbols.
 
4:32 AM
Will VS Community 2015 allow me to make edits to issues I think I could fix?
 
Absolutely.
 
How do I go about doing that? I went through GitHub's tutorial about how to do a fork and then submit for a pull request but I still haven't fully internalized it. Could someone help walk me through it? I'm willing to try a difficulty-01-duckling that should be relatively easy.
 
You'll want to fork into your own repo first though
To do that, just go to the main RD github page and hit the fork button in the upper right. (I'd screenshot it, but imgur is still down).
When your fork is set up, there'll be a green "Clone or Download" button. Click that, then copy the url to the clipboard. That's what you'll put in the VS dialog when it asks what you want to clone.
Build environment setup is on the wiki here: github.com/rubberduck-vba/Rubberduck/wiki/Contributing
 
So do I create the repo or download the solution first?
 
you fork it first :)
 
4:46 AM
Fork first
The clone will build the local copy of the solution.
 
Time for deep breaths, seems I'm already failing fast.
 
^Realtime update of your progress.
 
I think I now have a ¿copy? on my GitHub. Is that correct?
 
yep - your very own fork :)
 
4:48 AM
along with, IIUC, the entire history of the changes.
 
Yep. You have a fork. That means when you synch from VS, your commits go into your fork.
^That might be the start to real source control for .frx files.
 
A fork is different than a branch?
 
Yes. A branch is kind of like a separate working copy of the fork.
 
@Comintern That's aVB6 executable, IIUC.
 
With my fork how do I get to the copy of the solution?
 
4:51 AM
I already know how to read frx files
 
That lets you ̶t̶r̶a̶s̶h̶ work on features without messing up your main branch.
@ThunderFrame Good enough to rebuild them?
I was thinking that if we can create a .NET object model for them, we could serialize them to xml for SC.
 
Do I clone/download from the fork now?
 
Clone.
 
yep
 
If you download, you won't be connected to your fork (and won't be able to commit).
 
4:53 AM
Open in Desktop or Download Zip
 
Neither.
 
clone it from VS :)
 
In VS, View->Team Explorer.
 
Fail fast, fail frequently. I succeed at that.
 
fail fast, learn fast
 
4:54 AM
@Comintern Yep, the first 0x18 bytes are 6x DWORDs: Magic, Size, Top, Left, Height, Width
 
Then hit the "Connect" button (it looks like a plug), and under Local Git Repositories, hit the Clone dropdown.
 
the rest of the file is a structured storage file
anywhere you see D0 CF 11 E0 you know you have a DOCFILE
 
and the url is the one that GitHub provides above the Open in Desktop / Download Zip options?
 
@ThunderFrame I might try to write an XML converter ̶a̶t̶ ̶w̶o̶r̶k̶ in my free time tomorrow.
 
fail really fast, learn even slower <-- That's me sadly
 
4:57 AM
@IvenBach Your fork is this URL: https://github.com/IvenBach/Rubberduck.git
 
the storages and streams within the docfile follow the forms specification
 
@Comintern just making sure. Cloning right row.
Now that it's been cloned I open the Solution?
 
Yep.
From there, you'll want to follow the Wiki instructions.
 
@Comintern Export a form, truncate the first 0x18 bytes, then open the file in 7-zip.
 
Oh, and if you have the release version installed, uninstall it first.
I should read MS-OAUT too.
 
5:01 AM
@Comintern will it cause errors if I work on a sln while RD is installed?
 
@Comintern Despite the open promise, those documents seem deliberately obfuscated.
 
@IvenBach No, but you won't be able to debug it easily.
 
Office will only look for RD in one place, and you want that place to be where you got your debug build
 
@ThunderFrame Do you know the compression protocol offhand?
 
@Comintern DOCFILES aren't compressed
they're structured, but 7-zip can read them
 
5:08 AM
I've opened the solution. How do I go about familiarizing myself with a duckling difficulty issue?
 
@Comintern you can use msdn.microsoft.com/en-us/library/windows/desktop/… to read them
the XLS/DOC/PPT/VBA binaries are stored in the same format. You can use 7-zip to inspect the contents of an XLS or XLSM, and then navigate to the vbaProject.bin file, then choose context menu "Open inside" then you can navigate the VBA binary
 
Oh hell, there are .NET versions of those APIs in Microsoft.VisualStudio.OLE.Interop
 
yep
most of the files in vbaProject.bin ARE binary p-code plus compressed source-code text
 
OK, I should mess around with #2315 and friends then.
 
@Comintern I'm looking at the lParam pointers for a project treeview node. There's another pointer (Pointer7) at lParam + 0x28. Pointer7 + 0x03 is another pointer (Pointer73). Pointer73 0x22C is the Project GUID as a string. Pointer7 + 0x06 is another pointer (Pointer76). Pointer76 starts with:
MZ..........ÿÿ..¸.......@................................... .....º..´.Í!¸.LÍ!This program cannot be run in DOS mode....
 
5:21 AM
WTF? That's a PE header.
 
@Comintern yep Pointer67 + 0x120 = PE..
 
If that's the project.bin file, hello RD.Emit...
 
for https://github.com/rubberduck-vba/Rubberduck/issues/2753 I built the solution and came up with an error
'A project with an Output Type of Class Libarary cannot be started directly.

In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project.'
 
I don't know, IIRC, all open projects point to the same MZ
let me check
 
@IvenBach Right click on the Rubberduck project in the Solution Explorer -> Properties.
 
5:24 AM
I know I'm supposed to attach Excel but how do I go about doing that?
 
@Comintern Yep, all projects have a pointer to the same location
 
Then Debug->Start Action->Start external program, browse for Excel (or whatever host you want).
Did you run the regasm commands?
 
what is probably more interesting is the 0x22C bytes before the GUID
 
I need some sleep. I'll have to defer crashing things until morning.
3
 
I'm out as well... tomorrow is another day!
 
5:29 AM
@Comintern Do I need to run regasm commands? I don't really know how to do that.
 
Yes. They're on the wiki link from earlier.
 
@Comintern I'm following the wiki now.
 
> As per #1230, I don't think the order that controls are persisted is deterministic.

> So, the order of the VB_Control attributes seems to be unreliable/unpredictable, but the order does not seem to matter to VBE

That means the FRX file can change from one export to the next.
 
should the RubberDuck.dll be within the bin folder or the bin\debug folder?
 
5:40 AM
yep
it will be, once you've built the solution
did you restore the nuget packages?
(right-click the solution, select "manage nuget packages for solution" - the dialog should have a yellow banner saying you need to restore missing packages; just click it and you're good to go)
 
I built the solution. How do add the extension in the registry?
 
you know how to get to regedit?
 
Misunderstood. Thought they key was a folder. I don't mess with the registry much.
 
indeed, keys are displayed as folders
you need to create whatever keys are missing
do exactly as pictured and all will go well :)
 
If I only have to do what's picture then I'm surely doomed.
 
5:48 AM
you're doing that so that when the VBE starts looking for add-ins to load, it locates the RD key and attempts to load Rubberduck
are you running 64-bit Office?
 
Yes.
 
collapse all the nodes, then expand HKEY_CURRENT_USER (HKCU); find the SOFTWARE key, expand it; find the Microsoft key, and under it the VBA key
under that, if there's no VBE key, create one
under the VBE key, if there's no 6.0 key, create one
under the 6.0 key, if there's no Addins64 key, create one
under the Addins64 key, create a Rubberduck.Extension key
 
Did that added the 3 different keys: Description, FamilyName, LoadBehavior
 
in the Rubberduck.Extension key, add the values depicted - Description (string), FriendlyName (string), LoadBehavior (DWORD)
 
and their values
Rechecked them and they are as they should be
 
5:54 AM
most common glitch here is using the UK spelling and creating a LoadBehaviour value
LoadBehavior should have a value of 3
that makes the VBE load RD at startup
 
LoadBehavior is the 'murican spelling
 
all 3 have the values they should
let me try restarting VS as admin
 
great! you're all set!
aye, VS needs admin privs to register RD for COM interop (basically, the regasm.exe part)
 
I have previously had some issues with VS not explicitly run as admin before
Thanks for bearing with me. I have had blatantly correct issues not compile with 3 other software devs helping me.
 
Simple examples that were retyped exactly as I had them only to compile without issue... Fail fast, fail often.
 
[rubberduck-vba/Rubberduck] comintern pushed commit b11ed83b to next: Fix handling of statement separators in MoveCloserToUsageRefactoring, cover with tests.
[rubberduck-vba/Rubberduck] comintern pushed commit 50ec8a5b to next: Fix null checking in focus events.
[rubberduck-vba/Rubberduck] build for commit a93fce96 on next: AppVeyor build failed
 
5 warnings that are supressed? 2 Unreachable code and 3 Variable assigned but never used. That sound about right?
 
@IvenBach all in ExtractMethodModelTEsts, yeah
 
huh wait, no - I only have 3
@IvenBach run all the tests - you can already take a stab at #2759 :)
I'm off to bed
 
@Mat'sMug Ok. Which folder are the tests in?
RubberducTests?
 
6:21 AM
When I parse to get things started it stays on 'Loading References'
I may have to give it a go tomorrow. Thanks for the help thus far.
 

« first day (999 days earlier)      last day (2181 days later) »