Skip to main content
Participating Frequently
June 6, 2020
Answered

gHINSTANCE is undefined ERROR when trying to have a custom icon for a toolbar button

  • June 6, 2020
  • 2 replies
  • 991 views

Hello everyone 

 

I am trying to add a button to a toolbar using plugins and I want it to have a custom icon.

I found in the SDK the following code snippet:

 

//Declare an AVToolButton object

AVToolButton MyButton = NULL;

 

//Create an AVIcon object

AVIcon myIcon = (AVCursor)LoadBitmap(gHINSTANCE, MAKEINTRESOURCE(IDB_BITMAP1));

 

//Create a new button

MyButton = AVToolButtonNew(ASAtomFromString("MyExtn:MyButton"), myIcon, false, false);

 

 

When I try using this in visual studio, it shows me the error "identifier gHINSTANCE is undefined"

I have included the "PIMain.c" file as well , and as the SDK says that gHINSTANCE is an instance of object HINSTANCE, I can also see this object declaration in PIMain.c file.

 

 

 

Can anyone suggest what could be going wrong here?

Thanks

 

This topic has been closed for replies.
Correct answer Test Screen Name

This is defined in one of the header files. Perhaps you did not keep all the original #include lines. Or maybe you need to add another one - search the SDK and API headers to find the definition and any comments.

2 replies

Legend
June 6, 2020

You haven't included the needed header files. Don't try to make a plug-in from scratch, I have been working with plug-ins for more than 20 years and would never try this. Use the sample starter plug-in, understand what it does, then add your code.

Participating Frequently
June 6, 2020

Yes , I have actually started by setting up the BasicPlugin sample that comes with Acrobat SDK, I am successfully able to add the button with the default icon. Initially I was not much interested in getting a custom icon as I was not familiar with the LoadBitmap function , but now I have understood LoadBitmap, have a bitmap file in my resources as well, but  unfortunately this error popped up. Please help 

Test Screen NameCorrect answer
Legend
June 6, 2020

This is defined in one of the header files. Perhaps you did not keep all the original #include lines. Or maybe you need to add another one - search the SDK and API headers to find the definition and any comments.

Bernd Alheit
Community Expert
Community Expert
June 6, 2020

You need more then this snippet.