uis2sdk problem

Hi, I'm having problems getting a uis2 plugin to work here. But first need to complain that in addition to being way outdated, this SDK is virtually impossible to locate; without help from archive.org I would never have found it.

Then the problem at hand: When reducing the example to a minimal skeleton (sourcefiles posted below) and setting a uis2-button action to  "Dll button using image":

  • the button shows only in WindowBlinds/SkinStudio own windows borders, not on other windows borders.
  • when pressing the button on WindowsBlinds window I get the beep on release, but after the beep I get a busy-pointer for about two seconds and then the window closes.

Edit: I'm using Visual Studio 2015 (v140) and Windows 10 FastRing Build 18305.rs_prerelease.181213-2133

wbplug.c:

/*
 
	WindowBlinds UIS2 Dll Plugin DEMO v1.1
 
	© 1999 Stardock Systems, Inc
 
 
	All this code is copyright and should not be used for ANY other purpose other
	than making a UIS2 plugin for use with WindowBlinds.
 
 
	This plugin is a clock which can be embedded into the titlebar
	It has been designed to only show when the item is active.
 
 
*/
 
#include <windows.h>
#include <wingdi.h>
#include <stdio.h>
#include <time.h>
 
 
BOOL APIENTRY DllMain(PVOID hModule, ULONG ulReason, PCONTEXT pctx)
{
 
 
	if (ulReason == DLL_PROCESS_ATTACH)
	{
 
		return TRUE;
 
	}
}
 
 
 
BOOL WBDrawMulti(HWND hWnd, HDC DC, RECT* r, int state, BOOL active, int button)
{
 
	/*
 
	hWnd = Handle to window
	DC = Handle to Device Context
	r = Dimensions of item
	state = > 0 then its pressed, else not pressed
	active = This is TRUE when the window is active and FALSE when inactive
 
	*/
 
	return TRUE;
}
 
BOOL WBPress (HWND hWnd, int x, int y, int state)
{
 
	// x & y are the position of the pointer
	// best to ignore them - For future use
 
	// The user has clicked on the button.  It has not yet been released
 
	return TRUE;
}
 
BOOL WBRelease (HWND hWnd, int x, int y, int state)
{
 
	// x & y are the position of the pointer
	// best to ignore them - For future use
 
	// The user has clicked on the button.  Button released while the pointer is over item
	// So item has been clicked
 
	// We shall beep just to indicate something
 
	Beep(1000,500);
 
	return TRUE;
}
 
BOOL WBQuery (HWND hWnd)
{
 
	// This function is for future use
 
	// For when we support timers etc
 
	return FALSE;
}

plugin.def:

LIBRARY plugin
 
DESCRIPTION 'WindowBlinds Titlebar Plugin Dll'
 
EXETYPE WINDOWS
 
EXPORTS
 
	WBDrawMulti @1
	WBPress @2
	WBRelease @3
	WBQuery @4
	
 
6,041 views 5 replies
Reply #1 Top

Hello,

I have forwarded your problem to Stardock Support team for their assistance. Please keep an eye on this thread for any updates. We appreciate your feedback and patience.

 

Basj

Stardock Community Assistant.

Reply #3 Top

While I will have others look at this after our Winter break (January 2nd), the first thing they will asks is if it can be reproduced on on the current released version of Windows 10 not just the Windows 10 FastRing Build 18305.rs_prerelease.181213-2133.

Can you confirm it can or cannot?

------------
Sean Drohan
Stardock Support Manager

Reply #4 Top

I am very sorry, but my desktop had a hardware-breakdown and I'm still waiting for new parts. This leaves me with only the laptop with fast ring win10.

Reply #5 Top

I managed to fix the "busy-pointer for about two seconds and then the window closes" part. The issue was a missing TimerProc(), once added the button works where it shows. Once I got that working I started thinking; maybe the rest of this issue is related to my other problem. So I found a program that let me start both 32bit and 64bit version at the same time, result:

The button from my dll shows in the titlebar of the 32bit version but not in the titlebar of the 64bit version.