Novell slab menu

hey people,
Novell's new menu layout from SLED is in gnome's CVS, and there is a howto for obtaining it for ubuntu:
http://www.ubuntuforums.org/showthread.php?t=208131
let's just say I'm eagerly awaiting a PKGBUILD

benplaut wrote:
gconf is annotated
darkmatter (on ubuntuforums and #ubuntuforums@freenode) is the one soing most of the porting to ubuntu, he's really knowledgable about the code of it by now.  I'll see if i can get him to start using arch
As for me, i've got aliases set up so any app can be started with a ctrl+alt+space to bring up a custom run dialog, then a 2-3 letter abreviation of the app.
i got it working on arch, but i do not like the fact we would need an patched gnome-desktop & gnome-panel. i will put up a few packages in the aur when i am done tinkering.
The patches are needed for the recently used app menu.
also i would like to wreck out install software and the context menus which contains the uninstall/upgrade thingy...

Similar Messages

  • Trying to get gnome-main-menu-svn (SLAB) installed from AUR

    Having soem troubles installing gnome-main-menu-svn (SLAB) installed from the AUR using yaourt. After getting all the dependencies figured out, there still seems to be problems.
    Here is what I have so far:
    $ yaourt -S gnome-main-menu-svn
    ==> Resuming previous build
    ==> Downloading gnome-main-menu-svn PKGBUILD from AUR...
    ==> Last 5 comments ordered by date (asc):
    Comment by: pressh on 20070926 [10:17:48]
    - beagle depends > makedepends
    - added instructions for beagle/tracker search functionality to install file
    Comment by: pressh on 20071206 [08:22:07]
    cleanup
    Comment by: raul_nds on 20080118 [02:07:13]
    How do I use this? It doesn't appear in the applets menu
    Comment by: raul_nds on 20080118 [02:24:48]
    Never mind. This removes dbus-sharp after the installation, and then requires it as a dependency. I missed the message
    Comment by: laloch on 20080427 [15:12:48]
    current revision (451) doesn't work with networkmanager 0.6.6 from extra. Revision 401 from http://svn.gnome.org/svn/gnome-main-menu/branches/gnome-2-22/ works for now.
    First Submitted: Tue, 28 Aug 2007 14:30:49 +0000
    Last Updated: Thu, 06 Dec 2007 08:22:07 +0000
    gnome-main-menu-svn 350-2 (Unsupported): Novell SLED Gnome main-menu applet
    ==> gnome-main-menu-svn dependencies:
    - glib2 (already installed)
    - gtk-doc (already installed)
    - libgnome (already installed)
    - gnome-panel (already installed)
    - libgtop (already installed)
    - dbus-sharp (already installed)
    - networkmanager (already installed)
    - hal (already installed)
    - wireless_tools (already installed)
    - gnome-menus (already installed)
    - avahi (already installed)
    - libbeagle (already installed)
    - libgail-gnome (already installed)
    - gnome-screensaver (already installed)
    - intltool (already installed)
    - pkgconfig (already installed)
    - subversion (already installed)
    - gnome-common (already installed)
    - versionpkg (already installed)
    - beagle (already installed)
    ==> Edit the PKGBUILD (recommended) ? [Y/n] ("A" to abort)
    ==> ----------------------------------------------
    ==>n
    ==> WARNING: This PKGBUILD contains install file that can be dangerous.
    gnome-main-menu.install
    ==> Edit gnome-main-menu.install (recommended) ? [Y/n] ("A" to abort)
    ==> ----------------------------------------------
    ==>n
    ==> Continue the building of 'gnome-main-menu-svn'? [Y/n]
    ==> ----------------------------------------------
    ==>y
    ==> Building and installing package
    mkdir: cannot create directory `/var/abs': Permission denied
    ==> WARNING: Unable to write in /var/abs/local/yaourtbuild/gnome-main-menu-svn directory. Using /tmp directory
    ==> Searching new CVS/SVN/GIT revision for gnome-main-menu-svn
    ==> retrieving latest revision number from svn... 467
    ==> newer revision detected: 467
    ==> modifying PKGBUILD to pkgver=467...
    ==> Determining latest svn revision...
    -> Version found: 467
    ==> Making package: gnome-main-menu-svn 467-2 (Fri May 16 16:11:44 ADT 2008)
    ==> Checking Runtime Dependencies...
    ==> Checking Buildtime Dependencies...
    ==> Retrieving Sources...
    ==> Validating source files with md5sums...
    ==> Extracting Sources...
    ==> Removing existing pkg/ directory...
    ==> Entering fakeroot environment...
    ==> Starting build()...
    At revision 467.
    ==> SVN checkout done or server timeout
    ==> Starting make...
    /usr/bin/gnome-autogen.sh
    checking for autoconf >= 2.53...
    testing autoconf2.50... not found.
    testing autoconf... found 2.62
    checking for automake >= 1.9...
    testing automake-1.10... found 1.10.1
    checking for libtool >= 1.4.3...
    testing libtoolize... found 2.2
    checking for glib-gettext >= 2.2.0...
    testing glib-gettextize... found 2.16.3
    checking for intltool >= 0.25...
    testing intltoolize... found 0.37.1
    checking for pkg-config >= 0.14.0...
    testing pkg-config... found 0.23
    checking for gtk-doc >= 1.0...
    testing gtkdocize... found 1.10
    Checking for required M4 macros...
    Checking for forbidden M4 macros...
    Processing ./configure.in
    Running libtoolize...
    libtoolize: putting auxiliary files in `.'.
    libtoolize: copying file `./ltmain.sh'
    libtoolize: You should add the contents of the following files to `aclocal.m4':
    libtoolize: `/usr/share/aclocal/libtool.m4'
    libtoolize: `/usr/share/aclocal/ltoptions.m4'
    libtoolize: `/usr/share/aclocal/ltversion.m4'
    libtoolize: `/usr/share/aclocal/ltsugar.m4'
    libtoolize: `/usr/share/aclocal/lt~obsolete.m4'
    Running glib-gettextize... Ignore non-fatal messages.
    Copying file mkinstalldirs
    Copying file po/Makefile.in.in
    Please add the files
    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
    progtest.m4
    from the /aclocal directory to your autoconf macro directory
    or directly to your aclocal.m4 file.
    You will also need config.guess and config.sub, which you can get from
    ftp://ftp.gnu.org/pub/gnu/config/.
    Running intltoolize...
    Running gtkdocize...
    Running aclocal-1.10...
    Running autoconf...
    Running autoheader...
    Running automake-1.10...
    Processing ./trunk/configure.in
    Running libtoolize...
    libtoolize: You should add the contents of the following files to `aclocal.m4':
    libtoolize: `/usr/share/aclocal/libtool.m4'
    libtoolize: `/usr/share/aclocal/ltoptions.m4'
    libtoolize: `/usr/share/aclocal/ltversion.m4'
    libtoolize: `/usr/share/aclocal/ltsugar.m4'
    libtoolize: `/usr/share/aclocal/lt~obsolete.m4'
    Running glib-gettextize... Ignore non-fatal messages.
    Copying file mkinstalldirs
    Copying file po/Makefile.in.in
    Please add the files
    codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4
    progtest.m4
    from the /aclocal directory to your autoconf macro directory
    or directly to your aclocal.m4 file.
    You will also need config.guess and config.sub, which you can get from
    ftp://ftp.gnu.org/pub/gnu/config/.
    Running intltoolize...
    intltoolize: 'po/Makefile.in.in' is out of date: use '--force' to overwrite
    make: *** No targets specified and no makefile found. Stop.
    ==> ERROR: Build Failed.
    Aborting...
    Error: Makepkg was unable to build gnome-main-menu-svn package.
    Any help is appreciated. I really love that menu!

    I ran yaourt as root to install gnome-main-menu-svn, and it got past that part. Looks like that was a problem with permissions that also needs to be fixed.
    Now its telling me that I don't have a high enough version of libnm-glib, it is asking for >= 0.7.0, and I have 0.6.6. I checked the the repos and there does not seem to be a 0.7.0 version or higher available. A suggestion on the gnome-main-menu-svn package page makes a suggestion, but Im not sure how to go about it
    current revision (451) doesn't work with networkmanager 0.6.6 from extra. Revision 401 from http://svn.gnome.org/svn/gnome-main-men … nome-2-22/ works for now.
    So I either need to get revision 401 from the svn instead, or get networkmanager and its libs at version 0.7.0
    How could I go about doing any of these things. I am not familiar with SVN, so go easy on me.
    EDIT:
    I found a package called networkmanager-beta which seems to be version 0.7.0. Trying to install that with yaourt is unsuccessful as well.
    NetworkManager-nm-netlink.o: In function `nm_netlink_get_default_handle':
    nm-netlink.c:(.text+0x38): undefined reference to `nl_handle_alloc_nondefault'
    nm-netlink.c:(.text+0x63): undefined reference to `nl_handle_set_pid'
    collect2: ld returned 1 exit status
    make[3]: *** [NetworkManager] Error 1
    make[3]: Leaving directory `/tmp/yaourt-tmp-root/aur-networkmanager-beta/networkmanager-beta/src/NetworkManager-0.7.0/src'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/tmp/yaourt-tmp-root/aur-networkmanager-beta/networkmanager-beta/src/NetworkManager-0.7.0/src'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/tmp/yaourt-tmp-root/aur-networkmanager-beta/networkmanager-beta/src/NetworkManager-0.7.0'
    make: *** [all] Error 2
    ==> ERROR: Build Failed.
    Aborting...
    Error: Makepkg was unable to build networkmanager-beta package.
    Also had to do yaourt as root to get that far. Why is it that when you use yaourt as root, it advises you to switch to a normal user, and then the packages will not install correctly unless you do?
    So far I have been very turned off by the AUR
    Last edited by lungdart (2008-05-17 12:59:29)

  • I don't have an "Adobe ebooks" icon on my Pandigital Novel

    I would like to download books from the library onto my Pandigital Novel.  I have no problems buying books from Barnes and Noble and downloading them but I can't do it for library books. 
    Here's what I know so far: 
    1.  I have to download the book into my Adobe Digital Edition on my PC and then transfer it to my ereader.  Both devices have been successfully authorized. 
    2.  I have successfully done this and dragged the book into the bookshelf for my ereader when it's connected to my PC. 
    3.  I unplugged my ereader and waited for it to show up in my library which it never did. 
    4.  I have looked up different topics in forums and I think I may have found my problem - apparently I am supposed to have an icon in my applications menu for "Adobe ebooks" - however, I don't have one.  I have scrolled all the way over to the right of that menu and there's nothing that even resembles it.  I tried to download some things from Adobe to make it appear but I'm not having any luck.  I know I'm missing something because when I go to "My Computer" on my PC and look it up in the file for my ereader, it shows that it's there...I just need to figure out how to download it.  When I do a search using my ereader, it finds no files by that name. 
    I'm lost, please help!

    PART ONE:
    1) Go to http://www.adobe.com/products/digitaledi…
    2) Scroll down. You should see a brown button that says "Install." Click.
    3) Follow the given instructions.
    4) Once ADE is downloaded, it will ask you to register and active your new program. To do so, you must go back to the website you started at (see above). In the top right hand corner, click "sign in."
    5) On the left hand side of the screen, click the gold button that says "Create and Adobe Account." Follow the given instructions and provide the information in the required fields.
    6) Once you have successfully registered, go back to the ADE program you downloaded and activate your program by giving the email and password you used when creating your adobe account.
    PART TWO:
    1) Go to your local library's website. There should be an option for downloadable media.
    2) Choose your book(s) and proceed to 'checkout.'
    3) Underneath all of your chosen book(s), there will be a button that says "download." Click this and download each eBook individually to an easy-to-find folder on your computer.
    4) Go to the folder on your computer that contains your downloaded eBooks. Open them. They should open into the Adobe Digital Editions program that you just installed.
    PART THREE:
    1) Plug your Pandigital Novel into your computer.
    2) On the program Adobe Digital Editions, underneath the "Bookshelves" on the left hand side of the screen, there should be an option that says "Pandigital Novel" (or some variation of that).
    3) Drag your downloaded library books into that bookshelf.
    4) Unplug your Pandigital Novel.
    PART FOUR:
    1) Go to your home screen.
    2) At the bottom of your PN (underneath the Bookstore and Library), scroll the Application Quick Launch Bar to the right. You should see an application that says "Adobe eBooks." All of your downloaded library books should be there.
    **Don't forget that they are library books and must be returned! To do so:
    1) Open your Adobe Digital Editions program.
    2) On the left hand side underneath the "Bookshelves," open the Borrowed books.
    3) Select the book that you would like to return. A small arrow should appear to the left of the book title. Click this and select "Return Borrowed Item."

  • Retrieve Novell Username when not logged into Portal

    Hi,
    Is there a way I can store the users Novell username into a variable? This would be done in a report, displayed on the Portal homepage. I require this functionality before the user logs into the portal, so I can't use PORTAL.wwctx_api.get_user.
    Thanks

    Hi,
    IE is sharing the cookies between sessions.
    If you open IE and open another window by clicking <CTRL>+N or menu File >> New Window you have the cookies shared.
    If you open another IE by clicking on the IE icon you will have two seperate IEs which do not share cookies.
    Either you teach your users to use the "logoff" link in the portal header or code a new portal application that automatically destroys the portal cookie when the users leave the portal page...
    Hth,
    Michael

  • Creating multiple  Spry menu bars in one site

    I've been creating a website and I am required to use multiple templates to manage all the different sections of the site.  To make it much less of a hassle, once I created one template, I simply saved that template as another template so I would not have to start all over again.  On the first template I created a spry menu bar with a certain amount of buttons.  And because I created the other templates with that template, those templates had the same menu bar containing the same settings.  The problem is, because of the specified settings of the spry menu bar, if I change the amount of buttons from the original to one less, the whole bar on that template will get off center and messed up because the settings for the menu bar are not set to that certain amount of buttons, but if I change the settings to suite that amount of buttons, then the settings for all the templates change and that messes up the other menu bars on those templates because they have a different amount of buttons.  Currently my templates all contain 10 buttons and I am wanting to create a new menu bar with only about 4 - 6 buttons.  I thought going up to insert and inserting a brand new menu bar would do the trick but when I did that it inserted a menu bar that had all the settings of the already-created menu bar, (ie same background images, and hovers, etc.) as well as the width which, because the width is suited for 10 buttons, it does not properly make the default 4 button menu bar center correctly.  And if I try to change the settings on this menu bar then the same thing happens with everything changing and getting messed up.
    So after this long explanation, my question is, how can I insert multiple spry menu bars into one site that are not correlated with each other in terms of all the settings so that when changed, will not affect each other?  I am guessing I am having this problem because I created all the templates from one template so they are all interlocked, but the page that I tried to insert the brand new menu bar on was not created from any of the templates and was the first page I made at the very start.
    http://phonytrojanmusic.zxq.net/ Here is the link to the site. The first page that opens up is the page that I tried to insert the brand new menu bar on.  If you click on band choir or elementary you will see the menu bars with 10 buttons that are all interlocked in terms of settings.  Also, I'd like to note that if I delete a button in one template, it does not delete that same button in the other templates, nor does it add a button to the other templates if I add one.  Only the physical appearance changes because the settings are meant for only one amount of buttons.  Sorry for the novel!

    Alright well I just tried to use 2 complete different templates.  I created one brand new template from scratch, added the menu bar, gave it an ID of "band", and configured it to suite 10 buttons accordingly.  Then I started off from scratch again with a starting html page with a different css style sheet and added the menu bar and gave it a different ID of "choir" but the settings of the two different bars still act as one set of settings!  I dont know how to fix this problem.  Please tell me what to post if anything will help you. Im guessing the solution is very simple but I have tried everything.
    here is the code for the two different menu bars (one in each template)
    choir
      <ul id="Choir" class="MenuBarHorizontal">
          <li><a href="#">Programs</a>      </li>
          <li><a href="#">Home</a></li>
          <li><a href="#">Blog</a>      </li>
          <li><a href="#">Directors</a></li>
    <li><a href="#">Gallery</a></li>
    <li><a href="#">Forms</a></li>
          <li><a href="#">Calendar</a></li>
          <li><a href="#">Links</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
    band
    <ul id="Band" class="MenuBarHorizontal">
          <li><a href="http://phonytrojanmusic.zxq.net/index.html">Programs</a>      </li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/bandmain.html">Home</a></li>
          <li><a href="http://centerburgtrojanmusic.blogspot.com/">Blog</a></li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/directors.html" class="MenuBarItemSubmenu">Directors</a>
            <ul>
              <li><a href="http://phonytrojanmusic.zxq.net/band/directors/cooper.html">Cooper</a></li>
              <li><a href="http://phonytrojanmusic.zxq.net/band/directors/teschler.html">Teschler</a></li>
              <li><a href="http://phonytrojanmusic.zxq.net/band/directors/lee.html">Lee</a></li>
            </ul>
          </li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/shows.html" class="MenuBarItemSubmenu">Shows</a>
            <ul>
              <li class="MenuBarHorizontal"><a href="http://phonytrojanmusic.zxq.net/band/shows/field.html">Field</a></li>
              <li><a href="http://phonytrojanmusic.zxq.net/band/shows/concert.html">Concert</a></li>
            </ul>
          </li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/gallery.html">Gallery</a></li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/forms.html">Forms</a></li>
          <li><a href="http://trojanmusic.org/cal.html">Calendar</a></li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/links.html">Links</a>      </li>
          <li><a href="http://phonytrojanmusic.zxq.net/band/contact.html">Contact</a></li>
        </ul>
    I currently do not have any links attached to any of the buttons in the choir bar.  Something went wrong and now I have to make the whole site over again so it is not very accessible.  Please post back asap!

  • Unable to Delete a Menu.

    Hi,
    I am having problems removing a menu (NNTP Newsgroup Actions).
    I can successfully delete all the menu items below this menu but then when
    I then try to delete the menu itself, using the Delete method of the
    GWMenu object, no error is raised but the menu remains visible in the
    client.
    An overview of how my C3PO works:
    - Read a text file containing the menu items to be removed. This is
    performed during the Init function of the CommandFactory. A menu item is
    specified by the full 'path' e.g. Actions|NNTP Newsgroup Actions|New
    Discussion. The menu items are stored in a (globally declared) Scripting
    dictionary object.
    - In the CustomiseMenu function I call a procedure to iterate through the
    menu items to be removed. Beginning with the top level menu object, the
    code drills down the menu path identifying each menu level. If the menu
    item is found, the menu type is determined (i.e. GWMenu or GWMenuAction)
    and an appropriate object is instantiated and the Delete method called. I
    have pasted the functions below.
    - The CustomizeMenu function returns False so that the changes are not
    volatile and applied the first time an instance of a context is created.
    (Assume that the menus are removed regardless of the context.)
    Can anyone suggest what I am doing wrong?
    Many thanks in advance,
    Andy
    My environment:
    GroupWise client version: 7.0.2 (6/4/2007)
    Dev Language VB6 SP6
    OS: Windows XP
    Public Function CustomizeMenu(sGWContext As String, objGWMenu As Object)
    As Boolean
    'The changes are not volatile.
    CustomizeMenu = False
    'Remove the menu items listed in the global dictionary object:
    gdicMenuItems.
    Call UpdateLogFile("")
    Call UpdateLogFile("")
    Call
    UpdateLogFile("*********************************** *************************************")
    Call UpdateLogFile("*")
    Call UpdateLogFile("* CustomizeMenu Called for Context: " & sGWContext)
    Call UpdateLogFile("*")
    Call
    UpdateLogFile("*********************************** *************************************")
    Call UpdateLogFile("")
    Call RemoveMenus(objGWMenu)
    End Function
    Private Sub RemoveMenus(ByRef objTopMenu As Object)
    'This procedure goes through the list of menu items stored in the global
    dictionary object: gdicMenuItems
    'and if they exist, the item is deleted.
    'A typical entry in the dictionary object is "File|New|Document Version"
    'The last component in the menu item path is the menu item that is deleted.
    Dim objMenu As Object
    Dim objGWMenuAction As C3POTypeLibrary.IGWMenuAction
    Dim objGWMenu As C3POTypeLibrary.IGWMenu
    Dim varFullMenuPath As Variant ' Menu path found in dictionary
    object. e.g. "File|New|Document Version"
    Dim strFullMenuPath As String ' The full menu path as a string.
    Dim arrFullMenuPath() As String ' Menu path as an array, split by the
    '|' character.
    Dim strMenuItemName As String ' Menu path element e.g. File or New
    or Document Version.
    Dim lngMenuItemIdx As Long ' Loop index for drilling down the
    menu path.
    Dim blnMenuFound As Boolean ' Flag indicating whether the menu was
    found.
    Dim strMsgTxt As String ' Message box text.
    On Error Resume Next
    Call UpdateLogFile("RemoveMenus Procedure Started.")
    Call UpdateLogFile("")
    'Go through all the menus to be removed.
    For Each varFullMenuPath In gdicMenuItems
    'Convert the variant object representing the full menu path into a
    string.
    strFullMenuPath = CStr(varFullMenuPath)
    Call UpdateLogFile("Strip the menu item: " & strFullMenuPath & ".")
    'Split the menu into its component parts.
    arrFullMenuPath = Split(CStr(varFullMenuPath), "|")
    'Set the Menu object to represent the top level menu.
    Set objMenu = objTopMenu
    'Assume the menu can not be found.
    blnMenuFound = False
    'Drill down the menu path.
    For lngMenuItemIdx = LBound(arrFullMenuPath) To UBound(arrFullMenuPath)
    strMenuItemName = arrFullMenuPath(lngMenuItemIdx)
    'Set the Menu item object to be the desired child menu item.
    Set objMenu = objMenu.MenuItems.Item(strMenuItemName)
    Select Case Err.Number
    Case 0
    ' The child menu item was found.
    Call UpdateLogFile(String(lngMenuItemIdx, vbTab) & "Found
    menu item: '" & strMenuItemName & "'.")
    blnMenuFound = True
    Case 91
    ' The menu does not exist - therefore it does not have to
    be removed.
    Err.Clear
    Call UpdateLogFile(" * Unable to find the menu item: '" &
    strMenuItemName & "' as part of: " & strFullMenuPath & " in this context.")
    blnMenuFound = False
    Exit For
    Case Else
    strMsgTxt = "* An unexpected error was raised in the
    'RemoveMenus' procedure when attempting to " & _
    "instantiate an object representing a menu." &
    vbCrLf & vbCrLf & _
    "The full menu path was: " & strFullMenuPath & vbCrLf
    & vbCrLf & _
    "The menu item name was '" & strMenuItemName & "'." &
    vbCrLf & vbCrLf & _
    "The error number was " & Err.Number & " with the
    description:" & _
    vbCrLf & vbCrLf & Err.Description & vbCrLf & vbCrLf &
    cstrHelp
    Call UpdateLogFile(strMsgTxt)
    MsgBox strMsgTxt, vbExclamation, cstrAppTitle
    Err.Clear
    blnMenuFound = False
    Exit For
    End Select
    Next lngMenuItemIdx
    'If the menu item was found, try to delete it.
    If blnMenuFound = True Then
    Call UpdateLogFile("Menu Identified: " & strFullMenuPath & ".
    Caption: " & objMenu.Caption)
    ' If the menu has previously been stripped, the objMenu object may
    be 'Nothing'.
    ' In this case, do not attempt to remove it.
    Call UpdateLogFile("The menu type: " & TypeName(objMenu))
    If TypeName(objMenu) = "Nothing" Then
    Call UpdateLogFile("* The menu type is 'Nothing' therefore the
    menu no longer exists in this context.")
    Else
    Call UpdateLogFile("Stripping the menu ...")
    Select Case objMenu.ObjType
    Case C3POTypeLibrary.GWOBJTYPE.eGW_GWMENUACTION
    Set objGWMenuAction = objMenu
    If Err.Number <> 0 Then
    Call UpdateLogFile("* Failed to set a GW Menu
    Action type object to this menu. Err Number: " & Err.Number)
    Call UpdateLogFile(Err.Description)
    Err.Clear
    Else
    objGWMenuAction.Delete
    If Err.Number <> 0 Then
    Call UpdateLogFile("* Failed to delete a GW
    Menu Action type object. Err Number: " & Err.Number)
    Call UpdateLogFile(Err.Description)
    Err.Clear
    Else
    Call UpdateLogFile("Stripped the action menu
    item: " & strFullMenuPath & ".")
    End If
    End If
    Case C3POTypeLibrary.GWOBJTYPE.eGW_GWMENU
    Set objGWMenu = objMenu
    Call UpdateLogFile("The GW Menu has " &
    objGWMenu.MenuItems.Count & " sub menu items.")
    Call UpdateLogFile("The GW Menu Parent: " &
    objGWMenu.Parent.Caption)
    If Err.Number <> 0 Then
    Call UpdateLogFile("* Failed to set a GW Menu type
    object to this menu. Err Number: " & Err.Number)
    Call UpdateLogFile(Err.Description)
    Err.Clear
    Else
    objGWMenu.Delete
    If Err.Number <> 0 Then
    Call UpdateLogFile("* Failed to delete a GW
    Menu type object. Err Number: " & Err.Number)
    Call UpdateLogFile(Err.Description)
    Err.Clear
    Else
    Call UpdateLogFile("Stripped the menu item: "
    & strFullMenuPath & ".")
    End If
    End If
    End Select
    End If
    End If
    Next ' Next (full) menu path.
    Set objMenu = Nothing
    Set objGWMenuAction = Nothing
    Set objGWMenu = Nothing
    End Sub

    Hi,
    Novell informs me that the behaviour described below is normal. It is not
    possible to delete any standard menu object (i.e. any client menu provided
    by Novell). However, you can delete custom-made menus.
    I think the documentation is misleading in that it states that we can not
    delete 'root' menus. I understood this to be only the top level menus,
    but this is not the case. We can not delete any standard client menu
    which has child menu items regardless of their position in the menu
    structure.
    Thanks,
    Andy
    Andy Cooper wrote:
    > Hi,
    > I am having problems removing a menu (NNTP Newsgroup Actions).
    > I can successfully delete all the menu items below this menu but then when
    > I then try to delete the menu itself, using the Delete method of the
    > GWMenu object, no error is raised but the menu remains visible in the
    > client.
    > An overview of how my C3PO works:
    > - Read a text file containing the menu items to be removed. This is
    > performed during the Init function of the CommandFactory. A menu item is
    > specified by the full 'path' e.g. Actions|NNTP Newsgroup Actions|New
    > Discussion. The menu items are stored in a (globally declared) Scripting
    > dictionary object.
    > - In the CustomiseMenu function I call a procedure to iterate through the
    > menu items to be removed. Beginning with the top level menu object, the
    > code drills down the menu path identifying each menu level. If the menu
    > item is found, the menu type is determined (i.e. GWMenu or GWMenuAction)
    > and an appropriate object is instantiated and the Delete method called. I
    > have pasted the functions below.
    > - The CustomizeMenu function returns False so that the changes are not
    > volatile and applied the first time an instance of a context is created.
    > (Assume that the menus are removed regardless of the context.)
    > Can anyone suggest what I am doing wrong?
    > Many thanks in advance,
    > Andy
    > My environment:
    > GroupWise client version: 7.0.2 (6/4/2007)
    > Dev Language VB6 SP6
    > OS: Windows XP
    > Public Function CustomizeMenu(sGWContext As String, objGWMenu As Object)
    > As Boolean
    > '
    > 'The changes are not volatile.
    > CustomizeMenu = False
    > '
    > 'Remove the menu items listed in the global dictionary object:
    > gdicMenuItems.
    > Call UpdateLogFile("")
    > Call UpdateLogFile("")
    > Call
    >
    UpdateLogFile("*********************************** *************************************")
    > Call UpdateLogFile("*")
    > Call UpdateLogFile("* CustomizeMenu Called for Context: " & sGWContext)
    > Call UpdateLogFile("*")
    > Call
    >
    UpdateLogFile("*********************************** *************************************")
    > Call UpdateLogFile("")
    > '
    > Call RemoveMenus(objGWMenu)
    > '
    > End Function
    > Private Sub RemoveMenus(ByRef objTopMenu As Object)
    > '
    > 'This procedure goes through the list of menu items stored in the global
    > dictionary object: gdicMenuItems
    > 'and if they exist, the item is deleted.
    > '
    > 'A typical entry in the dictionary object is "File|New|Document Version"
    > '
    > 'The last component in the menu item path is the menu item that is deleted.
    > '
    > Dim objMenu As Object
    > Dim objGWMenuAction As C3POTypeLibrary.IGWMenuAction
    > Dim objGWMenu As C3POTypeLibrary.IGWMenu
    > Dim varFullMenuPath As Variant ' Menu path found in dictionary
    > object. e.g. "File|New|Document Version"
    > Dim strFullMenuPath As String ' The full menu path as a string.
    > Dim arrFullMenuPath() As String ' Menu path as an array, split by the
    > '|' character.
    > Dim strMenuItemName As String ' Menu path element e.g. File or New
    > or Document Version.
    > Dim lngMenuItemIdx As Long ' Loop index for drilling down the
    > menu path.
    > Dim blnMenuFound As Boolean ' Flag indicating whether the menu was
    > found.
    > Dim strMsgTxt As String ' Message box text.
    > '
    > On Error Resume Next
    > '
    > Call UpdateLogFile("RemoveMenus Procedure Started.")
    > Call UpdateLogFile("")
    > '
    > 'Go through all the menus to be removed.
    > For Each varFullMenuPath In gdicMenuItems
    > '
    > 'Convert the variant object representing the full menu path into a
    > string.
    > strFullMenuPath = CStr(varFullMenuPath)
    > Call UpdateLogFile("Strip the menu item: " & strFullMenuPath & ".")
    > 'Split the menu into its component parts.
    > arrFullMenuPath = Split(CStr(varFullMenuPath), "|")
    > '
    > 'Set the Menu object to represent the top level menu.
    > Set objMenu = objTopMenu
    > '
    > 'Assume the menu can not be found.
    > blnMenuFound = False
    > '
    > 'Drill down the menu path.
    > For lngMenuItemIdx = LBound(arrFullMenuPath) To UBound(arrFullMenuPath)
    > strMenuItemName = arrFullMenuPath(lngMenuItemIdx)
    > 'Set the Menu item object to be the desired child menu item.
    > Set objMenu = objMenu.MenuItems.Item(strMenuItemName)
    > Select Case Err.Number
    > Case 0
    > ' The child menu item was found.
    > Call UpdateLogFile(String(lngMenuItemIdx, vbTab) & "Found
    > menu item: '" & strMenuItemName & "'.")
    > blnMenuFound = True
    > Case 91
    > ' The menu does not exist - therefore it does not have to
    > be removed.
    > Err.Clear
    > Call UpdateLogFile(" * Unable to find the menu item: '" &
    > strMenuItemName & "' as part of: " & strFullMenuPath & " in this context.")
    > blnMenuFound = False
    > Exit For
    > Case Else
    > strMsgTxt = "* An unexpected error was raised in the
    > 'RemoveMenus' procedure when attempting to " & _
    > "instantiate an object representing a menu." &
    > vbCrLf & vbCrLf & _
    > "The full menu path was: " & strFullMenuPath & vbCrLf
    > & vbCrLf & _
    > "The menu item name was '" & strMenuItemName & "'." &
    > vbCrLf & vbCrLf & _
    > "The error number was " & Err.Number & " with the
    > description:" & _
    > vbCrLf & vbCrLf & Err.Description & vbCrLf & vbCrLf &
    > cstrHelp
    > Call UpdateLogFile(strMsgTxt)
    > MsgBox strMsgTxt, vbExclamation, cstrAppTitle
    > Err.Clear
    > blnMenuFound = False
    > Exit For
    > End Select
    > Next lngMenuItemIdx
    > '
    > 'If the menu item was found, try to delete it.
    > If blnMenuFound = True Then
    > Call UpdateLogFile("Menu Identified: " & strFullMenuPath & ".
    > Caption: " & objMenu.Caption)
    > ' If the menu has previously been stripped, the objMenu object may
    > be 'Nothing'.
    > ' In this case, do not attempt to remove it.
    > Call UpdateLogFile("The menu type: " & TypeName(objMenu))
    > If TypeName(objMenu) = "Nothing" Then
    > Call UpdateLogFile("* The menu type is 'Nothing' therefore the
    > menu no longer exists in this context.")
    > Else
    > Call UpdateLogFile("Stripping the menu ...")
    > Select Case objMenu.ObjType
    > Case C3POTypeLibrary.GWOBJTYPE.eGW_GWMENUACTION
    > Set objGWMenuAction = objMenu
    > If Err.Number <> 0 Then
    > Call UpdateLogFile("* Failed to set a GW Menu
    > Action type object to this menu. Err Number: " & Err.Number)
    > Call UpdateLogFile(Err.Description)
    > Err.Clear
    > Else
    > objGWMenuAction.Delete
    > If Err.Number <> 0 Then
    > Call UpdateLogFile("* Failed to delete a GW
    > Menu Action type object. Err Number: " & Err.Number)
    > Call UpdateLogFile(Err.Description)
    > Err.Clear
    > Else
    > Call UpdateLogFile("Stripped the action menu
    > item: " & strFullMenuPath & ".")
    > End If
    > End If
    > Case C3POTypeLibrary.GWOBJTYPE.eGW_GWMENU
    > Set objGWMenu = objMenu
    > Call UpdateLogFile("The GW Menu has " &
    > objGWMenu.MenuItems.Count & " sub menu items.")
    > Call UpdateLogFile("The GW Menu Parent: " &
    > objGWMenu.Parent.Caption)
    > If Err.Number <> 0 Then
    > Call UpdateLogFile("* Failed to set a GW Menu type
    > object to this menu. Err Number: " & Err.Number)
    > Call UpdateLogFile(Err.Description)
    > Err.Clear
    > Else
    > objGWMenu.Delete
    > If Err.Number <> 0 Then
    > Call UpdateLogFile("* Failed to delete a GW
    > Menu type object. Err Number: " & Err.Number)
    > Call UpdateLogFile(Err.Description)
    > Err.Clear
    > Else
    > Call UpdateLogFile("Stripped the menu item: "
    > & strFullMenuPath & ".")
    > End If
    > End If
    > End Select
    > End If
    > End If
    > '
    > Next ' Next (full) menu path.
    > '
    > Set objMenu = Nothing
    > Set objGWMenuAction = Nothing
    > Set objGWMenu = Nothing
    > '
    > End Sub

  • [TUTORIAL] Context Menu to export EML files

    Hello there folks!
    I'm pretty new to the topic of C3PO, GW and all the Novell stuff and one of my tasks was to "code an export mechanism for GW8 thats lats us save e-mails to our storage system". Ok, that was a hammer. But wrapping my head around it and starting to error out the things got me pretty far and I guessed it was tutorial material. So here we go:
    @Moderators: This is the thread that has everything in it. the other one can be deleted.
    This tutorial is intendend for C# only. I don't like VB and I'm too dumb for C++ so if you need it for another dialect you need to work it out your self.
    Agenda:
    Needed packages
    C3PO wizard
    Loading to Visual Studio 2010
    Needed Imports/References
    Simple MessageBoxing
    Export Code
    Registering and caching the .DLL
    Testing (please help me with a better way here)
    1. Needed packages
    the novell-gwc3po-devel-2012.11.15.zip file (unzip this after downloading)
    an installed version of Visual Studio 2012 C# (or if you want to work with a different dialect choose another)
    cmd access to some of the registering tools:
    It may be the best thing to set tose paths up in you env variables. Allthough when running the cmd with administrator privileges you can't use regasm from env variables and need to cd to the directory.
    RegAsm (regasm.exe): C:\Windows\Microsoft.NET\Framework\v4.0.30319 (the version depends on the target)
    GACUtil (gacutil.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    StrongName (sn.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    a good beverage :D (you should obtain multiple of these :D)
    2. The C3PO wizard
    In my case I wanted to add the functionality via the context menu. So the code executes when right-clicking on one or multiple messages displays another menu item and is clickable.
    This is pretty easy to realize via the C3PO wizard. You'll find it in the downloaded and extracted novell-gwc3po-devel-2012.11.15.zip from above. Start it (it is located in extracted-zip-folder/gwc3po-FILES/C3POWizard/C3POWizard.exe) and setup your project:
    Setup the project in the wizard step 1
    I usually setup the Wizard inside my Visual Studio 2010 projects folder, create a new folder there with the name of the project and check the options i want to have.
    In the next step I chose which type of View should display my custom context menu. Since I was only interested in exporting and working with e-mails I chose "GW.MESSAGE.MAIL" and added it to the bottom list via, you guessed it, "Add".
    Setup theView that invokes the new context menu item
    In the next step you I had to setup a new entry for the context menu. You could make side-droppable menus here etc. But for me a simple "Add Menu" was enough. Give it a name of your choice (beware: I'm yet to find out where to change this setting in the source files).
    Creating a Menu Item in step 3
    Click through next and the wizard will sum up you choices. In the next dialog window you will be prompted to specify the language you want the code to be generated. I chose .NET C#.
    In the prompt after that you will be asked if the wizard should create a .DLL-project. You click yes.
    Quit the wizard with the "Done" button.
    3. Loading to Visual Studio 2010
    Open up your Visual Studio and go to File -> Open Project. Navigate to the folder where you just created the files with the C3PO-Wizard. and open up the .csproj file.
    All the files get loaded and it seems quite well. but now it's time for some other stuff: Signing, or better, providing a key for signing.
    Allthough the README.txt (also in your project folder) states this is not neccessarily needed I did not get it to work without a key file.
    Open up a terminal and tpye in sn /? to see if the environment variables work. If not you can yuse the abolute path to sn (see: 1: Needed packages). If everything works as expected you can generate your keyfile with sn -k <PathToYourProject>\Archive.snk.
    In Visual Studio, go to Project -> <ProjectName>-Properties -> Signing -> Sign assembly [x] -> Search and pick the .snk-file you just created.
    Good. A first compilation of the project with F6 should rumble through without problems. Go to <ProjectFolder>\bin\Release and copy the .dll files to <GroupWiseInstallPath>.
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: [I]regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    I have not found a method to post-build execute a script that does that. Problem is the copying and the gacutil caching (both must be done as administrator).
    IIf everything worked you see a new entry in the context menu when right-clicking a mail in Groupwise. When you click it, there will appear a message box.
    The MessageBox is defined in GWCommand.cs L. ~125
    4. Needed Imports/References
    Since we got the skeleton to compile and function properly, it's time to get our own code in there. FOr rapid prototyping I do all the stuff in GWCommand.cs.
    Go to Project -> add Reference -> COM and select "C3POTypeLibrary", "GroupWareTypeLibrary, "GroupWiseCommander", "GroupWiseConnectorLibrary" and click OK. The selected entries now appear in the project explorer.
    5. Simple MessageBoxing
    A thing I like to do (because I'm not a very good programmer) is to get all sorts of infos to get displayed with
    Code:
    MessageBox.Show();
    Just fling it in the code and see what get's where etc. An important thing is allready in the comments of the file.
    It is this line:
    Code:
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    . Uncomment it and play around with the myCL-object in your code.
    The myCL has some properties we will use later on such as myCL.SelectedMessages which is exactly what we need for our archive functionality.
    6. Export Code
    Now we get to the code:
    With the
    Code:
    ClientState
    dug up in the code we can pass the
    Code:
    SelectedMessages
    into a
    Code:
    MessageList
    . Over this MessageList we will iterate and save each
    Code:
    Message
    with the so called
    Code:
    GroupWiseCommander
    to our disk. well that sounds simple. And, well after digging through a lot of threads here on the forum and the documentation, it is.
    Here is the Execute() method from GWCommand.cs:
    It has comments that should serve as a documentation.
    Code:
    public void Execute()
    try
    switch (m_PersistentID)
    case WIASSArchivButton.vWIASS:
    //C3PO WIZARD Put execute command code here for WIASS Context menu.
    /* this was in the comments and is essential!
    * the myCL object provides us everything we need to interact with the messages */
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    // get the selected messages
    object o = myCL.SelectedMessages;
    // and convert the SelectedMessages to a MessagesList
    MessageList ml = (MessageList)o;
    // iterate over all the selected Messages
    // this was tricky: the index of the MessageList starts by 1 and not at 0
    for (int i = 1; i <= ml.Count; i++)
    // the .Item() method expects either a string or a long
    // see http://www.novell.com/documentation/developer/groupwise_sdk/gwsdk_gwobjapi/data/h20s5bdo.html
    long index = (long)i;
    // instantiate a Message object to get access to the different properties like subject, sender etc
    GroupwareTypeLibrary.Message oMessage = (GroupwareTypeLibrary.Message)ml.Item(index);
    // instantiate a GroupWiseCommander
    // this is the interface to the TOKEN API
    // TOKENS: https://www.novell.com/developer/documentation/gwtoken/index.html
    GroupWiseCommander.GWCommander cmdr = new GroupWiseCommander.GWCommander();
    // the GWCommander has an Execute() method that is able to take certain tokens kind of like SQL
    // lets build the token (the complete list is huge and awesome) to save our Messages
    // ItemSaveMessage(): https://www.novell.com/developer/documentation/gwtoken/gwtokens/data/hbt0bd7x.html
    string tokenCommand = "ItemSaveMessage(\"" + oMessage.MessageID + "\"; \"C:\\archiv\\" + oMessage.MessageID + ".eml\"; 900)";
    /* what happens here ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is that we build us a TOKEN command that the
    * GWCommander is able to execute.
    * the actual command is ItemSaveMassge()
    * everything between the semi-colons are the parameters:
    * \"" + oMessage.MessageID + "\" : builds an ANSISTRING of the MessageID which we get from the oMessage onject
    * \"C:\\archiv\\" + oMessage.MessageID + ".eml\" : build an ANSISTRING of the output filename
    * 900 is the type we want to export. 900 stands for Mime
    * CAUTION:In this example I use C:\archive\ as the destination folder. It must exist and be writable to the program
    // now that we have setup our command we can get it executed by the commander
    // the result is sort of a callback variable
    string result ="";
    cmdr.Execute(tokenCommand, out result);
    /* here can the error handling be done with the result string
    break;
    default:
    MessageBox.Show("Unsupported Case", "Error", MessageBoxButtons.OK);
    break;
    //A way to get the GroupWise client state with newest interface
    //C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    //uncomment the code below to unblock the base command
    //IGWCommand baseCmd = (IGWCommand)WIASSArchivButton.g_C3POManager.CreateGWCommand(m_objBaseCmd);
    //baseCmd.Execute();
    catch (Exception e)
    MessageBox.Show("Error Executing GWCommand: " + m_PersistentID.ToString() + " Error: " + e.Message);
    return;
    7. Registering and caching the .DLL
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    8. Testing (please help me with a better way here)
    Is there a good way to hook every thing up together to jsut stay in VS , compile, files get copied, registered, cached and GW starts?
    Thanks for reading!
    I wrote this up to have a documentation for myself and others. please let em know if you need help or anything is missing or not clear. It's certainly not a total noob guide and I expect a bit of knowledge to be honest.
    Regards
    Sebastian

    Originally Posted by Username951
    Multiple email selection should be possible, but only those emails that are fitting some requirements should be stored finally in database.
    One requirement is for example that a keyword like "ISSUE" appears in the email subject
    (followed by a ":", a "space" and some characters that can be converted to an integer value),
    multiple, leading "Fwd: " and/or "Re: " should be handled well,
    subject should be handled case-in-sensitive.
    This sounds like you should implement some sort of SelectedMessagesValidator class just to keep it clean.
    Originally Posted by Username951
    So here are my find outs, remarks, etc.:
    1.) Visual Studio should be started under admin. rights.
    Then you can write a post-build event (batch) that copies, "regasm"s and "gacutil"s everything.
    As said this works fine for me.
    But note that unfortunately the paths to "regasm" and "gacutil" changed
    (compared to the time where you wrote your tutorial).
    Definitely. That way, as you mentioned, the post build scripts integrate very well.
    Originally Posted by Username951
    2.) The "Novell C3PO" wizard was downloaded and worked out as described in our tutorial.
    One important step was to use "GW.MESSAGE.MAIL" and not "...BROWSER..." or something else.
    I can not figure out, where you have the GW.BROWSER thing from, but in my examples I allways used GW.MESSAGES.MAIL
    Originally Posted by Username951
    The wizard created finally the basic C# (.NET framework 2.0) project.
    This project was loaded in Visual Studio 2013, automatically converted to "newest version"
    and finally was a ".sln" made.
    Yes. You can leave it at 2.0. I just have the 4.5 installed so i will target this version
    Originally Posted by Username951
    "oracle.dataaccess"
    -> Note that the "Copy Local" property must be set to "true"!
    (This property will be reset to "false" after a successful (re)build.
    So check this and change it to "true" for the first build!
    This must be made only once because after a successful build is this .dll known;
    keywords: GAC -> cached
    But note that "successful" means also that the post-build event ran flawless!)
    This is quite specific to your case since my example on exports a flat EML file to the hard drive
    Originally Posted by Username951
    2.) regasm.exe needs strong names.
    So a "cmd" with admin. right was opened,
    a
    "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\sn.exe" -k "C:\Users\<username>\Documents\Visual Studio 2013\Projects\GWSaveToDatabase\GWSaveToDatabase.sn k"
    fired
    and the created "GWSaveToDatabase.snk" file added to the solution.
    I don't want to be picky, but it's gacutil that needs the strong names. ragasm is not complaining
    Originally Posted by Username951
    (Development) Remarks
    1.) While I used the "C3PO" wizard first time I used "Add Menu" item - as you said in your tutorial! :-(
    And that is definitely wrong!
    See:
    The result was a C# project that does not show any new context menu entry.
    So I tried at the next wizard run "Add Menu Item".
    The wizard created again a C# project but still no new context menu entry in the GroupWise client.
    (And that after all needed steps
    like
    copy to GroupWise installation path,
    regasm and gacutil over all .dlls
    etc.
    were successful be made).
    It took a complete day to get the idea to "merge" the two wizard created projects!
    Why merging?
    Because the second project contained a "const" which were used in the switch statement of the "Execute()" method
    (with the same meaning like your "WIASSArchivButton.vWIASS" - see your code snippet above!)
    and the "CustomizeContextMenu(...)" method in "CommandFactory.cs" looked also different
    while the first project does not contained something similar.
    ( For example:
    The "CustomizeContextMenu(...)" method had more statements.
    And that made more sense to me compared to the first wizeard created C# project.
    Since I uploaded a better example this is obsolete.
    Originally Posted by Username951
    So I ASSUME that the second project would work but it does not because of regasm / gacutil behaviour.
    Means I believe it would work when all
    with regasm registered
    and
    with gacutil to the cache added "things"
    would be "un-registerd" and "un-cached".
    This is, as I assume, due to the Interop.C3POTypeLibrary.dll. This must me cached every time the project is build. maybe you could use gacutil -i Interop.C3POTypeLibrary.dll -f to force the recaching
    Originally Posted by Username951
    So, finally I took the second, wizard created C# project and copied the "const", adjusted the "Execute()"
    and "CustomizeContextMenu(...)" methods, etc.
    After that the context menu were shown in the GroupWise client!
    Thats is correct. But I never had to do this. The thing is, that the "Add Menu Item" is giving you the opputunity to specify a command, which the "Add Menu" doesn't.
    Originally Posted by Username951
    2.) The next issue was that the context menu was added as often as many emails were selected.
    Means: For example: Three selected emails ends up in three time added context menu.
    Solution:
    Checking
    var existsAlready = menuItems.Item("...");
    if (existsAlready != null)
    return;
    in "CustomizeContextMenu(...)" method and leaving the method under shown circumstances.
    I added a fix for this in the second post, but it isn't working in GW2012 anymore. I have a very ubly fix for that in my new code.
    Originally Posted by Username951
    3.) The by the wizard created registry path contained the version number "5.0".
    This may confuse but it is finally ok. No need to change here anything!
    On the other side:
    It will NOT work when the registry entry
    "SOFTWARE\\Novell\\GroupWise\\5.0\\C3PO\\DataTypes \\...."
    will be changed/"adjusted to that GroupWise client version you are currently using"!
    This is all part of the official documentation and wasn't touched by Novell since quite a long time.
    I think i will make a github repository in the futer as a proof of concept and kind of a accessable documentation for everyone.

  • Opening files from a Novell-Share takes about ten seconds

    Hi there,
    first a few information about our environment:
    Windows 7 Enterprise SP1 Clients with Novell Client installed in latest version
    Windows Server 2008 R2 DCs
    Network-shares based on Novell Netware
    When accessing files on Novell-Shares for the first time it takes about 10 seconds to open. Reopening it or any other file at this location again is totally fast. Waiting about 15 minutes after closing the file causes the lag again.
    We traced our client-side network traffic and saw many Netbios-queries which failed because our WINS-Servers do not know the Netware-Servers. So first it tried it using every WINS-Server (three in our env.) and then on broadcast in the local subnet three
    times. It got no answer and timed out.
    So the next step I tried was to disable Netbios-over-TCP/IP with the radio buttons in the Network Adapter settings. After a reboot, the problem reoccured, but there were no more Netbios queries in the trace.
    After days of searching for a solution I tried to stop the "TCP/IP-Netbios-Helper"-Windows Service on spec. And suddenly every network share access was totally fast. We tried this with other clients, too. Same behavior! We even did not disable
    the NetBios-over-TCP/IP setting. Stopping the service was all we needed to do.
    Unfortunately disabling the service causes problems. The Windows-Login fails with a message "No Logon servers available". Using the full qualified user name ("[email protected]") works. But then we saw that policies were not applied.
    Any ideas, what could cause the lag? Or is it possible to disable this service without any side-effects?
    Bye,
    Jürgen

    Hi,
    What is the result if we access files on other network shares?
    I found a thread in novell forum and suggestion is checking the provider order and put Netware first, open network and sharing center, change adapter settings, Select Advanced on the menu> Advanced settings, Click on Provide Order Tab and change order.
    And have you contact the novel support team? They're more familiar with this product.
    http://forums.novell.com/forum.php
    NOTE
    This
    response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you.
    Microsoft
    does not control these sites and has not tested any software or information found on these sites.
    Yolanda Zhu
    TechNet Community Support

  • What is the best way to format a novel w headers  w/o changing the ...

    what is the best way to format a novel w headers w/o changing the following pages. I've used Microsoft office initially, but publishing house uses a program called word perfect. I find that I have too many blank white pages no matter what i do! Have to fix pagination as well...Paul

    When you start you are offered templates under 2 categories "Word Processing" and "Layout", choose wisely.
    For header and footers yes, you will have to:
    +Menu > Insert > Section break+ at the bottom of the last page of the section you wish to preserve.
    Then you can change the next section and the 2 will stay different.
    Please read the Pages09_UserGuide.pdf, you need to know a lot more than this if your novel is ever to hit the streets.
    Peter

  • How do I put a password lock on my novel in PAGES?

    I want to put a password lock on my novel in Pages.  How do I do that?

    Page 36 in the Pages User Guide, downloadable from you Pages Help menu, has information on the issue. In the Inspector it looks like this

  • Add a link to the navigation / menu bar

    I would like to add a home button infront of the My Workspace button in the navigation/menu bar at the top of my Vibe page.
    What jsp of file should I edit to achieve this?

    I didn't look for that JSP, but used the branding for a high level "menu" AND wrote my own JSP to have a dynamic horizontal menu based on a portion of the workspace tree. The problem with changing Vibe's grey menu bar is that any upcoming updates might destroy your tweak. I have a few of those I need to keep in mind whenever an update or patch is done.
    With my JSP adding, removing or modifying workspaces/folders in the identified branch automagically changes on the fly generated horizontal menu with the next refresh/visit of the landing page using the JSP. The menu can be for any branch of your workspace tree. If a visitor doesn't have access to a workspace or folder, the menu skips right over it automagically as well.
    You can find this homebrewed JSP and key details at : Use this nifty JSP to make a dynamic horizontal menu from a branch of your workspace tree | Novell User Communities
    It allows you to reorder the menu items and even drop some workspaces/folders from the menu with a simple trick explained in the article.
    To see the JSP at work, go to CSDECSO - Conseil scolaire de district des écoles catholiques du Sud-Ouest or any of our 30 or so school web sites being implemented within our existing Vibe instance. You won't be able to change the tree branch, but you will see the menu. Some schools have slightly different menu choices, if you poke around long enough to find these differences. I just made them accessible to the public a few weeks ago.
    Don't forget to use the integrated GoogleTranslate (generally near the Vibe printer icon in upper right corner beneath the branding and grey menu) to convert the bulk of our sites' content to any one of the 60 or so languages supported by Google. I have an article explaining how this was done as well. Of course, it is an automated translation, so don't expect perfection and don't be offended if it comes out the wrong way.

  • How can I adjust ADE so that I can see the entire page of a graphic novel (.epub)?

    How can I adjust ADE so that I can see the entire page of a graphic novel (.epub)?

    You can reduce or increase the font size of the page according to the way you like. Click on "Reading" under the Menu option -> "EPUB Text Size". Select appropriate font size from this option.
    Reduce or decrease the font size so that you can see the entire page.

  • ZCM 10.3.4 Icons no longer display on Start Menu

    Hi,
    I am currently developing a ZCM Win7 COE and am creating new Win7 GPOs using the Microsoft Group Policy tools. ZCM bundle icons were displaying on the Star Menu as expected until I enabled the GPO setting to "Hide and disable all items on the desktop". Now the bundle icons no longer show. The agent appears to be running ok and I can see the bundles are still "available" from the agent proper sheets.
    Has anyone come accross this problem before and if so how was this resolved.
    Thanks in advance,
    Mark.

    hughesm,
    It appears that in the past few days you have not received a response to your
    posting. That concerns us, and has triggered this automated reply.
    Has your problem been resolved? If not, you might try one of the following options:
    - Visit http://support.novell.com and search the knowledgebase and/or check all
    the other self support options and support programs available.
    - You could also try posting your message again. Make sure it is posted in the
    correct newsgroup. (http://forums.novell.com)
    Be sure to read the forum FAQ about what to expect in the way of responses:
    http://forums.novell.com/faq.php
    If this is a reply to a duplicate posting, please ignore and accept our apologies
    and rest assured we will issue a stern reprimand to our posting bot.
    Good luck!
    Your Novell Product Support Forums Team
    http://forums.novell.com/

  • Novell Zenworks Application Window is empty

    The ZENworks "Application Window" on my Windows XP SP3 desktop computer is empty. Only the "[All]" node is displayed. In other words, there are no Novell-delivered Applications showing up in the "Application Window". So I cannot see the list of the applications that I could manually deliver to my computer. The strange thing is that IT support is able to deliver ZEN applications and patches to my desktop. They are also able to wake up my computer or establish remore desktop connection to my computer via ConsoleOne or other means.
    Also when I click the Application Window's menu bar items (File, Edit, View, Help), they have no options available under them.
    Furthermore, when I go to the "Application Explorer Properties" and click on the "More" button in order to go to "More About Application Launcher" box, the "Login Information" subwindow is empty while the "File Information" subwindow is full; that is, it has the File Names and their Versions displayed in it.
    The Zenworks's version is 7.0.1.x.
    Please help me resolve this issue.
    Thank you.
    Sam Wiseman
    240-567-5581

    Originally Posted by spond
    Swisemannovell,
    > The Zenworks's version is 7.0.1.x.
    >
    that's not the version - see TID 3546801
    Shaun Pond
    Thanks, Shaun for your response. I'm new to this forum, so I don't know what "TID 3546801" means.
    However, I'm going to give you the following file versions which may help:
    NalAgent: 7.0.1.12
    NalWin or NalWin32: 7.0.1.0

  • Elements 11 not responding when using "comic" or "graphic novel" filter

    I recently purchased PSE 11 and absolutely LOVE the program. It has worked flawlessly for me for 3 weeks, however, today was the first time I ever tried to use the "comic strip" filter and the "graphic novel" filter and the program stopped responding when trying to use these filters.
    I am able to use the other filters contained under the "sketch" dropdown menu, however, the 2 that I have mentioned do not seem to work.
    Any ideas what might be wrong?
    I am running a Windows 7 computer and as previously mentioned, all other functionality seems to be working in Elements 11 except for those 2 filters.
    Thanks for any help you can provide!

    Try resetting the PSE preferences by
       1. Close Elements.
       2. Launch the Photoshop Elements Welcome Screen and hold down ctrl + alt + shift as you click Edit.
       3. Continue to hold the keys until you see a message box asking if you want to delete Photoshop Elements settings file; click Yes. Elements will open with default preferences.
    OR
    GO to Edit->Preferences and you will see Reset Preferences on next launch
    Click this button to ensure that all product preferences are reset to default settings when Elements Editor is restarted next. Available at Preferences > General.
    OR
    Try with normal JPEG image also.
    Thanks,
    Garry

Maybe you are looking for

  • BW Upgrade 3.1 to 3.5

    Hi We need to upgrade BW 3.1 to 3.5. Where I can get detail documents for this? Vijay.

  • What is the best way to stream sports with Apple TV

    What is the best way to stream sports with apple TV

  • Help with Acrobat IX installation

    Hello, I am unable to install Acrobat IX on my computer both as a trial and a subscription. The error message I have received states: ERROR: Error 1920.Service Print Spooler (Spooler) failed to start.  Verify that you have sufficient privileges to st

  • HT5625 Reset UserID and password

    I changed e-mail provider so changed my userid and password. Now my ipod still comes up with the old ID and will not recognise the password. Any suggestions?

  • Some help for a noob please

    public class MilesandFurlongs private int miles; private int furlongs; public MilesandFurlongs(int longDistance, int shortDistance) miles = longDistance; furlongs = shortDistance; public int getFurlongs() return furlongs; public int getMiles() return