« first day (1639 days earlier)      last day (1541 days later) » 

00:00
RELOAD!
[bruglesco/fleet-command] 2 commits. 82 additions. 92 deletions.
[rubberduck-vba/Rubberduck] 9 commits. 5 opened issues. 2 closed issues. 15 issue comments. 233 additions. 195 deletions.
> Sometime it happens, that there is wrong interface implementation. I tried to figure it out but I'm not sure when (it may be after renaming Interface class using Rubberduck). Please see following code with wrong implementation:

```
Option Compare Database
Option Explicit
Implements clsIWstawTowarDoFrm

Private Property Get clsIWalidacja_CzyWalidacjaPozytywna() As Boolean
Err.Raise 5 'TODO implement interface member
End Property

Private Property Get clsIWalidacja_PowodBrakuWali
01:02
> Replicated, and my initial instinct from [chat](https://chat.stackexchange.com/transcript/message/47841440#47841440) appears to be correct - `FindNewDeclarationNameConflicts` is picking up the `Item` member of `Collection` as being a conflict:

![screenshot from 2018-11-30 18-51-51](https://user-images.githubusercontent.com/8944005/49322072-80243980-f4d1-11e8-8cfd-ec262272fcd1.png)

Without diving too deep into the code, my suspicion is that the default member access on this line...

`Se
@Duga Just out of curiosity, could we simply try to bind the new name as whatever type it's declared as? If it's a potential naming collision, it would bind to something - if not, it wouldn't.
01:48
@this yea, it's hard, if not impossible to unify these...
> This might seem like an oddly specific inspection, but I'm finding myself dropping comments like this one on SO with increasing frequency:

> You're getting into an infinite loop because you're changing the worksheet from inside the Change event. Use Application.EnableEvents = false before you make changes, then set it back to True when you're done.

The code below will lock up Excel the first time it executes:

```
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value =
blech VBA makes arrays far too hard to work with.
and arrays of UDTs are extra painful.
@Duga that one is cool, but I'm pretty sure that it has tons and tons and tons of edge-cases. Sooo ... I gave it a preemptive 04-quackhead
Yeah, that's not a bad call. Heat of the moment.
01:59
I would be impressed if we can infer that from code analysis alone
I doubt there's anything that would indicate that this will cause an infinite loop. That's a result of implentation.
I'd leave ambiguous cases alone, but there are plenty where it wouldn't be that hard to pick them out - i.e., the trivial example.
Interesting. I reflected the resources per #4534 and got 18 instead of the 16 we're currently setting. Wonder what's missing...
i'm wondering - excel simply just locks up? no runtime error?
well... it doesn't stackoverflow because it's not really recursion that's happening
so you just saturate the event queue
I asked because in Access if you do something like:
Private Sub Form_BeforeUpdate(Cancel As Integer)
  Me.Dirty = False ' save the record
End Sub
Hmmm.... missing 3: Rubberduck.Resources.CommandBarIcons, Rubberduck.Resources.Settings.AutoCompletesPage, and Rubberduck.Resources.CodeExplorer.CodeExplorerUI. Any of those that shouldn't be set?
02:12
this throws a runtime error immediately on the attempt to save a record in process of saving a record.
obviously Access has some checks to ensure that this doesn't happen.
Excel's Range don't behave like a recordset though. Excel != database.
hmm. aren't we supposed to use icons from CodeExplorerUI
but obivously it's working so... probably not?
If it's just icons, those aren't localized.
@Comintern That's an Access form event.
Right, but isn't that bound to a recordset?
02:15
not sure I can do the equivalent using DAO alone.
(no events with DAO model)
@Comintern more correctly, they don't have multiple cultures
Right.
I don't think there's a drawback to including uncultured resource classes
uh stupid question - why would you localize an icon?
they fallback to neutral anyways
02:16
So no objection to setting Culture = culture on them?
@this If it has a word in it.
yes figured that out too slowly
Seems like a better argument for a more abstract icon though.
OK, how's this look?
        private static void LocalizeResources(CultureInfo culture)
        {
            var localizers = AppDomain.CurrentDomain.GetAssemblies()
                .SingleOrDefault(assembly => assembly.GetName().Name == "Rubberduck.Resources")
                ?.DefinedTypes.SelectMany(type => type.DeclaredProperties.Where(prop =>
                    prop.CanWrite && prop.Name.Equals("Culture") && prop.PropertyType == typeof(CultureInfo) &&
                    (prop.SetMethod?.IsStatic ?? false)));
just a question - why not use CW?
figured that since CW is already reflecting, might as well piggyback it, dunno.
Does CW do static property injection one time only?
we don't have static propery injection set up
02:21
Also, this assumes that all resources file will ever be in the Rubberduck.Resources - do we need that to be always true?
I would think so.
@this nah we don't but reflecting over the Attribute that the generator adds should add more typesafety
especially for the plugin system later
we want plugins to be able to localize
I'd also prefer CW. do we need LocalizeResources be static?
I'd assume that would be on the IPluginInterface or whatever.
yeah, I guess that if we do wnat to assume it to be true, may need a simple analyzer to check that there are no resource files in other assemblies.
Otherwise we couldn't "enforce" localization.
02:23
@this at least none that don't have the default culture
analyzer it is then.
@Comintern that makes sense, yeah
I'm going to call that good for now then.
:+1:
Question: Can we not make use of Thread.CurrentUICulture?
@Vogel612 The culture parameter is coming from the user settings.
It normally gets updated with a settings change event handler, but we need to set it to the correct setting at startup.
neither is something that rules out using Thread.CurrentUICulture
I'm trying to remember if the settings default to that on first load or not. I was thinking they did.
oh well, if it works, I ain't gonna complain :)
high time to go to bed though.
#4009 has me completely stumped. There is absolutely no reason for LoadLibrary to fail on a COM type that was obtained via interop.
02:29
Thanks for the hard work folks :)
'night
hmm here's a interesting one.
sorry about the artifact of screenshot - but you can see the quickinfo saying it.Foo = Nothing
IKR?
I wonder if it's just getting confused by the dereference operator in the tooltip.
02:35
@Comintern could it be related to the case #3837?
it.Foo is uninitialized.
Correct. That's the most likely explanation
it just made a bad assumption that uninitialized => it's a object, so it's Nothing!
(whoops)
Looking at the log for that one now.
it's a bit different because in that case, he couldn't even load the RD whereas this guy apparently just can't run tests
That error looks like it resolved the types correctly.
02:37
That was when Carlos commented about how shims fixes this issue.
The new one is the Interop layer faceplanting on a LoadLibrary call.
I wonder if the OP just hadn't recompiled the project on the machine or had some registry errors or something.
hmm. it's loading our own library, right?
No, it was trying to get type information for the VBE in order to wrap it if I'm reading the log right.
> This operation failed because the QueryInterface call on the COM component for the interface with IID '{0002E166-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL.
That's the GUID for the VBE.
yeah.
That originated in Microsoft.Vbe.Interop.VBE
I'm not really sure how that happens - we're not even specifying the GUID - the Interop is.
02:41
but where's the LoadLibrary?
It's internal - probably in the binding of the interop assembly.
ok so not by our code.
Maybe take up his offer for skype debugging?
I'm not sure I'd know what to look for.
We don't ship an interop do we?
02:44
I don't think so, but see, that's why I thought of 3837
because if (and that's a big if), he loads a different add-in and that changes the registration, that might cause the faceplant
Wait a sec, does Office require that the VBE is registered? If it's early bound it shouldn't need to be.
which would be totally weird because 3837 (and as per Carlos' description) this kind of thing happens at startup not at runtime
TBH, if you achieved to launch Office without VBA registered.... #AchievementUnlocked
Ahhhh... I think you might be onto something.
I'm gonna ask if he has any other addins loaded.
> @tdalon - I was taking a look at this and was trying to come up with reasons why LoadLibrary would be failing. Do you remember if you had any other add-ins loaded when you got this error?

This may be related to #3837 (need COM shims).
> Can you dig the WER report out of the Event Log for one of these crashes and post the details here? The proximate cause is this:

```

2018-11-30 08:29:34.4297;TRACE-2.3.0.4235;Rubberduck.VBEditor.WindowsApi.SubclassManager;Releasing subclass for hWnd 0x00581520.;
2018-11-30 08:29:34.4609;ERROR-2.3.0.4235;Rubberduck._Extension;System.Exception: RemoveWindowSubclass Failed
at Rubberduck.VBEditor.WindowsApi.SubclassingWindow.ReleaseHandle() in C:\projects\rubberduck\Rubberduck.VBEEditor
great....
> The menu option Analyze > Run Code Analysis applies only to static code analysis. Additionally, on a project's Code Analysis property page, the Enable Code Analysis on Build and Suppress results from generated code checkboxes apply only to static code analysis. They have no effect on Roslyn analyzers
I should switch back to working on the references dialog before I forget WTH I was doing.
04:11
[rubberduck-vba/Rubberduck] build for commit 27f3dab8 on unknown branch: AppVeyor build succeeded
04:22
[rubberduck-vba/Rubberduck] build for commit 3f223258 on unknown branch: AppVeyor build failed
BUILD FAILURE!
05:03
[rubberduck-vba/Rubberduck] build for commit d8845790 on unknown branch: AppVeyor build failed
BUILD FAILURE!
Hi there, I'm a college student majoring in computer science with a entry level background in C/C++ development. I was wondering if there was any way I could learn from and contribute to your guys' project? I was referred here by a user by the name of IvenBach.
Welcome! We always need help. :-)
Have you ever done any VBA, David?
No unfortunately not, but I am very willing to learn!
05:16
Right I only asked because that's our primary focus - helping those who write in VBA to be more productive and be a better coder.
So it helps a bit to know about what they usually do in VBA but that's not really required for working in Rubberduck itself, which is mainly C#
Have you seen the contributing pages?
Gotcha, I would be starting from scratch with VBA personally. I did take a look at your guys' GitHub page although I've personally never used the site as my courses never made use of it.
(we have two -- here and here )
Are you familiar with git?
Not particularly sorry
No worries. that's what GitHub is based on and that's how we'll be contributing.
Gotcha sounds good
05:21
Visual STudio has some git functionality built in
but some here use command line, others like me use a plugin instead (TortoiseGit + TGit)
Regardless of what you do use, you will at least need a passing familiarity with basics of git - starting with git clone so that you can get the project set up on your computer
Oh ok. For the courses I've taken, I used Visual Studio so if I could use that, that would be great, but honestly whatever works best.
Yeah, you would need to use VS 2017
Yep, I have that installed.
Great! and we do have a wiki on the GH which provide some starting point - it may help to read through and get idea of what we do and how.
Once you've got your codebase set up, you will probably want to play with it - look for any open issues that has difficulty 01 or 02 and maybe is up for grabs and just hack away.
Do not worry about doing it wrong; that's why we do code reviews all the time - when you put out a PR we would read it through and give feedback or suggestions until it's a quality that's suitable before we merge it into the project.
and of course, you can use this chat room to ask any questions so you can get good guidance when you're hacking
05:28
Gotcha, I was just making an account. I will get to installing the codebase now. Thanks for all your assistance!
Awesome, and have fun. I hope to see you around here. :-)
[rubberduck-vba/Rubberduck] build for commit 2b2a03c3 on unknown branch: AppVeyor build succeeded
Hey sorry how do I go about building the solution in VS?
05:50
Do you see a build menu?
Build -> Build Solution
No I don't see the option. I'm on the VS start page where you'd make a project/sln
@David Welcome to the pond.
Hi thanks!
Was just getting help trying to get started using VS
this along with the other ducks helped me get started with VS too.
06:07
Nice. I'm still just trying to figure out how to implement the build in my VS but I can't even so much as find a build option so perhaps I have a different type of VS downloaded?
I haven't written code on anything outside of creating an empty project for C/C++ or using the arduino compiler so I'm not quite sure how this works.
You'll need to get a copy of the repository, aka repo.
Since the code base is hosted on GitHub we usually use that to create a new branch and to clone a new repo.
If you don't have GH installed you can download a zip of the repo and extract it to wherever is convenient for you.
Once you have the repo cloned or extracted open the Rubberduck.sln file in VS. That will add Build to the menu.
oh ok gotcha. I downloaded GH because I couldn't find any options in VS
Where would I get a zip of the repo?
Look it the top right of this page. You should see rubberduckvba.com | github.com/rubberduck-vba/Rubberduck
github link will take you driectly to the github repo.
You'll see a green button that says "Clone or download".
oh ok so I downloaded it from the homepage
extract that zip to wherever you want to work on it.
When you do open the folder and it will contain the solution file, that's the one you'll want to navigate to and open with VS.
06:21
ok gotcha, just finished opening the sln
There are 19 projects within the solution. Each one AFAICT focuses on a specific part.
chat.stackexchange.com/rooms/info/14929/… Are various saved conversations that could be helpful in familiarizing with some parts.
ok and this had told me to check the issues list for different level contributions as well so should I start there?
How to Git, and Git branching. Both should help with Git knowledge.
Any and all issues are up for grabs. The 01-duckling and 02 issues are easier
The difficulties are best guesses.
Ah makes sense.
We’re all imposters here. Some fake it better than others.
@David github.com/rubberduck-vba/Rubberduck/labels/… is another tag you can filter on
06:36
oh perfect. That'll help narrow down what I can try to do
I'll take a more in-depth look when I get back from the gym. Thanks!
Oh and don't forget to star us on GitHub when you register.
@MathieuGuindon we got another incoming star from @David, our soon to be contributor.
gotcha :)
@Duga And there's our 700th star.
07:19
@David Sent you an email.
Night pond.
 
3 hours later…
10:49
> Thanks to your RD, i start learning to write a visual BASIC code suitable for testing.

For myself, I made a visual basic conversion of the code in the clipboard into templates for insertion into the RD module.

Now it looks like this: I wrote a macro consisting of several functions and I want to debug them.
I select all the written code with my **hands**, copy the code into the buffer with my **hands** and launch from my add-in, , again with my **hands**, my macro, which pulls out the su
11:19
> I very much like this idea, something like a "generate test for member". We do not currently have any internal infrastructure supporting this, but it's definitely something that I consider in scope.

I've labelled this with [feature-templates], since we can probably reuse some infrastructure changes from the templates feature in something like this.

We'll need a way to clearly associate TestModules to Modules. This can get tricky comparatively fast. If in doubt, this should prompt for a m
12:00
> Then I suffered :-)

I will try to implement in my code, which will generate a unit test based on the types of arguments received and returned by the function being tested,

The test will prepare the data for this function, start the function and check the return value or whatever I want.

Crazy! It will be mega cool! :-)
12:57
 
2 hours later…
14:44
> Grammar chokes on this
```
Private WithEvents a As VB.Form, WithEvents b As VB.Form
```
Btw, it just says `Parse Error` on the toolbar. Where can I see the actual error?
> The actual error message will be in the logfiles. Assuming this code compiles, we'd need to look at how `WithEvents` is treated in the grammar.

https://github.com/rubberduck-vba/Rubberduck/blob/87f612bc3b15fd0d7b0a321b6afc19749b001a29/Rubberduck.Parsing/Grammar/VBAParser.g4#L552-L554

The relevant grammar section is visible above. Quick, untested and unverified patch suggestion:

```diff
- variableStmt : (DIM | STATIC | visibility) whiteSpace (WITHEVENTS whiteSpace)? variableListStmt;
15:10
> Regarding, seeing the parser arror(s), there should be a little red error icon right next to the refresh button stating Parser Error. When you click it, a window with the parser error(s) will open.
> Regarding, seeing the parser error(s), there should be a little red error icon right next to the refresh button stating Parser Error. When you click it, a window with the parser error(s) will open.
 
1 hour later…
16:22
> The spec covers these in [5.2.3.1 Module Variable Declaration Lists](https://msdn.microsoft.com/en-us/library/ee177381.aspx)

> module-variable-declaration-list = (withevents-variable-dcl / variable-dcl)
> *( "," (withevents-variable-dcl / variable-dcl) )

Our grammer doesn't make a distinction between variable declarations in modules and procedure bodies (and we're already parsing non-compilable declarations inside procedures) but this syntax is clearly defined as legal.

Bas
16:33
@Duga ha, it only took 4 years to hit that one!
IKR? Thinking difficulty-03-duck is an overstatement. The fix looks fairly trivial.
he says before running unit tests...
@Comintern agreed
There was exactly one line of code that needed to be changed in the resolver.
@Comintern that's a very good sign!
16:41
ya, first reaction to a grammar bug is slap a high-level difficulty on it, because the grammar is just so advanced.
didn't think it'd be that easy a fix
@Duga love the enthusiasm there!
unrelated: apparently I can't automate cleaning up old prereleases with the v4 of Github's API
@Vogel612 why would a project that's importing a base project that explicitly specifies C# 7.2 think it's still using 7.1?
conflicting definition somewhere else?
VS being obtuse?
@Vogel612 eh, mine is to deem it trivial, then get bitten by one or two subtleties that escaped me - then break 1600 tests, sweat bullets, freak out, then realize it was just a missing comma or something
4
16:45
i looked for that first. I didn't see any conflict.
looks like more the latter.
...and all green. Just needs a test covering the change and I think it's GTG.
It's going to take me longer to figure out where the stupid test belongs than to fix the thing.
lol
GrammarTests?
i think the test project is overdue for a split
16:56
I'm thinking a test there for the grammar, then maybe another one to make sure that the variable declarations are correct for the resolver.
it's getting a bit... impractical to build that test project just to test it.
@this it shouldn't really have been a single monolithical test project in the first place, IMO
that being said: it's probably going to make running tests on AV somewhat more complicated
#LazyFTW
I guess AV doesn't do globbing?
in some places it does, in some it doesn't...
We're running the tests in an explicit test_script anyways, so AV doesn't have much in the way of globbing to help us, I think
so the more interesting question is: does Powershell support globbing?
Gee. Even this doesn't work: <MSBuild Projects="$(SolutionDir)\RubberduckMeta.sln" />
Omit the path and it wigs about not finding the solution file.
Powershell in theory should be able to yeah.
16:59
hmm ... did you try specifying any Target?
  <Target Name="EnsureMetaProjectsBuild" BeforeTargets="PrepareForBuild"
          Condition="!Exists('$(SolutionDir)RubberduckCodeAnalysis\bin\RubberduckCodeAnalysis.dll')">
    <Message Text="Missing the required meta projects. Building the meta projects..." Importance="high" />
    <MSBuild Projects="$(SolutionDir)\RubberduckMeta.sln" />
    <Message Text="Built the meta projects" Importance="high" />
  </Target>
Is that what you mean?
<MSBuild Projects="$(SolutionDir)\RubberduckMeta.sln" Targets="CoreCompile" />
oh
hmm. ok that might be something - it failed, though.
17>  Missing the required meta projects. Building the meta projects...
17>  C:\GitHub\Rubberduck\Rubberduck\RubberduckMeta.sln.metaproj : error MSB4057: The target "CoreCompile" does not exist in the project.
17>
17>  Done building project "RubberduckMeta.sln" -- FAILED.
this msdn link is somewhat enlightening...
Let's try Targets="RubberduckCodeAnalysis:CoreCompile" just for testing
didn't work, either; said the target not found
> Targets Optional String parameter.

Specifies the target or targets to build in the project files. Use a semicolon to separate a list of target names. If no targets are specified in the MSBuild task, the default targets specified in the project files are built. Note: The targets must occur in all the project files. If they do not, a build error occurs.
17:26
welp, that's interesting.
  <Target Name="EnsureMetaProjectsBuild" BeforeTargets="PrepareForBuild"
          Condition="!Exists('$(SolutionDir)RubberduckCodeAnalysis\bin\RubberduckCodeAnalysis.dll')">
    <Message Text="Missing the required meta projects. Building the meta projects..." Importance="high" />
    <MSBuild Projects="$(SolutionDir)\RubberduckMeta.sln"
             Targets="Build"
             Properties="Configuration=Release">
      <Output TaskParameter="TargetOutputs"
              ItemName="MetaAssemblies" />
outputs:
1>Target EnsureMetaProjectsBuild:
1>  Missing the required meta projects. Building the meta projects...
1>  Target ValidateSolutionConfiguration:
1>    Building solution configuration "Release|AnyCPU".
1>  Built the meta projects
except.... it didn't actually build anything.
17:39
Ok, for now I'll put aside the solution; I put it in a comment in case anyone else want to try and fix it. I came up with a bit more dry approach for the msbuild so we only specify it once using a properties that's an array of the individual metaprojects.
18:16
> The spec covers these in [5.2.3.1 Module Variable Declaration Lists](https://msdn.microsoft.com/en-us/library/ee177381.aspx)

> module-variable-declaration-list = (withevents-variable-dcl / variable-dcl)
> *( "," (withevents-variable-dcl / variable-dcl) )

Our grammar doesn't make a distinction between variable declarations in modules and procedure bodies (and we're already parsing non-compilable declarations inside procedures) but this syntax is clearly defined as legal.

Bas
@Duga No, I cannot spell "grammar" correctly. Ever.
> I can't replicate this.

I'm guessing that it if it's repeatable in the source module it has more to do with the layout of the entire module than anything else. Between this issue and #4586 I already have a workbook with a good chunk of your project stubbed out now, so it doesn't appear to be due to how it's parsing.

Is it possible that the quick-fix was run after another quick-fix that for some reason didn't refresh the parse?
[rubberduck-vba/Rubberduck] build for commit b8b0b7d2 on unknown branch: AppVeyor build succeeded
> If anyone wants to play with this, I have it set up in a test workbook that I dropboxed here:

https://www.dropbox.com/s/uw9szelj6vwyrux/4586-7.xlsm?dl=0
> There's a link to a workbook with the repro case on #4587
18:44
  No C++ build tools found; using tlbexp.exe to generate TLBs.
  Processing Rubberduck.dll...
  Compiling with midl...
I feel so smort.
Hmmm... #4588 is going to be tricky as hell.
I think the problem is that when you put Implements InterfaceToBeImplemented at the top of a class, it isn't able to compile until after the interface implementation is there.
Yeah, the compile before parse would definitely get in the way
That means if you cancel the parse due to uncompilable code, it doesn't have the parse tree refreshed.
I got a weird partial repro on it though. I deleted the implementation, dismissed the compile warning, and when I did a rename refactor it re-implemented the interface I'd deleted.
fun.
18:55
...and now I can't repro my weird repro. Nice.
Actually, I think the solution might be to just check to see if the module or the interface is dirty before enabling the refactoring.
[rubberduck-vba/Rubberduck] build for commit d8cdb8bc on unknown branch: AppVeyor build succeeded
IIRC, we have the compile before parse in order to avoid parser errors
I'm going to see if I can sidestep it completely.
or maybe it was to avoid the false positives
since our grammar is more liberal than the actual compiler
Wait, wut? We're already testing that:
    return targetInterface != null && targetClass != null
        && !_state.IsNewOrModified(targetInterface.QualifiedModuleName)
        && !_state.IsNewOrModified(targetClass.QualifiedModuleName);
19:00
e.g. an Implements without members wouldn't make parser bat an eyebrows but compiler flips out.
^ And the refactoring would be pointless if it wasn't.
I'm almost thinking that the UI for that refactoring is wrong.
seems it'd be easier if parser can tolerate errors and refactoring will refuse to refactor blocks that contains an error node.
right now parser just wigs out at first error.
What should happen is that if you're in a class module and select the refactoring, RD would prompt you with a list of available interfaces to implement.
Then it would add the Implements Foo at the top of the class along with the stubs.
yeah we should do that.
no uncompilable code, no problem.
BBL
19:17
[rubberduck-vba/Rubberduck] build for commit 13721382 on unknown branch: AppVeyor build succeeded
> I was able to (kind of) get a repro on this. If you implement an interface, then delete the implementation, renaming the interface will re-implement it (with the new names) in the implementing class. This is apparently due to the rename refactoring not checking to see if a module is dirty before rewriting it with the new naming.

So @Stonovsky, just to be clear - did the implement interface command result in the wrongly named implementation, or did the rename add them?

I think part of the
19:59
> Given a project with a class module `Class1` and the following code in a standard module...
```
Public Sub Foo()
Dim bar As Class1
Set bar = New Class1
End Sub
```
...running the rename refactoring results in this if you rename `Class1` to `FooBar`:
```
Public Sub Foo()
Dim bar As FooBar
Set bar = New FooBar
End Sub
```
If you edit the sub and change the types to, say `Collection`...
```
Public Sub Foo()
Dim bar As Collection
Set bar = New Collection
> Almost forgot - this might? be the root cause of #4588.
20:20
> OK, gave this some more thought, and I think I'm fine with the inspection results toolwindow not giving feedback (spinning the ducks) in response to the parser state at all. The state of the parse should be obvious from the RD toolbar as well as the code explorer window (if it's open), so it would only look like a NOP if they're only looking at the inspection window. It wouldn't really be unexpected to have the ducks spin only while the inspection results are updating - i.e., the window is b
 
2 hours later…
22:19
> Workaround:

1. Open Regedit, go to HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide. Add a DWORD of PreferExternalManifest with value 1.
2. Go to location of VB6.exe, add the following into a new file called VB6.exe.manifest:

```xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas
@Duga If that's confirmed to work, we should add the label.
@Duga if anyone else has VB6 on Windows Vista\7\8\8.1, would be good to try it there
worked for me on win10
if manifests don't work on earlier versions, there's no point us coding them as a fix. may as well stick with the 8.1 API
22:31
> Workaround:

1. Open Regedit, go to HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide. Add a DWORD of PreferExternalManifest with value 1.
2. Go to location of VB6.exe, add the following into a new file called VB6.exe.manifest:

```xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas
22:52
> There are a couple of workarounds available, depending on OS:

**For Windows 7 (and presumably Vista and 8, untested)**

1. Ensure DPI scaling mode is set to use Windows XP-style DPI scaling



**For Windows 10 (and presumably 8.1, untested)**

1. Open Regedit, go to HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide. Add a DWORD of PreferExternalManifest with value 1.
2. Go to location of VB6.exe, add the following into a new file called VB6.exe.manifest:

```xml <?xml ver
> Confirmed issue affects older versions of Office - removing vb6-specific tag
@Duga Looks like manifests are not effective in Windows < 8.1, but neither are they needed. XP-style scaling seems to be all that's needed there (and googling suggests its the best option generally)

« first day (1639 days earlier)      last day (1541 days later) »